Как научиться программировать
Опытный тимлид дал простой и чёткий алгоритм входа в IT. Спойлер: начать можно почти с любого языка, сменить его потом — не проблема.
Marcin Wichary / Wikimedia / Annie для Skillbox
Kira 2pizza
об эксперте
Lead software engineer, автор Telegram-канала «Тупица Мёртв». Интересы: IT, код, софт, разработка, литература, игры.
Программирование захватывает мир. Сейчас не осталось ни одной области, где бы оно не применялось: автоматизируется даже работа комбайнов на полях и сложные медицинские исследования.
Программирование настолько востребовано, что новички готовы отдать огромные суммы денег разным людям и компаниям, которые обещают научить их кодить и хорошо зарабатывать. И это классно. Хотя многие и ругают курсы — мол, они длятся всего несколько месяцев и выпускают на рынок низкоквалифицированные кадры. Но на деле, чтобы научиться писать код, вовсе не обязательно просиживать пять лет в универе.
Где взять базу
Компьютер — это довольно сложная штука, но в его основе всего несколько базовых принципов. После их освоения тебе будет гораздо проще понять, что происходит в коде. И для такой базы нет ничего лучше бесплатного курса от Гарварда CS50 — он переведён на множество языков, в том числе и на русский. Очень рекомендую стартовать с него.
Если после CS50 желание программировать не улетучилось и не сменилось разочарованием, начинай изучать язык программирования JavaScript. Тебе необязательно знать его от корки до корки или помнить наизусть все операторы и правила синтаксиса. Опять же, главное — разобраться с базовыми вещами: как запустить программу на JS, какие типы данных существуют, как написать условие и цикл. Для старта этого более чем достаточно.
Как выбрать первый язык
Тут есть тонкий момент: языков программирования очень много и они сильно отличаются. Поэтому в интернете немало воинствующих знатоков, которые пытаются доказать, что их язык — самый лучший. Но не стоит их слушать: на самом деле первым может быть вообще любой язык. И если у тебя есть друг-программист, смело выбирай тот язык, на котором он пишет.
Если же ты понятия не имеешь, за какой язык браться, то JavaScript будет лучшим выбором. Это самый популярный язык программирования в мире. На нём можно написать всё что угодно — даже игры. Плюс по нему полно обучающих материалов: и платных, и бесплатных.
А ещё JavaScript работает в любом браузере и тебе практически ничего не понадобится для старта — да и первые результаты ты получишь очень быстро. Кстати, обязательно посмотри на TypeScript: этот язык — почти как JS, только лучше. Вот пара ссылок для начала:
Кстати, если ты начал изучать JavaScript, это вовсе не значит, что у тебя есть только одна дорога — во фронтенд и создание сайтов. Освоив на хорошем уровне один язык программирования, ты легко сможешь перейти на любой другой, потому что сам язык программирования и его синтаксис — это не более 10% всего программирования.
Когда начинать кодить
Написать первый код можно, когда освоишь самые базовые концепции. И тут появляется вопрос — а что именно писать? Ответ простой: решай простые задачи. Да, сначала будет трудно. Но это отлично прокачает тебя и поможет стать классным программистом. Есть куча разных сайтов с самыми разными задачами для программистов. Вот три самых известных:
Выбирай какой понравится — сначала попробуй решать задачи самостоятельно, пусть даже каким-то неоптимальным способом. А если уж совсем непонятно, гугли решения, перепечатывай их, разбирайся, зачем нужна каждая строчка и что она делает. К двадцатой или тридцатой задаче станет легче.
Стоит ли учиться по книгам
Я не рекомендую сразу читать книги по программированию — они только затормозят тебя. К тому же русский перевод может быть вредным. Лучше читай официальную документацию и старайся искать ответы на вопросы, которые у тебя возникнут. Читать книги лучше уже после того, как ты освоишься, — они помогут систематизировать знания. Лучший ресурс с самой актуальной информацией по веб-разработке — это MDN (Mozilla Developer Network).
А если вдруг ты с трудом понимаешь англоязычные тексты, документацию или ответы со Stack Overflow, то обязательно прокачивай английский — параллельно с программированием. Минимальный уровень для кодера — умение сносно читать и писать. Без этого в программировании делать нечего.
Как собрать портфолио
Когда ты освоишься с задачками и почувствуешь уверенность, начинай думать о портфолио. Вариантов тут несколько.
Во-первых, можно делать какие-то простые вещи для себя, друзей и соседей, автоматизировать что-то, писать ботов для Telegram. Только заведи аккаунт в GitHub — пусть код хранится там. Знание Git тоже пригодится. Это профессиональный стандарт и «гигиенический минимум» разработчика. Изучать Git рекомендую на официальном сайте: https://git-scm.com/book/ru/v2.
Во-вторых, можно поучаствовать в разработке Open Source. Правда, это на порядок сложнее. В большинство проектов не пускают людей с улицы. Но твои патчи в популярном репозитории или фреймворке точно дадут бонусные очки в глазах работодателя и помогут снискать всеобщее уважение.
Начать вникать в опенсорс можно с репозитория, в котором собраны популярные проекты от русскоязычных разработчиков. Конечно, новичкам лучше выбирать небольшие проекты. Советую обратить внимание на проекты моих любимых авторов Open Source — Никиту Прокопова и Андрея Ситника. А идеальный вариант — предлагать исправления в инструменты, которыми ты пользуешься сам.
Найди ментора
Бывает, что самостоятельно очень сложно собраться и начать что-то делать. Все мы немного «ленивые жопы», и частенько без ментора просто не обойтись. Но это не значит, что нужно брать огромный кредит и отваливать кому-то кучу денег. Есть варианты намного доступнее. Например, на getmentor.dev можно найти людей, которые любят помогать другим, — и нередко они делают это бесплатно или берут чисто символическую плату.
И главное: программирование — это ежедневная учёба в течение всей жизни. И если тебя это не пугает — желаю удачи!