Четыре ошибки новичков в программировании

Всем привет! Меня зовут Андрей, я фронтенд-разработчик в RAMBLER&Co, ранее в Иннове. Программированием я занимаюсь около года, до этого около двух лет занимался HTML-вёрсткой. Расскажу о том, какие ошибки я совершил за эти три года, чтобы вы (если вы новичок) их не повторяли.

Ошибка №1: изучение основ языка вместо основ программирования

Свой путь в веб-разработке я начинал с книги по HTML/CSS, которую мне дал почитать знакомый программист. В конце книги был дополнительный раздел с основами языка JavaScript. Разумеется, я начал его читать и ничего не понял. Помню как увидел пример простого цикла for (var i = 0; i < 10; i++) и долго недоумевал, как это вообще работает. В итоге у меня сложилось неправильное впечатление о языке: я решил, что JS ужасный язык и его нельзя изучать.

Впоследствии я пробовал PHP, Python и даже С#, разобрался с циклами и другими базовыми вещами, но плохое впечатление от JS так и осталось, пока я не решил снова попробовать его изучить.

Не следует начинать с изучения конкретного языка. В первую очередь нужно изучить базовые вещи вроде переменных, условий и циклов. Хекслет в этом плане молодцы, в курсе «Основы программирования» как раз объясняются все необходимые базовые концепции, причём кроме условий, циклов и прочих подобных вещей в курсе рассказывается о модульном тестировании, чистых функциях и отладке, что меня приятно удивило. Я изучал основы самостоятельно и о тестировании или чистых функциях узнал примерно спустя год после начала обучения, а на Хекслете эти темы даются в первом же курсе.

Ошибка №2: неправильные ожидания от ВУЗа

Закончив школу, я, как и подавляющее большинство сверстников, поступил в местный (омский) ВУЗ. Специальность называлась «Математическое обеспечение и администрирование информационных систем». Почему я выбрал её? Я прочёл на Хабре статью о том, какие специальности лучше всего подходят для обучения программированию, и МОиАИС была в этой статье на первом месте.

Спустя три месяца обучения я перестал ходить на занятия. Я шёл в ВУЗ с мыслью о том, что меня там научат промышленному программированию. Увы, занятия по программированию вела далёкая от мира разработки преподавательница, а математика занимала большую часть программы (это не плохо, просто у меня со школы неприязнь к математике).

После опроса своих знакомых я понял, что в ВУЗ стоит идти за фундаментальными знаниями вроде математики. Промышленному программированию ВУЗы не научат, потому что ВУЗовские программы просто не могут успевать за столь бурным развитием технологий. Поступайте в ВУЗ только если вы чётко понимаете, что вы хотите получить от него и что он вам действительно может дать это.

Ошибка №3: распыление вместо концентрации

«О, дайджест последних новостей… ого, туториал по вёрстке табов на css! А тут ещё и статья о реакте для новичков… А здесь пишут, что нужно использовать ангуляр вместо реакта…» — и у вас уже открыто 50 вкладок в браузере и вы лихорадочно читаете всё, что попадётся. А потом обнаруживаете, что уже час ночи и в общем-то надо бы пойти спать, но в очередь на чтение ещё 20 статей… Наверняка многие из вас сталкивались с такой ситуацией.

Проблема в том, что распыляясь на кучу разных тем, вы получаете мало профита. Намного эффективнее не пытаться охватить всё и сразу, а ставить какие-то небольшие цели и добиваться их. Например, вместо того, чтобы следующим вечером снова пытаться прочесть и запомнить 20 статей на разные темы, поставьте себе цель «разобраться с принципами работы промисов» и прочитайте те же 20 статей, но о промисах. Так вы гарантированно разберётесь в теме и не потратите время зря.

Ошибка №4: знания языков и фреймворков недостаточно

Когда я освоил вёрстку на достаточно хорошем уровне, я решил двигаться дальше — во фронтенд и программирование. «Изучу JavaScript и какой-нибудь фреймворк — и дело в шляпе, буду крутым программистом». Сейчас я пишу приложения на JS, Реакте и Редаксе, но этого недостаточно для «крутого программиста».

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

Андрей Романов

Originally published at ru.hexlet.io.

Show your support

Clapping shows how much you appreciated Hexlet.io’s story.