JavaRush/Java блог/Random/Программирование — это сложно. Именно поэтому стоит его и...
Автор
Valerii Popov
Engineering Manager | Java Mentor в JаvaRush

Программирование — это сложно. Именно поэтому стоит его изучать

Статья из группы Random
участников
В программирование все приходят по-разному. Кто-то увлекся им в школьные годы на первых уроках информатики, кто-то начал писать «лабораторки» в университете, ну а кто-то начал учиться с целью поменять профессию. Тем не менее, большинство «джунов» сходится во мнении, что начинать очень сложно, и с типичными проблемами новичков сталкивается почти каждый. Предлагаем вашему вниманию адаптацию статьи журналиста Роджера Коллье (Roger Collier) о том, как он учился программировать ради преодоления сложностей. Он оценивает свой уровень как любительский. Если сформулировать его мысль одной строкой: программирование стоит учить именно потому, что это трудно. Сама борьба с кодом дает больше, чем результат, ради которого ее затевали.

Кратко

  • Автор статьи, канадский журналист, начал учить программирование как хобби и специально выбрал занятие, которое дается тяжело.
  • Повод был простой: слишком много свободного времени уходило на потребление, сериалы, соцсети, спорт по телевизору, и почти ничего на созидание.
  • Идею он взял из общественной кампании «Усложни себе день»: мелкие неудобства в распорядке, лестница вместо лифта или остановка пешком, приносят больше пользы, чем удобный вариант.
  • Ту же логику автор переносит на учебу: сам процесс борьбы с кодом уже награда, независимо от того, выйдет из этого приложение и доход или нет.
  • Джон Кеннеди в речи 1962 года объяснял выбор лунной программы тем же аргументом: не потому, что это легко, а потому, что это трудно.
  • Вывод: серьезный повод, чтобы начать программировать, не обязателен. А если путь оказался тяжелым, это как раз признак того, что он правильный.
Рисунок: человек в пальто изо всех сил тянет за веревку огромный якорь по оранжевой землеВремя позднее, далеко за полночь. Жена и дети давно спят, а вот в мои планы сон пока не входит. Все-таки я ее допишу... Я в миллионный раз отладил код и запустил его на исполнение. Хмм... Выглядит многообещающе. Если я нажму воот сюда, программа должна вызвать функцию «вычислить следующий шаг». Так… И если нажать сюда, функция должна вызвать саму себя. Отлично. Теперь, если я нажму сюда, я должен получить... эээ… явно не это. Эх... Еще больше отладок, больше багов, а время утекает в трубу вместе с энергией… Знакомая картинка? … Я думаю, изучать программирование это сложно. И именно поэтому мне так нравится это делать.

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

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

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

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

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

Я очередной раз задумался о ценности преодоления трудностей при просмотре фильма «Скрытые фигуры» (Hidden Figures, 2016). В фильме была выдержка из речи Джона Ф. Кеннеди «Мы решили покорить Луну». США не отложили космические полеты, хотя эта задача оказалась сложной. Наоборот, как заявил президент, они продолжили развивать космическую программу именно потому, что это было сложно. «Да, мы решили покорить Луну, причем именно в этом десятилетии. Это цель не из легких, но тем лучше: такое испытание позволит нам выложиться по максимуму, показать, на что мы способны, реализовать всю нашу мощь. Это вызов, который мы готовы принять здесь и сейчас. И мы рассчитываем только на победу!». Джон Ф. Кеннеди, выступление в Университете Райса в Хьюстоне, 12 сентября 1962 года (архив Библиотеки Кеннеди). В оригинале ключевая фраза звучит так: «We choose to go to the Moon in this decade and do the other things, not because they are easy, but because they are hard», то есть Луну выбрали не потому, что это легко, а именно потому, что это трудно.
Слова «тяжело», «трудно» и «сложно» чаще всего используются для описания чего-то плохого. Во многих случаях это действительно так и есть. Тяжело видеть, как страдают или болеют любимые люди, тяжко, когда умирает домашний любимец, сложно пережить разрыв отношений. Некоторые ситуации приносят лишь боль, и из них невозможно вынести что-то позитивное.
Изучение чего-то трудного, однако, полезно всегда само по себе. Уже сам процесс обучения можно рассматривать как награду или пользу. Тщетную борьбу с кодом можно рассматривать как лекарство для разума.
Если же так сложится, что во время работы вы создадите что-то удивительное, и пользователи выстроятся за вашим приложением в очередь с открытыми кошельками, это здорово. Если же нет, программируйте дальше. Если вы мастер написания кода и стали YouTube-гуру с большим, чем у New York Times, количеством подписчиков (а их там больше пяти миллионов), это замечательно. Если нет, продолжайте кодить. Рисунок: руки держат бумажный пакет с надписью EDUCATION и биркой FREE, от пакета тянется распустившаяся веревочка

