Зачем стоит изучать программирование
Стать программистом, чтобы зарабатывать выше среднего — один из популярных вариантов мотивации. Можно выбрать направление frontend, backend, DevOps, чтобы в будущем участвовать в создании проектов. Но писать код и обучаться языкам программирования нужно не только разработчикам.
QA-инженерам (тестировщикам) знание языков программирования поможет автоматизировать тестирование, сэкономить время на контакты с backend-разработчиками. Например, при проверке части приложения оказывается, что функционал не работает. Тестировщик видит, что проблема в REST endpoint на бекенде. Он может не идти к программисту, а найти тикет и Pull Request. Затем тестировщик самостоятельно разбирается, почему возникла проблема с данными на бэкенде, и уже с ней идет к разработчику.
Техническим писателям нужно знать языки программирования для понимания, как работает функциональность и как правильно о ней рассказать.
Системным аналитикам и бизнес-аналитикам разбираться в коде необходимо, чтобы упростить трассировку и приоритизацию требований, корректно оценить сроки и трудоемкость задачи, более точно смоделировать бизнес-процессы.
Знание лучших практик HTML, CSS и JavaScript пригодится контент-менеджерам и редакторам проекта. Иногда в веб-админку приходится загружать текст с разметкой (<p>, <li>, <ol>, <h1>, <h2> и прочие) или проверять корректность расстановки тегов и отображения данных на странице.
SEO-специалистам важно знать теги и атрибуты в HTML-коде, разбираться в модулях популярных CMS-движков, понимать специфику работы поисковых роботов и так далее.
В некоторых вакансиях можно встретить требования знать основы языка программирования. Например, BA и SA должны уметь написать SQL-запрос в базу данных, а тестировщики — уметь работать с фреймворками и библиотеками вроде Jest.
С чего начать самообучение
Основные этапы:
Определить цель обучения. Это может быть трудоустройство в сфере IT с нуля после курсов, переход в смежную профессию (из тестировщиков в разработчики, из технических писателей в программисты), повышение квалификации (был frontend, стал full stack), создание собственных проектов.
Узнать подробности и выбрать инструменты. Для веб-разработки и создания сайтов нужны JavaScript, HTML, React. Если хочется создавать сайты, стоит освоить популярные CMS и движки: Wordpress, Тильда, Drupal, Joomla, Laravel. Чтобы писать веб-приложения, необходимо знать фреймворки/библиотеки вроде React, Vue, Angular, Svetle. Для работы с бэкендом и базами данных чаще используются PHP, Python, Ruby + Ruby on Rails, Java, Scala, Kotlin. На GitVerse можно найти roadmap — «дорожные карты» обучения определенным ЯП. Они помогут понять, что и в какой последовательности учить.
Придумать учебный проект (pet-проект). Ни один учебник или курс не прокачивает навыки так, как самостоятельный кодинг. Можно придумать задачу и попытаться ее реализовать: сайт, приложение, бот в Телеграме, мини-программа, парсер для сбора данных.
Установить среду разработки и настроить окружение. Писать код, конечно, можно и в тетрадке. Проблема только в том, что так невозможно проверить его работу. Поэтому для создания проектов используют специальные программы — Integrated Development Environment. Сегодня можно скачать GigaIDE Desktop на ПК или использовать GigaIDE Cloud в облаке. В российской среде разработки «из коробки» доступен GigaCode — AI-ассистент, который помогает писать, тестировать и документировать код. Умного помощника можно подключить и к другим IDE: VS Code, phpStorm, WebStorm.
Написать первый «Hello World!». С этой фразы часто начинается путь frontend- или backend-developer. Но впереди еще много времени и задач.
В процессе обучения (даже если использовать мануалы, курсы и пошаговые руководства) будут появляться ошибки. Код не работает, не запускается, показывает белый экран, слетает, выдает некорректный результат, не может подключить модуль. К этому нужно быть готовыми. Часто на поиск причины ошибки может уйти неделя или даже больше. Но каждая сложная ситуация — ступенька к улучшению профессиональных навыков.
Для решения проблем программист использует форумы, сообщества и чаты разработчиков. Они могут стать источниками знаний.
В GigaIDE Desktop можно не только создавать проекты и писать первый код, но и использовать AI-ассистента для объяснения.
GigaCode может рассказать, как улучшить код и что добавить.
Другая возможность — понять, почему код не работает (или работает не так, как нужно).
GigaCode может предложить, как реализовать ту или иную функциональность (например, добавить кнопку с обработчиком событий).
Какой выбрать язык для изучения
В мире более 300 языков программирования. Часто новички спрашивают, какой ЯП выбрать, обучаясь с нуля: что легче освоить, где больше вакансий или выше зарплаты со старта.
Рейтинг популярных языков
Существуют рейтинги самых популярных языков программирования. Согласно TIOBE Index, в октябре 2024 ТОП-5 выглядел так:
- Python;
- C++;
- Java;
- C;
- C#.
Индекс Popularity of Programming Language (PYPL) в октябре 2024 формировал топ следующим образом:
- Python;
- Java;
- JavaScript;
- C/C++;
- C#.
Если верить Stack Overflow, то рейтинг такой:
- JavaScript;
- HTML/CSS;
- Python;
- SQL;
- TypeScript.
Чем популярнее язык, тем больше сообщество разработчиков и обучающих материалов (курсов, книг, подкастов).
Цели программиста
При выборе ЯП стоит отталкиваться не только от популярности. Важно учитывать цель: делать игры, сайты, приложения для мобильных устройств. Основные направления:
- сайты — JavaScript, CSS, HTML;
- игры для персональных компьютеров — С++, С#;
- приложения для Android — Java, Kotlin;
- софт на iOS — Swift, Objective-C;
- Data Science, искусственный интеллект — Python.
Технология, стек, фреймворки
В рамках каждого из языков программирования сформировалась своя экосистема библиотек, и фреймворков. Например, в случае с JavaScript это Node, Next, React, jQuery, Vue, AngularJS, Nuxt и другие. Знание JS — база для работы с библиотеками и фреймворками, но сложно найти вакансию, где нужно только общее понимание языка.
Как правило, у проектов есть конкретный стек, под который ищут программиста. Например, на позиции фронтенд-разработчика нужно знать Redux, TypeScript, Bootstrap, Zod, Zustand. Кроме этого, код не живет сам по себе: для командной работы над ним используют GIT, системы bug tracking.
Так же обстоит дело с Python, Go, php, C, другими языками программирования. Кстати, проконсультироваться по поводу выбора языка программирования с AI-ассистентом GigaCode тоже можно.
Вакансии, заработная плата, спрос на рынке
Существуют рейтинги с данными по размеру зарплат и динамики по регионам, специальностям и другим критериям. Согласно одному из исследований, в первом полугодии 2024 в России максимальный размер заработной платы был у программистов, работающих на Objective-С, Elixir, Scala. Замыкали рейтинг зарплат Python, JavaScript, C.
Кроме динамики заработной платы важно учитывать спрос на программистов, работающих на определенном стеке. Например, в связи с уходом технологий Amazon Web Services (AWS), Microsoft Azure и Google Cloud наниматели могут размещать меньше вакансий по указанным направлениям.
Для обучения разработке с нуля могут подойти Python, Java, JavaScript, C. Но все зависит от цели, наличия времени и конкретной ситуации.
Эффективные методики самообучения
Чтобы эффективно учить язык программирования, нужно самостоятельно решать практические задачи и писать реальный код (пусть и в пет-проектах). Идеальный вариант — найти команду для совместной разработки, чтобы параллельно осваивать навыки:
- декомпозирования задач (разделение на мелкие части);
- эстимейтинга (оценка сроков);
- управления версиями (git).
Существует метод Франклина, который помогает сделать обучение более эффективным. Суть техники:
- Прочитать книгу, посмотреть ролик или изучить курс, где есть небольшой пример кода.
- Закрыть источник.
- Открыть IDE и попробовать набрать код самостоятельно (не подсматривая в источник).
- Повторить пункты 1–3 при необходимости.
Чего не стоит делать и что может отвлечь от обучения
Начинающим может показаться, что программист создает интересные интерактивные вещи: сайты с необычным дизайном, приложения, мини-игры. Но за красивым интерфейсом стоят сотни и тысячи строчек кода, в которых сортируются массивы, отправляются запросы к API и обрабатываются ответы. Нужно быть готовыми к тому, что придется программировать много «скучного кода» (за исключением случаев, когда разработчик осваивает low-code или now-code платформы).
Не стоит:
- Распылять внимание и время на несколько ЯП и технологий, пытаться научиться всему и сразу. Лучше сфокусироваться на конкретном стеке (библиотека, фреймворк).
- Делать длительные перерывы. Если есть возможность, стоит открывать IDE и писать даже простой код, но ежедневно. Это лучше, чем загружать мозг новой информацией раз в неделю. Знания быстро забываются, важна постоянная практика.
- Копировать код через Ctrl C + Ctrl V. GigaCode и другие умные помощники существенно упрощают процесс написания, тестирования и документирования. Но важно понимать, что происходит в коде: какой объект создается, что делает стрелочная функция, изменяется (мутирует) ли исходный объект и так далее. Можно попросить GigaCode объяснить, что происходит в написанном файле, используя команду /explain.
Советы для начинающих программистов
Разберем основные проблемы, с которыми сталкиваются junior-разработчики и попытаемся дать советы, что делать:
- «Ничего не получается, программа не работает, устал искать причину ошибки». После 5–10 часов сидения над одной неполадкой действительно появляются мысли в стиле: «А зачем мне это?». Стоит быть готовыми к тому, что в реальной работе придется часто заниматься баг-фиксингом, и это будет занимать едва ли не большую часть времени. Пока что стоит искать ответы на форумах, у умных помощников вроде GigaCode или у наставников — практикующих девелоперов.
- «Учусь на курсах больше месяца, а ничего не знаю». Чтобы освоить новую профессию и устроиться на работу, нужно от года времени. За месяц и по одному курсу вряд ли удастся освоить стек технологий для работы на реальных проектах.
- «ИИ пишет код для программ, поэтому всех заменит». Искусственный интеллект неплохо справляется с простыми задачами. Но распределить код по файлам, упорядочить структуру проекта, использовать инструменты управления версионностью и пофиксить баги после каждого pull request у него пока не получается.
- «Не берут на работу, слишком мало знаний. Наниматели ищут на зарплату джуна, а требуют навыки на middle-разработчика». Грейды могут значительно различаться — даже внутри компании для разных специализаций. Поэтому стоит постепенно изучать технологии, дополнять резюме новым стеком и не бояться собеседований.
Полезные сервисы для самообучения программированию
Среди сервисов, где можно бесплатно научиться писать код:
- игры — Flexbox Defense, Code Hunt, Flexbox Frog, CodeCombat, игры на GitVerse;
- сервисы для решения задач (задания часто встречаются на собеседованиях, где есть секция live-кодинга) — Codewars, LeetCode, Topcoder, Python Challenge;
- сайты с курсами для бесплатного обучения — Code Academy, Harvard University’s CS50 class, Git Hub, GitVerse и другие.
Официальная документация — первоисточник истины по тому, как работать с библиотекой или фреймворком. Иногда она может быть доступна и на русском.
Подборка каналов для изучения программирования
Тем, кто интересуется разработкой, рекомендуем подписаться на канал GitVerse: https://rutube.ru/channel/36194668.
Отслеживать новости мира кодинга стоит в https://t.me/gitversenews. В чате https://t.me/hellogitversechat можно общаться и задавать вопросы.
Бесплатные курсы с возможностью трудоустройства
GitVerse Образование — бесплатная образовательная экосистема. Студенты могут получить набор лицензий ПО в Student Pack для старта карьеры в ИТ. Bootcamp Labs обеспечивает погружение в реальные проекты, а платформа SmartClass обеспечивает доступ к заданиям, форумам, курсам и многому другому для эффективного обучения.
Сбер запустил бесплатное обучение «Школа 21» с возможностью трудоустройства. СберТех реализует Программу развития молодых специалистов. В рамках Федерального проекта «Содействие занятости» отдельные категории граждан смогут начать обучение по программам «Fullstack», «Python-разработка для БПЛА», «Специалист по информационной безопасности» и другим.
Как правило, крупные компании на российском рынке нуждаются в кадрах, работающих на определенном стеке. Организациям проще научить с нуля, чем запускать процесс найма нужных специалистов.
Книги по программированию
Существуют пособия, написанные для работы с определенной технологией или ЯП (Ruby, Software Development, SQL, Swift, TypeScript). На старте можно попробовать книги для детей, в которых наглядно рассказывают о технологиях, ЯП, синтаксисе.
В ТОП книг по программированию и разработке входят:
- «Чистый код. Создание, анализ и рефакторинг» (Роберт Мартин);
- «Программист-прагматик» (Томас Хант);
- «Совершенный код» (Стив Макконелл);
- «Рефакторинг. Улучшение проекта существующего кода» (Кент Фаулер);
- «Head First. Паттерны проектирования» (Робсон Фримен).
Используйте GigaIDE Desktop или GigaIDE Cloud для разработки, пишите код с умным ассистентом GigaCode и загружайте проекты на платформу git-репозиториев GitVerse!