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

Ответов множество и все они правильные, только на практике срабатывают не всегда, не для всех и не совсем так, как хотелось бы. А какая-то доля, на первый взгляд, самых правильных ответов может даже навредить.

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

Тем, кто находится в системе (ученикам, студентам, «мажорам» или тем, кто уже работает в области IT) читать строго не рекомендуется.



Кто же находится вне системы и что ему делать?


Задача решается «методом исключения». Вне системы находится тот, кому не подходят популярные ответы на вопросы: «Как стать программистом?» и «Как найти наставника?».

Ответ первый: «Устройся на работу, а там доучат»


Отличный ответ, если вы профильный выпускник или студент последних курсов с хорошими оценками и живете в большом городе типа Москвы или Киева. У работодателя просто нет выбора: из кого же тогда компания будет выращивать новых сотрудников? А вот если вы закончили не совсем профильный институт и не совсем недавно, да и живете неблизко, то как-то уже работодателю не выгодно из вас нового сотрудника выращивать.

Ответ второй: «Порешай задачки»


Дельный совет, особенно для школьника 5 — 8 класса. Решаешь задачки, побеждаешь в олимпиадах, идешь в институт, опять побеждаешь в олимпиадах и лет через 8 — 10 можно отработать предыдущий сценарий, только с топовыми компаниями и большими стартовыми зарплатами.

Ответ третий: «Придумай себе проект»


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

Ответ четвертый: «Пойти на курсы или нанять репетитора»


Гениально! Наверное, никто, из задающих этот вопрос, не догадался, что можно так сделать.

Еще ответ: «Никто не будет твоим наставником просто так» или «Чтобы стать программистом нужен суперталант»


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

Что-то рассказ начинается затягиваться, пора дать нормальный ответ.

Нормальный ответ:


  1. вначале выбрать язык программирования и технологии, учитывая:
    • наличие хорошего выбора удаленной работы
    • наличие большого открытого сообщества
    • наличие объекта (к примеру, телефон с Android, если хотите научиться программировать под Андроид)

  2. перевести с английского и законспектировать последнюю версию базового справочника по языку разработки (Флэнаган для javascript), чтобы:
    • подучить технический английский
    • проработать основы языка переводя, конспектируя и проверяя примеры в работе

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

  4. найти эталонный исходник, который:
    • сделан признанным мастером в области
    • широкого назначения, широко охватывает возможности вашего языка программирования
    • автор придерживается простого стиля программирования и хорошо поясняет свой код
    • относительно маленький размер исходника ( до 3000 строк)
    • должен быть достаточно популярным, чтобы было легко находить ответы на возникающие вопросы

  5. потом надо этот исходник хорошенько проработать всеми возможными способами, какие только в голову придут, потому что создание подобного кода — это как раз то, к чему вы должны стремиться.
  6. дальше возвращаемся к пункту 3, только на этот раз на полную катушку используем эталонный исходник (как библиотеку, как эталон стиля, как объект копипаста, как набор паттернов и т.д.)


А вот теперь ваших знаний достаточно, чтобы вернуться в систему и воспользоваться популярными ответами, типа: «Попробуй поработай во фрилансе», «Поучаствуй в opensource проектах», «Устройся на работу, там повысишь свой уровень». И так далее.