Карьера в IT. Как найти работу, прокачать навыки и стать крутым разработчиком
Шрифт:
Конкретный пример
Я считаю, что рассмотрение реального примера – весьма полезная методика. Поэтому давайте рассмотрим следующую вполне конкретную ситуацию, в которой человек планирует стать веб-разработчиком на Node.js.
Цель. Стать разработчиком Node.js
План
Обучение
? Выучить основы JavaScript
? Понять, как работают веб-страницы и какие существуют технологии веб-разработки (например, HTML и CSS)
? Выучить основы Node.js
? Научиться
? Узнать о различных фреймворках и технологиях, которыми пользуются разработчики Node.js
? Дополнить свои знания о Node.js
? Узнать о технологиях баз данных, используемых вместе с Node.js
? Разобраться с базовыми понятиями компьютерных наук:
? Алгоритмы
? Структуры данных
? Узнать о лучших практиках написания хорошего кода
? Узнать, как разрабатывать архитектуру приложений на Node.js
? Подготовиться к поиску работы
? Прочитать описания вакансий разработчиков на Node.js и узнать требования работодателей
? Составить список компаний, где вы хотели бы работать
? Начать посещение тематических встреч в вашем городе (клуб по интересам)
? Начать общаться с программистами, которые разрабатывают на Node.js
? Нанять специалиста по созданию резюме
? Проанализировать вопросы, которые задают на собеседованиях
? Попробовать пройти собеседование (сымитировать)
? Создать портфолио из нескольких приложений
Получение работы
? Связаться с компаниями и известить их о своих навыках и поиске работы
? Принять участие в стажировке или подать заявки на замещение должности джуниор-разработчика
? Подавать заявки как минимум на две вакансии в день
? Подвести итоги после собеседования, чтобы понять, над какими навыками нужно еще поработать.
Поначалу ваш план будет далек от идеала, но по мере проработки он будет становиться все более полным.
Лучше плохой план, чем никакой. План всегда можно изменить, но, если его нет, вам придется тяжело. Вы будете хвататься то за одно, то за другое, в результате вас постигнет разочарование и вы наверняка захотите все бросить.
В следующей главе я помогу вам составить хороший план, и мы обсудим технические навыки, необходимые для становления разработчиком ПО.
Глава 3. Необходимые технические навыки
Я убежден, что каждый программист должен развивать не только технические, но и так называемые гибкие навыки. Я даже написал об этом целую книгу: «Путь программиста. Человек эпохи IT». Тем не менее нельзя недооценивать важность технических навыков.
Сказанное выше означает, что если вы не умеете писать код, то даже самые развитые гибкие навыки не помогут вам добиться успеха на поприще программиста. Стать толковым менеджером или бизнес-тренером вы сможете, а разработчиком – вряд ли.
Однако если вы уже добрались до этой главы, я вправе сделать вывод, что вы заинтересованы стать именно программистом (или даже лучшим программистом), поэтому давайте перейдем к обсуждению непосредственно технических навыков, которые вам потребуется освоить.
Навыки, за которые платят
Эта тема будоражит многих начинающих разработчиков. В начале пути кажется, что нужно знать так много всего, что совершенно непонятно, за что браться в первую очередь. Именно для того, чтобы избавить вас от этого дискомфорта, я и написал эту книгу. Я расскажу вам о наиболее важных навыках, которые принесут вам наибольшую выгоду в карьере разработчика.
Хочу сразу предупредить, что приведенный далее список технических навыков, которые вам понадобятся как программисту, не является исчерпывающим. Однако я постарался привести наиболее важные из них. В части «Все, что нужно знать о разработке ПО» я подробно разберу каждый из представленных здесь навыков.
Довольно слов! Давайте перейдем к делу и кратко ознакомимся с перечнем технических навыков, которые я считаю наиболее важными.
Всего один язык программирования
Думаю, этот вопрос точно является наиболее животрепещущим, не так ли? Нельзя быть программистом, не зная ни одного языка программирования, – понимаете, о чем я? О выборе конкретного языка мы поговорим в главе «Как выбрать язык программирования», так что пока не заморачивайтесь этим вопросом. Единственное, что я хочу сейчас сказать, – выбор языка программирования не настолько важен, как вам сейчас кажется.
Вместо этого давайте поговорим о том, почему лучше учить один конкретный язык, чем хвататься по чуть-чуть за все сразу. Многие начинающие программисты зачастую склонны идти именно вторым путем, чтобы увеличить свои шансы быть востребованными на рынке труда. Разумеется, мои слова не означают, что нужно всю жизнь пользоваться лишь одним каким-то языком. Совсем нет, наоборот, но на начальных этапах большое количество языков программирования лишь запутает вас и помешает вам уделить достаточно внимания многим другим техническим навыкам, не менее важным.
Вместо этого я бы посоветовал сосредоточиться на изучении одного конкретного языка и его тонкостей, чтобы со временем вы могли уверенно читать и писать код на нем. Помните, я говорил о важности выбора области ПО, разработчиком которого вы хотите стать? Так вот, к выбору языка программирования применима та же самая логика.
Как структурировать код
После (а лучше в процессе) изучения языка программирования очень важно научиться правильно структурировать код. Выше я уже упоминал об одном отличном ресурсе, который поможет вам овладеть этим навыком: книга Стива Макконнелла «Совершенный код. Практическое руководство по разработке программного обеспечения».