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

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

1) В программировании есть 2 мира, к какому ты принадлежишь?

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

2) Область постоянно меняется, и большинство работодателей проявляют эйджизм.

В отличие от традиционных квалифицированных профессий, работающих в физическом мире, где многолетний опыт приводит к более высокому мастерству, программирование иногда может привести к обратному. Только за последние несколько десятилетий появилось бесчисленное множество новых языков программирования и фреймворков, причем более поздние представляют собой совершенно другие способы написания кода. Популярность языков в этой области может резко измениться. Если компания ищет разработчика Python и пожилого человека без опыта работы с Python, но с большим опытом программирования на COBOL, компания, скорее всего, откажется от кандидата; кроме того, более вероятно, что на работу будет принят новый выпускник с некоторым опытом работы с Python. Программисты должны будут идти в ногу с последними тенденциями, чтобы выжить в долгосрочной перспективе.

3) Низко висящий фрукт уже съеден.

Если ваша основная причина научиться программировать — создать собственную компанию по разработке программного обеспечения, со временем вам, вероятно, будет труднее добиваться успеха. «Первым на рынок/победителю достается все» — это жестоко из-за бесконечной масштабируемости программного обеспечения. Кроме того, программное обеспечение, разрабатываемое сегодня, экспоненциально сложнее, чем в прошлом. Facebook/Instagram/SnapChat/TikTok и т. д. сегодня значительно труднее воспроизвести, чем Myspace/Xanga/Friendster и т. д. в прошлом. Разрушить Google, Apple, Microsoft и т. д. было бы невероятно сложно, как это было с их более скромными начинаниями в гараже.

В заключение, если вы обнаружите, что из вас не получится квалифицированного программиста, в этом нет ничего плохого, я бы посоветовал подумать о другой карьере. Откройте для себя карьеру или работу, в которой вы можете использовать любой уровень навыков программирования, чтобы дополнить свою роль, а не довольствоваться тем, чтобы стать посредственным программистом. Здесь также больше шансов добиться успеха в бизнесе — Сэму из крупной сети продуктовых магазинов будет легче основать компанию по продаже созданного ими автоматизированного процесса.