Был у меня когда-то знакомый. Назовем его Тед. Он жил в том же многоквартирном доме, что и я, жители которого любовно называли его «Цементный город».

Однажды ночью Тед появился в моей квартире. Когда я открыл дверь, он просто стоял там, слегка покачиваясь, и невнятно пробормотал: «Я был бы великим писателем, если бы у меня был компьютер».

Что я мог сказать? Просто первое, что пришло в голову:

«Если бы вы были великим писателем, вы бы писали обо всем; бумага, камни, белки, облака, для вас не имеет значения, есть ли у вас компьютер или нет».

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

Компьютерное программирование для меня то же самое. Это просто то, что вы делаете, независимо от того, платят вам за это или нет.

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

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

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

Причина, по которой я использую этот пример, заключается в том, что я сталкивался с такой ситуацией примерно девять раз за последние шесть месяцев.

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

Возможно, вы не знаете, что вы можете использовать вызовы Ajax для обновления данных в одной части страницы без повторной загрузки всей страницы — или, что более важно, что делать в ожидании выполнения промиса.

Вы можете не понимать временную сложность или то, что операцию с O(1) предпочтительнее использовать, чем операцию с O(n) или даже O(n^2), или даже то, к чему это относится, но как только вы достигнете определенного уровня синергия с вашей машиной, большая часть которой в любом случае отпадет на интуицию.

Разница между программистом и тем, кто пытается стать программистом, заключается в том, что для одного их монитор — холст, а клавиатура — кисть. Для другого монитор — гвоздь, а клавиатура — молоток.

Вот лучший пример:

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

Я достаточно опытен, чтобы обычно издавать довольно приятные звуки, но моя игра на фортепиано поднимает вас и уносит в счастливое место? Не шанс.

Потому что я не пианист — я просто умею играть на фортепиано. Я программист.

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

Я думал, что это было здорово, и что они были правы.

Программисты программируют компьютеры.

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

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