Какое направление web-разработки выбрать для начала?

23.09.2016
Если раньше можно было четко разделить области разработки на десктопную, мобильную и web, то сейчас web-разработка плотно интегрировалась в первые две:  web-приложения можно разрабатывать на разных устройствах и для разных устройств.
В настоящее время основной спрос приходится на разработку web и мобильных приложений, но  web-приложения имеют более широкую область применения и практичнее начать с неё. Типичная рекомендация по изучению web-технологий выглядит так: сначала вникаем во front-end -  HTML, CSS, JavaScript и фреймворки, затем, при желании, переходим к back-end - PHP, MySQL, NodeJs, Ruby и фреймворки. Front-end разработка, в общем случае, проще back-end и получится логичное развитие от простого к сложному. Как говорится, хочешь стать грамотным руководителем - начни с уборщика. С другой стороны, низкий порог вхождения, большой спрос и функциональность PHP может натолкнуть на мысль, а не начать ли сразу с него? После погружения в объектно-ориентированный подход к программированию, фреймворки и шаблоны проектирования можно рассчитывать не только на более высокую зарплату, но и более серьёзное развитие в программировании, поскольку JavaScript пока не может на равных соперничать с PHP. Однако, изучение JavaScript позволяет выйти на весьма интересные и широкие перспективы - разработку серверной части на NodeJs и  гибридных приложений под разные платформы. Например, при помощи JavaScript можно разрабатывать приложения под Android, iOS и Windows. PHP также пытается расширить свои границы. Например, на PHP можно написать оконное приложение, но изначально это серверная технология, в отличие от стека HTML, CSS и JavaScript, работающих на клиенте со всеми вытекающими из этого преимуществами и ограничениями. PHP изначально имеет больший доступ к аппаратным ресурсам системы, но благодаря интеграции API  с JavaScript, последний сокращает отставание в этом плане. Во многих языках и программных продуктах используются скриптовые движки. Знания JavaScript позволят не только уверенно чувствовать себя в web-разработке, но и широко использовать эти знания в мобильной и десктопной среде, а также для автоматизации работы везде, где используются скрипты.
Существует и ещё один путь окунуться в web-разработку - использовать объектно-ориентированные языки программирования типа Java, С#, Delphi. Кто-то может сказать, что “эти динозавры“ не предназначены для такого, сложны и заметно уступают возможностям и удобству языков web-программирования. Но никто не говорит, что вести разработку нужно исключительно на них. Грамотный разработчик программирует не на языках, а с использованием языков и выбирает инструменты не под влиянием моды и новизны, а для решения конкретных практических задач. И на Delphi можно разрабатывать web-приложения, однако одним из весомых преимуществ web-технологий является то, что они бесплатны и изначально разрабатывались для эффективной разработки под web, тогда как в “больших братьях” эти возможности являются как бы дополнительным функционалом, да ещё нередко и платным. Кроме того, придётся ещё и повозиться с его адаптацией под разные платформы и версии.
С развитием программного обеспечения и внедрения новых web-стандартов и технологий, увеличения пропускной способности каналов обмена данными, мощности компьютеров и размеров мониторов, многие проблемы web, казалось, ушли в прошлое. Но с появлением мобильных устройств в нашей жизни всё повторяется снова - низкая производительность, маленькие экраны, разные платформы с разной поддержкой web-технологий. Со всех сторон звучат призывы оставить в покое древность и двигаться вперёд, но открываешь сайт на планшете с Android 4.1.1 и понимаешь, что на дне ещё осталось немало якорей, затрудняющих движение вперёд и ограничивающих свободу web-разработчика. Кроссплатформенность и кроссбраузерность хорошо шагнули вперёд, но свободы в походке не ощущается из-за путающихся под ногами костылей, необходимых для поддержки славного прошлого. В условиях растущей конкуренции многие компании стремятся предложить потребителю удобный сервис и требуют от разработчиков создания отзывчивых и адаптированных под разные устройства и платформы приложения. А это автоматически рождает вопросы создания кроссплатформенных и кроссбраузерных web-приложений, в качестве которых можно использовать и web-сайты.
Если посмотреть на технологии для создания сайтов, то можно увидеть как фундамент, который используется повсеместно, так и разного плана надстройки. Понятно, что без фундамента и его изучения не обойтись, а вот необходимость использования надстроек рассматривается в каждом конкретном случае. В web-сайтах, а также других  интерфейсных web-приложениях фундаментом является HTML и CSS. При помощи HTML задаётся структура разметки для расположения элементов на странице (информационных блоков, навигации, элементов управления), а с помощью CSS - оформление данной структуры и элементов. Не думайте, что HTML и CSS  используются только при создании сайтов. Это кроссплатформенные и кроссбраузерные технологии, которые можно с успехом применять для создания интерфейсов и для десктопных, и для мобильных приложений. Например, в гибридных web-приложениях основной функционал реализуется на родной для той или иной операционной системы технологии, а интерфейсную часть выполняют на HTML (или XML) и CSS. Это позволяет создать единообразный  интерфейс, а не переписывать его под каждую платформу. За универсальность приходится платить, но универсальное решение позволяет быстрее запустить проект на разных платформах, что более востребовано при растущей конкуренции, чем эффективность и функциональность нативного варианта.
Начав с изучения HTML и CSS, вы сможете делать интерфейсы под разные платформы с минимальными усилиями на адаптацию (об этом мы ещё поговорим позже) и верстать страницы. Если не хочется останавливаться на верстке, то идём дальше и изучаем JavaScript. А можно ли обойтись без него? При реализации простого сайта да, но для реализации web-приложения без скриптов не обойтись, так как они обеспечивают динамику работы с данными и информацией на клиенте. На HTML и CSS можно реализовать выпадающее меню, изменять данные, и, возможно, в CSS появится больше возможностей, которые сейчас доступные только скриптам, но без JavaScript в настоящее время не обойтись. Как уже говорилось, на JavaScript в настоящее время можно написать функционал для любого типа приложения, а с использованием API и полноценные приложения.
Нужно ли изучать чистый JavaScript или можно сразу начать с фреймворка jQuery? Фреймворк  - это надстройка над базовыми языками и технологиями, которая предназначена для облегчения и ускорения написания качественного и универсального программного кода. При работе с jQuery не нужно думать, будет ли код работать на старых браузерах или нет, как лучше написать тот или иной алгоритм и как его протестировать. За вас это уже сделало множество программистов. Для мобильной web-разработки, где пока ещё актуальна скорость работы,  jQuery не столь хорош, как в десктопной среде, но  на нём написано много модулей и плагинов (элементы управления, системы построения графиков, отчетов и др.), так что его изучение может весьма пригодиться, но я рекомендую начать с базовой технологии - с JavaScript. Современные возможности JavaScript позволяют легко отказаться от многих плюшек jQuery и есть разработчики, которые считают, что время jQuery прошло, та как нужно по максимуму пользоваться готовыми сторонними скриптами и модулями, а при особой необходимости пользоваться JavaScript. Я считаю, что для начала достаточно изучить HTML, CSS,  JavaScript на уровне, достаточном для решения  практических задач с использованием справочных систем и форумов. Если же front-end разработка увлечет профессионально, то тогда придётся углубиться в неё и дополнить изучением сопутствующих фреймворков для HTML, CSS и JavaScript.
Оглавление
Copyright © 2016