Каждый должен уметь программировать.

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

Поэтому я решил научиться программировать. Теперь было множество языков на выбор, но я решил начать с того, который оставил в колледже - C ++. И следовательно,

ненавидел ...

каждый…

минута.

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

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

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

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

Помимо первоначальной цели - не допустить, чтобы меня поразила бездомность, когда я прибыл в Сан-Франциско, я обнаружил, что мои новые навыки программирования помогут мне в других проектах. Например, в течение первого месяца мне действительно удалось собрать небольшой скрипт для автоматизации заполнения списка и экспорта этого списка в Excel. Да, это заняло у меня целую вечность, потому что я все еще понимал, что делаю, но было весело увидеть проблему и иметь возможность применить свои недавно приобретенные навыки для поиска решения. И по прошествии трех месяцев мне все еще потребовалось некоторое время, чтобы сначала разобраться в коде очистки квартиры, которому я пытался следовать, а во-вторых, обновить его, чтобы узнать, как изменился Craigslist с момента написания кода. Так много ошибок трассировки… тем не менее, было весело применить мои новые навыки для воплощения в жизнь того, что 3 месяца назад было просто идеей в моей голове.

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

… И я тут же побежал обратно к стене, которую сначала наткнулся на дорогу.

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

Обучение программированию - это процесс на всю жизнь

Как и вы, когда вы сталкиваетесь с преградой на пути к существованию, я обратился к Google и поискал Следует ли всем научиться программировать? чтобы узнать больше о жизни программистов и о том, действительно ли я хотел им стать. Чем больше я читал, тем больше понимал, что устроиться на работу программистом - непросто. Программисты постоянно изучают новые языки по мере изменения среды и создания новых языков. Чтобы добиться успеха, вы должны действительно получать удовольствие от процесса изучения и освоения новых языков программирования, потому что, если вы этого не сделаете, релевантность, которую вы так упорно трудились, не будет иметь значения очень долго. Как заявил Tech Crunch,

«Что происходит с человеком, который целыми днями и ночами изучал Objective-C только для того, чтобы ужаснуться объявлению Swift на WWDC 2014?»

Кодирование по своей сути - это творчество и решение проблем

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

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

И это было то, что я любил. Как кодировщик, столкнувшись с проблемой, вместо того, чтобы искать существующее решение, у меня был целый новый мир возможностей для придумывания решений и кодирования их в жизнь - почти как 3D-принтер для моих мыслей. Подумайте, насколько это мощно. Билл Бернетт и Дэйв Эванс в своей книге Designing Your Life формулируют эту силу как таковую:

Когда мы используем наши творческие способности для поиска решения, невозможно знать, где мы окажемся, потому что невозможно предсказать будущее. Но когда мы это делаем, мы меняем возможное будущее.
- По материалам Designing Your Life

Кодирование помогает нам изменить возможное будущее

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

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

Однако я считаю, что приложения кодирования или, по крайней мере, понимания того, как работать в рамках его ограничений, гораздо шире, чем другие области, где можно найти творчество. Умение программировать разрушило многие отрасли. iTunes и Spotify подорвали музыкальную индустрию, Netflix - кино- и телеиндустрию. Google изменил правила игры во многих отраслях, сделав возможность находить информацию и предоставлять ее более доступной для всех. Facebook, Airbnb, Uber, Tesla… и этот список можно продолжить.

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

Чтобы помочь объединить людей в колледжах и нескольких школах
- Марк Цукерберг, Freakonomics Radio 328.

Для Джеффа Безоса это было использование растущего потребительского интереса к Интернету в 90-х годах для создания интернет-магазина.

Для Ларри Пейджа и Сергея Брина из Google это было:

Упорядочить мировую информацию и сделать ее общедоступной и полезной
–Ларри Пейдж и Сергей Брин, Google.com.

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

Это возвращает нас к идее «все должны научиться программировать?» С точки зрения безопасности работы, я думаю, ответ будет отрицательным, поскольку я считаю, что мои неудавшиеся попытки заставить себя учиться под таким прикрытием оказались таковыми. Однако если каждый научится кодировать преимущества творчества и решения, которые творчество принесет обществу, тысячу раз «ДА». Потому что, хотя кодирование на первый взгляд может показаться чем-то необычным, и лишь немногие люди предназначены для этого, это не так. Но сначала нужно найти идею, которая вам нравится, и понять, как обучение программированию может помочь воплотить эту страсть в жизнь.

Первоначально опубликовано на freddooley.com