Где учиться специалисту, чтобы стать айтишником с нуля, но не программистом
«Гибкость мышления – это способность человека предлагать разнообразные идеи, подходить к проблеме с разных сторон, использовать различные стратегии решения». Гилфорд Д.
Введение
Каждый день, мы пользуемся приложениями на смартфонах, планшетах, каждый заходим почитать всемирные новости на онлайн порталах и новости друзей в соц.сетях. А Вы когда-нибудь задумывались о том, что за разработкой и созданием стоят целые команды профессиональных it специалистов? И они занимаются не только написанием кода, как все привыкли думать. Сейчас появилось очень много разных it специальностей, не связанных с программированием напрямую. В этой статье, мы расскажем, какие шаги следует предпринять, чтобы стать it-шником, но не программистом.
1 часть — Что такое IT?
Информационные технологии (IT) – это совокупность методов и средств, используемых для сбора, хранения, обработки и распространения информации.
IT технологии глубоко проникли в нашу жизнь и окружила нас. Мы уже не представляем своей жизни без использования смартфонов, планшетов и их полезных приложений, без использования ПК со множеством программ, без интернета и различных веб-сайтов, веб-приложений, игр и т.д. Все это уже воспринимается, как часть нашей жизни.
Более того, сейчас, технологии IT позволяют упростить, оптимизировать работу инфраструктуры бизнеса и решение бизнес задач, с помощью, корпоративного программного обеспечения. К примеру, компания может организовать свои внутренние бизнес-процессы с помощью облачных технологий или организовать работу с базой клиентов, с помощью CRM-системы. И за каждой программой, системой, веб/моб. приложением стоят специалисты, которые работают в IT сфере. Именно они продумывают дизайн, функционал, разрабатывают код и последующую поддержку программного продукта.
В связи с этим, можно выделить 3 основных направления, в которых работают IT специалисты. Это:
Именно поэтому, в современном IT мире существует много специальностей в совершенно разных областях IT, о которых многие, возможно, даже и не слышали. И эти специальности одни из самых востребованных на сегодняшний день и на которые стоит обратить внимание, если Вы хотите стать айтишником.
Современные востребованные специальности в сфере IT-индустрии:
Как стать айтишником с нуля? Этот вопрос волнует всех начинающих. Но на него нет определенных ответов. Каждый должен найти свой путь и способ, как войти в it с нуля и стать it-шником.
К тому же, IT сфера — одна из самых быстроразвивающихся и быстро меняющихся областей. И это вносит свои коррективы в работу и в жизнь специалиста. Практически, каждые полгода происходит выпуск новшеств в IT. И IT специалисты должны быть в курсе всего этого, чтобы всегда владеть актуальными знаниями в IT.
Есть еще требования к базовым навыкам, умениям и знаниям без которых сложно представить работу в IT индустрии. Ниже, мы собрали наиболее необходимые IT знания, которыми должен владеть IT-специалист, чтобы попасть и работать в айти.
Что должен знать IT специалист:
Языков программирования сейчас огромное количество и каждый из них применим для определенных задач и областей. Ниже, мы приведем самые популярные и наиболее часто используемые языки программирования в IT, которые Вы можете выбрать в качестве первого языка программирования:
А чтобы Вам было легче начать изучение английского языка, предлагаем несколько учебных пособий:
Личностные качества айтишника, которые пригодятся в работе:
Умение общаться, вести переговоры, работать в команде и способность объяснять сложные вещи доступным языком — будет большим плюсом для IT специалиста т.к. в основном, работать придется в команде и способность правильно высказывать свои мысли и идеи, согласовывать детали нюансы проекта, умение вести деловую переписку — это одни из важных качеств айтишника.
Умение слушать и вникать в детали поможет лучшим образом реализовывать проект заказчика или руководства.
Умение быть хорошим наставником для молодых и малоопытных сотрудников, который сможет терпеливо и доходчиво объяснить нюансы работы или обучать чему-то новому
Умение проявить гибкость в случае возникновения непредвиденных трудностях
Умение логически и креативно подойти к разработке, решению поставленной задачи или проблемы
Умение сделать презентацию своей работы или проекта
Умение проявить целеустремленность и показать заинтересованность в работе над проектом и стремление довести все до конца.
Умение самообразовываться: читать профессиональную литературу, посещать семинары, курсы повышения квалификации и т.д.
Всё о профессии программиста в 2021 с нуля
6 комментариев 12 месяцев назад обновлено 3 недели назад
Программирование — это новый рок-н-рол, космические зарплаты и уверенность в завтрашнем дне. Разберемся, всё ли так на самом деле: какие бывают программисты, сколько они зарабатывают, что нужно знать и уметь, как начать карьеру в IT.
Достоверность информации гарантируем — статья вычитана и проверена десятью программистами разных специальностей.
Содержание:
Кто такой программист?
Программист — это инженер, который превращает идеи в машинный код.
Простыми словами, программист создаёт инструкции для компьютера. Компьютер выполняет эти инструкции, и получается рабочий продукт: веб-сайт, мобильное приложение, компьютерная игра.
Специализации программистов: сколько зарабатывают, что нужно знать и уметь
За термином «программист» скрываются узкопрофильные специалисты: разработчики программного обеспечения, инженеры, специалисты по безопасности и т.д. Рассмотрим основные сферы работы программиста с примерами.
01. Профессия:
мобильный разработчик
Мобильная разработка — это создание приложений для мобильных устройств: смартфонов, планшетов, гаджетов.
Где можно работать?
55% наших пользователей вообще не используют веб-версию.
Языки программирования: Java и Kotlin для Android, Objective-C и Swift для iOS, C# для Windows Phone.
Что нужно знать и уметь: у каждой платформы свой мир, свои решения и инструменты. Для работы на любой из них понадобится знание английского языка, объектно-ориентированного программирования (ООП) и паттернов архитектуры приложений (MV*).
Это базовые навыки — чтобы вырасти из стажера в специалиста, нужно учить новые технологии, например, сейчас популярна разработка на платформе Flutter. Подробнее о технологиях в статьях:
Сколько зарабатывает разработчик мобильных приложений?
По данным Хабр Карьера, средняя зп:
младшего специалиста (junior) — 59 тысяч рублей,
среднего (middle) — 115 тысяч,
старшего разработчика (senior) — 188 тысяч,
ведущего (lead) — 200 тысяч рублей.
Рост не происходит автоматически — чтобы подняться, нужно учить новые технологии.
02. Профессия:
веб-разработчик
Веб-разработка — это создание веб-приложений и веб-сайтов. Веб-разработку принято делить на фронтенд, бэкенд и фулстек.
Фронтенд-
разработчик
Как расшифровать? Фронтенд — от английского front-end, дословно — «лицевая сторона». Это лицо сайта, его интерфейс, с которым взаимодействует пользователь. Фронтендеры отвечают за работу всех видимых компонентов сайта: контент, изображения, кнопки, навигация.
Где нужен фронтенд? Везде, где есть веб-сайты: интернет-магазины, маркетплейсы, агенства и студии, СМИ, блоги, корпоративные порталы, системы автоматизации бизнеса и другие сервисы.
Базовые технологии: HTML, CSS, JavaScript и его фреймворки, TypeScript.
Что нужно знать и уметь? Фронтендер программирует интерфейс сайта, умеет пользоваться библиотеками и фреймворками, занимается адаптивной вёрсткой. Подробнее о инструментах и навыках в статьях:
Фронтендер проектирует структуру сайта и работает с заказчиком — нужны скилы дизайна UX/UI и коммуникативные навыки. Знание английского, хотя бы intermediate — обязательно для работы с кодом и самообучения.
Сколько зарабатывает фронтендер?
По данным Хабр Карьера, средняя зарплата:
младшего специалиста (junior) — 53 тысячи рублей,
среднего (middle) — 100 тысяч рублей,
старшего разработчика (senior) — 170 тысяч,
ведущего (lead) — 185 тысяч рублей.
Знание каждой библиотеки или фреймворка добавляет 10-15 тысяч к з.п.
Бэкенд-
разработчик
Как расшифровать? Бэкенд — от английского back end, дословно — тыльная сторона. Это программно-аппаратная часть сервиса, его внутренности.
Бэкенд-разработчик создаёт функции сайта, которые доступны пользователю через интерфейс. Например, фронтенд — это форма регистрации и корзина на сайте, а бэкенд — это связка полей формы регистрации с корзиной, база данных и интеграция с платёжным сервисом.
Где можно работать? Как и в случае с фронтендом — везде, где есть сайты и приложения.
Языки программирования: PHP, Python, JavaScript, Java, C#, Go, C/C++.
Что нужно знать и уметь? Бэкендер программирует на «серверных» языках, знает веб-фреймворки, работает с базами данных, пишет юнит-тесты. Подробнее в статьях:
Бэкендер, в отличии от фронтендера, может быть интровертом — это работа по техзаданию, контакт с заказчиком и пользователями ограничен. Как и в случае с фронтендом, знание английского — обязательно для работы и самообучения.
Сколько зарабатывает бэкенд-программист?
По данным Хабр Карьера, средняя зарплата:
стажёра — 35 тысяч рублей,
младшего специалиста (junior) — 55 тысяч рублей,
среднего (middle) — 105 тысяч рублей,
старшего разработчика (senior) — 170 тысяч,
ведущего (lead) — 185 тысяч рублей.
Фуллстек
разработчик
Как расшифровать? Фулстек — от английского full stack, полный стек технологий. Full Stack Developer — это универсальный программист, который может с нуля разработать функциональный продукт.
Что нужно знать и уметь? Разработчик фул-стек разбирается как в бэкенде (программно-аппаратная часть сервиса), так и во фрнтенде (интерфейс пользователя). Также, фулстек может быть внутри определенной технологии — например, full-stack JavaScript.
Есть мнение, что фул-стек разработчик — это миф. Невозможно владеть всеми технологиями одновременно и следить за разработками во всех стеках.
Где можно работать? Компании открывают должность Full Stack по разным причинам. Например, проект не сложный технически, но требует частых изменений — в таком случае, одному человеку будет проще разобраться.
Иногда фул-стека нанимают из соображений экономии, когда нет денег на целый отдел IT. В этом случае, фул-стек часто становится эникейщиком и заниматься вообще всем, в том числе заправляет принтер. 🙂
Фулстек программисты в IT-компаниях часто становятся директорами. Фулстек — это зона роста для фронтенд и бэкендера. При этом, бэкенд ближе к фулстеку технологически.
Вас могут заинтересовать статьи:
03. Профессия:
системный программист
Простыми словами, системное программирование — это программирование железа на машинном языке. Синоним: низкоуровневое программирование, LLP (low level programming).
Технологии: языки низкого уровня, а также язык Си.
Язык низкого уровня — это язык ассемблера, машинный код. Это команды для процессоров и микроконтроллеров. Код уникальный и не переносится с платформы на платформу. Для сравнения, языки высокого уровня (Java, Python, C++) — это «человеческие» языки программирования, словесные команды, которые переводятся в машинный код на компиляторе и работают на разных платформах.
Какие нужны навыки? Знание архитектуры процессора и памяти, опыт программирования на языке высокого уровня, работа с цифровой схемотехникой.
Системный программист — это полный универсал: мне приходилось как писать код, так и отлаживать железо. И часто возникала необходимость что-то паять самостоятельно. Часто собеседования на вакансию системного программиста выглядят как поиск специалиста по электронике.
Где можно работать? Везде, где нужно программировать процессоры, микроконтроллеры, драйверы:
Сколько зарабатывает системный программист?
Многие системщики работают на производствах и в государственном секторе, зарплата там ниже, чем в IT. Старший системщик в профильной IT компании может получать 100-150 тысяч рублей.
04. Профессия:
дата сайентист
Data Scientist — это программист-аналитик, который работает с большими данными и занимается машинным обучением.
Большие данные, big data — это массив неструктурированной информации, которую нужно собрать, обработать, найти закономерности и сделать выводы.
Машинное обучение — это настройка нейросетей для работы с big data.
Языки программирования: Python, R, SQL.
Что еще нужно знать и уметь? Обязательно знать математику и методы статистики. Также, нужно знать алгоритмы машинного обучения и уметь работать с базами данных.
Где можно работать? Прогнозы, аналитика и математическое моделирование нужны везде: в бизнесе, финансах, на производствах, в медицине и сельском хозяйстве.
В сфере IT, дата-сайентист разрабатывает ботов и алгоритмы. Например, Youtube и Instagram написаны на Python, а искусственный интеллект подбирает рекомендации и администрирует платформу.
Развивающиеся сферы: NLP (natural language processing — распознавание человеческой речи), компьютерное зрение, разработка алгоритмов искусственного интеллекта.
Сколько зарабатывает дата сайентист?
По данным HH.ru, джуниоры получают от 70 тысяч рублей, а опытные специалисты в среднем зарабатывают 200 тысяч рублей в месяц.
05. Профессия:
DevOps инженер
Как расшифровать? DevOps — сокращенное от development and operations. Означает взаимодействие людей, занимающихся разработкой, тестированием и операциями. Это метод автоматизации разработки, задача — быстрый выпуск качественного ПО. Девопс охватывает весь процесс производства софта: от написания кода, до релиза и поддержки.
Девопс-инеженер совмещает несколько профессий: системного администратора, разработчика, тестировщика и менеджера. Считается, что девопс — это роль для опытного сисадмина.
Что нужно знать и уметь? Девопс умеет настраивать железо и адаптировать под него код. У него есть опыт администрирования ОС Windows и Linux, он умеет работать с инструментами автоматизации, тестирования, оптимизации. Девопс может написать скрипты и код, разбирается в сетевых технологиях. Подробнее о навыках в статьях:
Еще одна специализация — это DevSecOps, Security Development. Это работа с недостатками и уязвимостями приложений. Подробнее в статье Страх и ненависть DevSecOps.
Где можно работать? В компаниях, которые разрабатывают приложения и управляют серверами. Девопсов любят IT-гиганты вроде Amazon и Facebook.
Сколько зарабатывают DevOps? Девопс-инженеры зарабатывают больше всех в айти. По данным hh.ru, начинающие девопсы получают от 100 тысяч, а опытные специалисты — от 250 тысяч рублей в месяц.
06. Профессия:
разработчик ПО
Разработка прикладного программного обеспечения — это проектирование, написание, тестирование и поддержка программ, предназначенных для пользователя. Примеры прикладного ПО: текстовые и графические редакторы, веб-браузеры, компьютерные игры, системы автоматизации для бизнеса. Синоним: десктоп-приложения.
Каждый разработчик ПО умеет программировать, но не каждый программист может разрабатывать ПО.
Разработчики программного обеспечения — это девелоперы и инженеры, которые делают ПО с нуля. Между позициями разработчика и инженера ПО есть различия.
Инженер — это опытный архитектор, который проектирует ПО с нуля. В то время как разработчик сосредоточен на определенном куске ПО, инженер видит big picture и контролирует полный цикл. Инженера можно сравнить с фулстеком.
У Software Engineer обычно очень большой кругозор. У американцев есть отличная поговорка: когда у тебя есть только молоток, все вокруг выглядит как гвоздь. Поэтому меня раздражают позиции с названиями типа Java Engineer или Ruby Engineer. Инженер не может быть привязан к языку.
Языки программирования: Python, С#, Java, JavaScript, C, C++, Delphi.
Подробнее о технологиях в статьях:
Где можно работать? В IT компаниях, которые разрабатывают прикладное ПО. Пример: вакансия в Яндексе.
Сколько зарабатывают разработчики ПО? ЗП зависит от опыта и знания конкретных технологий. По запросу software developer на hh.ru видим, что младшим специалистам (junior) в среднем предлагают 100 тысяч рублей, а старшим специалистам — от 200 тысяч рублей.
07. Профессия:
тестировщик (QA-инженер)
Тестировщик — это QA-инженер, который ищет ошибки в ПО, проверяет его качество и соответствие техзаданию.
Как расшифровать? QA — от английского Quality Assurance, проверка качества.
Младший тестировщик тестирует программы вручную, без скриптов и кода, по заранее описанным планам. Опытные инженеры по тестированию самостоятельно пишут и проводят тест-планы — часто автоматизированные, с использованием скриптов и языка программирования.
Должность тестировщика — оптимальное начало карьеры в IT, т.к. эта специальность проще других технически. QA-инженеры видят продукт со всех сторон. Пути развития — уйти в менеджеры, разработчики, либо стать ведущим специалистом по QA.
Что нужно знать и уметь? Для старта, потребуется опыт работы в технической поддержке, понимание архитектуры ПК, Linux, сетевых моделей OSI, знание основ программирования на любом популярном языке, навыки работы с инструментами тестирования.
Инструменты: багтрекеры (Bugzilla, Jira), инструменты автоматизации (Selenium), сетевые утилиты (Wireshark). Подробнее о технологиях в статьях:
Где можно работать? В IT-компаниях, разрабатывающих софт, игры, мобильные приложения, системы безопасности и т.д.
Сколько зарабатывает тестировщик?
По данным Хабр.Карьера, средняя зп:
стажёра — 35 тысяч рублей,
младшего специалиста (junior) — 50-60 тысяч рублей,
среднего (middle) — 70-80 тысяч,
старшего специалиста (senior) — от 100 тысяч рублей.
Где учиться
на программиста?
01. ВУЗы
Зачем нужно высшее образование в IT?
Абитуриенту лучше выбрать факультет информатики, либо физику, математику и другие технические специальности. Для поступления нужно сдать ЕГЭ по математике, физике или информатике, русскому языку. Вас может заинтересовать статья про высшее техническое образование для абитуриентов.
Если у вас уже есть высшее образование, можно пойти на второе высшее, выбрав заочную или вечернюю форму обучения для экономии времени. Вас может заинтересовать статья про второе высшее техническое образование.
Нужна ли программерам вышка — больной вопрос для общества. Он всегда вызывает дискуссии с переходом на личности. Я встречал отличных программеров как с вузовскими дипломами, так и с девятью классами образования. Но с дипломами я их встречал больше. Возможно, их просто в принципе больше.
Альтернатива и обязательное дополнение к высшему образованию — это онлайн курсы и онлайн-школы.
02. Курсы и школы
Это кратчайший путь в IT для всех желающих.
Достоинства курсов: структурированная информация, свободный график, домашние задания, работа с наставником.
Недостатки: свободный график требует самодисциплины, в любом случае придется много работать и усердно учиться, знания не вкладываются в голову автоматически.
Список лучших ресурсов для IT образования:
03. Книги для программистов
Для каждой специальности есть свой набор книг. Это список книг, которые могут быть полезны всем.
Как стать разработчиком с нуля
Авторизуйтесь
Как стать разработчиком с нуля
Как стать программистом и с чего следует начать, если нет практического опыта, а представление о программировании весьма размытое? Подробно рассказываем, как стать востребованным программистом с нуля и на что обращать внимание в ходе обучения.
1. Кто такой программист
Программист — это специалист по разработке компьютерных программ. Под разработкой понимается продумывание архитектуры программы, её реализация, оптимизация и тестирование. Далее мы разберёмся, как стать настоящим айтишником и что для этого нужно знать.
1.1 Чем занимается программист
Это зависит от специфики выбранной отрасли, но в целом всё сводится к написанию и тестированию кода. Важно понимать свои обязанности и не скатываться в звание тыжпрограммиста, которому поручают всё — от установки Windows до починки техники.
1.2 Можно ли стать айтишником с нуля
Разумеется. Для этого существуют материалы, ориентированные на новичков: туда входят статьи, подборки книг, обучающие приложения, задачки, видеоуроки и туториалы.
А вот как стать крутым программистом с нуля — другой вопрос. К примеру, Senior разработчика от джуна отличают годы практики и колоссальный опыт, так что только терпение и труд.
2. Почему вы хотите начать программировать
IT — перспективная отрасль, которая сулит хорошим специалистам немаленькие зарплаты. Но если деньги — единственная причина, подумайте трижды. Вам предстоит работать в офисе, дома, забывать о выходных и возможности расслабиться: все мысли в тасках и багах. А всё, что обязательно нужно знать начинающему программисту, курсы не дадут: будьте готовы доучиваться.
Если же вы питаете неподдельный интерес к процессу, смело ступайте на стезю разработки.
3. Что нужно знать, чтобы стать программистом
Чтобы стать успешным и востребованным программистом, нужно обзавестись рядом hard skills и soft skills. Первые отвечают за технические умения и знания, вторые — за качества, которые помогают эффективно работать и находить общий язык с командой.
3.1 Hard skills
У каждой профессии свой набор хард скиллов. У программиста это общие технические знания (математика, информатика, алгоритмизация) и набор навыков, свойственный конкретному стеку.
3.1.1 Основы информатики
В такой сложнотехнической профессии понадобятся даже самые азы, а именно:
3.1.2 Математика
А как же стать настоящим программистом, если плохо с математикой, и насколько важна математика в разработке? Требования разнятся в зависимости от сферы: для работы с графикой нужно знать геометрию, а для машинного обучения — теорию вероятностей и статистику. Но базовые знания математики никогда не будут лишними, особенно если вы осваиваете программирование с нуля.
3.1.3 Алгоритмы
Это то, что нужно обязательно знать, чтобы стать программистом. Алгоритмами называют последовательность действий, которая преобразовывает входные данные в некий результат. Наверняка вы слышали об алгоритмах поиска и сортировки — это они и есть. Разобравшись, как устроены алгоритмы, вы сможете создавать свои решения сложных задач и даже комбинировать их.
3.1.4 Принципы ООП
Объекто-ориентированное программирование — это подход в разработке, при котором за основу берутся абстрактные объекты, а не функции или процедуры. Данный подход используется в большинстве современных языков программирования, поэтому крайне важно понимать основные принципы ООП:
3.2 Soft skills
Софт скилы, они же гибкие или мягкие навыки, — это совокупность нетехнических неспециализированных навыков, которые тем не менее важны для производительности и профессионального развития. Это то, что также нужно знать программисту для эффективной работы.
3.2.1 Знание английского
Необходимость английского языка в программировании зависит от ваших конечных целей. Если вы видите программирование своим хобби, то можно обойтись базовыми знаниями английского и помощью онлайн-переводчика. Но если вы серьёзно настроены на карьеру разработчика, английский язык необходим.
3–5 декабря, Онлайн, Беcплатно
3.2.2 Умение работать в команде
Программирование — это почти всегда командная работа. Как минимум, чтобы стать программистом, нужно уметь взаимодействовать с PM, тимлидом и просто камрадом по проекту.
Речь идёт не о социопатии и необходимости быть душой компании. Чтобы стать разработчиком, нужно слушать и слышать, задавать вопросы, признавать ошибки и исправлять их плечом к плечу, а не сваливать вину на сослуживцев при первой же возможности.
Для эффективной командной работы следует понимать и использовать гибкие методологии разработки. Почитайте об Agile, Scrum и Kanban — пригодится.
3.2.3 Стрессоустойчивость
Ответственность программиста сравнима с бухгалтерской. Так, запущенный на продакшене код с ошибкой может удалить часть или все данные, потревожить клиентов заказчика и вообще сделать последнему убытки.
Кроме того, вам нужно спокойно принимать пожелания и вносить правки, если требуется, не срываясь на проджект-менеджера и тем более заказчика. Хорошим подспорьем станут книги «Как разговаривать с кем угодно, когда угодно и где угодно» и «HBR Guide. Эмоциональный интеллект».
3.2.4 Постоянное саморазвитие
Не думайте, что программирование можно раз освоить и забыть. Отрасль богата переменами, нововведениями — уходом старого и появлением нового. Это и языки, и фреймворки, и сопутствующие технологии, которые всё время меняются и совершенствуются для более эффективной разработки.
Настраивайтесь на постоянные митапы, вебинары и курсы повышения квалификации. А ещё не забывайте о сертификатах, которые нужно получать и подтверждать с разной периодичностью.
3.2.5 Тайм-менеджмент
Контроль времени на решение поставленных задач существенно экономит и само время, и ресурсы, а также увеличивает продуктивность. Тайм-менеджмент для разработчика базируется на тех же концепциях, что и для любой другой профессии.
При планировании рабочего дня учитывайте дедлайны, используйте тайм-трекер и таблицу Эйзенхауэра:
4. Какое направление в программировании выбрать в 2022 году
Прежде чем думать, как стать айтишником с нуля, стоит определиться с направлением. По данным Stack Overflow Developer Survey 2020, популярность IT-специальностей такова:
В опросе приняло участие 65 000 разработчиков из разных стран.
Но что насчёт России? Согласно данным «Университета 20.35» за 2020 год, в топ-10 востребованных удалённых ИТ-профессий России вошли:
А вот зарплаты айтишников по специализациям за второе полугодие 2020:
Проценты на диаграмме отражают разницу с предыдущим периодом, а прочерк означает, что данных для сравнения недостаточно.
5. Десктопная разработка
Десктопными называют приложения, которые устанавливаются на компьютер и работают под управлением ОС. Как известно, чтобы стать айтишником с нуля, сперва в любом случае нужно практиковаться на консоли и десктопе.
Хотите заниматься этим на серьёзном уровне? Здесь всё просто: если планируете разрабатывать под Windows — учите язык C#, под Linux — C++ или C, под macOS — Swift.
5.1 Программы для Windows
Стоит отметить, что для создания десктопных приложений можно использовать почти любой язык: Java, Python и даже Delphi. Мы же затронем самые оптимальные и популярные языки.
5.1.1 C# / C++
5.2 Для Linux
5.2.1 C
Linux — это семейство Unix-подобных операционных систем, и так сложилось, что ядро Linux написано на языке C. Да, Си считается устаревшим, поэтому многие программисты предпочитают ему Python, Java, Perl, иногда Ruby. Но драйверы, модули ядра и большая часть системного ПО всё же написаны на языке программирования Си, и для Linux-программ он приоритетен.
Если вас интересует, как стать разработчиком на языке C, загляните в материалы по изучению Си.
5.2.2 C++
По сути, это усовершенствованный С. Браузеры, графические окружения, утилиты GNU и прочее программное обеспечение под Linux написаны на C++. А ещё на «плюсах» написан Qt — графический фреймворк, который используется во многих кроссплатформенных программах и является бесплатным для разработки свободного ПО.
5.3 Для macOS
5.3.1 Swift
Swift — родной язык для Apple-приложений, так что он оптимален для разработки под macOS. Выбрать можно и Objective-C, но последний проигрывает в скорости работы.
6. Data Science
Языки программирования Python и R — общепринятый стандарт для Data Science, так как они оба отлично подходят для работы со статистикой.
6.1 Python
Как стать Python программистом с нуля самостоятельно? На самом деле, не так уж сложно: у языка Пайтон простой синтаксис, много библиотек, развёрнутая и понятная документация. Но есть и минусы, такие как отсутствие удобных средств ORM и не самая высокая скорость работы.
Для Data Scientist у Python есть немало библиотек и фреймворков:
R в свою очередь характеризуется богатой ML-экосистемой, поддержкой векторных вычислений и синтаксисом, заточенным под нужды статиста. Из минусов — меньшее комьюнити и не самый простой синтаксис.
Но у языка R есть свои инструменты для Data Science:
И это не говоря о randomForest, Caret и других библиотеках с методами машинного обучения.
7. Как стать разработчиком на Андроид
В 2019 году компания Google объявила Kotlin предпочтительным языком программирования для создания Android-приложений. Это спровоцировало новую волну споров по выбору языка.
Ответ таков: чтобы стать Android-разработчиком, нужны оба языка, но при этом ознакомиться с их отличительными характеристиками не помешает.
7.1 Java
7.2 Kotlin
8. План развития iOS разработчика
А как же тогда стать разработчиком iOS? Здесь всё гораздо проще, так как основной язык всего один.
8.1 Swift
Этот язык программирования разработан Apple и многое заимствовал из Objective-C, а также C++.
9. Как стать разработчиком игр
Что нужно знать программисту, чтобы войти в геймдев? Сперва необходимо определиться, как устроены игры. Хороший вариант для начинающих — готовые движки, такие как Unity и Unreal Engine (но последний сложнее и серьёзнее).
Далее стоит определиться с платформой, под которую вы хотите разрабатывать игры. Поэтому на вопрос, что нужно знать разработчику игр, ответить не так просто.
9.1 Игры на iOS или macOS
Поговорим о программировании игр на Swift. Для начала необходимо установить «яблочную» IDE Xcode: в ней поддерживается разработка как на iOS, так и на macOS. Среда бесплатная и функциональная. В ней создайте новый проект с шаблоном Single View Application или Game. Тут уж к чему душа лежит:
9.2 Браузерные игры
Вообще, создать браузерную игру можно и на HTML/CSS/JavaScript, но мы затронем PHP.
9.2.1 PHP
PHP актуален для разработки браузерных игр, хоть и не заточен под них специально. Такие компании, как Funzio, Gameforge, Goodgame Studios и другие продолжают использовать этот язык в своих играх.
Есть исчерпывающий видеокурс по созданию браузерной игры на PHP — от настройки окружения до регистрации и авторизации:
9.2.2 JavaScript
После ухода тяжеловесной технологии Flash из браузеров у JavaScript-разработчиков появилось много возможностей. Сейчас есть сильная альтернатива — элемент Canvas в HTML5 для создания двухмерных изображений через JavaScript-команды.
Чтобы понимать принцип создания игр на JS, проанализируйте код рандомайзера с угадыванием чисел.
Как только освоите азы, попробуйте написать что-то сложнее. В этом видеоуроке как раз используются чистый JavaScript и HTML5 Canvas:
9.3 Игры на Unity
Это популярная платформа для разработки игр. Очень дружелюбна к новичкам: можно бесплатно загрузить и обучаться с помощью курсов, словарей и других материалов, которые предоставляет компания и участники сообщества. Платформа поддерживает создание 2D- и 3D-игр.
Игры на Unity пишут с использованием языков C# и JavaScript. Почитайте, как создать простую 2D-игру на Unity.
9.4 Современные большие и требовательные игры
Речь о тяжеловесных многопользовательских играх с сильной нагрузкой на сервер. Такая задача под силу языкам C и C++.
9.4.1 C++
Что нужно знать начинающему программисту о C++? Это самый популярный язык программирования для геймдева: быстрый, мощный, с большим набором полезных инструментов. C++ — практически неограниченные возможности в среде масштабных проектов, в том числе в создании 3D-игр со сложной графикой и анимацией.
Не даром ведущие разработчики многопользовательских игр, такие как Blizzard Entertainment, работают с C++. На нём написаны World of Warcraft, Diablo, StarCraft, Counter-Strike и другие популярные игры. В основе Xbox и PlayStation также лежит C++.
9.4.2 С
Да, язык не такой популярный, как «плюсы», но по-прежнему хорошо справляется с большими нагрузками — альтернатив на низком уровне нет. Когда дело доходит до компиляции, сложно представить, какой бы язык мог конкурировать с Си.
10. Как стать Python разработчиком
Чтобы стать питонистом, нужно начинать с азов, таких как принципы ООП и синтаксис языка. А понимание того, как стать программистом Python, придёт с определением сферы деятельности. Основных направления для Пайтон-разработчиков два:
Поскольку первое направление мы уже разобрали, сосредоточимся на веб-разработке. Что же что нужно знать Python веб-разработчику? Обратите внимание на фреймворки Django и Flask. Для эффективной работы с бэкендом достаточно одного из них, но в идеале следует понимать оба.
Python можно использовать для создания десктопных приложений, геймдева и мобильной разработки, но наилучших показателей с этим языком можно достичь в перечисленных направлениях.
11. План развития Java-программиста
А как можно стать Java разработчиком, если никогда не был программистом? Базис для всех языков плюс-минус одинаков: синтаксис, переменные, условия, циклы, ООП. Для решения специфических задач нужно освоить инструмент сборки и управления проектом Maven. Будет полезен и набор open source сервисов Netflix Stack.
Дальше всё зависит от выбранного направления в Java:
Все материалы по этим направлениям, инструменты и путь развития вы найдёте в дорожной карте Java-программиста.
12. Бэкенд разработка — с чего начать?
Как стать бэкенд разработчиком? Нужно понимать, как устроены операционные системы, уметь работать с терминалом, знать стандарты POSIX и концепции построения сети, управлять вводом и выводом (I/O), процессами, а также памятью.
12.1 Обучение PHP
Как вы могли догадаться, стать бэкенд-разработчиком без знания языка невозможно.
PHP принято считать стандартом бэкенд-разработки, так как на нём написано множество веб-проектов, включая Facebook, Viber, Yahoo, YouTube, Wikipedia и даже движок WordPress, на котором вы сейчас читаете эту статью.
Другие преимущества PHP:
12.2 Обучение Node.js
Как известно, стать бэкенд веб-разработчиком на JavaScript можно с программной платформой Node.js. Она позволяет запускать JavaScript-код без браузера на бекенде, а в пакетной экосистеме npm есть много готовых решений.
12.3 Обучение Java
Мы уже разобрались, как можно стать Java программистом с нуля — поговорим прицельно о роли языка в бэкенде.
Для новичка Java сложнее, чем условный Python или PHP, да и код выйдет более громоздким. Однако это мощный инструмент в создании больших веб-проектов вроде eBay или LinkedIn, которые как раз и написаны на Java.
12.4 Обучение Django
Задаётесь вопросом, как стать веб разработчиком, зная Python? Используйте для этого Django — полнофункциональный веб-фреймворк, который предоставляет достаточно готовых решений для серверной части.
12.5 Основы SQL
Это язык запросов для работы с базами данных. Вы вряд ли вы найдёте по нему гайд в разделах «Как стать программистом», ведь SQL нужно не учить, а понимать.
Держите материалы, которые позволят разобраться в основах SQL:
13. Как стать фронтенд разработчиком
Итак, frontend программирование — с чего начать? Вам нужно освоить HTML, CSS и JavaScript — три кита, на которых стоит фронтенд-разработка.
13.1 Обучение HTML
Разметка — это каркас сайта. Чтобы работать с фронтендом, следует хорошо понимать анатомию HTML-разметки, знать основные атрибуты и теги, обеспечивать доступность и освоить SEO хотя бы на базовом уровне.
Для лучшего понимания рекомендуем ознакомиться с видеокурсом «HTML5 для начинающих».
13.2 Обучение CSS
Далее идут каскадные таблицы стилей. В разрезе CSS вам нужно освоить:
Это базис. Следующим этапом можно переходить к медиа-запросам, которые позволят учитывать технические параметры разных устройств. В создании адаптивного отзывчивого дизайна помогут CSS Grid и Flexbox.
13.3 Обучение JavaScript
Ну и как стать эффективным фронтенд разработчиком без знания JavaScript? Именно он отвечает за функциональность сайта и возможность с ним взаимодействовать: заполнение и отправка форм, нажатие кнопок, прослушивание событий и многое другое.
Не спешите осваивать фреймворки — сперва чистый JavaScript. Это язык со слабой типизацией, а значит операция вроде 2 + “2” вместо ошибки выдаст результат 22. Так что есть с чем разбираться и без фреймворков.
Больше полезных материалов и инструментов для фронтенд-разработчика вы найдёте в дорожной карте по фронтенду.
14. Full Stack разработка
Эдакий гибрид frontend- и backend-разработки. Данное направление набирает популярность. Сейчас сложно найти чистых фронтендеров или бэкендеров: для взаимодействия этим специалистам нужно знать, за что отвечают их коллеги по вебу.
Фуллстек-разработчик не будет одинаково хорош в разработке серверной и клиентской части. Но как стать чистым Full Stack разработчиком, и чем вообще занимаются эти специалисты?
Хороший пример — CRM-разработчик. В его обязанности входят:
Здесь также применимы инструменты вроде Bootstrap или Angular, но без фанатизма — важно создание рабочего функционального продукта.
15. Какой язык программирования выбрать в 2022 году
Всё ещё не определились с языком? Для начала взгляните на рейтинг TIOBE:
А теперь давайте пробежимся по самым популярным языкам программирования, затронем их сильные стороны и уточним сферы применения.
15.1 Python
Как уже говорилось ранее, стать Python программистом с нуля самостоятельно несложно, ведь у языка низкий порог вхождения и понятный синтаксис. Пайтон рекомендуется к изучению в вузах в качестве базового языка.
Основные сферы применения Python:
15.2 JavaScript
О сферах применения JS говорить не стоит: язык давно стал лидером в веб-разработке, сперва захватив фронтенд, а теперь и отжимая бэкенд за счёт Node.js. Если хотите разрабатывать веб-приложения, учите JavaScript.
15.3 Java
Java — это кроссплатформенный язык программирования, мощный обработчик и внушительная библиотека. У Java много готовых решений и исчерпывающая документация.
Основные сферы применения Java:
15.4 C++
Быстрый, универсальный и полезный в качестве фундамента язык. Да, пусть Python в разы проще, но за сложностью C++ скрываются и преимущества. Освоив «плюсы», будет легче понять Java, C# и JavaScript, в основу которых легли принципы C++.
Главные сферы применения C++:
15.5 С#
C# часто сравнивают с Java, и у них действительно много общего. Код на C# удобочитаемый, а синтаксический сахар обеспечивает высокую скорость разработки.
Основные сферы применения C#:
По этому видеокурсу вы узнаете, как стать C# разработчиком.
15.6 PHP
Это бессмертная классика серверной части веб-приложений. PHP бюджетен, прост в освоении и успел обрасти внушительным комьюнити. Пусть современные сайты и пишутся то на Java, то на Node.js, существует огромная база написанных на PHP веб-приложений, которые всегда будут нуждаться в поддержке.
15.6 Kotlin
Здесь только Андроид. Но, как говорилось ранее, чтобы стать Android разработчиком с нуля, стоит начать с изучения Java, а только после переходить на Kotlin.
15.7 Swift
Если хотите писать десктопные и мобильные приложения для Apple устройств, осваивайте Swift. Это компактный и производительный язык программирования, который постоянно совершенствуется компанией Apple.
15.8 На что обратить внимание при выборе
На отрасль, в которой желаете развиваться. Но чтобы понять, как стать программистом и с какими трудностями придётся столкнуться, рекомендуем начать с C или C++, после которых любой другой язык освоить куда проще.
Если же вы точно определились, с чем именно хотите работать, смело выбирайте язык, который для этого подходит. Опирайтесь на рейтинги популярности, просматривайте вакансии по желаемому направлению в вашем городе, сравнивайте уровень востребованности и зарплаты.
16. Где выучиться на программиста
Чтобы ответить на вопрос, где учиться на программиста, необходимо рассмотреть все доступные варианты.
16.1 Самостоятельная учеба
Обилие книг, видеоуроков и сервисов вроде Scratch позволяет освоить базис, не выходя из дома. Но как выстроить план обучения, чтобы стать программистом с нуля самостоятельно? Обратитесь к стандартным программам обучения или роадмапам. Чаще всего основы включают в себя:
16.2 ВУЗ
Это более основательный подход, и, вопреки распрсотранённому заблуждению, «корочка» IT-специалиста действительно ценится, особенно в крупных компаниях. Если вы серьёзно настроены на карьеру в IT и думаете, где учиться на программиста, выбирайте вуз.
16.3 Практические курсы
К курсам можно относиться по-разному, но если у вас нет профильного образования и вы не хотите тратить несколько лет в вузе, курсы — хороший вариант. К тому же, современные курсы покрывают практически все нужды, обеспечивая обучение основам программирования, более продвинутым темам, помогая с составлением резюме и трудоустройством.
16.4 С помощью ментора
Мы уже разобрались, как можно стать айтишником с нуля дома, но не затронули менторство. Всё потому, что оно не всегда подразумевает обучение на дому: это может быть как онлайн-репетитор, так и индивидуальные занятия оффлайн.
Ментор не только объяснит материал, но также обратит ваше внимание на ошибки, которые вы допускаете на практике. Внимание наставника не растекается по группе людей, а сосредоточено именно на вашей работе, что даёт более прицельное обучение программированию.
17. Классификация разработчиков
Когда люди говорят, что программисты много зарабатывают, они чаще всего подразумевают сеньоров. Давайте разберёмся, какие уровни IT-специалистов существуют и чем разнятся.
17.1 Стажёр
Стажёр — это вчерашний студент, который набивает шишки на практике. Обычно это низкооплачиваемые сотрудники, которых компания нанимает специально, чтобы взрастить нужного специалиста.
Стажировка может быть как оплачиваемой, так и неоплачиваемой: всё зависит от договорённости с нанимателем. Продолжительность стажировки оговаривается индивидуально. Чаще к стажёру приставляют ментора от компании.
17.2 Junior разработчик
Как правило, чтобы стать Джуниор программистом, достаточно освоить синтаксис языка, простые задачи решать самостоятельно, а сложные — заручившись помощью более опытного коллеги. Младший разработчик постоянно учится, совершенствует свои навыки. Его код нуждается в постоянном ревью.
17.3 Middle разработчик
У такого программиста уже есть опыт в разработке, он самостоятельно выполняет сложные задачи, но по-прежнему нуждается в ком-то, кто направит. Чаще стек технологий Мидла ограничен необходимым базисом. Нередко он знает, как выполнить поставленный таск, но не до конца понимает, как его решение интегрируется в готовый проект.
17.4 Senior разработчик
Сеньор, или старший разработчик, уже обладает широким кругозором, знает несколько языков программирования и технологий, способен с нуля создать архитектуру проекта с учётом его будущего развития. Senior программисты продолжают совершенствовать навыки, но при этом способны генерировать собственные идеи и делиться ими с командой.
Переход между перечисленными уровнями требует не столько времени, сколько усердия со стороны самого разработчика.
18. Как стать Junior-разработчиком
Здесь опять всё упирается в выбранную отрасль: у каждой специальности свои требования. Давайте разберёмся, что нужно знать младшему программисту на примере веба и мобильной разработки.
18.1 Frontend Junior
Сразу оговоримся, что алгоритмы, Git, тестирование и прочий базис мы затрагивать не будем, так как это актуально для всех направлений.
Итак, что же нужно знать младшему Frontend разработчику в 2022 году?
18.2 Backend Junior
К младшему бэкенд программисту иные требования. Он должен знать:
Плюсом будет умение установить и настроить хотя бы один из популярных веб-серверов: Nginx, Apache, Caddy или MS IIS.
18.3 Junior iOS
Чтобы влиться в iOS-разработку, нужно:
18.4 Junior Android
Как уже говорилось, начать следует с выбора языка, но за основу лучше взять именно Java, а при необходимости дополнительно изучить Kotlin. Далее:
19. Где работают программисты
Сложно ответить на вопрос, где в целом работают программисты, потому что сегодня профессия требуется чуть ли ни в любой сфере.
19.1 Фриланс
Как стать айтишником на фрилансе? Для этого есть немало площадок: Upwork, Weblancer, Kwork, FL и другие. Но будьте готовы нарабатывать портфолио и репутацию, а для этого первое время придётся перебиваться дешёвыми заказами.
Большой плюс — знание английского и умение строить вопросы на получение исчерпывающих ответов: вы сами себе PM, тимлид и разработчик.
19.2 Компании аутсорсеры
Также ласково называемые галерами. А всё потому, что от сотрудников часто требуется многозадачность за зарплату одного специалиста.
Но не всё так плохо. Во-первых, аутсорсинг — это готовые задачи, которые на фрилансе нужно выбивать, доказывая свою профпригодность. Здесь же менеджеры сами договариваются и берут нужный таск. Во-вторых, корпоративная жизнь предполагает бесплатный чай/кофе, абонементы в спортзал, тимбилдинги, корпоративы и вообще комфортную работу. Не всегда, но в крупных компаниях это так.
19.3 Стартапы и небольшие компании
Неплохо для начинающих программистов и опасно для опытных, которые готовы ради этого бросить более крупную «рыбу». В стартапах всегда есть риски:
Но это хороший опыт для стажёров, которые всё ещё думают, как стать программистом, младших разработчиков и тех, кто хочет уйти от фриланса.
19.4 Банки и энтерпрайз
Здесь потребуется разработка, направленная на решение проблем бизнеса, а не конечных пользователей. Именно поэтому в банки и бизнес-отрасли часто набирают только Senior-программистов, так как нужно дописывать и поддерживать готовые проекты, нередко с Legacy-кодом. Зарплаты обычно выше средних на рынке, а от самого разработчика требуется терпение и исполнительность.
19.5 Продуктовые компании
Если аутсорсинг сосредоточен на разноплановости, ограниченных сроках и бюджете, то продуктовая компания — на эффективном управлении своими решениями. Во втором случае никто не будет требовать от вас проект на вчера и ведение сложных переписок с кучей недопониманий. К тому же, вы явно будете видеть свой вклад в развитие одного большого проекта.
Как стать разработчиком продуктовой компании? Точно так же, как и аутсорсинговой, но будьте готовы, что требования могут быть выше, ведь компания ищет программиста непосредственно для себя, а не для левого дяди.
Где ещё можно работать программистом? Это фриланс, open source и собственные проекты.
20. Как найти первую работу в IT
Всё чаще поднимается вопрос поиска и найма недооценённых специалистов — без диплома или соответствующего опыта работы. Исходя из этого, что же всё-таки нужно знать начинающему программисту?
Для начала вы должны показать, что нанять вас выгодно. В этом помогут теоретическая база, опыт в других сферах, знание английского и мотивация. Можно изобразить это так:
20.1 Где брать проекты для портфолио
Если в поисках ответа на вопрос, где можно выучиться на программиста, вы выбрали курсы, практический опыт гарантирован: курсы для разработчиков не обходятся без написания проектов. То же касается и вузов, где присутствует обязательная практика.
Сложнее будет, если вы самоучка. Но и здесь можно что-то придумать:
20.2 Как составить резюме, если нет опыта
Последний пункт в резюме программиста может выглядеть примерно так:
20.3 Где искать вакансии и работу
О фриланс-сервисах мы уже говорили, потому затронем платформы по поиску работы в офисе или в ремоут-режиме. Для России и стран СНГ лучшие сайты с вакансиями для программистов это:
20.4 Как общаться с рекрутерами
Как вы понимаете, стать хорошим программистом в обход общения с HR невозможно. На собеседовании не стесняйтесь озвучивать свои желания и вопросы. Если на всё кивать головой, как автомобильная собачка, после трудоустройства можно обнаружить себя в крайне некомфортных условиях работы. Мы подготовили 13 вопросов работодателю, которые стоит задать на собеседовании.
Несмотря на это, нужно вести себя в меру сдержанно, демонстрировать серьёзность и говорить о своей мотивации.
21. Что спрашивают у Джунов на собеседовании
Огромный пласт вопросов приходится на теорию, чуть меньше занимает практика. Перед собеседованием изучите информацию о компании — обязательно спросят, почему именно она вас заинтересовала. Также подготовьтесь к каверзным вопросам рекрутера.
Будут и логические задачи. При этом ответ не обязательно должен быть верным — важно озвучивать ход мыслей, показывать, как именно вы пришли к тому или иному решению.
Из задач встречаются алгоритмы поиска и сортировки, расчёты, работа со строками и списками, оптимизация готовых решений.
Другие вопросы, которые могут прозвучать на собеседовании:
Всё остальное будет касаться выбранного языка.
22. Что делать, если вам не хватает знаний до вакансии Джуниор-программиста
Трудоустроиться после первого же интервью почти нереально. Не расстраивайтесь из-за отказов, а используйте их с пользой. Как же стать востребованным айтишником с нуля? Будьте готовы набивать шишки на собеседованиях, запоминать или записывать вопросы, которые ранее не встречались, включать их в программу подготовки к собеседованию.
23. Заключение
Надеемся, этот гайд ответил на вопрос, как стать программистом, дал полезные советы и материалы, а также мотивировал на покорение новых вершин.
Остались вопросы? Задайте их в комментариях.

























