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

0
336
views

Перевод статьи «Mistakes I Made When Learning to Code – and How to Avoid Them».

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

По сути я просто пытался повторять действия инструктора.

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

Но даже при этом я допускал ошибки.

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

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

С тех пор много воды утекло, и мой тяжелый учебный труд окупился. Но я по-прежнему думаю: не мог ли я учиться более эффективно?

Как учиться эффективно

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

Недостаток концентрации

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

Вообще я начал учиться программированию из-за того, что работал в стартапе и нам нужен был веб-разработчик. Стратегия аутсорсинга потерпела неудачу, так что для вывода продукта на рынок кто-то из нас должен был учиться.

Я собирался помогать нашим зарубежным разработчикам, поэтому начал учить язык, на котором они писали нашу платформу. Это был PHP.

Впоследствии мы трижды сменили разработчиков. И языки программирования тоже. В результате я немножко поучил PHP, немножко — Python, немножко — Ruby.

Это было ошибкой.

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

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

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

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

Бесконечное прохождение туториалов

Туториалы — отличная вещь. Честно говоря, я уже и сосчитать не могу, сколько я их прошел. Когда вы смотрите видеоуроки и создаете что-то настоящее, рабочее, это очень воодушевляет. Кроме того, когда вы смотрите видео, в котором инструктор знает, что делает, у вас возникает ощущение, что вы тоже это знаете.

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

Просмотр туториалов ведь чем плох? Всю тяжелую работу по обдумыванию уже проделал инструктор. А если это сделал он, вы это уже делать не будете.

Поэтому пользы от видеоуроков мне было мало. Я думал, что учусь, но это был самообман.

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

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

Я знаю, это тяжело. Даже сейчас, когда я чувствую, что у меня нет сил, я просто включаю видеоурок. Я все еще думаю, что просмотр видео лучше, чем ничего. В принципе, так оно и есть, конечно.

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

Одним из лучших моих решений в процессе учебы было решение заняться проектами на freeCodeCamp. Вам предлагается проект, но никто не будет вести вас за руку. Разбираться, как все реализовать, нужно самостоятельно.

И знаете, что? Вот это как раз и есть обычная работа разработчика. Именно это мы проживаем каждый божий день. Нам дают какую-то задачу, и поначалу у нас может не быть ни единой зацепки, как ее решать. А затем мы применяем все имеющиеся у нас навыки и инструменты, чтобы все-таки найти решение.

Быть разработчиком не значит иметь ответы на все вопросы. Это значит уметь находить эти ответы.

Но если вы будете только смотреть видеоуроки, вы этому не научитесь.

Практика. Практика. Практика.

Не полагайтесь на абстракции

Быть разработчиком в 2020 году сложно. Технологии развиваются стремительно, постоянно что-то совершенствуется. Одна из концепций, позволяющих нам быстро двигаться вперед, это абстракции.

Абстракции — отличная штука. Кто-то взял нечто сложное и упростил, абстрагировав сложные части.

Это похоже на кухонную плиту. Все, что вам нужно знать о ее работе, это то, что она включается нажатием кнопки, а после этого происходит нагревание. Для приготовления ужина вам больше ничего о плите знать не нужно.

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

К сожалению, это палка о двух концах.

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

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

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

Но я советую вам проявлять любопытство.

Не останавливайтесь на работе с фреймворками вроде React. Попробуйте создать одностраничное приложение на «ванильном» JavaScript.

Не останавливайтесь на применении Express. Попытайтесь построить собственный веб-сервер при помощи Nodejs и TCP. Изучите HTTP.

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

Заключение

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