Привет, Джаред, я хочу научиться программировать! Как мне быстрее всего получить работу программиста? Сколько времени нужно, чтобы поправиться? Какой язык программирования я должен изучить в первую очередь?

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

Кто я?

Я инженер-программист-самоучка с 9-летним стажем работы в самых разных компаниях: от крупных (The New York Times, Business Insider) до небольших (Shapeways, joinmaasive.com и несколько стартапов в районе Нью-Йорка и Филадельфии). Я успешно участвовал в нескольких хакатонах (PennApps, HackPSU, Codeday и т. д.) и создавал проекты с открытым исходным кодом, такие как myAlgorithm и Hyro (https://github.com/jawerty). Сегодня я перешел к созданию https://justask.codes/company с моим приятелем Ником и работаю наставником по разработке программного обеспечения на полставки.

Мой LinkedIn: https://www.linkedin.com/in/jawerty/

Мой гитхаб: https://github.com/jawerty

Мой YouTube для просмотра моих *миссий* по кодированию в прямом эфире: https://www.youtube.com/channel/UCVTtYLn03CmwX-PUfZ3RF0A

Правила:

#1 — Постоянство: программируйте не менее часа в день

Начну с самого основного правила. Я настоятельно рекомендую вам кодировать по крайней мере час в день. Это правило вызвало много флеймовых войн в посте Reddit, который я сделал год назад (https://www.reddit.com/r/learnprogramming/comments/wryuil/i_wrote_a_guide_on_how_to_get_a_career_as_a/), но я буду защищать этот стандарт до конца.

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

# 2 — ABP: всегда нажимайте

Это правило особенно важно. Это означает, что всегда представляйте свой код людям. Всякий раз, когда вы работаете над проектом или просто решаете уникальную проблему, вы хотите опубликовать ее где-нибудь (см. мое полное руководство, чтобы узнать о где https://medium.com/@Jawerty/the -руководство-как-стать-карьерой-программиста-без-степени-e77484d2e7d6) или отправить знакомому программисту.

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

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

#3 — Читать код

Значение этого правила проявляется по мере того, как вы продвигаетесь вперед. Основная причина, по которой большинство программистов не слишком беспокоятся о ChatGPT, заключается в том, что кодирование не является основной частью их работы. Понимание кода — самый недооцененный навык в программировании, если не самый важный. Вы должны читать код (*эффективно) гораздо чаще, чем писать код. Независимо от того, работаете ли вы на высоком уровне (Python, PHP, Ruby) или весь день пишете подпрограммы на языке C, вам приходится читать много кода.

Если вы хотите научиться лучше читать код, единственный способ —…Читать больше кода. Прочитайте проекты с открытым исходным кодом, которые вам интересны. Это может быть какой-нибудь случайный пакет NPM на 100 пользователей, который соответствует вашим потребностям, или исходный код Chromium.

Простой способ улучшить чтение кода — прочитать ответы StackOverflow. Я знаю, я мудак для этого, но поверь мне. Простое копирование и вставка того, за что больше всего голосовали, — это НАВЫК, но на ранних стадиях разработки вы хотите не торопиться, прежде чем копипастить свой путь к полнофункциональному приложению.

# 4 - Патологические глубокие погружения

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

Это правило не так очевидно, как другие, но верно. На мой взгляд, вы должны быть в ужасе от того, что не знаете, как работает система, с которой вы работаете. Лучшие инженеры, которых я знаю, лихорадочно исследуют каждую мелочь — до ошибки. Часто это исследование проводится для того, чтобы они могли рассказать своим друзьям о новых концепциях. Может быть, немного небезопасно… но это работает. Я уверен, что Флойд Мейвезер всегда немного неуверен в своем джебе, а Майкл Джордан был неуверен в своем броске в прыжке. Мужское стремление к компетентности — это постоянное мучительное чувство незавершенности.

Если вы учитесь использовать Pytorch и не совсем понимаете, что такое numpy и для чего он нужен, то это должно вызвать внутри маленького приятеля, который скажет: «Вау, как ты этого не знаешь ?? Иди глубоко ныряй».

Спасибо за чтение

Это мои 4 основных правила обучения программированию. Нелегко получить компетентность в какой-либо дисциплине, особенно в таких интеллектуальных занятиях, как разработка программного обеспечения. Успокойтесь и будьте последовательны.

Если вы ищете наставника по программированию, обращайтесь! Напишите мне на почту [email protected] или свяжитесь со мной в Linkedin. Кроме того, если вам нравится смотреть, как парень кодирует глупости ночью, посмотрите мои прямые трансляции https://www.youtube.com/@jawerty210/featured