Интернет-программирование - это отличная идея реализовать свой интеллектуальный потенциал и получить объективное представление, что о нем думают другие. Всемирная паутина позволяет объективно представить динамику и уровень общественного сознания, оценить свои силы и возможности, выбрать правильный путь в стремительно развивающемся социально-экономическом пространстве.
Для многих веб-программирование - это реальная работа и способ зарабатывать на хлеб насущный, но для всех - это возможность объективной самореализации внутри себя и в окружающем обществе.
Сложившаяся ситуация: концептуальный момент
Современное программирование вообще и интернет-программирование в частности - это «каменный век» информационных технологий. Можно с этим спорить, но спор мало что изменит. Конструкции семантики и смысла, рожденные в начале начал, живы до сих пор, хотя реальная возможность и объективная надобность перемен стали очевидны как только динозавры (ЕС ЭВМ и им подобные) уступили место под солнцем «персоналкам».
Формально можно считать началом всего 80-е годы прошлого века. Однако сознательное рождение и стремительный рост интереса к информационным технологиям - это середина 90-х годов. Насколько сказанное объективно - судить потомкам. Но! Объективно: синтаксис и семантика языков программирования, по существу, не изменились до сих пор.
Концептуально сформировалась внешне стройная система знаний и умений. Определился набор инструментов, доступных профессиональным разработчикам и понятных любому человеку. Но это только начало, причем в преддверии перехода на качественно новый уровень.
Программирование всегда было зеркалом интеллекта, но когда оно стало интернет-программированием - программист получил возможность оценить себя как человека, объективно. Обычный человек - всегда программист. Можно даже не пытаться заставить себя делать что-то особенное. Дворник и домохозяйка не только планируют каждый день собственной жизни, но также умеют моментально составлять идеальные алгоритмы с тем, чтобы жить, работать и развиваться дальше.
Что такое программирование вообще и в частности
Человек - не компьютер, но логика принятия решений человеком - это формула управления (это и есть программирование) компьютером. От того, насколько образован человек, зависит качество управления. Совсем не обязательно быть программистом, чтобы управлять компьютером, но управлять - свойство человеческой натуры.
Разделение общества на программистов и пользователей было обусловлено объективной реальностью: кому-то нужно было пройти трудный путь становления новой системы знаний и приведения ее в общедоступное состояние. Сегодня результат начального этапа налицо, и каждый человек может освоить технологии веб-программирования без особого труда.
Следует понимать. Достигнутый уровень информационных технологий, если обойтись без пафоса и восторгов, по части качественного уровня развития аппаратного обеспечения - это всего лишь фундамент, на котором строительство здания еще не началось. Если бы программирование по состоянию и уровню систематизации хоть отдаленно напоминало физику, химию, медицину, философию или иные сложившиеся и обществом признанные системы знаний, еще можно было о чем-то говорить.
Когда идет бурный процесс развития, программирование вообще - это пестрый клубок стохастически развивающихся знаний. Программирование в частности - это возможность каждого реализовать собственные идеи без опоры на идеи других людей, сколь бы профессиональными и образованными они себя не считали.
С чего начать и что делать
Программирование - это процесс создания последовательности действий для достижения цели. Совершенно не обязательно требовать конкретности от «последовательности действий» и понимания «цели». В процессе обязательно изменится и первое, и второе. Важна формула, но не ее содержание. Программированием занимается каждый человек в каждый момент времени. Просто нужно привычное уложить в сложившиеся конструкции синтаксиса и семантики конкретного языка программирования.
Выбор операционной системы, языка программирования, сопутствующих инструментальных средств не принципиален. Сегодня все пришло к общему знаменателю, и современные возможности отличаются только производителем, названием и стилем письма.
Обычно доступный функционал приходит сам с приобретением компьютера, смартфона или устройством на работу в качестве программиста. Есть определенное аппаратное обеспечение, есть набор доступных программ - можно начинать учиться на том, что уже есть. Более прогрессивно почитать книжки, посоветоваться с друзьями, учителями и компетентными специалистами. По сути, это ничего не изменит, но по особенностям человеческой психики это обусловит конкретный стиль кодирования. Что бокс, что карате - не велика разница, главное - качественные знания и умения. И еще желание добиться результата.
Учитель, книжка или труд
Хороший учитель в жизни - всегда в приоритете, но не всем везет с учителями. Скачать правильную книжку - далеко не всегда удачная идея. О программировании не писал разве что ленивый, а модный нынче рерайтинг привел к тому, что на просторах Интернета языки веб-программирования описаны, и эти описания переписаны многочисленное количество раз людьми, далекими от существа вопроса.
При любой стартовой позиции есть только два перспективных объективных обстоятельства, способствующих успеху:
- желание учиться;
- прилежный труд.
Собирая информацию, экспериментируя и развивая собственные знания и умения, следует искать авторитетных специалистов и учителей. Не следует при этом все принимать на веру. Каждое новое знание или обстоятельство надлежит изучать всесторонне и проверять внимательно. В программировании слишком много авторитетных мнений и слишком мало гарантий, что они верные. Не все следует читать, слушать и принимать на веру.
Книги и системы управления сайтами
Книги по веб-программированию имеют значение. Уважающее себя издательство не выпустит книгу, не содержащую более-менее достоверную информацию. Выбирая письменный вариант, трудно ошибиться. Можно не покупать книгу авторитетного издательства в магазине. Достаточно запомнить ее название. Точную копию всегда легко найти в Интернете. Интересные и значимые книги сразу попадают на просторы Сети еще до своего издания.
Популярные CMS (системы управления сайтами) - хорошая школа и хороший заработок. Крайне желательно выбрать наиболее распространенный вариант и не распыляться на одновременное изучение нескольких CMS. Достаточно одной, но изученной досконально.
Идеально вместе с выбором CMS найти компетентного разработчика и поступить к нему в подмастерья, но современные квалифицированные разработчики не очень любят брать себе учеников и у них всегда нет времени. Практичный вариант - самостоятельно приобрести начальные знания и найти работу помощником программиста в какой-нибудь ИТ-компании. Текучесть кадров в современных айтишных компаниях - лучшее свидетельство, что многие начинающие программисты так и делают.
Ручная работа и полная самостоятельность
Если есть желание стать профессионалом и сделать программирование делом всей свой жизни, следует заняться пристальным самообразованием. Веб-программирование - это не так много важных позиций. Нужно знать HTML, CSS, JavaScript и серверный язык программирования, например PHP.
Базы данных - это важно и нужно, но к ним можно будет подойти чуть позже. Диалекты SQL (языка запросов к базе данных) не столько сложны для понимания, сколько потребуют массы времени для приобретения нужных знаний и умений.
Можно искать курсы веб-программирования, но не следует забывать: интересен не факт получения знаний учеником, а размер дохода преподавателя. По сути, школ по программированию сегодня нет: не то время. Все ссылаются на социально-экономические проблемы, а это объективное подтверждение: приоритет имеет бизнес, а не знания.
Вот в 80-х и 90-х годах существовали школы, выступали профессоры, формировались научные направления, проводились тематические семинары. Жизнь в области программирования била ключом, причем во всех странах. Сегодня программирование в контексте обучения веб-программированию - это бизнес, а не стремление создать школу и вырастить благодарных учеников.
Собственные фундаментальные основания
Прежде чем становиться программистом, если речь идет о стремлении к владению этой профессией в полном смысле этого слова, нужно уметь ставить самостоятельно Windows или какой-нибудь Linux (семейство линуксоидов очень велико).
Linux - всегда перспективнее, у него кардинально отличная (от «суетливой» и непредсказуемой Windows) идея. Однако текущая ситуация в сфере информационных технологий находится в паритете. Одинаково перспективно работать в среде Windows и среде Linux. В каждом варианте есть свои плюсы и минусы. Но баланс сегодня сложился в полном соответствии возможностей.
На выбранной операционной системе нужно уметь самостоятельно ставить и настраивать Apache, PHP и MySQL. Остальные инструменты - по вкусу и по ходу развития знаний. Обязательно нужен редактор кода. Можно использовать классический Notepad, но удобнее применять инструмент класса PhpStorm.
Хорошей идей будет несколько раз установить и «снести» фундаментальную троицу (WAMP/LAMP - Apache, MySQL, PHP), обеспечивающую веб-программирование. Если нет желания делать это в начале карьеры, судьба обязательно заставит это сделать в самый неожиданный момент времени позже. На практике не потребуются глубокие знания по Apache, установке PHP и MySQL, но умение ставить эти три продукта «с закрытыми глазами» будет полезно в последующей работе.
Apache & PHP & MySQL - это собственный локальный хостинг: мини-интернет на собственном компьютере. Это фундамент для обучения веб-программированию. Ставить «обрезки» вроде "Денвера" нецелесообразно. Никто и никогда не покупает кусок автомобиля. Всех интересует машина целиком, а как разобраться со всеми деталями, каждый владелец полного комплекта решает сам.
Время и основные принципы
Основы веб-программирования - это собственный хостинг (принципиально), знания HTML, CSS, JavaScript, серверный язык и база данных. Начинать лучше с PHP и MySQL, но варианты Perl, Python, .NET, MS SQL, Oracle и пр. тоже возможны. Не суть важно, что MySQL и Oracle - это не сопоставимый объем информации. Знания, которые потребуются - эквивалентны, по сути, и требуемому размеру.
Языки программирования вовсе не отличаются по существу. Есть принципиальные отличия в стиле, но принципы создателей языка не имеют значения. Изучать надлежит HTML и CSS совместно. Это две стороны одного процесса. Уделить внимание JavaScript можно, но лучше это сделать, когда первый десяток страниц - результат веб-программирования с нуля понравится не только автору.
На все действия требуется время. Программирование привыкло апеллировать к фактору «Пи», и никому не повредит поддержать эту традицию: на освоение HTML и CSS потребуется три месяца. В конце второго месяца можно уделить внимание JavaScript и оживить созданные страницы обработчиками событий. В конце третьего месяца следует заняться PHP или иным языком серверного программирования и уделить внимание MySQL или другой базе данных.
Никогда не следует спешить. Программирование - это не танцы со шпагами. Здесь очень важно с самого начала следовать традициям и базовым принципам: внимательность, аккуратность, бдительность и терпение.
Приоритеты: бизнес, творчество и перспектива
Веб-программирование с нуля - самая востребованная тема. Это реальная свобода творчества и перспектива развития созданного решения. Любой заказчик, прежде чем он уверует в какую-нибудь CMS, начинает обсуждать задачу с исполнителем в ручном варианте.
В ходе обсуждения задачи вырисовываются контуры времени, которое потребуется для выполнения работы, и стороны принимают решение использовать Zend, Bitrix, Symphony, Magento, Drupal или иную систему управления сайтом. Курсы веб-программирования ориентируются на одну из популярных CMS, обычно на основании предпочтений преподавателя. Эти два обстоятельства - быстрый транзит идеи от нуля в сторону популярной CMS и предпочтения преподавателя в контексте CMS - объективны и дают веские основания предпочесть на начальном этапе обучения именно нулевой вариант.
Человек, желающий овладеть веб-программированием (не обязательно профессионально), должен знать HTML, CSS, JavaScript, серверный язык и уметь ставить собственный хостинг (WAMP/LAMP). Системы управления сайтами, шаблоны, фреймворки - это все сгустки знаний и кода, отрешенные от их создателей и модифицированные поклонниками. Они работают, но никогда не будет гарантии, что не подведут.
В случаях, когда придется использовать CMS, и это будет обоснованным и объективным решением, знания по реальному веб-программированию собственными «ручками» будут фундаментом успеха и гарантией надежной работы созданного веб-ресурса.
Реальные объекты
Идеально, когда человек начинает заниматься веб-программированием с нуля, и его познания в программировании вообще отсутствуют. Если это не так, желательно перед началом процесса забыть про информатику, забыть все, что говорили в школе, и все, что стало известно о программировании до начала процесса обучения.
Перед тем как заняться изучением технологий интернет-программирования и начать усваивать модные идеи объектно-ориентированного программирования, облачных и виртуальных конструкций, следует посмотреть вокруг и представить себе мир реальных объектов: задачи, предметы, решения, причины, события - все, что привычно для человеческого понимания и используется для принятия решений человеком.
Если это представление о реальной действительности крепко ляжет на подсознание, то искусственные идеи объектов программных, которые по сей день остаются под вопросом, можно будет адаптировать в реальность и всегда иметь реальное и обоснованное решение всякой задачи.
А ЧТО ВЫ ДУМАЕТЕ ОБ ЭТОМ?