От переводчика: Эта статья — перевод оригинальной авторской статьи опытного программиста Сяна Чжу. Чжу предпочитает не держать полученные знания и опыт в себе, а делиться ими с окружающими, чтобы сделать мир (ну или программирование) лучше.
За последние несколько лет программированием стало интересоваться заметно больше людей. Кто-то изучает науку разработки при помощи онлайн-курсов, митапов, кто-то выбирает иные пути. Благодаря этому сервисы вроде Codeacafemy, code.org или skillbox.ru становятся популярнее год от года. Может показаться, что обучение в сегодня дается очень просто.
Skillbox рекомендует: Практический годовой курс «PHP-разработчик с нуля до PRO».
Напоминаем: для всех читателей «Хабра» — скидка 10 000 рублей при записи на любой курс Skillbox по промокоду «Хабр».
На самом деле это не так. Вот некоторые проблемы, с которыми сталкиваются все начинающие программисты, которые занимаются самообразованием.
1. Поиск оптимального количества времени для программирования
Скорее всего, помимо программирования у вас в жизни есть и другие занятия. Например, другая — частичная или полная — работа. А может быть, вы не работаете, а живете с родителями и помогаете им. Но в любом случае вы чем-то заняты, как и многие из нас. Так как можно понять, сколько времени нужно уделять обучению самому программированию?
Некоторые люди могут говорить, что если вы действительно хотите научиться, то всегда сможете найти время. В принципе, верно.
Но что, если вопрос поставить иначе: «Сколько часов в день вы посвящаете программированию? Если я могу выделить лишь полчаса в день, этого достаточно?».
Однозначного ответа здесь нет, вы — единственный человек, который можете его дать. Сложно, очень сложно оценить, сколько часов в день вы можете посвятить программированию. Есть люди, которым достаточно 15 минут в день, и все идет прекрасно. Есть и те, кто изучает программирование около девяти-десяти часов в день. Но это вовсе не значит, что столько же времени можете потратить и вы.
Ответ будет таким: выбрать оптимальное время для изучения программирования можно лишь самостоятельно, причем выбрать так, чтобы не выгореть.
Ниже привожу ролик, который создал профессиональный программист, работающий ежедневно. Он пытается объяснить, сколько времени нужно тратить каждый день каждому из нас, чтобы получить хорошие результаты и не «перегореть».
2. Поиск золотой середины между «я еще не достиг нужного прогресса» и «выгорел дотла»
Это действительно сложно. Бывают дни, когда я читаю книгу и не могу ничего понять. Информация просто не попадает в мой мозг. Я настолько сильно выгорел, что не могу ничего делать, поэтому я иду на балкон и вдыхаю свежий воздух полной грудью.
И тогда я напоминаю себе, что перерабатывать — это плохо.
Программирование — нелегкая задача. Она требует от вас концентрации, особенно когда вы изучаете новые вещи. Это тяжело для мозга, так что случаются моменты, когда вы не понимаете ни почему код не работает, ни, тем хуже, почему он вдруг заработал сразу после написания.
Я понял, что наиболее продуктивен, когда концентрируюсь на проблеме, которую необходимо решить — причем в то же время я расслаблен и наслаждаюсь процессом.
В этом состоянии я могу:
- Найти проблему, которую нужно решить, самостоятельно или при помощи интернета.
- Опробовать несколько способов решения проблемы, пока все не начнет работать.
- Решить все проблемы одним махом.
Я выработал для себя правило, которое использую во время работы, его я называю «50/50».
Оно заключается в том, что 50% времени я трачу на решение сложных задач, изучаю базовые элементы программирования, концепты, алгоритмы. Остальные 50% я работаю над собственными проблемами, которые действительно мне интересны.
Главное — любить то, чем вы занимаетесь. Это приводит нас к следующему пункту.
3. Любовь к своему делу помогает решить все проблемы
Да, это может звучать шаблонно, но это правда. Если вас ведет вперед любовь к своему делу, то рано или поздно вы достигнете успеха и признания окружающих (причем неважно, нужно оно вам или нет).
Это «высокое чувство» к своей работе нельзя одолжить, заменить или скопировать.
4. Программируйте тогда, когда вы выполнили все другие свои важные обязанности
Реальность в том, что если вы занимаетесь самообучением, то далеко не всегда получится полностью погрузиться в программирование.
В жизни есть и другие обязанности, которые следует выполнять. У вас наверняка есть семья — жена, муж, родители, дети. Вы должны заботиться о своей семье, кроме того, вам нужно работать (не забываем, что речь идет о самообучении). Возможно, вы — студент, который сейчас должен заниматься своим дипломом, а не читать эту статью.
Нужно ли откладывать все прочее, когда вы программируете?
Нет, правда в том, что не нужно. Лучше выполнить все другие важные задачи, а затем приступать к программированию. Лично у меня наиболее долгим перерывом были два месяца.
Но после того, как они завершились, я сразу же приступил к изучению программирования и самому написанию кода. Правда, я обнаружил, что забыл много важных вещей, которые выучил ранее. Это здорово расстраивает, когда вы взяли в руки книгу и не можете продолжить чтение с того места, где его завершили. Просто потому, что не понимаете и не помните, о чем идет речь.
Расслабьтесь, скажите себе: «Ну хорошо, сейчас дела идут не очень, я не слишком продуктивен, но завтра все будет лучше».
Можете выразить свое разочарование в Twitter или на форуме программистов, но затем вновь возвращайтесь к изучению и работе.
5. Мотивируйте себя любым способом
Самообучение вовсе не похоже на учебу в школе. Когда вы изучаете программирование, вокруг никого нет — ни одноклассников, ни преподавателей, ни почетного выпуска, что может казаться светом в конце тоннеля. Все, что вы делаете, вы делаете сами и для себя.
Поэтому необходима мотивация на протяжении всего пути вперед.
Я всегда проверяю этот сабреддит, где много разработчиков. Все они используют крутое оборудование для разработки софта. Для меня нет ничего более вдохновляющего.
Награждайте себя за хорошую работу, сделайте это привычкой. Это может быть что-то малое или большое. Например, душ в конце дня или холодный напиток. Говорите себе, что вы делаете классную работу, ведь это важно — обучаться программированию. Если вам нравится крутое железо, то повесьте это фото на стене и верьте, что в конце обучения вы станете человеком, который сидит вот за таким рабочим столом (в том случае, конечно, если это рабочее место вам нравится).
6. Не превращайте учебный процесс в учебу ради учебы. Ходите на интервью, митапы, старайтесь получить работу
В процессе обучения может наступить момент, когда вы, получив определенный багаж знаний, захотите просто продолжать обучение. Некоторые из нас не хотят начать новый этап в своей жизни и пробовать найти работу программиста.
Не обманывайте себя фразами «Пока я еще не готов. Я подумаю о работе позже».
Очень редко кто-то из нас бывает по-настоящему готов. Для того, чтобы поиск работы был более простым, ведите pet-проекты, нарабатывайте портфолио. И тогда на очередном интервью вы сможете показать, что умеете.
В конце статьи я хотел бы пожелать всем счастливого нового кода. Наслаждайтесь тем, что вы строите, безразлично, будет это личный проект или ваше будущее как разработчика.
Skillbox рекомендует:
- Онлайн-курс «Python-разработчик с нуля».
- Образовательный онлайн-курс «Профессия веб-разработчик»
- Практический курс «Мобильный разработчик PRO».