Я думаю начать учиться писать код. Какой ноутбук мне купить? Нужно ли участвовать в буткемпе? Нужны ли моему ребёнку особые курсы или подготовка, чтобы поступить на computer science?
Многие люди спрашивают меня, стоит ли им учиться писать код, хорошим ли карьерным путём будет для них или их детей разработка ПО, нужно ли им учиться в вузе, чтобы обрести успех.
Приведу свой совет вкратце
Прежде чем думать обо всём этом: специальности, вузе, в который будет поступать ребёнок, покупке ноутбука, вам нужно понять, есть ли у вас (или у ребёнка) «искра программирования».
Это потребует от вас немного времени и усилий, но здорово то, что онлайн есть куча высококачественных и бесплатных ресурсов, позволяющих вам ощутить, что же такое кодинг и разработка, чтобы вы приняли решение, стоит ли выбрать это в качестве карьеры или хобби. Некоторые из них я приведу в этом посте.
Что такое искра программирования?
«Искра программирования» — это вспышка внутреннего любопытства, заставляющая вас учиться. «Внутреннее» означает, что оно исходит изнутри — другим людям не нужно заставлять вас это делать.
В разработке ПО, кодинге, системной разработке, машинном обучении, data science — по сути при работе с компьютерами, а возможно, параллельно и с людьми — возникают моменты глубокого раздражения и скуки, пронизанные тревогой и стрессом.
Лично я бесконечное количество раз достигал уровня отчаяния, вызывавшего слёзы. Если вы стремитесь идти по пути цифрового ремесленника, то будьте уверены, что и с вами это будет. Особенно в начале. И это нормально.
Кроме того, я думаю, что способность описать машинам всевозможных типов и размеров на их языке именно то, что вы хотите от них, решать задачи в сотрудничестве с машинами и возможность превратить свою идею в общественно доступный программный продукт, которым смогут пользоваться люди со всего мира — всё это сродни магии.
Искра любопытства позволяет вам постоянно подзаряжать свою страсть к своему ремеслу
По моему собственному опыту, исходя из моей карьеры и карьеры людей, которые были наиболее эффективными и устойчивыми, единственный определяющий критерий успеха — это внутреннее любопытство и стремление продолжать обучение и повышать свои навыки; любопытство к сфере, к инструментам, к возможностям, при помощи которых вы можете создавать, делиться и обучаться.
Ладно, всё это здорово, но с чего же всё-таки начать?
Чтобы понять, есть ли у вас искра программирования, используйте бесплатные ресурсы
Не покупайте новый Macbook. Не записывайтесь на буткемпы. По крайней мере, на первых порах.
Воспользуйтесь множеством превосходных бесплатных ресурсов Интернета, созданных, чтобы помочь людям попробовать программирование на разных языках и в разных контекстах.
Вот несколько примеров для начального освоения:
Попробуйте первые упражнения. На самом деле, не важно, с какого языка вы начнёте, но если у вас совсем нет опыта, то попробуйте Python, PHP или JavaScript. Если вы наткнётесь на непонятную фразу или концепцию, то попробуйте поискать её и почитать о ней.
Важнее всего то, что все эти сервисы не просят оплаты за то, что вы начнёте осваиваться и получать представление о программировании. С ними можно работать в браузере на старом маломощном компьютере, в библиотеке или Интернет-кафе до того, как раскошеливаться на крутой новый ноутбук. Если окажется, что вы вполне можете прожить всю оставшуюся жизнь, не прикоснувшись к клавиатуре, то вы потеряете лишь немного времени.
Как ощутить, на что будет похожа работа?
Должности в сфере разработки ПО сильно варьируются и зависят от таких параметров, как размер компании, размер команды, технологический стек, отрасль (кодинг в авиации сильно отличается от кодинга в рекламном деле) и так далее.
Тем не менее, может быть полезным понаблюдать за тем, как разработкой занимаются профессиональные разработчики, чтобы хотя бы оценить, интересно ли это вам. Как же нам подглядеть за повседневной работой кодеров?
К счастью, многие разработчики делятся контентом в YouTube и Twitch. Вот неполный список каналов, на которых можно самому понаблюдать за ними:
- Ants Are Everywhere — бывший сотрудник Google читает в YouTube исходный код популярных опенсорсных проектов, в процессе обдумывая его и показывая, как он отвечает на собственные вопросы. Потрясающее исследование дебрей программирования.
- Мой канал — я создаю туториалы по опенсорсным инструментам, а также публикую записи своего процесса кодинга в некоторых опенсорсных проектах. В последнее время и в ближайшем будущем я буду углубляться в темы приложений ИИ, LLM (больших языковых моделей наподобие ChatGPT), векторных баз данных и машинного обучения.
- TJ DeVries — отличный опенсорсный разработчик, автор популярного плагина Neovim (инструмента кодинга для разработчиков). Он делает свой контент доступным и интересным для всех зрителей.
- The Primeagen — более жёсткий взгляд на всё, что касается программирования, изучения кодинга и работы на высоком уровне от разработчика ПО Netflix, не боящегося говорить правду.
Помните, эти каналы дадут вам понимание того, как выглядит работа с кодом, использование редактора кода и взаимодействие с разными языками и инструментами, но это лишь часть задач профессионального разработчика.
Написаны целые горы книг и онлайн ресурсов с хорошим контентом о софтскиллах для работы: эффективной работе на всех уровнях организации, структуре и динамике команд, совместном кодинге, совещаниях, методиках планирования и мониторинга работы, способах организации при работе с другими разработчиками и так далее.
Вероятно, эти навыки ещё важнее, чем технические, и если вы решите, что эта сфера вам подходит, то будет необходимо уделить внимание и развитию своих софтскиллов.
Возможно, искра программирования появится у вас не сразу
Я сижу за компьютером ещё с трёх лет, но в течение первых нескольких лет я просто играл в игры, делал диорамы в Paint и подобных ему программах.
Примерно в одиннадцать у меня был друг, показавший мне на своём PC игру Descent.
Ещё у него был учебник по C++, который он мне одалживал. Ещё в одиннадцать я думал, что прочитаю эту книгу, стану разработчиком и буду делать свои игры. Я начал с освоения материалов учебника. Из этого ничего не вышло, и прошло ещё пятнадцать лет, прежде чем я принял осознанное решение учиться кодингу.
В 26 лет я пришёл в свою первую технологическую компанию на должность, связанную с маркетингом. К счастью, моя работа частично была связана с контролем качества, а продукт был очень техническим, поэтому мне приходилось отправлять через командную строку в движок различные тестовые нагрузки и проверять правильность вывода. Меня это увлекло.
Сидевший рядом со мной разработчик подбадривал меня и сказал, что если продолжу заниматься этим то мой опыт может расти «вот так» (он сделал движение рукой, описывая ведущий вверх наклон). С того момента я вечерами и по выходным самостоятельно учился. Практиковался, писал код, читал о кодинге и пытался создавать разное. С тех пор я не останавливаюсь.
Процесс изучения кода может быть фрагментарным и различаться для разных людей. И это тоже нормально.
Что делать, если считаешь, что у тебя есть искра программирования?
Что же делать, если вы попробовали выполнять задачи по программированию и поняли, что они вам нравятся? Что вы думаете о них, пока занимаетесь чем-то другим?
Что делать дальше? Начинать развиваться и никогда не останавливаться. Совет из опроса разработчиков на Stack Overflow о том, как оставаться актуальным и расти как разработчик: «постоянно что-то создавайте и никогда не останавливайтесь». Я полностью с этим согласен.
Первым готовым веб-приложением, которое я создал для себя, был Article Optimizer. Это был жёсткий опыт. Я даже не знал того, чего не знаю, поэтому не мог гуглить. Поэтому я пошёл в обратном направлении: изучал приложения, похожие на то, что я пытался создать (например, приложение, отображающее форму, чтобы пользователь мог отправить данные), и реверс-инжинирил их, читая исходный код страницы, пытаясь больше узнать о базовых технологиях.
Обработка форм, API, настраиваемые шрифты, CSS, рендеринг разных изображений в зависимости от условий, обработка и очистка текста. Я многому научился из своего первого большого веб-приложения, несмотря на то, что на его создание понадобились месяцы. И первая версия была потрясающей, но не совсем тем, чего я хотел. Поэтому я продолжил совершенствовать и пересобирать приложение. Изучать новые фреймворки и техники. Примерно после третьего переписывания оно выглядело и работало так, как было нужно мне, и я опубликовал его в Интернете, чтобы им могли пользоваться другие.
Затем я много лет поддерживал его как бесплатное приложение. Хостинг в Интернете на своём собственном домене тоже многому может научить.
Мне подошёл такой путь: найти нечто вне моей зоны комфорта. Разобраться, как это создать. Следовать за своим любопытством — изучать максимально подробно и попытаться заставить проект работать. Завершив его, можно приступать к следующему. На этот раз сделать что-то более амбициозное, чем в прошлый раз — то, что снова вытолкнет меня из зоны комфорта, чтобы я мог узнать ещё больше.
Не выкладывайте деньги, пока не попробуете
Я видел людей, бравших кредит на $12000, чтобы пройти буткемп по кодингу, но узнавших на первом месте работы, что на самом деле им не нравится весь день работать за компьютером и продолжать создавать цифровые продукты.
Если вы сейчас думаете, стоит ли обучаться кодингу или заниматься компьютерами в качестве карьеры, то не вкладывайтесь слишком сильно, пока не ощутите вкус кодинга и сборки.
Когда вы ежедневно будете на своей работе, выполняя настоящие задачи и ощущая стресс, радость, панику и чувство завершённости, вам не помогут ни мама, ни папа.
Разработка ПО, хакинг, проектирование и построение систем, создание приложений и сайтов, решение сложных инженерных задач при помощи вашего постоянно расширяющегося инструментария может быть удивительной карьерой, если, конечно же вы получаете удовольствие от этой работы.
Вам нужно определиться, сможете ли вы найти эту искру программирования и постоянно использовать её для возрождения своего интереса и любопытства.
Комментарии (13)
profFortran
30.11.2023 09:01+11«Искра программирования» — это вспышка внутреннего любопытства, заставляющая вас учиться.
Не только учиться. Просто заниматься этой деятельностью несмотря ни на что.
Как понять, есть ли в тебе искра программиста
Так же, как понять, есть ли в тебе искра водителя, учителя, слесаря, механика, конструктора, учёного... Никак, пока не попробуешь.
Не покупайте новый Macbook.
И вообще его не покупайте, потратьте эти деньги на что-нибудь полезное. Чтобы программировать, хватит почти любого компьютера. Того, который есть у вас дома, для начала хватит точно.
Как ощутить, на что будет похожа работа?
Устроиться на работу.
бывший сотрудник Google... я публикую записи своего процесса кодинга... автор популярного плагина Neovim... разработчика ПО Netflix...
А так можно ощутить, на что похожа работа бывшего сотрудника Google, автора статьи, автора плагина, разработчика Netflix.
icya
30.11.2023 09:01Любопытно, неужели в последние годы не преподают информатику (и программирование на одном из ЯП) в средней школе? Конечно, задачи синтетические, но даже на них можно увидеть, кому это интересно, а кто пытается отсидеться и получить зачёт как, например, на математике
KongEnGe
30.11.2023 09:01+4Я 30 лет в профессии, но читая школьные учебники информатики, понимаю, что в такую муть интересоваться невозможно; мне повезло, что в мое время эта сфера еще не успела попасть в поле зрения государственного обязательного образования. А ВУЗом испортить было уже тяжело.
ZontikFromRuSO
30.11.2023 09:01+3Преподают. Но проблема в том, что программировать начинают класса с 10, и зачастую на мёртвых языках вроде паскаля. Если повезёт, то будет python.
DrArgentum
30.11.2023 09:01У нас в школе программировать начинают с 3 четверти 8 класса, и то на паскале.
В 7 и первой половине 8 класса теория и обучение работе в мс ворд и пеинте
shsv382
30.11.2023 09:01Ооо, я помню, как в школе самостоятельно (без информатики) изучал создание презентаций в power point, а потом создание сайтов на HTML+CSS. Ни программирование на информатике, ни JS на тот момент (2004-2008) меня совсем не интересовали, зато интересовал визуал и UX (в моем понимании опять же). Вот и занимаюсь теперь фронтендом ????
Batalmv
30.11.2023 09:01+2Многие люди спрашивают меня, стоит ли им учиться писать код, хорошим ли карьерным путём будет для них или их детей разработка ПО, нужно ли им учиться в вузе, чтобы обрести успех.
Прям напомнило, хочешь похудеть - спроси меня как :)
В 26 лет я пришёл в свою первую технологическую компанию на должность, связанную с маркетингом
Ну такое, я то думал, тут реально ИТшник пишет :)
Если вы сейчас думаете, стоит ли обучаться кодингу или заниматься компьютерами в качестве карьеры, то не вкладывайтесь слишком сильно, пока не ощутите вкус кодинга и сборки.
Есть еще путь программирования со школы, получения профильного ВУ и выхода на работу уже, скажем так, вкусившим сей плод с многих сторон и разных веток :)
Вот мне интересно, реально есть слой людей, которые такое хавают и искренне думают, что ИТ - это новый клондайк, и надо только туда захотеть попасть?
SerJook
30.11.2023 09:01+1А что делать тем, у кого точно была искра, кто горел программированием ещё со школьной скамьи, но за время нахождения в отрасли искра погасла?
zstas
30.11.2023 09:01+1было такое, программировал в школе, в универе, для веб студии, стартапа много чего бесплатно делал - потом выгорел, не мог ни строчки кода написать. помогло 8 лет поработать сетевым инженером, а потом снова вернулся в программирование :) уже лет 6-7 и пока полёт отличный!
SkywardFire
30.11.2023 09:01+1где-то здесь же, на хабре был комментарий, мысль в котором я считаю очень простой и правильной.
Процитирую по памяти: "сейчас практически у всех есть информатика в школе. Так вот если тебя уже тогда это не цепануло, значит -- точно не твоё"sergiodev
30.11.2023 09:01информатика может быть очень скучной и формальной, типа изучения логических операций и операций с битами - не всем это интересно
но им может быть интересно программирование с точки зрения творчества
Araki_Satoshi
30.11.2023 09:01Вроде бы я, как говорится, power user, а той самой искры программирования у меня нету. Даже bash / DOS лень учить, что уж говорить про языки программирования. Каждый раз гуглю или ChatGPT прошу, а все попытки чтения обучающей литературы заканчиваются на первых страницах с мыслью закончить потом. Что делать? Знать-то надо, даже стыдно как-то.
smart_alex
Если в тебе есть искра программиста, то этот вопрос не встаёт — ты просто программируешь, забывая о еде и сне и получаешь от этого невероятное удовольствие.