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