Я занимаюсь веб-разработкой чуть меньше двух лет, но я создаю приложения для федерального агентства, благодаря которому меня приглашают выступать на конференциях. Мне потребовалось некоторое время, чтобы понять, как добраться до этой точки, и у меня не было никого, кто мог бы дать мне дорожную карту, когда я начинал. Я потратил много времени на самообучение, и, оглядываясь назад, определенно есть пути попроще. Итак, вот моя попытка направить новых разработчиков на правильный путь.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

В старшей школе я начал с базовых знаний C и HTML/CSS, а затем в колледже посещал занятия по Java, C++, JavaScript, XML и SQL. После выпуска я начал использовать PHP и MySQL для рабочего проекта. В конце концов я освоил Meteor (полный фреймворк JavaScript), ECMAScript6, немного поработал с NoSQL (MongoDB), а теперь работаю с Ruby on Rails.

Однако то, как я учился, работало не очень хорошо и, честно говоря, было несколько спорадическим. Потребовалось много времени, чтобы фундаментальные концепции действительно закрепились. Я много прыгал между языками, делал уроки, читал несколько книг, без конца просматривал StackOverflow и даже ходил в местный кодлагерь для шуток, чтобы добраться туда, где я есть.

Совершенно верно, что как только вы достаточно хорошо изучите один язык и усвоите основные концепции, вам будет легче расширяться и изучать больше. Они все очень похожи, просто синтаксис немного отличается. Но вы можете освоить множество рыночных навыков очень быстро.

В конце концов, я думаю, это сработало, но, оглядываясь назад на как я всему научился, определенно есть способ упростить это:

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Самая большая выгода, которую вы можете дать себе, — это освоить основы. Выберите один язык (например, Ruby, JavaScript или Python) и изучите его. Три перечисленных мной довольно просты, и вы можете быстро увидеть результаты, но они также могут быть безумно мощными, когда вы начнете добавлять фреймворки и тому подобное позже.

Рубин:

Ruby — Codecademy — это дает вам интерактивную оболочку (поэтому вам не нужно ничего устанавливать), обучает вас основам языка (переменные, функции, методы) и дает вам быстрый способ протестировать и увидеть результаты. кода, который вы пишете. Это то, что я использовал, чтобы подобрать Ruby, и это очень помогло.

Изучай Ruby трудным путем — пусть вас не пугает название. Все довольно просто, и автор гарантирует, что вы полностью понимаете, ПОЧЕМУ вещи, которые вы создаете, работают именно так, как они работают. Это понимание может очень помочь позже в будущем.

JavaScript:

Free Code Camp — это обучающая среда с открытым исходным кодом. Это уводит вас от самых основ использования JavaScript в качестве языка для изучения основ (не обязательно для веб-разработки, но это проведет вас через МНОГО). Он также предоставляет вам сеть поддержки других людей, с которыми можно поговорить о решении конкретных проблем, и в конечном итоге добавляет больше (HTML, CSS, API), чтобы продолжать создавать более крупные и лучшие вещи. Это то, чему я научился больше всего из того, что знаю сейчас, и я считаю это бесценным.

Важно отметить, что вам не нужно заканчивать Free Code Camp. Они добавляют новый материал так быстро, что я не уверен, делал ли это кто-либо когда-либо. Не мешало бы закончить один из модулей и получить сертификат. Работодателям нравится видеть, что вы можете что-то взять на себя и закончить, но если вы хотите перейти к работе над личными проектами после нескольких их проектов, обязательно сделайте этот шаг.

JavaScript — Codecademy — Опять же, это дает вам интерактивную оболочку, чтобы вы могли писать, тестировать и видеть результаты своего кода прямо в браузере. Это действительно фокусируется на основах.

Питон:

Автоматизируйте скучные вещи с помощью Python — это увлекательный способ изучения языка. Вы довольно быстро начинаете создавать вещи, которые помогают вам в реальной жизни.

