Часть 3: Выбор оружия.

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

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

Выбор языка не так уж и сложен.

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

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

Я снова могу видеть ваши виртуальные мысли через ваш экран:

Если я только начал изучать язык, это все, что я знаю и он мне очень нравится, зачем мне думать об изучении еще одного?

Хороший вопрос! На своем пути к мастерству в своем чудесно выбранном языке вы в конечном итоге найдете доказательства того, что он может делать хорошо, а в чем он ужасен. Но вам придется контролировать своего внутреннего фаната (если он есть), чтобы увидеть это.

Возьмем, к примеру, Java, так как он по-прежнему очень популярен.
Это отличный язык общего назначения. Он строго типизирован, и это хорошо, и вы можете делать с ним почти все. Так где подвох?

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

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

Как только вы решите, это легко!

Ребята из PluralSight, CodeSchool или любой другой онлайн-школы будут более чем рады предоставить вам материалы для начального и среднего уровня для всех ваших потребностей в обучении, но, в конечном счете, именно практика позволит вам действительно подняться на следующий уровень. На вашем пути обучения вы должны уделять время обучению (в произвольном порядке и только для «серверных языков»):

  1. Обработка файлов
  2. Примитивы параллелизма, такие как потоки
  3. Сеть
  4. Подключение и использование баз данных
  5. Веб-фреймворки

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

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

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

Что дальше?

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

Если вы действительно чувствуете себя комфортно, используя язык, и все это для вас очень просто, рассмотрите возможность изучения интерфейсных языков (HTML, CSS и JavaScript), чтобы стать полноценным разработчиком. Имейте в виду, что это, вероятно, будет похоже на то, что вы начинаете с нуля, но вы будете очень ценным активом в компании, если сможете справиться как с интерфейсом, так и с сервером. технологии.

TL;DR

Станьте профессионалом хотя бы в одном языке. Переходите к другим технологиям только тогда, когда вы знаете достаточно библиотек из своего пояса языков. Не изучайте каждую новую технологию, выбирайте каждую, на которую вы решите потратить свое время. Лучше освоить дополнительные языки, чем освоить только один, а потом пробовать все новое. Помните, что физически и временно вы ограничены лишь несколькими изученными языками.
Не осваивайте язык только потому, что считаете его крутым. Если вы потеряете время на это, вам следует подумать о том, как вы можете извлечь из этого выгоду и заработать деньги на консалтинге или других проектах после освоения этого. Делать это только ради хихиканья — просто огромная трата времени.