От переводчика: Эта статья — перевод оригинальной авторской статьи опытного программиста Сяна Чжу. Чжу предпочитает не держать полученные знания и опыт в себе, а делиться ими с окружающими, чтобы сделать мир (ну или программирование) лучше.
За последние несколько лет программированием стало интересоваться заметно больше людей. Кто-то изучает науку разработки при помощи онлайн-курсов, митапов, кто-то выбирает иные пути. Благодаря этому сервисы вроде 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».
Комментарии (27)
Ilyasyakubov
20.09.2018 13:35Т.е. по вашему в 33 года нужно ложиться в гроб и умирать? :) Мне в декабре стукнет 35 лет и я понял, что не хочу работать в международной логистике, на которую я потратил 11 лет жизни. Не хочу и всё тут! Я прям физическую боль испытываю от перспективы остаться в этой отрасли. Да, менять сферу деятельности в 33-35 лет это большая проблема, но продолжать заниматься нелюбимым делом значит медленно убивать себя.
KorP
20.09.2018 14:2433 года нужно ложиться в гроб и умирать
Ну да, конечно лучше уходить с уже неплохо оплачиваемой работы, в которой у тебя есть опыт и стаж в джуниоры с копеечной з/п, а потом говорить жене и детям «Т.е. по вашему в 33 года нужно ложиться в гроб и умирать?». Смешно.Ilyasyakubov
20.09.2018 14:53-1Нет, лучше стать рабом обстоятельств и тянуть лямку до пенсии (если доживешь). На хорошем месте джуниор получает больше чем начальник отдела в такой себе логистической компании.
KorP
20.09.2018 15:02Ну если вы начальник, с копеечной з/п на уровне джуниора, то видимо и амбиций у вас не очень много, можно и в джуниоры пойти, ну или в дворники, там то же плюсов много — физическая нагрузка, свежий воздух, больше шансов до пенсии дожить становится.
Ilyasyakubov
20.09.2018 15:19Это все, простите, болталогия, про дворников, свежий воздух и копеечные зарплаты. Я говорю про то, что в 35 лет жизнь не заканчивается. Есть конечно области в которых нет смысла начинать в 33 года, хороший пример – спорт высоких достижений. В большинстве же случаев при определенных обстоятельствах можно и нужно менять сферу деятельности и в 33 и даже в 43 года.
KorP
20.09.2018 15:22в 35 лет жизнь не заканчивается
У вас, на этом деле, какой то пунктик, по-моему
при определенных обстоятельствах
Ну так а я про что? Что при хорошей з/п, ипотеке, детях и тд вы джуниором уже никуда не пойдёте, а если у вас в 35 за спиной никого нет, можно и сменить направление деятельности и начать с низов.Ilyasyakubov
20.09.2018 15:26У меня на этом деле никаких особых пунктиков нет. Это просто моя жизненная ситуация. В 23 года судьба бросила меня в логистику, хотя по профессии я связист, а по способностям я ближе к творческой сфере. Сейчас я понимаю, что в кризисе, т.к. в логистике оставаться не хочу, а время потеряно. И да, я не хочу быть программистом. И никогда не хотел. Тяготею к журналистике, есть опыт в блогинге средней степени успешности. Семья есть.
Что касается семьи, детей, ипотеки и прочего — это все относится к области обстоятельств. Поверьте, некоторые люди, даже будучи абсолютно ничем не обременены, будут держаться за нелюбимую работу только потому, что «хорошо платят».KorP
20.09.2018 15:32Тяготею к журналистике, есть опыт в блогинге средней степени успешности.
Тут всё зависит от направления журналистики, в том же IT проблем нет и это можно вообще с работой совмещать в формате того же блоггинга, набивая руку, заводя знакомства и понемногу зарабатывая на этом денег. Правда мне кажется, что там не очень много денег в целомIlyasyakubov
20.09.2018 15:34Я так и делал несколько лет — совмещал. Вы правы, там не очень много денег, особенно это стало заметно после кризиса 2014 года.
DanielKOcean
20.09.2018 15:02Я немного не это имел ввиду. Вообще KorP всё верно описал, но это уж точно не про меня. Я даже готов бы был повкалывать as junior, но в 33 года голова уже чуть хуже варит. Это ощущается. Намного сложнее заставить себя вникать во что-то новое. Я часто ради хобби почитываю про разные технологии в программировании (это ещё в универе началось), вроде даже понимаю, вкуриваю так сказать быстрее многих, я уверен, но потом всё разбивается о применение этих знаний и интерес угасает. В результате я тормознул на пункте 6. А так работа в команде, наверное, мотивировала бы меня. Но это всё равно звучит, как отговорки, ведь правда? :)
Ilyasyakubov
20.09.2018 15:33Про «голова уже чуть хуже варит» — это всё субъективно. В большинстве профессий нет каких-то сверх требований к работе мозга, важны лишь компетенции и опыт.
stanislavkulikov
20.09.2018 17:45+1С женой и детьми конечно сложно. У меня не было жены в 32 года, когда я ушёл в джуниоры из хорошо оплачиваемой отрасли. И сейчас, 4 года спустя, вообще не жалею, что так поступил. Да, пару лет придётся как-то потерпеть, но оставаться на той работе, к которой потерял интерес, категорически нельзя!
rjhdby
21.09.2018 13:37Есть такое понятие, как переоценка ценностей. Мне вот уже за сорок, зарплата сильно выше средней по отрасли, но есть понимание того, что работа превратилась в тягостную обязанность.
Собственно поэтому на полном серьезе ищу варианты переметнуться в разработку, отлично понимая, что просадка по ЗП будет не маленькая. Но жизнь и здоровье дороже. В том числе они дороги и моей семье, так что жена меня полностью поддерживает.
Такие дела.
EvilsInterrupt
20.09.2018 16:57На самом деле вы хотите. Но не так как работали последние годы. Недавно прочел книгу «Никогда-нибудь». Рекомендую. У меня первое просвятление наступило о том, что меня не просто задолбала текущая работа. но и как ее поменять после того как осилил заплыв через Босфор. А эта книга расставила еще больше точек над и. Рекомендую!
Tyusha
20.09.2018 14:16Есть большая разница между умением программировать и умением программировать в коммерческой компании. Моя работа напрямую с программирование не связана, но я много и успешно пишу по необходимости, при этом это довольно большие и сложные проекты. Многие годы изучаю программирование (не как таковое, а новые технологии, фреймфорки и т.п.) самостоятельно.
От того, что я работаю одна, чувствую свою оторванность от ПО-индустрии. Например, я не имею никакого представления о тестировании, о Git, о code review, т.к. мне это не нужно. Мой код никто и никогда кроме меня не видел. Испытываю большую потребность в обсуждении и менторстве, т.к. наверняка изобретаю велосипеды и допускаю ненужные ошибки. Мне сложно соизмерить свой уровень, но я бы оценила себя мидом, если бы не полная несостоятельность в «командных технологиях».KorP
20.09.2018 14:25Испытываю большую потребность в обсуждении и менторстве, т.к. наверняка изобретаю велосипеды и допускаю ненужные ошибки.
Вот и я как раз об этом говорил.
Whuthering
22.09.2018 17:04Это ваш очень большой плюс — что вы это осознаете и понимаете. А очень часто можно встретить ровно обратную ситуацию: многие люди «варятся в собственном соку» и не понимают оторванности от индустрии, а при этом наоборот смотрят на всё другое с издевкой.
KorP
20.09.2018 14:23На мой взгляд есть ещё проблема, если ты изучаешь программирование, но не хочешь делать его основной своей деятельностью, т.е. не идёшь работать куда то в команду разработки.
Ты сел учиться, что то изучил, знаешь как реализовать какую то задачу, но ты не знаешь — на сколько хорошо и оптимально ты можешь решать эту задачи, те ли инструменты ты используешь и тд. Просто так, что то в интернете, даже на профильном форуме не будет читать твой код, что бы указать тебе на твои ошибки или не оптимальные решения.
Хорошо, если ты придумал какой то интересный проект, выложил его на гитхаб, о нём узнали люди и стали приходить в том числе и более опытные разработчики, которые по средством issue или коммитов могут указать тебе на твои ошибки или недочёты, но если у тебя такого проекта нет, или ты решаешь собственные задачи, с которыми не можешь/не хочешь делиться с общественностью — всё плохо.
Да, если у тебя есть $ которые ты готов в это вложить, ты можешь поискать в интернете человека с опытом, нанять его именно для помощи тебе в развитии, а не просто в обучении. Но не все на такое могут пойти и ты в тупике саморазвития.
3aBulon
20.09.2018 14:34что мне делать почти в 40? где взять мотивацию? :) программировал только в школе и краткий период после. платно идти учиться на курсы не желаю, хочу сам. знаю ведь, что могу. Но постоянно отвлекаюсь, дальше хеллоу ворлд не зашел.
Revertis
20.09.2018 15:10Лучше всего делать одну из двух вещей:
1. Делать что-нибудь красивое. Например, какую-нибудь демку, скринсейвер или что-нибудь ещё. Это если вам нравятся игры, работа с графикой и т.п.
2. Решить какую-то ежедневную или частую проблему. Например, если какие-то рутинные действия уже осточертели, и хочется сделать работу за компом удобнее.
AlePil
20.09.2018 16:38что делать в 40?
Читать книги, статьи, пробовать все на практике, пытаться автоматизировать все, что хочется автоматизировать… То есть начать совсем мелкий pet project и пилить его по нарастаюшей. Проект будет прости и усложняться прямопропорционально знаниям.
stanislavkulikov
20.09.2018 17:52хочу сам. знаю ведь, что могу. Но постоянно отвлекаюсь
Это значит не хотите. Тут сама собой напрашивается банальная и пошлая аналогия с желанием сходить в туалет, от этого желания вас ничего не может отвлечь. Если же вы отвлекаетесь, то вы просто что-то хотите поменять, но сами не разобрались что и на что.
Maxmyd
20.09.2018 22:03Дядька Жванецкий сказал: «ПисАть надо так же, как и пИсать — когда уже терпеть не можешь». Когда будет в пальцах зудеть, вот тогда и пойдёт. А сейчас — это просто интерес и желание, потому и не прёт.
DanielKOcean
Пятый — самый важный. Это та причина, почему я не программер. Точнее программер, но в другой области. А джуниором в 33 уже поздно идти.
DanielKOcean
Писал с телефона: 6-й пункт! Учёба ради учёбы — мой удел :(
nefone
а почему джуниором в 33-года поздно?
DanielKOcean
Я объективно пытаюсь оценивать ситуацию. Я могу почти во всём разобраться, имея команду под рукой, а может даже сам. Но концентрация внимания у любого 20-ти летнего парня будет в разы выше, и как кодер он меня порвет. Я не могу тупо в монитор таращиться даже 6 часов в день.