В программирование все приходят по-разному. Кто-то увлекся им в школьные годы на первых уроках информатики, кто-то начал писать «лабораторки» в университете, ну а кто-то начал учиться с целью поменять профессию. Тем не менее, большинство «джунов» сходится во мнении, что начинать — очень сложно. Предлагаем вашему вниманию адаптацию статьи журналиста Роджера Коллье (Roger Collier) о том, как он учился программировать ради преодоления сложностей. Он оценивает свой уровень как любительский.
Время позднее, далеко за полночь. Жена и дети давно спят, а вот в мои планы сон пока не входит. Всё-таки я её допишу... Я в миллионный раз отладил код и запустил его на исполнение. Хмм... Выглядит многообещающе. Если я нажму воот сюда, программа должна вызвать функцию «вычислить следующий шаг». Так… И если нажать сюда, функция должна вызвать саму себя. Отлично. Теперь, если я нажму сюда, я должен получить... эээ… явно не это. Эх... Ещё больше отладок, больше багов, а время утекает в трубу вместе с энергией… Знакомая картинка? … Я думаю, изучать программирование — это сложно. И именно поэтому мне так нравится это делать.

Как программирование стало моим хобби

Я начал учиться программировать на JavaScript четыре месяца назад, с фронт-энд руководства. Так программирование стало моим хобби. За последние несколько лет я разочаровался в соотношении «созидание/потребление» в своей жизни. Слишком много моего свободного времени занимало потребление. Netflix, подкасты, Twitter, журналы, телевизионный спорт, Facebook, блоги, Medium, газеты, романы — этот список можно продолжать и продолжать. В этих занятиях нет ничего плохого: они интересны, познавательны и в чем-то полезны, но, по сути, направлены исключительно на потребление. Даже чтение замечательной книги — процесс потребления. Разумеется, я не только потреблял. В рамках моей журналистской деятельности я писал. Творил, так сказать. Тем не менее, постепенно мне надоело, и я старался сделать работу хорошо только если это существенно отражалось на моих гонорарах. Несмотря на семью, работу, другие занятия и увлечения, у меня всё равно оставалась масса свободного времени. И большую его часть я тратил на просмотр видео. В какой-то момент я почувствовал себя свиньей.
На самом деле мое программерское хобби еще не принесло сколь угодно весомый результат. Я сделал одно простое приложение, прошел front-end челленджи и проекты на своих курсах. Но ведь это только начало! Для меня смысл программирования заключается не в том, чтобы создавать нечто новое и неординарное, а в том, чтобы вовлечь себя в процесс создания, бросить вызов самому себе, попробовать что-то сложно лишь по причине закончить начатое.

Чем сложнее, тем лучше

В моем родном Онтарио, что в Канаде, существует проект, цель которого — улучшить физическое состояние людей. Он носит имя Make Your Day Harder (Усложни себе день). Главная идея проекта очень проста: вам необходимо добавить несложные упражнения в свой распорядок дня. Это увеличит уровень физической активности и улучшит здоровье. Все очень просто. Ходите по ступенькам, не пользуйтесь лифтом, выходите на одну остановку раньше, чем вам нужно и пройдитесь пешком. На служебной парковке паркуйтесь как можно дальше от входа в офис. «Проще — не значит лучше» — вот девиз этого сообщества. Какая точная формулировка!
Конечно, сидение перед компьютером, когда вы пишете код, не улучшит ваше физическое состояние. Программирование — это здорово, но не для мышц. Тем не менее, можно рассматривать ваше обучение Java программированию, как зарядку для мозгов. В любом случае это полезнее, чем просматривать инстаграммчик знаменитостей, потягивая пиво с чипсами. После того, как я начал программировать, у меня всё равно хватает времени для досуга. Например, за последний месяц я потратил десятки часов, наблюдая за тем, как посторонние мне люди кидают мяч в металлическое кольцо. Другими словами, я смотрел плей-оффы НБА (NBA). А так как я фанат клуба Toronto Raptors, это занятие можно приравнять ещё и к самоистязанию.
Принес ли мне регулярный просмотр баскетбола пользу? Я стал пить больше пива и есть больше вредной еды, наподобие чипсов или куриных крылышек. Кроме того, я всегда ложусь значительно позднее, поскольку смотрю игры, проходящие на западном побережье. Так что здоровый сон — это не про меня. И хотя это занятие мне действительно нравится, по сути, оно наносит мне вред. Это неплохое развлечение, но ничего более. Если не учитывать, конечно, лишний вес от калорийных закусок и пива, или сонливость в середине следующего дня. Но ведь это же просто и приятно! Завалитесь на диван, откройте бутылочку холодного пива, вытяните ноги и просидите так 3 часа на одном месте. Легкий путь — заманчив. Сложный же несет куда больше пользы.

Тяжело в учении, легко в бою

Я очередной раз задумался о ценности преодоления трудностей при просмотре фильма «Скрытые фигуры» (Hidden Figures, 2016). В фильме была выдержка из речи Джона Ф. Кеннеди «Мы решили покорить луну». США не отложили космические полеты, хотя эта задача оказалась сложной, — заявил президент. Они продолжили развивать космическую программу именно потому, что это было сложно. «Да, мы решили покорить Луну, причем именно в этом десятилетии. Это цель не из легких, но тем лучше: такое испытание позволит нам выложиться по максимуму, показать, на что мы способны, реализовать всю нашу мощь. Это вызов, который мы готовы принять здесь и сейчас. И мы рассчитываем только на победу!». Джон Ф. Кеннеди.
Слова «тяжело», «трудно» и «сложно» чаще всего используются для описания чего-то плохого. Во многих случаях это действительно так и есть. Тяжело видеть, как страдают или болеют любимые люди, тяжко, когда умирает домашний любимец, сложно пережить разрыв отношений. Некоторые ситуации приносят лишь боль, и из них невозможно вынести что-то позитивное.
Изучение чего-то трудного, однако, полезно всегда само по себе. Уже сам процесс обучения можно рассматривать как награду или пользу. Тщетную борьбу с кодом можно рассматривать как лекарство для разума.
Если же так сложится, что во время работы вы создадите что-то удивительное, и пользователи выстроятся за вашим приложением в очередь с открытыми кошельками — здорово. Если же нет, программируйте дальше. Если вы — мастер написания кода, и стали YouTube-гуру с большим, чем у New York Times, количеством подписчиков (а их там более миллиона), — это замечательно. Если нет — продолжайте кодить.
Многие люди учатся программировать, чтобы достичь определенной цели. Возможно, вам надоела ваша работа и вы хотите сменить ее на более интересную. В этом нет ничего плохого. Или вы хотите уйти в ИТ, чтобы больше зарабатывать. Разумеется, кто-то должен обеспечить вашу семью пончиками и платить по счетам. Тем не менее, чтобы начать программировать, вам не обязательно нужен серьезный повод. Просто начните. И если ваш путь окажется не простым, не отчаивайтесь. Это означает, что вы на правильном пути. На трудном.
Что ещё почитать:

Информационные технологии

Как понять, что я смогу?

Почему многие разработчики сдаются, даже толком не начав