Ok. Решил меж делом подтянуть фундаментальные знания(работаю я прекрасно и без них, но типа не комильфо). И меж делом буду набирать информацию для курсов.
Во-первых, нужно понимать что почти все что мы видем в интернете это html-странички. А html - это специальный язык разметки страниц, используыемый в интернете. Он типа легче. Сейчас есть html 5 и в нем какие-то веселости, и ныне никакой сайт не живет на чистом html, для облегчения изменение внешнего вида и вообще возможности верстки таких страниц сделали css - этакий костыль добавка к html, который делает всякие радости типа возможности указать стили элементов. И соотвественно возможность каждому элементу в отдельности прямым языком указать его место и положение по отношению к другим элементам, а также глубину слоев и т.д. и т.п.
Подробнее на http://postroika.ru и htmlbook.ru. Изучить стоит только postroika. А htmlbook - справочная информация.
Ах да и это еще не программирование. Это то о чем стоит иметь представление если вы хотите занятся Web-программированием. Не обязательно эти вещи знать хорошо.
Ладно вернемся пока не будем трогать само программирование, а поговорим о команде, которая разрабатывает сайты или web-сервисы, а также о нашей роли в ней.
Во-первых, это глава вашей компании или менеджер - ваш начальник, он будет все время сратся с заказчиками - не сомневайтесь, однако нужно понимать, что если вы возьмете на себя его работу - то свободного времени у вас попросту не останется. Заказчики ВСЕГДА норовят кинуть. Деньги свои отдавать мало кому хочется.
Далее. Это дизайнер - с ним придется больше общаться верстальщику, впрочем в маленькой конторе программист может совмещать эти роли. Собственно дизайнер занимается тем что предоставляет визуальный ряд. Но нужно понимать, что предварительно менеджер, дизайнер проекта и главный программист по этому проекту решают как будет выглядеть сайт исходя из требований заказчика. Т.е. программист, как бы ограничивает дизайнера говоря мол то-то мы можем реализовать, а вот такую фигню нет. В то же время менеджер ограничивает по сумме итоговых работ.
Прежде чем будет готов дизайнер это происходит в несколько шагов, сначала присылается так сказать общая идея, обычно даже несколько вариантов. Дальше все это детализируется, и в несколько шагов основываясь на отклик заказчика создается итоговая версия, которая будет стопроцентно утверждена заказчиком.
После того как итоговый дизайн сайт готов и решено какой на нем будет функционал. Начинается работа верстальщиков и программистов.
Зачем нужны верстальщики? Это тема следующего поста будет. Но в целом достаточно будет знать, что есть интернет-эксплорер, и есть еще разные веселые браузеры, которые по своему трактуют стандарты, поэтому вид в них бывает несколько разный, а верстальщик сводит все к единому(более-менее) формату - это называется кросс-браузерная верстка. Верстальщик берет макет (обычно Photoshop или Illustrator или Firework) сделанный дизайнером, т.е. итоговый дизайн, который нужно ему нарезать и сделать html-страничку, которая будет выглядеть в точности как на дизайне. Можно конечно все вставить тупо картинкой, но тогда сайт будет слишком много весить - раз, и второе он будет трудно парсится поисковыми роботами, да и содержание менять картинкой не всегда комильфо.
И вы - веб-программист, который занимается тем что создает нужный функционал для текущего проекта. В основном конечно это ввод/вывод информации в базу данных, поэтому любой программист знает SQL, хотя бы самом приблизительном уровне, но в Web-е база данных является обычно, что называется узким местом, т.е. то место где больше всего грузится машина, исполняющая написанный вами код. Поэтому желательно знать SQL на приличном уровне, но для начала хватит и "SELECT * FROM `table` WHERE id = 1;" и оператор INSERT(об этом все попозже). И ваш язык программирование, который будет встраиваться в html-код странички, которую сверстает верстальщик.
Такое программирование правильней будет назвать Server-side. Т.е. то, что происходит на стороне сервера, выполняется вашей машиной.
Есть еще Client-side, в html это язык Javascript, который в основном занимается тем, что улучшает интерфейс, т.е. программированием интерфейсов - drag'n'drop, красивые выпадающие списки, автоматический поиск по введенной строке(т.е. как сейчас google instance вы вводите а оно сразу ищет). Но правда это уже не просто client-side.
Соотвественно есть технология, которая объединяет Client-side программирование и Server-side - AJAX. Но обо всем этом позже.
В конторе еще может быть SEO-оптимизатор, занимается этот человек тем, что продвигает сайты в интернете, т.е. делает так чтобы в поисковике сайт по определенным запросом был в первой десятке или во-второй(яндекса хотя бы). Чтобы сайт было легче найти по разным каталогам. Т.е. популяризирует сайт.
Дотабаец
Постов: 1583
Карма:2
Ого! Сам все писал?
Тебе пора книжку написать "Курсы веб-программиста"
Подкастер
Постов: 2399
Карма:50
prospero писал(а):
Ого! Сам все писал?
Тебе пора книжку написать "Курсы веб-программиста"
Спасибо. Книжки не будет, а курсы будут. Только сначала все укомплектую, чтобы других людей фундаментально готовить и практически одновременно.
Забанен
Постов: 580
Карма: 0
Сайт может прекрасно создать один человек!!На каком либо движке к примеру dle ,joomla ,ucoz и не нужны не какие верстальщики дезайнеры и так далее!!Все это может создать один человек!!И он может его создать за 3 дня если знаком с движком!
Сайт может прекрасно создать один человек!!На каком либо движке к примеру dle ,joomla ,ucoz и не нужны не какие верстальщики дезайнеры и так далее!!Все это может создать один человек!!И он может его создать за 3 дня если знаком с движком!
толсто
Забанен
Постов: 580
Карма: 0
Если кто либо хочет создать сайт с нуля вот ссылка сдесь все подробно описано www.job4joy.ru
не лохотрон уверяю! Много знакомых зарабатывают на сайтах благодаря статье на этом сайте www.job4joy.ru
Спасибо. CMS и создание сайта в одно лицо отдельная профессия - называемая веб-мастер. Только зачастую, эти парни мало имеют отношения к программингу и не способны сделать действительно серьезной системы. И кстати нанимают в таком случае веб-программистов.
Веб-мастер совмещает в себе верстальщика, дизайнера, менеджера. Функционал он пытается сделать путем установление соотвествующих модулей. Есть специальные системы упрощающие создание сайта и управлением им CMS, но они зачастую не гарантируют большую гибкость, их изучение имеет смысл если есть задача по решению типовых задач.
Типовые задачи в основном давно решены и не являются целью работы программистов.
Естественно, веб-мастер зачастую не может в одиночку сделать хороший проект.
За 3 дня вы научитесь только верстать. Плохо.
Новичок
Постов: 124
Карма: 0
Клонд наконец норм тему замутил!
кста можешь записывать подкасты по веб-програмированию(я думаю будет кул)
ЗЫ у меня есть сайты с чисто HTML xD
Подкастер
Постов: 2399
Карма:50
kalabok писал(а):
Клонд наконец норм тему замутил!
кста можешь записывать подкасты по веб-програмированию(я думаю будет кул)
ЗЫ у меня есть сайты с чисто HTML xD
Спасибо.
Подкасты по веб-программированию пока нечего, я пока сам фундаменты изучаю(я чистый практик, знаю ровно то, что надо для работы и не более того, только опыт работы у меня есть и задачи разные посему более-менее обширные знания). У меня есть что-то мутное про разработку AI-систем. Ну там пока нет продвижения - а пока я стараюсь совмещать интересные задачи и денюжки, но что-то за ботов мне платить пока не хотят.
Ну и сейчас у меня интересная задача про Javascript есть.
Ну и такая метацель, в следующем году ZCE получить.
Подкастер
Постов: 2399
Карма:50
Зачем нужны вам верстальщики?
Если вас неожиданно заставят верстать(а любой web-программист обязан знать DIV-овую верстку и иметь понятие как это все выглядит) то вам придется знать в чем сложность.
А сложность в том, что есть стандарт W3C, казалось бы есть и хорошо, да не все браузеры сделаны в точности поэтому стандарту и многие из них обладают своими особенностями, вплоть до того что если в CSS указать в пикселей размер шрифта, то в разных браузерах это будет по разному выглядеть.
Особенно же противна поддержка некогда самого популярного браузера Internet Explorer 6.0. Не слышал ни 1го доброго слова про этот браузер, хотя и последующие 2 тоже порадуют вас не следованием стандартов и самым различным поведением. Соотвественно для того, чтобы настроить вид под разные браузеры, чтобы был одинаков нужно использовать специальные хаки без которых никак не обойтись.
Самый популярный это комментарий который игнорируется во всех браузерах кроме IE и там подключается в зависимости от версий дополнительные css файлы и библиотеки. Также есть всякие левые способы определить браузер и подключить соотвествующий CSS файл. Чтобы правильно верстать нужно знать особенности разных браузеров, допустим браузер мозила закругленные углы поддерживает как -moz-border..., а сафари -webkit-border..., тогда как стандарт border-radius, соотвественно старенький Explorer 6.0 вообще не поддерживает такую возможность.
Впрочем задачу закругленных углов можно решить на javascript, впрочем и в нем есть свои радостные особенности, но эти проблемы обычно ложатся на плечи веб-программистов.
К примеру популярный ныне AJAX по другому реализуется в горячо любимом Internet Explorer.
Т.е. если вас заставят действительно кросбраузерно верстать шлите лучше сразу очень далеко.
Я вот так делаю. В целом что-то очень простое можно, но и то не стоит, верстка это отдельная веселость, которую нужно тестировать в огромном количестве браузеров, и возможности сделать это как-то более разумно я не нашел.
В целом, сейчас нужно проверять на вид в следующих браузерах. IE 6, IE 7, IE 8, FireFox 3, FireFox 4, Opera 10.50+, Safari, Chrome. В нумерациях сафари не разбираюсь. ._. Хром в целом у всех более-менее новый.
Почему ребята которые делают разные браузеры не следуют стандарту? В целом вопрос больше к микрософту. Опера, хром, файрфокс стараются следовать стандарту.
Лучше заранее знать что за проблемы предстоят.
http://www.findmebyip.com/litmus/ - вот к примеру подобные таблицы разности.
Можете погуглить еще всякие списки хаков. Без хаков, кроссбраузерная верстка не возможна.
http://makeitsexy.rpod.ru - подкаст от 2х верстальщиков. Ну там правда еще JavaScript обсуждают что тоже не помешает.
Конкретно о программирование я начну рассказывать завтра.
Новичок
Постов: 124
Карма: 0
KlonD90 писал(а):
Подкасты по веб-программированию пока нечего, я пока сам фундаменты изучаю(я чистый практик, знаю ровно то, что надо для работы и не более того, только опыт работы у меня есть и задачи разные посему более-менее обширные знания)
можешь рассказывать о своих базовых знаниях=)
я тоже знанием языков программирования не выделяюсь(немног HTML и Pascal), но мне HTML хватает чтобы делать сайты в системах типа укоза(сейчас пытаюсь изучить php, java script, css, мб потом СИ начну изучать)
\
Подкастер
Постов: 2399
Карма:50
kalabok писал(а):
KlonD90 писал(а):
Подкасты по веб-программированию пока нечего, я пока сам фундаменты изучаю(я чистый практик, знаю ровно то, что надо для работы и не более того, только опыт работы у меня есть и задачи разные посему более-менее обширные знания)
можешь рассказывать о своих базовых знаниях=)
я тоже знанием языков программирования не выделяюсь(немног HTML и Pascal), но мне HTML хватает чтобы делать сайты в системах типа укоза(сейчас пытаюсь изучить php, java script, css, мб потом СИ начну изучать)
\
Ага только даже подкаст про дотку не заливается печалька.
Да и конкретно практики в просто устной форме не обучишь. А я думаю что-то типа сразу в бой бросать, т.е. дать базис, решение основных задач и идеи как решать все задачи ну и вообще понимать свою роль в структуре.
Забанен
Постов: 580
Карма: 0
Ахахах современные сайты на движках и создают!!!Которые я перечислил!!Там в любом модули можно изменять Php html css там можно серьезное замучить!!А если ты знаешь языки ты сделаешь все на свой вкус сам а движок тебе поможет!! СОВРЕМЕННЫЕ ПРОГРАМИСТЫ ДАВНО ТАК СОЗДАЮТ!
Забанен
Постов: 580
Карма: 0
Клон и еще че ты тут пишешь занимались этим первые программисты!!А изучаешь ты Базовые знания которые обязан знать каждый уважаущий себя программист!!Ну тебе этто еще поможет что бы создавать собственные мудули и щаблоны сайт и так далее!!Я знаю о чем я говорю!
Забанен
Постов: 580
Карма: 0
И кстате сайт dota.by тоже создан на движке!!Языками давно сайты не пишут!!
Новичок
Постов: 146
Карма: 0
Серьезные сайты пишутся с нуля а не на движках.
Подкастер
Постов: 2399
Карма:50
fruit^[by] писал(а):
Ахахах современные сайты на движках и создают!!!Которые я перечислил!!Там в любом модули можно изменять Php html css там можно серьезное замучить!!А если ты знаешь языки ты сделаешь все на свой вкус сам а движок тебе поможет!! СОВРЕМЕННЫЕ ПРОГРАМИСТЫ ДАВНО ТАК СОЗДАЮТ!
Уважаемый. Я очень рад за вас, за то что вы во всем этом разбираетесь.
Мы тут говорим о веб-программирование, т.е. о решение задач создание необычного или специфического функционала.
Можешь дальше жать в CMS кнопки и называть это программированием - к сожалению это не так. Вот создание специальных модулей к таким системам будет являться программированием.
Нужно также понимать, что у каждой фирмы в основном есть своя собственная CMS, с которой ей легче работать, учить конкретную CMS не стоит - если вы конечно не хотите возглавить отдел и сказать отныне мы будем все делать на этой CMS. Все же иметь если мы переходим на тему CMS.
Тогда давайте обсудим вопрос зачем нужны веб-программисты когда есть CMS и миллион модулей к ним.
Давайте разберемся что такое CMS и с чем ее едят.
CMS - система управления содержанием сайта. Эта вещь специально создается для людей, которые не разбираются в WEB-е. В целом там обычно дается возможность изменять буквы, добавлять новости, все остальное по желанию. Все это через человеческий интерфейс(в чем собственно и смысл). Некоторые из этих CMS столь мегапопулярны и круты, что имеют больше тысячи всяческих модулей(плагинов), дополняющих их функционал разнообразным образом: от красивой галереи до системы контроля над кланом. Также есть более тысячи уже сверстанных тем, которые позволяют подобрать что-нибудь под свой вкус.
Зачем же тогда нужны веб-программисты, когда казалось бы все решено?
Во-первых, CMS в основном генерирует много лишних движений(исключение насколько мне известно modX), а чтобы оптимизировать ее работу нужно проанализировать много вещей - легче написать свою CMS(что многие и делают).
Во-вторых, как не горько это признавать, но CMS тоже пишут программисты, как и плагины к ним. Так что если вы не можете найти нужный вам плагин - то вам придется обратится к программисту.
В третьих, решение специфических задач, в особенности связанных с AJAX, и внедрением более удобного интерфейса или каких-то вычислений, который бы производились, т.е. специфические калькуляторы или некие перекрытые возможности.
Кстати о том должен ли использовать современный web-программист CMS? Если он хочет оставить разбор полетов клиенту и функционал стандартен то CMS упростит ему работу. Но в целом имеет мало смысла в остальных случаях. Для уровня программиста конечно полезно знать одну-2 CMS, но больше для ознакомления.
Проекты решающие какие-то новые задачи пишутся без участия CMS. Или пишется новая CMS.
Если где-то достаточно знание одной CMS и умения установить пару модулей - то тут не пахнет работой для веб-программиста. Однако вас могут нанять для создания модулей на проекты.
Это моя точка зрения. Сейчас в России несколько другая точка зрения в одной конторе, где я работал мы обходились без CMS(у нас была слишком специфическая работа), в другой была собственная CMS, знаю также много контор которые используют Битрикс, и это считается, что-то типа индустриального стандарта.
Из CMS которые мне нравятся - WP. Очень радует удобство во всех смыслах, только вот грузит не по-детски.
Для программистов существуют свои так сказать CMS, которые решают ряд проблем, называются они правда Framework, но о программирование я расскажу позже, а о Framework в PHP совсем уж потом.
Забанен
Постов: 580
Карма: 0
Dota.by создан на движке
Забанен
Постов: 580
Карма: 0
Скажи мне пожалуйста минусы движков???Чем на них серьезный сайт не создаш?
Подкастер
Постов: 2399
Карма:50
fruit^[by] писал(а):
Dota.by создан на движке
Успокойся уже. Это курс веб-программиста, а не веб-мастера. Тема CMS тут раскрыта уже, дальнейшее раскрытие(со стороны веб-программиста) не имеет смысла - если за это не заплатят каких-либо денег.
Естественно если хотите делать сайты в одно лицо то без CMS не обойтись, но это не тот уровень и совсем другие проблемы.
Напоминаю, что разговор ведется о веб-программирование, а CMS всего лишь один из продуктов его(веб-программирования), которые обеспечивают удобство конечному пользователю.
Так что давайте закончим дискуссию по CMS или вынесем ее в какую-то отдельную тему.
Забанен
Постов: 580
Карма: 0
Просто ответь !И я больше не буду спрашивать!!Почему я не смогу нормальный сайт на Движке создать?
Подкастер
Постов: 2399
Карма:50
fruit^[by] писал(а):
Просто ответь !И я больше не буду спрашивать!!Почему я не смогу нормальный сайт на Движке создать?
Да, делай - кто ж тебе мешает?
Только, причем здесь веб-программирование? CMS это пользовательская система. Если тебе хватает существующего набора модулей то сайт ты конечно сделаешь, может быть и популярный, но отношение к веб-программированию твое творение будет иметь мало. И с функциональной точки зрения ничего нового там не будет.
Если ты все еще не можешь прочесть название: курс называется веб-программирование, а не про то как за 4 часа научится делать сайты(впрочем в Wordpress это займет 2 часа).
Новичок
Постов: 146
Карма: 0
одна из тысячи причин - технология Flash.
Новичок
Постов: 124
Карма: 0
Клонд прав имхо
Подкастер
Постов: 2399
Карма:50
Приступаем к разговору о программирование.
В целом давайте пока поговорим о программирование в вакуме, ну т.к. в любом случае прежде чем приступать к написанию реальных программ нужно понимать зачем мы вообще это делаем.
Ну, во-первых потому что комьютер глупое существо не способное понять человеческий язык и ему нужно все объяснить на его компьютерном.
Нужно понимать, что программы, которые мы пишем есть фактически инструкции для компьютера на его языке, какие-то первоначальные конструкции, стандартные, стали объединятся в такие вещи как функции, но это все наносное.
Прежде чем писать программы(инструкции) нужно изучить понятие алгоритм. Фактически мы занимаемся тем что пишем алгоритм работы для компьютера, который решают нашу задачу. Но алгоритмы есть повсюду. Хотя бы взять великий человеческий алгоритм(циклический) проснулся-поел-поделал что-нибудь-поел-заснул-(новый цикл)проснулся... Но записывать в таком виде или продумывать конечную структуру программы не самая удобная вещь. Для этого есть специальный язык ДРАКОН, который позволяет строить удобные для чтения блок-схемы, которые позволяют наиболее доходчиво понять основы алгоритмики, и того как писать программы.
После того как вы научитесь делать проистейшие алгоритмы на ДРАКОНе вам будет впоследствие легче разрабатывать программы и появится понимание в какой последовательности все это происходит.
Нужно понимать что в дальнейшем, после осознаний основ базиса того языка программирования вам в любом случае придется составлять программу, а вместе с ней и алгоритм, язык же ДРАКОН наиболее нагляден и хорош. Нет это не значит, что вы должны делать что-то типа прототипа на языке ДРАКОН, но знание вот такого базиса вам значительно поможет. Если в последствие вам придется оптимизировать приложение то алгоритмика очень сильно пригодится, хотя как я говорил в интернет-приложениях больше всего поможет знание SQL.
Подкастер
Постов: 2399
Карма:50
Если вы изучили алгоритмику и умеет строить первоначальные инструкции, вам не чужды конструкции если - то, иначе - то, и повторить n раз - тогда приступаем к тому чтобы начать к практике.
Прежде всего определимся с нужными нам книгами и технологиями. В своем курсе я буду говорить о PHP, JS, и конкретные практики. В целом еще будут даны первоначальные навыки конфигурации веб-сервера.
Но перед тем как начать парится с настройкой апача, мускула самостоятельно(можно этим заняться хоть прямо сейчас - дело потребует вечерка). Лучше скачать denwer(гугл ит).
О том как работать с денвером написано естественно на сайте денвера.
Инструментарий.
Скачать jQuery(framework к js). Редактор кода: На windows PHPStorm или NetBeans PHP, notepad++.
PHP
Д. Котеров(автор денвера) PHP - единственная адекватная книга о PHP. Несмотря на гигантское количество всякой информации на русском ничего другого адекватного замечено не было.
Будет рассказано о php5 в этой книге.
SoftTIME.ru php4 больше о функциональном программирование.
PHP.net - мануал по php, множество функций уже реализовано, соотвественно гуглите их здесь, тут они все, рассказано как установить дополнительные расширения.
тут нужно знать что в php 5 были введены новые возможности Объектно-Ориентированного Программирования(о парадигмах программирование ниже) и более низкоуровневого.
JS
Джон Рейсиг Профессиональные приёмы программирования - книга, которая учит как программировать на практике.
Дэвид Флэнаган Javascript - тоже больше мануал. Огромная толстая книга использую ее как справочник.
Javascript.ru - читайте основы здесь
Желательно иметь эту литературу на компьютере.
Как я говорил раньше PHP - на сервере. И взаимодействие с БД.
А JS программирует интерфейс.
Теперь о парадигмах программирования. Сейчас есть 2 парадигмы программирования: функциональное и объектно-ориентированное. Первое заключается в использование локальных переменных и к тому, чтобы создавать хорошо изменяемый код использования некоторых функций, которые допустим работая с данными поставляет их в систему, то чтобы изменить источник данных нужно всего-то изменить функцию, а не менять все места где вы получаете данные. Таким образом сокращается не только количество кода по итогу но и возможность совершить ошибку.
Объектно-ориентированное программирование это дальнейшее развитие. Теперь есть возможность работать с объектами. И что самое главное появляются классы, интерфейсы которые предоставляют возможности наследования и прочей радости.
Что появилось какие плюсы? Возможность расширять код путем наследования(т.е. у вас объект а и у него есть полезный набор функций, но вам нужен еще объект б обладающий таким же функционалом, но одна функция должна исполнятся немного по другому то вы объявляете б наследником а и пишите только изменения в одной функции - вуаля) и возможность соединять объекты интерфейсами - об этом впоследствие прочитайте.
Еще один плюс ООП(объектно-ориентированного программирования) это возможность хорошего соединения работы, т.е. один человек пишет объект а, другой объект б и вы договариваетесь об их взаимодействие - вам не нужно знать что будет там внутри.
Над ООП есть шаблоны проектирования, которые описывают архитектуру и прочие радости.
Естественно все эти радости не даются не просто так, они несколько замедляют вычисления, но в данный момент это не актуально.
Пока все. О чем рассказывать в последствие? PHP, JS?
Гайдмастер
Постов: 9371
Карма:352
пхп потом джаву
Новичок
Постов: 146
Карма: 0
Как язык я пхп на начальном уровне знаю, но до сих пор не понимаю принципов ООП, можешь обьяснить на пальцах на каком нибудь простецком примере или алгоритме. Например этот алгоритм не испоользует ООП, а в этом используется, хотя они оба по сути выполняют одно и тоже.
Варвик был учеником у Алхимиков Зуана. Когда же началась война между Ноксусом и Ионией, он вступил наемником в Ноксийскую армию. Что было дальше, читайте в гайде…
Этот гайд написан, чтобы показать самое основное, и некоторые продвинутые фишки в DotA. Он предназначен для людей, которые недавно начали играть в DotA.