Как стать веб-программистом в кратчайшие сроки


“Smart is the new sexy”

Профессия программиста сейчас в тренде и не зря: высокая зарплата, гибкий график работы (иногда даже в удаленном варианте), интеллектуальный род занятий и чувство гордости за создание полезного продукта определенно располагает к себе.

Не удивительно, что многие задумываются: как же стать ближе к программированию? Многие, однако, даже не пытаются продвинуться к нему и откладывают изучение вопроса на потом (которое, конечно, никогда не наступает).


Программировать не страшно

Cтать программистом не так трудно, как может казаться на первый взгляд. Более того, с каждым годом обучающий материал становится всё доступнее. Программисты сами себе облегчают жизнь: новые инструменты создаются проще предыдущих.

Почему я рассказываю именно о веб-программировании? Потому что в этой области порог вхождения — один из самых низких. Веб-разработка, как правило, начинается со стилизации содержимого сайтов (верстки). Это очевидно проще, чем работать со сложными объектами в различных абстрактных структурах, что нужно делать в других видах программирования. Плюс, это сегодня одна из самых востребованных и быстро развивающихся областей.

За последние пару лет несколько моих друзей и знакомых просили меня обучить их программированию. Некоторым я помогал напрямую, но в основном просто передавал им список действий, выполнив которых, они смогут стать начинающими программистами. При этом ничего особенно не нужно: только желание, время и упорство. Поэтому сейчас я поделюсь этим списком со всем миром, чтобы каждый смог бы самореализоваться в этом ремесле.

Выступление Барака Обамы о важности изучения программирования.

Маленькое примечание для опытных программистов в стиле вопрос-ответ:

В: Зачем ты хочешь сделать самому себе больше конкурентов в профессиональной области? Звучит как садо-мазохизм!
О: Обучая новых людей программированию, я не создаю себе конкурентов потому что я далеко не начинающий. Когда новички дойдут до моего уровня, я буду еще дальше от них. Каждый специалист должен всё время развиваться. Если вы боитесь потерять работу из-за появления молодых, потому что вам лень заниматься саморазвитием, то вы не достойны этой работы.
В: Отлично, станет еще больше людей, пишущих плохой код. Кому это нужно?
О: А вы сами с самого начала писали хороший код? Не бывает идеальных людей. Не работайте с новичками, если не хотите. Я убежден в том, что разнообразие в коллективе ведет к усовершенствованию команды в целом, так как во время обучения других человек развивается сам.
В: Этот список — полная ересь. Для начала люди должны прочитать “Совершенный Код” Макконелла, а также “Язык программирования C” Кернигана…
О: Не должны. Довольно сложно начать изучение такой абстрактной вещи как программирование с толстенных книг. Я сам начинал с практики, постепенно двигаясь к best practices и к различным паттернам. Помню, в начале читал книгу по Javascript: выглядел умным, но обучился ничему. Разумеется, этот список субъективен и не идеален, но с помощью него точно можно начать программировать.
Отсылка к университетам, где по хардкору сразу преподают C++

Ладно, что делать?

Итак, приступим. Для того, чтобы стать веб-программистом, вам нужно стабильно тратить своё время на это. Например, пяти часов в неделю будет достаточно, чтобы за полгода с нуля дойти до первого предложения о работе. Дорога к нему не будет простой, но и невозможной тоже. Верьте в себя и всё у вас получится!

Итак, цель №1: стать верстальщиком (программистом, переводящий дизайн прототипа сайта в код с помощью языков HTML, CSS и Javascript).

К сведению, HTML — это, очень грубо говоря, основной язык, с помощью которого создается структура сайта. CSS — тоже грубо говоря, язык для оформления содержимого сайтов. Без HTML сайт существовать не может, а без CSS сайт будет выглядеть очень просто и непривлекательно. Javascript — язык, с помощью которого страницы можно сделать интерактивными настолько, насколько вздумается. В последние годы используется также еще много где: в роботах, в базах данных, в 3D анимации и так далее, поэтому знать его не будет лишним.

