Что я узнал (и не узнал) на учебном курсе по программированию

Отражение, год спустя

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

Честно говоря, я не особо задумывался над программой или результатами обучения. Я думал об этом на макроуровне: я уже знаю X, и, согласно Интернету, мне просто нужно выучить Y, и тогда у меня все будет готово.

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

Я многому научился, но именно то, чего я не узнал, двигало меня вперед.

Я изучил JavaScript и Ruby. По крайней мере, синтаксис.

Из-за того, что учебные курсы по программированию обычно структурированы (около 3 месяцев интенсивного изучения JS, а иногда и Ruby на основе проектов), я довольно хорошо изучил синтаксис этих языков. Я смог выполнить обязательные проекты с назначенными технологиями. Я построил приемлемое портфолио младшего уровня.

Но…

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

Я использовал JavaScript для извлечения информации из API, потому что мне это сказали. Я использовал document.getElementById, потому что это был синтаксис, которому меня учили. Я использовал SASS, потому что это было требованием проекта, хотя CSS был минимальным и не требовал SASS.

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

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

Я научился пользоваться терминалом.

С первого дня мы сделали все, что могли, из терминала. Создайте папку. Создайте файл. Перейдите к файлу. Делайте коммиты в git.

Но…

Я не узнал, что я на самом деле делал, когда запускал определенные команды в терминале.

Если что-то не сработало - попробуйте sudo это! Почему? Так как!

Ой, мы столкнулись с проблемой? Stack Overflow сказал запустить эту команду в терминале. Не знаю, что именно оно делало, но сработало!

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

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

Я научился отлаживать.

Откройте консоль. О, смотри. Ошибка находится в строке 36. Ага. Я действительно забыл эту закрывающую скобку. Виноват. Починил это.

Но…

Я ДЕЙСТВИТЕЛЬНО не научился отлаживать.

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

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

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

Только после того, как я осознал то, чего не знал, я смог понять, как развить то, что я действительно знал.

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

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

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

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

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

В настоящий момент я прохожу курс по Google Cloud, заново изучаю SQL и BigQuery, работаю с JSON и документирую сложные серверные системы. Я веду нашу техническую публикацию и пишу внутреннюю и внешнюю документацию для нескольких команд.

Я не жалею о том, что посетил буткемп.

Фактически, я рекомендую его многим людям, в зависимости от того, как они учатся и чего надеются достичь.

Если бы я не изучал JS и Ruby, я бы ничего не понимал при чтении кода на работе. Если бы я не столкнулся с JSON во время одного из проектов, над которым работал на буткемпе, я бы не смог написать о нем документацию. Если бы я не выучил мерзавца, я бы отстал на несколько световых лет. И если бы я не научился ориентироваться в терминале, я был бы беспомощен в профессиональной среде.

Для меня учебный курс по программированию был частью головоломки, но не единственной. То, что я узнал на буткемпе, помогло мне понять, чего я не знал. Моё собственное желание расти помогло мне заполнить пробелы.