Серьезный повод не обязателен

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

Вопросы и ответы

Правда ли, что программирование это сложно?

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

Зачем учить программирование, если это тяжело?

Затем, что трудное занятие полезно само по себе, независимо от результата. Автор сравнивает борьбу с кодом с лекарством для разума: процесс уже награда. Если из этого выйдет приложение или новая работа, прекрасно, а если нет, время все равно потрачено не зря.

Нужна ли цель, чтобы начать программировать?

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

Что делать, если ничего не получается и хочется бросить?

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

При чем тут кампания «Усложни себе день»?

Это общественная кампания из канадского Онтарио, которая предлагает добавлять мелкие неудобства в распорядок дня ради здоровья: лестница вместо лифта, остановка пешком, парковка подальше от входа. Ее девиз «проще не значит лучше» автор переносит с физической нагрузки на умственную.

Как относиться к тому, что хобби не приносит дохода?

Спокойно. За четыре месяца автор сделал одно простое приложение и прошел учебные задания, и считает это нормальным началом. Смысл он видит не в том, чтобы создать нечто выдающееся, а в том, чтобы вовлечь себя в процесс создания и довести начатое до конца.
Комментарии (16)
  • популярные
  • новые
  • старые
Для того, чтобы оставить комментарий Вы должны авторизоваться
Gans Electro
Уровень 53
9 сентября, 17:00
какие древние комменты, а ведь раньше на сайте как то поактивнее были люди...
25 июня 2018, 16:48
Хорошая статья! Одна из причин, по которой я начал заниматься программингом после 15-тилетнего перерыва - потому что это трудно! Намного труднее, чем балдеть, с пивом и чипсами! Это и радует! Дерзайте, друзья!
14 ноября 2017, 11:35
хорошая статья, на личном опыте убедился, что если легко или слишком легко учиться, то скорее всего я уже всё это знаю и по итогу ничему не учусь.
LeoJames
Уровень 40
Expert
13 ноября 2017, 09:44
/* Комментарий удален */
Mariia Chip
Уровень 40
13 ноября 2017, 10:17
В этой статье не сказано ни слова о том, что каждый должен становиться профессиональным программистом. Здесь речь идёт о тренировке мозга. Писал её журналист, который, судя по всему, неплохо зарабатывает, и пока никуда не собирается. Цитирую: "Для меня смысл программирования заключается не в том, чтобы создавать нечто новое и неординарное, а в том, чтобы вовлечь себя в процесс создания, бросить вызов самому себе, попробовать что-то сложное — лишь по причине закончить начатое." Давайте всем, кто ходит в зал, чтобы поддержать форму, кричать, дескать, они порочат большой спорт, и из-за таких, как они престиж профессии падает. И вообще, нефиг ходить в зал и заниматься с каким-то там неизвестным тренером, когда есть записи известных спортсменов.
Mariia Chip
Уровень 40
13 ноября 2017, 16:26
Полагаю, сравнение вполне уместное, поскольку речь идёт о разной, но тренировке. О том, что может сделать тебя лучше в том или ином смысле. Но ежели угодно, давайте другие примеры приведём. Человек решает задачки по математике сам для себя, а не чтобы двигать науку вперед. Для тренировки мозга. Или картины пишет, потому что ему это нравится, для себя, даже если получается не очень. Я вот учусь играть на фортепиано, начала во взрослом возрасте. Разумеется не для того, чтобы стать профессионалом, но для себя. И мне это нравится, и я не считаю, что я своей весьма далекой от совершенства игрой порочу дело Рихтера, Аргерих или Гульда. Тем не менее, бывают и другие случаи. Человек начинает играть во взрослом возрасте, и, возможно, не достигает вершин исполнительского мастерства, но иногда понимает, что музыка - это его. Начинает писать музыку. Ну а кто-то начинает играть достаточно хорошо. Такой один на сотни тысяч, тем не менее... Для кого-то программирование — это призвание. Для кого-то — работа, путь прокорма (и так в любой профессии!). Ну а для кого-то ещё — это развлечение, что-то вроде лего: берешь детальки и собираешь из конструктора программу. Для автора статьи дело, вероятно, обстоит именно так. И в таком хобби я греха не вижу. Выражение слышала. Насчёт того, где программировать и как это делать: тут дело индивидуальное. Если кому-то легче думать над задачей и при этом есть — флаг в руки (если никому не мешает при этом).
14 ноября 2017, 14:35
Про перепечатывать книги - это очень смешно. Они продаются в переводе и их можно при желании купить. А вот переводы статей (особенно мотивирующих) фиг кто сделает. Поэтому спасибо за материал. По поводу "вообще не в тему. Слезно-ванильно-сахарные сопли журналиста". Статья про программирование, поэтому она уже в тему. Да, вы можете воспринимать программирование как какой-нибудь профессор воспринимает математику - сложная наука не для слабых умом. Но его личное восприятие не отменяет необходимости изучения арифметики в школе и вышки в институте. Без них ни сдачу в магазине не посчитаешь, ни сложный механический процесс не расчитаешь. Точно так же и с программированием. Сейчас оно стало таким же базовым навыком как знание арифметики. Несмотря на различия в синтаксисе и идеологии базовая основа программирования остается одинаковой. И без ее знания ни табличку в экселе не автоматизируешь, ни сайт под себя не запилишь, ни скрипт автоматизации для умного дома не сделаешь. А если тебе программирование пришлось по вкусу, то можно подучиться на курсах и пойти по этой стезе. Да, потом нужно будет подтянуть математику и алгоритмы, но все лучше чем киснуть на тупой низкооплачиваемой работе. Это реально и возможно Конечно можно отдать такие задачи на откуп другим. Но мозг хоть и не мышца, а тоже требует тренировки. Только давая ему сложные задания, можно сохранить трезвость и остроту ума в старости. К примеру, у меня отец КМС по шахматам и продолжает играть по переписке. И в свои семьдесят с хвостиком он продолжает оставаться адекватным человеком не боящимся новых технологий. При том что большинство его одногодок при виде даже не смартфона, а микроволновки с сенсорным управлением, приходят в ужас "ой я не разберусь". Поэтому любой журналист, водитель маршрутки, тренер по фитнесу, археолог, музыкан и пофиг кто еще, подбрасывая мозгу даже банальные задачки по программированию (которые во многм схожи с задачками по шахматам) делает вклад в свое ментальное здоровье на старости лет.
Руслан
Уровень 3
12 ноября 2017, 07:12
Статья хорошая, но про пива и чипсы не нужно было писать.Не понимаю откуда у этого парня время для просмотра разных игр, передач, пить пивас. Лично мне хочется сменить работу на более оплачиваемую. Времени свободного почти нет. у меня ипотека, много детей(так получилось) жена в декрете уже много лет. Приходя домой занимаешься с детьми, чтобы жена могла немного времени для себя уделить.в моем городе нищенские зарплаты, приходиться работать на трёх работах. Конечно не легко. Но если еще из 5-6 часов сна жертвовать на дополнительное обучение, то можно в ящик сыграть. Можно отказаться от работ дополнительных, совместных отдыхов , время на детей и в плотную заниматься программированием. Наверное просто не готов жертвовать этим всем для обучения программированию. уж болно цена велика.
14 ноября 2017, 14:38
Он же ж из Канады. Видимо журналистика приносит достаточно большой доход даже при работе не в полный рабочий день.
Antony
Уровень 2
10 ноября 2017, 13:38
Спасибо.
Дмитрий
Уровень 1
9 ноября 2017, 20:27
Для начинающих изучение, статья то что надо)
talgat
Уровень 20
9 ноября 2017, 10:57
я так понимаю чем дальше мы проходим, тем чаще надо выкладывать таких постов))
Vitaliy
Уровень 5
8 ноября 2017, 00:16
Статья отличная. Мотивация в ней есть, от себя добавлю когда очень, очень и очень сложно и трудно, тогда это верный выбор.
Умный Негр
Уровень 7
8 ноября 2017, 18:53
Повторил*
Павел Шабанов
Уровень 32
7 ноября 2017, 21:39
Хорошая мотивационная статья! Её бы добавить в курс, когда новый уровень открывается!