Кодирование - это отчасти карьера, отчасти страсть. Вот что делает это стоящим.

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

Для некоторых мотивация проста. Это мечта о том, чтобы ему хорошо платили и быть на высоте (возможно, даже в шлепанцах в офис). Это определенно может случиться, и это немалая деталь. В конце концов, любая работа приносит больше удовольствия, когда вас уважают за ваши навыки и вознаграждают за ваши усилия.

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

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

1. Решение загадки

Когда меня спрашивали, что такое программирование, я отвечал примерно так: «Головоломки - это весело, верно? Что, если бы вы могли решать головоломки целый день? »

Для меня программирование начинается с головоломки. Каждая программа кода - это приглашение к решению умственной задачи. Вот только эта задача - не просто развлечение, как головоломка судоку, а реальная загадка с реальными последствиями. И эти загадки повсюду. Они могут быть сложными, например, вычисление реального движения воображаемых объектов. Или они могут быть простыми, например, написать наиболее эффективный код для периодической отправки уведомлений WhatsApp вашим родителям. Головоломки бесконечны. Они буквально никогда не закончатся.

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

Здесь есть баланс. Решение новой проблемы - это радость. Улучшение старого решения - это удовлетворение. И весь цикл - решить, протестировать, уточнить - вызывает привыкание.

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

2. Удовлетворение от создания чего-либо.

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

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

Когда вы создаете что-то действительно полезное, вы испытываете чувство удовлетворения. Вы не просто приложили свои усилия. Вы сделали материальный продукт! Может быть, это похоже на гордость плотника, когда он собирает новый предмет мебели на заказ. (Я не знаю - я просто Икеа решала все проблемы с домашним декором.)

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

3. Щелчок по волшебной кнопке

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

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

4. Всегда есть что-то новое.

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

Разработка программного обеспечения - пример второго пути. Чтобы добиться успеха, нужно постоянно учиться. Я помню год, когда появилось три разных API баз данных. У всех трех был разный набор объектов и немного разные абстракции, но они служили одной и той же основной цели для одной и той же базовой базы данных. Другими словами, это были небольшие изменения.

Постоянное обучение предохраняет жизнь от застоя. А кто не хочет играть в новейшие технические игрушки? Кодирование похоже на это - на горизонте всегда есть блестящие новинки. Новые инструменты, новые библиотеки, новые приемы и методы. (На этой неделе я играю с Blazor, фреймворком ранней стадии для создания приложений веб-браузера в WebAssembly. Если это удастся - и это большое «если» - весь мир клиентская разработка будет заново изобретена еще раз.)

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

Это тоже жизнь программиста - он всегда учится и часто сбивается с толку, всматривается в темноту и гулит в ночное время.

В кодировании часто бывает скучно, но скука бывает редко.

Последние мысли

Никакая дисциплина - это просто радость от начала до конца, и в программировании есть много вещей, которые не приносят удовольствия, от безветренных дней в кресле Aeron до страниц кода, которые не будут работать, даже если должны (или, что еще хуже, работают, хотя и не должны). Но те, кто придерживается этого - те, кто занимается программированием своей жизни, - знают награду. Потому что какая еще область предлагает вам представить что-то новое, а затем спроектировать это? Что еще дает вам возможность творить каждый день?

Любишь программировать? Или вы сожалеете о том дне, когда написали первую строчку кода? Оставьте комментарий ниже, чтобы сообщить нам об этом!