Python — Codecademy — Опять же, это дает вам интерактивную оболочку, чтобы вы могли писать, тестировать и бла-бла-бла. Начинаете видеть здесь закономерность? Codecademy действительно хорош для изучения синтаксиса нового языка.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Я знаю, что это много. Но, как я уже сказал, выберите сейчас один и действуйте с ним.

Как только вы освоите основы языка, достаточно легко переходить с одного на другой. Я считаю, что курсов Codecademy достаточно, чтобы помочь мне понять синтаксис нового языка, и всему, чему они меня не учат, поможет официальная документация языка. Но теперь вы подходите к тому, чтобы создавать вещи самостоятельно, будь то скрипты, сайты или приложения.

ТЕБЕ НУЖНО. ЗНАТЬ. УПРАВЛЕНИЕ ВЕРСИЯМИ.

Я рекомендую Гит. Он широко доступен, с открытым исходным кодом (созданный парнем, который сделал ядро ​​​​Linux), и хорошо работает с GitHub и BitBucket. Он помогает отслеживать изменения в вашем коде, помогает делиться кодом с другими (чтобы они могли прочитать его и рекомендовать изменения или использовать его в качестве основы для найма вас) и предлагает удобный способ иметь удаленные резервные копии.

Git:

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

Урок GitHub от GitHub — после того, как вы освоите Git Intro, попробуйте этот. Он учит вас, как Git взаимодействует с GitHub. И помогает сделать идею веток и запросов на вытягивание немного более осмысленной.

Дополнительные материалы в Git:

Изучите Git за 20 минут — это довольно известная лекция, которая может помочь понять многие основы. Git будет немного отличаться от всего, к чему вы привыкли, поэтому важно понимать концепции. Это использует визуальные средства, чтобы помочь ему погрузиться.

Gitting Right — это невероятный ресурс от Atlassian. Он многому учит: от базовых до продвинутых команд Git, различным рабочим процессам и отвечает практически на любой вопрос, который у вас когда-либо возникал о Git. Сохраните это на панели закладок; вам это понадобится.

— — — — — — — — — — — — — — — — — — — — — — — — — — — — — —

Оттуда, я бы сказал, просто продолжайте строить вещи. Начните добавлять такие фреймворки, как Meteor, Django или Rails. Найдите то, что вы хотели бы использовать, например, небольшое приложение, которое позволит вам и вашим коллегам следить за тем, какие места для обеда вам нравятся, или что-нибудь, чтобы отслеживать, какой вес вы поднимаете за год.

Лично я создал несколько мелочей для FreeCodeCamp и просто продолжал работать с ними. Как только вы создадите несколько проектов, вы обнаружите новую технологию, которая упростит определенную часть разработки. Например, использование Handlebars и понимание того, что движки шаблонов меняют правила игры. А затем изучение асинхронных вызовов базы данных с помощью Meteor, возможность делать приложения для нескольких платформ с использованием одной кодовой базы и использование таких фреймворков, как Rails, чтобы абстрагироваться от многих скучных вещей в веб-разработке. Вам просто нужно продолжать и продолжать строить более интересные вещи.

Это большой, широкий мир.

И пользователь Reddit /u/eru_melkor делает действительно очень хорошее замечание:

"Не страдайте аналитическим параличом".

Будут моменты, когда кажется, что вариантов слишком много. Пусть это не мешает вам строить. Это большое препятствие, которое большинству из нас приходится преодолевать.

«Но Генри, как я узнаю, что использую правильный инструмент?»

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

И я знаю, что это много. Я действительно понимаю это, но мы все должны с чего-то начинать. Я имею в виду, просто посмотрите первую веб-страницу, которую я создал еще в 2011 году.

/Съеживаться.

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

Жизнь такая забавная.

И действительно, если кому-то из вас, читающих это, когда-либо понадобится помощь с чем-либо (синтаксис, установка вещей, настройка среды разработки, размещение вашего первого веб-сайта), абсолютно не стесняйтесь стрелять в меня PM на Reddit. Мне нравится помогать людям начинать, так что обращайтесь!