Что выбрать для изучения программирования под веб с нуля сегодня?
Здравствуйте.
Если бы вы сейчас захотели начать учиться веб-программированию, то с чего бы вы начали? Какой язык, фреймворк, технологию выбрали бы?
Я спрашиваю из личного интереса — хочу быстро научиться современным инструментам и реализовывать свои задумки.
С обычным программированием я дружил с детства: бейсик и ассемблер на спектруме. Потом технический вуз (а учиться я начал в конце 90-х), в котором: функциональное программирование на паскале, немного ассемблера x86, а после объектное на Delphi, немного С++, и даже чуть-чуть экзотического ЛИСПа. Но жизнь с ложилась так, что научиться именно программированию для веб мне не удалось.
Сейчас я проектирую сайты, рисую прототипы и дизайн страниц и интерфейсов. Поверхностно понимаю что и как работает.
Но мне не удается понять процесс: как можно создать приложение, которое будет выполнять нужные мне функции.
Сейчас ведь нет никакой среды как раньше, вроде Delphi для веба, где можно было легко и быстро набросать интерфейс приложения и начать описывать реакцию его на действия пользователей (и дополнительные функции, которые требовались приложению). И таким образом понять как все работает, при этом уже создавая то, что тебе нужно.
Я умею верстать (хотя и тут мои знания уже устарели), но не понимаю как работает анимация, например, или управление блоками на странице или реакция на действия пользователя. Я знаю, что все пользуются JQuery для этого и он уже вытеснил Javascript, но не понимаю как все работает.
А ведь без понимания процессов, того как все работает, вряд ли удастся сделать что либо, сколько мануалов не читай, CMS и фреймворков не потроши.
Я бы очень хотел всему научиться, поскольку так я смогу реализовывать свои задумки сам, и лучше ставить задачи кодерам, когда это необходимо.
Я хочу заняться самообразованием в этом направлении.
Подскажите, что сейчас стоит читать, изучать? Может быть есть толковые курсы или мастер-классы?
Из опыта, лучше всего мне подходит обучение, когда поэтапно объясняют на примерах как сделать ту или иную вещь и дают задания сделать подобное или развить функционал.
В идеале, круто было бы найти ментора, которой в формате поэтапного обучения помог бы мне реализовать какие-то интересные мне вещи. Я правда не слышал ни о чем подобном в среде программистов, но все чаще сталкиваюсь с мастер-классами и тренингами хороших дизайнеров, которые вместе с новичками проходят поэтапно от азов до сложных вещей, разбирают домашки и помогают тем самым сделать мир лучше.
Я неспроста в начале спросил о том, что именно вы бы начали изучать с нуля сейчас. Не вижу смысла «изобретать велосипеды», когда можно «ехать на скоростных поездах». Когда от изучения «матчасти» и первых строчек кода до несложного сайта или сервиса отделяет минимально возможное время.
Работает все до безобразия просто.
1. Есть html код. Это как форма в делфи, только более формализованная — разметка страницы. На самом деле под десктоп сейчас те же самые технологии, только используются не html, а другие разновидности XML.
2. Есть клиент-сайд программирование — это интерактивные элементы формы без обращения к серверу. Т.е. это какой-то код, который рулит статикой формы и превращает ее в динамику. Язык тут один — javascript и множество примочек к нему.
3. Есть сервер-сайд. Чтобы наполнить всю эту динамику данными, отдавать новые формы и т.д. нужно их где-то хранить и отдавать на сторону клиента. Вот для этого используется серверное программирование — боевой скрипт + база данных. Языки программирования тут используются самые разные. Их основные отличия:
— Экосистема (используемые БД, сервера, да даже IDE)
— Способы запуска на сервере боевых инстансов.
— Всякие языковые особенности (это менее важно на самом деле).
Для веб-программирования вам нужно освоить html+javascript+ любую серверную экосистему (язык+БД+тулзы для разработки и администрирования) и знать, как это склеивать вместе.
Посмотрите на php, rails, asp.net, python. Что больше понравится на том и валяйте. Ну и JQuery конечно же. Лично от себя советую asp.net, — научитесь c#, это позволит вам писать не только веб приложения, но и все остальные(мобильные, десктоп и тд) без переучивания.
Я бы даже сказал так. Лучше начать с C#, ибо потом если что вы сможете спокойно перейти и на Java и на PHP (с небольшой болью в душе но можно). Вообще все эти языки между собой схожи, и можно спокойно использовать что-либо из списка только из параметров «востребованность».
tau, на отличном от php языках нельзя писать кривые велосипеды? Получаются только феррари? Сравните количество web-фреймворков (популярных) к каждому языку и тогда уже делайте выводы, кто из них более web-ориентирован.
Сейчас ведь нет никакой среды как раньше, вроде Delphi для веба, где можно было легко и быстро набросать интерфейс приложения и начать описывать реакцию его на действия пользователей (и дополнительные функции, которые требовались приложению). И таким образом понять как все работает, при этом уже создавая то, что тебе нужно.
Если вам будет удобней такой старт обучения — тогда вам прямая дорога в ASP.NET WebForms. Разработка для веба «а-ля десктоп» — это конек именно этой технологии (используя Visual Studio). Но долго засиживаться на ней тоже не стоит.
Получив базу С#, ASP.NET, .NET, можно с легкостью перейти на ASP.NET MVC (причем с некоторыми усилиями и на WinForms, WPF-Silverlight), а эта технология в последнее время вбирает в себя лучшее ото всех других. Как в общем-то и сам С#.
Это что касается сервер-сайда — тут у вас большой выбор. Ну а html, css, js (jquery) учить придется по-любому.
Я бы снова perl изучил, из фреймворков — catalyst, если не нужен фреймворк, то хотя бы moose для ооп.
perl сейчас не в моде, но умирать он не собирается. Документации, книг и главное, модулей различных под него — море.
python и ruby — динамично развивающиеся языки, но это не делает их лучше по-умолчанию.
Ну как бы не все можно на Node.JS написать не заботясь о мелочах. Допустим особенности работы Node.JS Делают его идеальным решением для построения API сервисов, но у него есть нюансы с производительностью (а именно потребление памяти, ее отчистка… Хотя может сейчас уже и там все ок).
Я лично не вижу причин отказываться от PHP (особенно с учетом того что язык постепенно преображается во что-то вменяемое).
Ruby On Rails конечно же. Хотя бы ради понимания общей структуры, все остальные веб-решения на других языках так или иначе копируют рельсы. Потом можно будет легко мигрировать на любую платформу, хоть на php с фреймворками, хоть на python-django, хоть на node.js с railwayjs, хоть на эрланг с ChicagoBoss.
Правда, для комфортной работы нужна линух-подобная ось. Если вы на винде, то придется научиться разворачивать линух на virtualbox и работе с ним по сети.