Стандартный этап в изучении программирования (шучу, на самом деле так всегда)
  1. Пройдите интерактивные курсы по созданию базового сайта на Code Academy или на HTML Academy если у вас с английским пока плохо. Вы изучите HTML, а также CSS. Даже если вы никогда не программировали — вы сможете разобраться (хоть это и не будет просто). Пройдя курсы, вы сможете сделать первый сайт!
  2. Код сайта пишут в редакторах текста. Вы можете писать даже в Блокноте, но это — пытка над самим собой! Поэтому редактор нужно выбрать и установить. Если сомневаетесь, рекомендую Sublime Text: он популярный, мощный и быстрый.
  3. Создайте простой сайт, описывающий что-то. Он может быть посвящен чему угодно (фантазируете, это полезно): себе любимому, родному городу/селу/космической станции, единорогам. Не обязательно его выкладывать в интернет: остановитесь на том, чтобы он просто запускался у вас в браузере. Скорее всего, он получится ужасным, и это нормально [:
  4. Пройдите курс по jQuery — это такой популярный инструмент, позволяющий легко делать страницы интерактивными с помощью языка Javascript.
  5. Пройдите еще пару курсов на сайте Code School, где помимо интерактивных уроков есть живое видео. С их помощью вы закрепите основы jQuery/Javascript, что позволит вам добавить на сайт разнообразный интересный функционал.
  6. Создайте еще пару сайтов, только на этот раз с динамичным функционалом. Например, с формой обратной связи или со слайдером или с Google картой вашего дома. Всё это не обязательно с нуля писать самому (начинающему это сложно). Для облегчения жизни опытные ребята уже написали плагины (полезные строки кода, выполняющие какую-то определенную задачу), которые можно подключить к своему сайту, настроить и получить желаемый функционал. Можете также пройти курс на эту тему.
  7. Пройдите полный курс по Javascript, чтобы освоить базу этого невероятно востребованного языка.
  8. Создайте еще один сайт по профессиональному дизайнерскому шаблону, который можно найти, например, на Behance. Задача — максимально точно повторить дизайн и создать функционал: именно это будет требоваться от верстальщика.
  9. Выложите свою последнюю работу на бесплатный хостинг (заодно разберетесь, как это сделать). Достаточно будет создать простейший одностраничный сайт-портфолио со ссылками на остальные свои работы.
  10. Вы теперь знаете HTML, CSS, jQuery, Javascript, ознакомились с плагинами и их подключением. Неплохо! Начните получать за это деньги. Изучите рынок вакансий на сайтах типа Headhunter, заполните там портфолио и начните спрашивать работодателей. Получить отказ от первых 5–10 компаний — абсолютно нормально, вы же только начинаете! Вас будут ждать тестовые задания. Даже если вы их завалите (например, будете делать слишком долго) — ничего, они пополнят ваше портфолио!
  11. Пока вы ждете ответов от работодателей, сделайте еще один сайт по макету, адаптировав его под мобильные устройства с помощью CSS свойства media-query. Подобная задача сейчас очень распространена. Также в свободное время можете пройти еще курсов на различных сайтах типа Code Avengers или даже поиграть в игру с помощью Javascript.

Что дальше?

Дальше всё зависит от вас. Забросить программирование на этом этапе? Ваше дело. Использовать эти базовые знания и создать сайт для своей основной работы вместо того, чтобы нанимать кого-то со стороны? Почему бы и нет!

Если желаете продолжить — рекомендую поработать пару месяцев верстальщиком, привыкнуть к атмосфере и к сообществу, а затем всё дальше переходить в Javascript, сначала, например, во Front-end разработку (связанную с тем, что видит пользователь — анимация, интерактивность и тд), а затем в Back-end (базы данных, серверы, алгоритмы). Выбор за вами!

Исследование завершено!

Список получился не таким уж и большим, не так ли? Вам это вполне под силам. Если у вас возникнут вопросы — можете спокойно оставлять комментарии или писать мне. Также я буду рад конструктивной критике и предложениям по списку. Удачи вам!