«Белая книга на коричневом деревянном столе», фото Alexander Michl на Unsplash
В последние годы многие загорелись желанием освоить программирование. Кто-то делает это с помощью онлайн-курсов, кто-то ходит на семинары, а кто-то просто учится методом проб и ошибок.
Такие веб-сайты, как Code.org, Codecademy и freeCodeCamp набирают все большую популярность, а в сети появилось огромное количество курсов, в том числе и на YouTube.
Однако программирование — это не так просто. Есть определенные трудности, с которыми все мы сталкиваемся, когда учимся писать код.
1. Сколько времени нужно уделять программированию каждый день
Если вы учитесь писать код самостоятельно, скорее всего, в вашей жизни есть и прочие обязанности. Одни работают на полставки или целый день, другие сидят дома с детьми. Так или иначе, у всех свои заботы.
Как же при этом ежедневно находить время на программирование?
Кто-то скажет: «Было бы желание, а время найдется». Все верно, спорить не буду. Но возникает другой вопрос: сколько именно нужно уделять программированию каждый день? Если мой максимум — полчаса, это считается?
Ответить можете только вы сами. Очень сложно определить время, необходимое для обучения. Некоторые полагают, что лучше меньше, но качественнее и 15 минут вполне достаточно.
С другой стороны, я слышал о людях, которые получили работу в сфере девелопмента примерно через год после начала обучения, потому что писали код по 9–10 часов в день. Если вам нужна мотивация, можете взглянуть на этот тред.
Итак, все сводится к одному: только вы сами знаете, сколько часов в день сможете заниматься программированием так, чтобы это вошло в привычку, но не выматывало. Последнее особенно важно. Основатель freeCodeCamp Квинси Ларсон однажды сказал в своем твите:
«Дело не в том, насколько вы продвигаетесь за один день, а в том, что вы продвигаетесь ежедневно».В видеоролике ниже ведущий программист, не один десяток лет проработавший в сфере информационных технологий, расскажет, сколько времени ежедневно занимает написание кода у разработчиков.
Конечно, это не универсальный рецепт, но вы получите общее представление о том, как подойти к планированию времени на изучение с умом и, что немаловажно, без фанатизма.
2. Как найти золотую середину между «почти не сдвинулся с места» и «сгорел на работе»
Лично я с этим намучился. Бывало, я не мог понять ни единого кусочка кода, ни единой идеи из книги, которую читал, — мой мозг отказывался усваивать информацию. Я выматывался так, что выходил на балкон подышать и успокоиться.
С того момента я стал напоминать себе, что не стоит истощаться и доходить до точки невозврата.
Программирование не самая простая работа. Оно требует концентрации, особенно когда изучаешь что-то новое. Это тяжелый умственный труд: иногда ты даже не понимаешь, почему твой код не работает или, наоборот, почему заработал.
Я осознал, что наибольшей продуктивности мне удавалось достичь, фокусируясь на текущей работе, но при этом не напрягаясь, а наслаждаясь процессом.
Это происходило, когда я:
- находил проблему, которая требовала решения;
- находил решение на форумах в сети;
- пробовал выйти из затруднения несколькими способами, проверяя, какой из них сработает;
- решал проблему.
Стараясь примириться с тем, что большая часть материала — это скучная запутанная информация (структуры данных, алгоритмы и т. п.), я установил правило 50/50, которым пользуюсь при самообучении.
Я трачу 50% времени на сложные задачи — изучение основ, концептов, алгоритмов и прочего. Остальные 50% остаются на мои собственные проекты, которыми я занимаюсь с удовольствием. Так я добиваюсь гармонии в своем ежедневном расписании.
Проще говоря, нужно любить то, что делаешь. И этот вывод позволяет нам плавно перейти к следующему пункту.
3. Единственный способ преодолеть препятствия — любить свою работу
Банально, но верно. Если вам по душе выбранный путь, если нравится ваша работа и направление, в котором вы двигаетесь, — одобрение окружающих не нужно. Чувство удовлетворенности такого рода невозможно взять взаймы, заменить или, того хуже, симулировать.
4. Всегда возвращайтесь к программированию, когда заканчиваете с другими делами
Реальность самообучения такова: вас никак не могут оставить в покое, наедине с вашими справочниками.
В жизни у всех нас немало других обязанностей. Возможно, вы чей-то супруг или родитель и вам нужно заботиться о своей семье. Может быть, у вас постоянная работа или вы студент, который пишет диплом или получает ученую степень. Когда есть столько дел, как найти время на программирование?
Честно говоря, иногда это попросту невозможно. Случалось, что я подолгу не занимался написанием кода — однажды даже целых два месяца.
Впрочем, после этого перерыва я немедленно вернулся к программированию и тут же понял, что многое забыл. Очень неприятно, открывая книгу, не знать, с какого момента продолжить обучение. Господи, неужели мне придется перечитывать все главы и делать все задания заново?
Это тот самый момент, когда нужно продержаться, выстоять. Необходимо сказать себе: «Так, первый час обучения, кажется, идет медленно и совершенно непродуктивно. Но ничего страшного, я наверстаю упущенное, выучив больше завтра».
Эту пилюлю не подсластить никак иначе — только продолжая работу, несмотря ни на что. Зайдите на форум кодеров в твиттере и пожалуйтесь, но после этого непременно возвращайтесь к программированию.
5. Мотивируйте себя любым способом
Самообучение сильно отличается от занятий в университете или в школе. Пока вы работаете над кодом, вокруг вас нет ни одноклассников, ни общения, а в конце туннеля не ждет пафосная церемонии вручения дипломов. Почти всегда вы предоставлены себе и делаете все самостоятельно. Именно поэтому так важно найти мотивацию, чтобы продолжать двигаться вперед.
Я часто читаю этот подфорум на reddit, так как многие его пользователи — разработчики. При создании софта они все используют самое мощное железо. Что может быть лучшей наградой для программиста?
Вы тоже заведите привычку вознаграждать себя. Это может быть большое или маленькое поощрение — горячий душ в конце дня, прохладительный напиток, похвала самому себе (часто в процессе обучения это необходимо). Повесьте на стену перед собой такое фото. Нужно верить, что однажды ваше рабочее место будет выглядеть так.
6. Не поддавайтесь искушению учиться ради учебы — ходите на собеседования и встречи, рассылайте резюме
Иногда в процессе обучения можно отклониться от намеченного курса. Мне знакомо желание полениться. Но не в том смысле, что не хочется учиться, а в том, что появляется тайная надежда, просиживая дни за монитором, избежать реального испытания — работы в качестве девелопера.
Не поддавайтесь искушению рассуждать: «Я ведь учусь — этого достаточно. Я задумаюсь о поиске работы потом, когда буду готов».
Откровенно говоря, мне самому не мешало бы чаще искать потенциальных клиентов. Даже если речь о бесплатной разработке веб-сайта для родственников и друзей. В таком случае в следующий раз, когда я приду на собеседование, у меня будет материал, который добавит веса резюме. Первый шаг — самый трудный, но его необходимо сделать во что бы то ни стало.
Все перечисленные преграды вырастут на вашем пути к карьере девелопера. Встречайте их с правильным настроем: они сделают вас только сильнее и лучше.
И наконец, приятного программирования! Наслаждайтесь тем, что создаете, — будь то ваш проект или ваше будущее.
Комментарии (13)
nikkbelov
21.09.2018 17:01+2Пытаюсь освоить профессию программиста. Но по собственному опыту скажу, главная проблема отсутствие практики и применимости.
Ну прошел я курс по Javascript, что на выходе? Появилось понимание структуры кода и все, без практики и применения, это как знать кучу слов на иностранном, но не мочь их сложить в предложения.
Да я могу сделать сайт, сложив его из кубиков, но уже потихоньку выходит и создавать самим, CSS стал понятнее, но все лишь благодаря тому, что есть применимость.
Пойти куда-то разработчиком, увы уже не мой вариант, в 40 лет на тебя смотрят, мягко говоря пренебрежительно.
Вот и приходится читать, изучать пробовать, но без реальных задач, толку мало. А рынок труда у нас в городе (Донецк), мёртв в области IТ…
Пытаюсь изучить стек CSS+PHP+Javascript. Да делаю сайты, но понимаю, что знаний и опыта все равно очень мало.Hardcoin
21.09.2018 17:30А зачем куда-то идти? На апворке возраст имеет в 10 раз меньше значения, чем в офисе.
Neikist
21.09.2018 17:39+1Новичку? На фриланс? Это конечно не сильно хуже чем средне-паршивая работа в офисе, но ни в какое сравнение не пойдет с работой в хорошей команде (в офисе или удаленно). Тем более джуну (код ревью, работа в команде, работа с задачами, расстановка приоритетов, архитектура). А вот состоявшемуся специалисту уже наверное и можно было бы.
Hardcoin
21.09.2018 17:43ни в какое сравнение не пойдет с работой в хорошей команде в офисе
В Донецке. Вы это учитывайте. А насчёт удаленной работы в команде ничего против не имею, апворк это как пример. Речь о том, что бы работать не на донецких заказчиков, а на иностранных.
Neikist
21.09.2018 17:46Разве что совсем недолго а потом все равно в команде работу искать (возможно с переездом).
Tyiler
21.09.2018 18:43+1посмотрел я на вас. вы пишете — «5 патентов на изобретения». так понимаю вы инженер?
ну дык… зачем вам сдался этот «CSS+PHP+Javascript»?
берите книги(курсы) и учите промышленные языки — С, С++, или с Java/С# можете начать.
дальше, берете заброшенный проект на гитхабе и начинаете его поднимать. если сможете поднять хотя бы один — уже будет что написать в резюме. все.BigFlask
22.09.2018 04:31Если под боком нет кучи контор, куда можно пойти работать за бесплатно (с целью получить ментора), то промышленные языки — не лучший выбор.
nikkbelov
24.09.2018 14:16Опыт был. Писал программы для контроллера (там свой собственный бейсикоподобный язык) и писал программы для GalileoSky GPS навигатора, там тоже свой Си подобный язык. Разбирался сам, но как ниже отмечено в Донецке нет мест где можно получить в этом опыт…
OtshelnikFm
21.09.2018 17:11+2Нужно верить, что однажды ваше рабочее место будет выглядеть так.
Мой перфекто посмотрел под стол и съёжился…
mphys
21.09.2018 22:19Из всего написанного самое продуктивное имхо это правило 50/50, везде его использую, оно хорошо работает и на основной работе, и в самых разных хобби которыми я занимаюсь и когда либо занимался (да, хобби иногда тоже требует долгой изнурительной тренировки или обучения для того чтобы оно начало приносить удовольствие)
Neikist
Странно, казалось на днях уже перевод проскакивал, но поиск ничего не выдал…
inkvizitor68sl
На lifehacker вроде было.
Neikist
Не, именно на хабре, я другие сайты редко читаю.
О, нашел.
habr.com/company/skillbox/blog/423857