Как не попасть в учебное чистилище, если ты начинающий разработчик – или на любой ступеньке твоей карьеры | SHIFU.IO
Переводы
Как не попасть в учебное чистилище, если ты начинающий разработчик – или на любой ступеньке твоей карьеры
Перевод 09.06.2018
Новый перевод статьи о том, почему не стоит бояться применять новые знания на практике.

Источник: Tony Mastrorio


Долгое время я откладывал запуск своих собственных проектов из-за того, что совсем не понимал, как это сделать.

У каждого проекта, который я обдумывал, был определённый функционал, который я совершенно не знал, как строить. Я всегда спрашивал себя, как я могу приступить к работе над чем-то, когда я не знаю и половины того, что нужно, чтобы довести дело до конца. Я был убежден, что мне нужно больше узнать, прежде чем я смогу построить что-нибудь свое.

Добро пожаловать в учебное чистилище

Итак, вместо того, чтобы создавать собственные проекты, я застрял в так называемом «учебном чистилище». Как только я понял, что таким образом я обучаюсь лучше, я начал читать и смотреть любые уроки, которые мог найти, и которые казались мне интересными; основы которых я мог бы применить однажды в своих собственных проектах. Я делал это месяцами, заполняя ночи бесконечными видео на YouTube, Udemy и с других сайтов, на которые я натыкался. Я многому научился, но в то же время многое забыл в процессе обучения.

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

Например, когда я начинал, я купил и смотрел The Web Developer Bootcamp (ПЕРВЕСТИ) на Udemy, состоящий из 43 часов видео и охватывающих такие темы, как HTML, CSS, Bootstrap, JavaScript и jQuery. Я думал, что курс отличный, но когда я закончил, я все еще не был готов строить собственные проекты.

Вместо этого я вернулся и купил The Complete Web Developer Course 2.0. Я смотрел еще 30 часов видео, охватывающих многие из тех же тем, что и первый курс!

Почему я совершил эту ошибку? Честно говоря, я думаю, причина в том, что пособия казались обнадёживающими. Благодаря обучающим курсам, у вас появляется кто-то, кто вам говорит, что именно нужно делать. И вы чувствуете, что учитесь очень многому и становитесь невероятно продуктивным.

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

Нет инструкций – нет проблем

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

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

Проект казался амбициозным, но мне было все равно. Я хотел построить что-то, что бросит мне вызов. И так как я недавно начал изучать Ruby on Rails и это мне действительно нравилось, я решил использовать Rails в качестве основы для моего стороннего проекта.

Я не понимал, как делаются многие вещи, когда я начал тот первый проект (я и сейчас не знаю некоторые вещи, когда начинаю новые проекты). Я не знал, как создать систему авторизации, как разбить на страницы или использовать AJAX в приложении Rails. Я не знал, как использовать рекурсию для реализации системы комментариев. На самом деле, я даже не знал, что такое рекурсия!

Начинайте с того, что знаете

Но это не имело значения. Я не думал о тех вещах, которые не знал, как сделать. Вместо этого я начал с того, что знал, и остальное я понял на пути.

Google стал моим лучшим другом. Он привёл меня к таким важным вещам как Devise и oAuth Rails, которые я бы объединил для создания моей системы авторизации. Devise позволил бы моим пользователям создавать новые учетные записи и логины, а oAuth предоставил бы им возможность входа в систему с использованием существующих учетных записей Google или Facebook.

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

Когда я застревал на чем-то, я открывал вопросы и ответы в Stack Overflow и искал статьи и обучающие курсы, чтобы довести проект до конца. Я все ещё использую обучающие программы, но теперь только для изучения того, что я тут же буду применять к проекту.

Просить о помощи нормально

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

Хотя ни один из ответов не решил мою проблему самостоятельно, они давали тонкие намёки и помогали мне продолжить работу до тех пор, пока я не найду решение. Я узнал, что Stack Overflow не так страшен, как кажется, и помогает время от времени.

Мой код из первого проекта был не очень хорош. Он не соответствовал принципу DRY (прим. ред. - don’t repeat yourself — принцип в программировании, цель которого заключается в снижении повторения различной информации). Он требовал некоторого рефакторинга, и, вероятно, есть намного более эффективные способы, как можно было бы сделать некоторые вещи. В этом проекте также есть что-то, что я даже не понял. Но это не имеет значения. Я построил что-то нетривиальное, что действительно сработало, и я сделал это без инструкций.

Работая над этим проектом, я узнал больше, чем я узнал в предыдущем году, потраченном на курсы. Самое главное, я научился навыкам, которые мне действительно нужны, чтобы стать успешным разработчиком. Я научился решать проблему и взламывать код одновременно, и я насладился этим восхитительным удовлетворением того, что я отправил то, что я поставил на рельсы то, что сам построил впервые. Не имело значения, что у приложения не было ни одного пользователя, или что дизайн был не таким уж классным. Просто сам акт создания чего-то собственного был трансформационным.

Вы никогда не будете знать, как делать всё (никто не знает), и вам всегда нужно будет искать вещи в Интернете ( так делают все). Пусть это не мешает вам просто погружаться и создавать.

Перевод 09.06.2018