10 языков программирования для легкого входа в IT
Если вы хотите стать разработчиком и работать в IT — нужно научиться кодить. Рассказываем про 10 языков программирования, с которых проще всего начать.
Какие бывают языки программирования?
В мире около 9000 языков для разработчиков. Из них реально востребованы — всего 15–20. Чтобы выбрать, на чем лучше программировать, определитесь, чем именно вы хотите заниматься: писать ПО, верстать сайты, делать игры или создавать мобильные приложения.
Сфера применения
Языки программирования
Мобильная разработка
Java, C++, Kotlin, JavaScript
iOS-разработка
JavaScript, Swift
Frontend-разработка
JavaScript, Kotlin
Создание web-серверов
Python, PHP, JavaScript, Java, Ruby
C++, C#, JavaScript
Machine Learning
Java, Python
Создание программ для ПК
Java, Python, C++
Определите интересное вам направление, а затем выберите язык программирования. Лучше начинать с самых простых языков, а после переходить к тем, которые нужны непосредственно для работы. Как правило, востребованный разработчик свободно владеет одним-двумя языками.
Профессия / 9 месяцев
Frontend-разработчик
Создавайте интерфейсы сервисов, которыми пользуются все
2 590 ₽/мес 4 317 ₽/мес
Пройдите наш тест и узнайте, какой язык программирования вам подойдет. Ссылка в конце статьи.
Самые простые языки программирования
Logo
Его создали в 1967 году, чтобы вовлечь детей в программирование. Logo до сих пор активно используют для обучения школьников. Базовое упражнение в Logo — это перемещение черепахи. Управлять ей можно при помощи простых команд FORWARD (вперед), BACKWARD (назад) и т.д. Нужно лишь указать длину шага в пикселях. Перемещаясь по экрану, черепашка оставляет след и «рисует» фигуры. Всего в базовых версиях Logo около 30 разных команд. Несмотря на то что Logo выглядит как игра для школьников, он способен выполнять довольно сложные операции, например, решать уравнения с факториалами. Это хороший старт для тех, кто хочет попробовать себя в IT. Однако одного Logo вряд ли будет достаточно, чтобы начать зарабатывать.
Basic
Компьютерный язык, созданный корпорацией Microsoft. Название Basic составлено из первых букв фразы «Beginner’s All-purpose Symbolic Instruction Code», что можно перевести на русский как «многоцелевой язык символических инструкций для начинающих». Иными словами, Basic — это система алгоритмов для общения пользователя и компьютера. Подойдет начинающим пользователям, которые не изучают углубленно высшую математику, но хотят самостоятельно решать проводить вычисления при помощи кода. В первых вариантах языка Basic было не более 20 ключевых слов. Сейчас это целое семейство родственных языков. При этом для них нет единого стандарта. Разные версии языка существенно отличаются. Например, для большинства языков Basic не важен регистр — можно написать PRINT или print, и смысл команды не изменится. В то же время система Liberty BASIC чувствительна к регистрам. С Basic удобно начинать изучать программирование. Он простой, продуктивный, у него невысокие системные требования. Также он достаточно быстрый и подходит для решения несложных деловых задач. Но серьезные программы на нем не напишешь.
HTML и CSS
HTML и CSS — это языки разметки. Они используются для создания web-страниц и приложений для любого браузера. HTML определяет содержание страницы — заголовки, блоки с текстом, ссылки; а CSS — ее внешний вид (цвет фона, шрифт и т. д.) Знание HTML и CSS обязательно для frontend- или fullstack-разработчиков. Это единственный инструмент, с помощью которого можно создать сайт с нуля. При этом у такой страницы будет более «чистый» код, нежели у сайта, собранного в конструкторе. HTML и CSS — отличная возможность опробовать новую профессию и понять, интересна ли вам тема программирования. Можно в режиме онлайн вводить код и наблюдать, как он превращается в реальную web-страницу. Однако чтобы стать востребованным разработчиком, этого будет мало. Нужно выучить как минимум еще один-два языка программирования.
Читайте также С чего начать изучать HTML и CSS
JavaScript
JavaScript используют frontend- и backend-разработчики, GameDev-инженеры и разработчики программ для мобильных устройств. Это один из самых популярных языков программирования. С его помощью создают приложения для смартфонов и браузеров. Поначалу код на JavaScript может показаться сложным и запутанным, но к нему быстро привыкаешь. Из других плюсов — в JavaScript много готовых плагинов и скриптов, которые можно легко интегрировать в свой проект. Если HTML и CSS помогут вам сверстать простейшую web-страницу, то JavaScript поможет ее разнообразить — сделать раскрывающееся меню, всплывающее окно или кнопку, которая меняет цвет при наведении мыши. Также JavaScript очень удобно изучать. Можете писать код в любом текстовом редакторе, а затем тестировать его в любимом браузере.
Самый простой язык для понимания и знакомства с программированием — это JavaScript. JavaScript преподают детям как первый язык программирования. HR, которые занимаются наймом программистов и IT-специалистов, также учат JavaScript для общего развития и знакомства с миром программирования. У JavaScript понятный синтаксис, простая логика построения команд — это позволяет быстро разобраться в его работе. В Интернете много обучающих материалов на русском языке. В браузере вы можете сразу видеть результат работы своего кода, что очень мотивирует новичков двигаться дальше в изучении. Язык современный, постоянно развивается, очень мощный в руках опытного разработчика, и одновременно у него низкий порог входа для изучения.
Максим Кирилов,
старший Android-разработчик
в Тинькофф Банк
Python
Python используют уже больше 25 лет. Это универсальный язык, с его помощью можно заниматься машинным обучением, разрабатывать программное обеспечение, делать игры, верстать web-сайты и т. д. Даже всеми любимый YouTube создан на Python. Освоить Python довольно легко. Элементы кода пишутся на английском, а сам код выходит компактным по сравнению с другими языками программирования.
Для начинающих я бы предложил Python и JavaScript. Оба они простые для освоения и имеют большое сообщество программистов использующих их. У JavaScript классический синтаксис, похожий на C/C++ и Java. Поэтому, если есть хотя бы какое-то представление о программировании, даже на уровне школьных уроков информатики, — написать код на этом языке будет достаточно просто. Синтаксис Python еще проще: он больше похож на псевдокод. В современном мире оба этих языка используют во многих сферах. Например, на языке JavaScript можно писать практически все — начиная от веб-сайтов и мобильных приложений и заканчивая машинным обучением. Python прекрасно подходит, чтобы писать серверную часть веб-приложений и работать с искусственным интеллектом.
Алексей Каньков,
Senior Backend Developer
в компании Revizto
Ruby
Содержит лучшие элементы из других языков программирования — Perl, Lisp, Smalltalk, Ada и Eiffel. Если Python предполагает единственно верное решение для каждой проблемы, то Ruby — более гибкий. К одному и тому же результату он может привести самыми разными путями. Также здесь можно изменять фундаментальные части языка. Например, заменить числовой «+» на символьный «плюс». Удобно, если у вас сломалась клавиатура или просто хочется писать буквами. Язык Ruby нужен backend- и web-разработчикам, чтобы писать скрипты, приложения, алгоритмы автоматизации и обработки данных.
Java
Java используют frontend- и fullstack-разработчики, чтобы создавать интернет-приложения и игры на Android. Также он позволяет работать с искусственным интеллектом (глубокое обучение, обработка естественного языка) и дружит со всеми существующими операционными системами — от Linux до iOS. Java построен на базе C++, но у него упрощенный синтаксис на основе английского языка, поэтому его чаще используют новички. Среди недостатков языка — отсутствие шаблонов и энергоемкость. Если хотите кодить на Java, потребуется немало свободной оперативной памяти (минимум — 8 ГБ).
Станьте Android-разработчиком — работайте в штате, на фрилансе или запускайте собственные приложения
PHP
PHP используют backend-инженеры. С ним можно создавать онлайн-формы и оперативно вносить и править записи в базе данных. 80% сайтов в Интернете используют язык PHP. Также у PHP есть встроенная система безопасности: он может шифровать данные и ограничивать доступ к некоторым частям вашего сайта. Этот язык используют многие гиганты рынка, например, WordPress и Facebook * . Однако создание сайтов только на PHP происходит медленнее, чем на других языках программирования. Поэтому идеальный вариант — использовать PHP точечно для создания отдельных функций и элементов.
PHP — это скриптовый язык для бэкенда, он используется в основном для веб-разработки. Его относительно легко освоить новичкам. PHP простой в использовании, у него широкий спектр фреймворков, таких как Laravel и Symfony, которые упрощают создание сложных веб-приложений. Однако гибкость и простота использования PHP приводят к тому, что код можно неправильно структурировать. В результате приложение будет сложно масштабировать и поддерживать. Новичкам я бы посоветовал выбрать язык, который соответствует их целям и интересам. Если вам интересна веб-разработка, рассмотрите JavaScript или PHP. Если хочется работать с машинным обучением, лучше выбрать Python.
Дмитрий Хорев,
Senior Software Engineer в Mero
Go (Golang)
Язык программирования, разработанный в компании Google. Golang задумывался, как альтернатива C/C++. Он простой, минималистичный и пользоваться им могут даже неопытные программисты. Многие называют Go самым интуитивным языком. Чаще всего Golang используют backend-разработчики. С его помощью можно быстро создавать высокопроизводительные приложения.
Kotlin
Kotlin используют frontend- и fullstack-разработчики. С его помощью создают мобильные приложения для Android. Язык Kotlin выпустила в 2011 году компания JetBrains. Язык Kotlin полностью совместим с Java. Но в отличие от последнего — менее многословный. Код в Kotlin получается короче и компактнее. Его легко освоить тем, кто уже знаком с Java или Python.
С чего начать изучать языки программирования?
Самый быстрый способ — записаться на курсы IT-разработчиков. Но если есть мотивация и усидчивость, можно учиться самостоятельно. Вам помогут книги и лекции на YouTube. Просто вбейте в строку поиска «языки программирования для новичков» или название конкретного языка, который вас интересует. Изучив синтаксис языка (правила, по которым пишется код), сразу переходите к практике. Старайтесь не просто писать примеры нескольких строчек кода, а создавать полноценный код, который можно выполнить и увидеть результат. Когда вы выучите один язык программирования, можно будет начинать учить другой — уже более сложный, например, С, C++ и C#. Чем больше языков вы будете знать, тем более сложные проекты сможете делать. А значит, будете расти в доходе. Тест: какой язык программирования вам подойдет? * Принадлежит компании Meta, деятельность которой признана экстремистской в России.
Fullstack-разработчик на Python
Fullstack-разработчики могут в одиночку сделать IT-проект от архитектуры до интерфейса. Их навыки востребованы у работодателей, особенно в стартапах. Научитесь программировать на Python и JavaScript и создавайте сервисы с нуля.
Какой язык программирования стоит учить первым
06.02.2023
20694
Рейтинг: 5 . Проголосовало: 9
Вы проголосовали:
Для голосования нужно авторизироваться
- На что влияет выбор языка программирования?
- Какие языки выбирают первыми?
- Рейтинги языков программирования.
- Индекс TIOBE.
- Индекс PYPL.
- Stack Overflow Developer Survey 2022.
- Рейтинг от GitHub.
- Какие языки наиболее популярны в соответствии с этими рейтингами?
Первый язык программирования (сокращенно – ЯП) открывает мир создания кода перед новичком. И от выбранного языка очень часто зависит то, каким будет этот «мир» – интересным и увлекательным, или же недружественным и слишком сложным. Если вы хотите из этого знакомства извлечь максимальную пользу для себя, стоит внимательно подойти к выбору первого языка программирования – и наша статья вам в этом поможет.
Мы разберем языки программирования, которые могут быть отличными в качестве первых языков. Вы узнаете, в каких IT-профессиях востребован тот или иной язык – а также много другой полезной и интересной информации.
На что влияет выбор языка программирования?
Для новичка выбор первого языка – важный шаг, который может определить его дальнейший путь развития в качестве разработчика. Главные пункты, на которые влияет ЯП:
- Скорость овладения базой. Языки программирования имеют различную сложность изучения. К примеру, JavaScript довольно легко изучается, в то время как C++ носит более хардкорный характер, а языки семейства Assembler могут бросить вызов даже тем, кто уже является разработчиком. Языки с динамической типизацией (JavaScript, Python, Ruby и т. д.) изучаются быстрее, чем языки со статической (C#, Java, C/C++ и др.).
- Парадигма мышления. Языки имеют разные парадигмы, согласно которым вы будете создавать код: процедурная, императивная, объектно-ориентированная, функциональная и т. д. От парадигмы выбранного вами языка зависит то, как вы будете подходить к решению задач. К примеру, если вы изучаете ООП-язык, то при столкновении с языком с функциональной парадигмой вы потратите дополнительное время, чтобы понять его и писать код по-другому (например переход с Java на Scala).
- Перспективы трудоустройства. Каждый язык имеет свои сферы применения – и вы должны это учитывать, если планируете после овладения ЯП искать работу. Иначе придется учить новый, теряя драгоценное время.
- Направление разработки. Хотя самые популярные языки программирования достаточно универсальны, всё же есть направления, в которых они ценятся больше всего. Например, для Java – это Enterprise и мобильная разработка, JavaScript – веб-разработка, Python – BackEnd веб-разработка, написание скриптов, нейронные сети, C# — корпоративные приложения, бэкенд и игры на Unity, C/C++ — высоконагруженные приложения, Embedded разработка и тому подобное. Соответственно, если вы выберете JavaScript, то работать по Embedded направлению у вас не получится – какие-то библиотеки для работы с микроконтроллерами с использованием JavaScript вы, возможно, найдете, но работодателя – вряд ли. Зачем забивать гвоздь монитором, если есть молоток?
- Поиск ментора и комьюнити. У каждого ЯП свое комьюнити и свои джедаи, которые готовы брать к себе юных падаванов на обучение. У популярных языков больше аудитория, есть хорошие и подробные документации, легче найти ментора – это позволяет удобнее и быстрее учиться. В более нишевых ЯП комьюнити скромнее, поэтому найти практикующего разработчика, который возьмет к себе ученика, чтобы научить его программировать, а также найти качественные гайды – ещё те задачи. Ментор важен тем объемом знаний и практических навыков, которые может передать: подсказать, как правильнее делать, где вы ошибаетесь, на чем сосредоточить внимание. Эти советы ускорят ваше изучение ЯП и позволят быстрее двигаться дальше навстречу желанной IT-специальности.
- Стиль программирования. Пункт очень похож на 2-й, но если там дело касалось этики языка программирования, то здесь речь больше об этике самого программиста. В разных языках могут быть разные правила написания кода, согласованные сообществом программистов. Поэтому овладев одним языком, вы можете столкнуться с совершенно другой кодерской этикой при переходе к другому ЯП (в качестве примера – переход с Go на Java).
- Легкость поиска ответов. Чем популярнее язык, тем легче гуглить и искать ответы, поскольку множество других разработчиков до вас интересовались теми же вопросами (высоковероятно). Однако если вы хотите использовать язык в экстравагантных целях – для которых он не предназначен – могут возникнуть проблемы с ответами.
- Переход на другой язык. Некоторые технологии и языки устаревают и приходится учить новый стек. Например, так произошло с мобильными iOS разработчиками, которые писали на языке Objective-C и были вынуждены перейти на Swift, поскольку компания Apple так решила. Учитывайте и это при выборе языка.
Какие языки выбирают первыми?
Ранее изучение программирования начиналось в школах с языков Pascal либо Basic. Эти языки хорошо подходят для знакомства с алгоритмическим подходом, структурами данных и фундаментальными концепциями программирования. Они учат грамотности и рациональному подходу к решению программистских задач, но в коммерческой разработке сегодня почти не используются.
Тема связана со специальностями:
В школах всё более распространенными становятся такие популярные языки, как Python и JavaScript (JS). Они достаточно просты в овладении и позволяют быстро преодолеть расстояние между началом обучения и получением настоящего конечного результата. Скрипт на JS вообще можно написать с помощью обычного блокнота в Windows и запустить в любом браузере – даже устанавливать дополнительное ПО не нужно. Проще говоря, эти два языка просто более интересны и дают больше удобств и возможностей, чем Pascal или Basic.
Изучение JavaScript и Python в школе имеет целью заинтересовать учащихся программированием и показать, насколько легко и просто это может быть, какие возможности может дать умение писать код.
Чтобы почувствовать силу того же пайтона, можете посмотреть интересную подборку из 10 проектов длиной в 10 строк кода по ссылке.
Таким образом, эти языки не только знакомят с программированием, но и позволяют максимально быстро влиться в IT и создавать современные приложения.
Рейтинги языков программирования
Чтобы лучше понимать, какие языки сегодня пользуются спросом, рассмотрим несколько соответствующих рейтингов.
Индекс TIOBE
Первый десяток языков в соответствии с индексом TIOBE (за январь 2023 года):
- Python
- C
- C++
- Java
- C#
- Visual Basic
- JavaScript
- SQL
- Assembly language
- PHP
Аналитика индекса TIOBE отталкивается от количества квалифицированных инженеров во всем мире, а также от того, какое количество курсов и сторонних поставщиков есть сейчас.
Индекс PYPL
Первый десяток языков в соответствии с индексом PYPL (январь 2023 года):
Аналитика данного индекса выстроена вокруг частоты поиска туториалов (учебных материалов) по тому или иному языку программирования в поисковике Google.
Stack Overflow Developer Survey 2022
Теперь посмотрим на опрос Stack Overflow Developer Survey 2022 (более 70 000 опрошенных со всего мира). На картинке ниже можно увидеть, какие языки чаще всего используют те, кто только изучает программирование и IT (на двух картинках ниже продемонстрированы не все языки из рейтинга):
Наибольший спрос среди новичков вызывают языки верстки HTML & CSS (ими создают визуальное оформление веб-сайтов), а также языки программирования JavaScript и Python. Остальные языки идут с отрывом в более 19%. То есть, современные начинающие всё больше и больше отходят от классических Java, C#, а также Pascal и Basic, выбирая более простые языки, с которыми быстрее попадешь в IT.
Следующая картинка показывает, какими языками чаще всего пользуются профессиональные разработчики:
На первом месте JavaScript – маст-хэв язык для создания клиентской логики веб-сайтов и веб-сервисов, далее следует HTML & CSS, язык запросов SQL для работы с базами данных, уже известный лаконичный Python, синтаксический сахар для JavaScript – язык TypeScript (TS), классические Java и C#, а также другие языки.
Рейтинг от GitHub
Аналитика ниже построена на основе того, какие языки чаще всего используются в публикуемых на GitHub проектах. Это самый известный ресурс для разработчиков, где они размещают свои проекты, что позволяет не только демонстрировать свои разработки другим, но и удобно вести командную разработку.
В лидерах – JavaScript, Python и Java, за ними – строго типизированный TypeScript, C#, C++ и другие.
Какие языки наиболее популярны в соответствии с этими рейтингами?
Очень часто на первых позициях стоит Python. Это и неудивительно – он прост, лаконичен и имеет множество библиотек и модулей, которые еще больше упрощают процессы создания приложений и способствуют более быстрому решению задач. Основные сферы применения: системное администрирование, DevOps инженерия, обработка данных, Big Data, Data Science (большие массивы данных), ML (машинное обучение), серверная веб-разработка (BackEnd).
В связи с прекращением поддержки пайтона версий 2.x (сейчас поддерживается только 3.x), возникла необходимость переписывать старый код (legacy) в соответствии с третьей версией – это создает дополнительный спрос на Python разработчиков.
JavaScript также отличается простотой и лаконичностью, но ее основная область использования ограничена WEB-ом, хотя JS имеет достаточно средств, чтобы на ней вести удобную разработку серверного ПО, мобильных и десктопных приложений и т. д.
Рейтинг от Stack Overflow показал, что именно эти два языка программирования чаще всего предпочитают начинающие.
TypeScript – это тот же JavaScript, но со строгой типизацией и другими фишками, которые делают код более структурированным и уменьшают количество потенциальных ошибок.
Следующие позиции обычно занимает Java – классический и универсальный язык, созданный в конце 20 века, но при этом до сих пор популярный и востребованный. Успешнее всего себя зарекомендовал в кроссплатформенных приложениях, Enterprise (создание ПО для крупного бизнеса), а также в мобильной разработке, хотя его сфера применения ими не ограничивается. Также существует много легаси кода на Java, который требует поддержки и обновления, что создает дополнительную востребованность грамотных Java девелоперов.
Часто упоминаются C/C++ — это корифеи среди современных языков программирования, зачастую изучаются в ВУЗах. Сложны в овладении, но очень мощны в использовании. Именно они применяются в ресурсоемких приложениях, микроконтроллерах и других приложениях, которым важно контролировать затраты памяти. Если вы хотите быстро попасть в IT – C/C++ не вариант, но в качестве языков для изучения программистской базы они – то, что нужно. Изучив «плюсы», вы сможете с легкостью переходить на другие языки.
C# – популярный универсальный язык от компании Microsoft, который прежде всего ориентирован на создание приложений под ОС Windows, однако выход платформы .NET Core позволил создавать ПО и под другие популярные платформы. Больше всего применяется в разработке корпоративных приложений, серверной стороны веб-приложений, игр на Unity, десктопных приложений.
PHP – популярный язык для серверной веб-разработки. Несмотря на его почтенный возраст, до сих пор активно используется в бэкенде. Имеет своеобразный синтаксис и неоднозначное отношение со стороны кодерского сообщества, хотя по своей легкости напоминает Python и JavaScript. На языке PHP написано много legacy кода, поэтому кроме создания новых приложений есть необходимость переписывать код на других языках.
SQL – классический язык запросов для манипуляций с данными. Используется всеми разработчиками, которые работают с реляционными базами данных, поэтому и пользуется относительно высокой популярностью.
Bash/Shell – это командные оболочки для написания скриптов, позволяющих автоматизировать выполнение рутинных задач. Важные инструменты в работе системных администраторов и DevOps инженеров.
Какие языки выбирают украинские разработчики?
Также обратимся и к аналитике от DOU – сообщества профессиональных украинских разработчиков, а именно – рассмотрим зарплаты украинских девелоперов (зима 2023). Узнаем, какие ЯП наши разработчики используют в качестве основных:
Первыми идут языки для создания фронтенда, поскольку почти весь веб FrontEnd создается на языках JavaScript и/или TypeScript. За ними – универсальные языки C#, Java, Python и язык серверной разработки PHP. Kotlin и Swift – это мобильная разработка под Android и iOS соответственно. Далее идут менее популярные направления.
Таким образом, сейчас более 85% украинских разработчиков-респондентов в качестве основного ЯП используют один из восьми вышеприведенных языков.
Теперь рассмотрим медианные зарплаты украинских разработчиков в соответствии с ЯП, которые они используют в качестве основных:
Наиболее высокооплачиваемыми для отечественных Junior разработчиков-респондентов являются Ruby и C++. Но другие языки от них не сильно отстают. На уровень заработной платы также влияет навык прохождения собеседований, поскольку многие работодатели просто не указывают в объявлениях конкретную сумму, следовательно, чем лучше вы пройдете собеседование, тем большую сумму вам смогут предложить.
Динамика зарплат для джунов за последние полгода:
- JavaScript – не изменилась.
- Java – на уровне декабря 2021 года.
- C#/.NET – повысилась на 50 USD.
- PHP – снизилась на 50 USD.
- Python – снизилась на 45 USD.
- C++ – выросла на 100 USD.
- Ruby/Rails – выросла на 125 USD (но количество респондентов невелико, поэтому число может не отражать реальную ситуацию).
- Swift – повысилась на 50 USD.
- Kotlin – повысилась на 100 USD.
- TypeScript – повысилась на 60 USD.
Количество вакансий и отзывов в Украине
Рассмотрим еще одну аналитику от DOU, которая касается количества вакансий и отзывов по состоянию на декабрь прошлого года.
К некоторым позициям приведем используемые языки программирования:
- Наибольшее соотношение отзывов к вакансиям во FrontEnd (кроме JavaScript и TypeScript используются ещё языки верстания HTML & CSS) – конкуренция одна из самых высоких на рынке IT.
- Меньше конкуренции в Java, Python, .NET – их области использования и языки уже разобрали выше.
- Node.js – платформа для серверной разработки на языке JavaScript или TypeScript.
- Big Data и Data Science – в этих областях чаще всего используется Python.
- iOS/macOS разработка ведется на языке Swift, реже – Objective-C.
- Flutter – это мобильная разработка под Android и iOS на языке Dart.
- Unity – создание игр при помощи C# на движке Unity.
- React Native – разработка мобильных и десктопных приложений на языках JavaScript & TypeScript.
- Blockchain – разработка с помощью Java, Node.js, Golang, Rust и т. д.
- Android – создание мобильных приложений на языках Java & Kotlin (Kotlin – гораздо востребованнее здесь).
- DBA (Database Administrator) – разработка ведется на языке SQL, PL/SQL с использованием различных СУБД (PostgreSQL, MySQL и т. д.).
- Ruby – бэкенд разработка на языке Ruby.
- DevOps – используется язык Python, инструменты Bash/Shell.
Выводы
Какой же язык программирования выбрать в качестве первого? Есть три основных варианта в зависимости от того, какую цель вы перед собой ставите:
- Если вы хотите овладеть программистским фундаментом, сформировать правильное алгоритмическое мышление, а уже потом ориентироваться на более прикладные вещи – начинайте свой путь в программировании вместе с Pascal, Basic или C++. Первые два языка изучаются ещё в школе и закладывают правильные кодерские привычки, надежную базу, в то время как C++ — это гораздо более сложный язык, часто рассматриваемый в университетах, но он также хорош в изучении фундамента. Стоит заметить, если вы будете успешны в C++, другие языки сможете очень легко изучать и будете быстро развиваться дальше по конкретному направлению разработки. Этот вариант подойдет тем, у кого есть время (если идти по пути Pascal, Basic) или тем, у кого есть не только время, но и любовь к вызовам (C++).
- Если вы хотите овладеть правильным программистским фундаментом, но хотите изучать язык, который уже активно применяется в разработке и при этом не требует таких усилий для изучения, как более сложные C/C++ – выбирайте между Java или C#. Это классические языки, которые научат вас базе и при этом будут достаточно востребованы на IT-рынке еще долгое время, что позволит относительно быстро найти работу. Это лучший вариант из всех трех с точки зрения компромисса между легкостью изучения, быстротой становления в дальнейшем разработчиком и получением кодерской базы.
- Если вы хотите максимально быстро попасть в IT – обратите внимание на JavaScript и Python. Они легки в овладении, быстро изучается синтаксис, у рынка достаточно много вакансий под JavaScript. Также эти языки имеют большое комьюнити, поэтому материалов для изучения вы найдете в изобилии.
Многие хотят попасть в IT именно через последний – третий вариант. Но в чем его недостатки? Начнем с JS:
- большая конкуренция (упоминали при рассмотрении аналитики);
- слишком большая вариативность – каждый разработчик может писать код по своим собственным правилам и будет трудно читать и понимать логику его работы;
- в интернете много ответов низкого качества;
- из джаваскрипта труднее переходить на другие языки программирования, чем наоборот;
- значительный шанс упустить базовые концепции программирования и высокий риск написания плохого кода.
В Python примерно те же проблемы плюс наличие своеобразного синтаксиса, который может путать.
Это не значит, что данные языки – плохие. Абсолютно у каждого есть как свои плюсы, так и минусы – и это нормально.
ЯП нужно выбирать, отталкиваясь от сферы, в которой вы собираетесь себя реализовывать. Только тогда этот выбор будет максимально удачным и полезным вам.
Вкратце резюмируя: если вас интересует разработка веб-сайтов – всего того, что на стороне клиента, вы хотите постоянно видеть наглядный результат своей работы – выбирайте JavaScript. Если интересует кроссплатформенное ПО, Enterprise или мобильная разработка под Android – учите Java (в мобильной разработке затем доучите Kotlin). C# – хороший выбор для тех, кто хочет работать с инструментами от Microsoft, создавать корпоративные приложения, BackEnd веб-приложения, игры, десктопные приложения под Windows. Python – незаменимый в автоматизации рутинных задач, популярный в работе с большими данными, BackEnd-ом, искусственным интеллектом. Эти 4 языка покрывают достаточно большой процент IT-специальностей, поэтому выбрав один из них вы не прогадаете.
Где можно выучить языки программирования? Наши курсы помогут каждому, кто собирается учить популярные языки программирования и сопутствующие технологии. Портал ITVDN насчитывает более 230 видео курсов и имеет собственные программы обучения по 15 популярнейшим IT-профессиям, среди которых:
- Верстальщик сайтов
- FrontEnd Developer
- Java Developer
- Python Developer
- C#/.NET Developer
- Android Developer
- Unity/Game Developer
- PHP Developer
- и другие.
Обучение происходит в формате записанных видео курсов – вы можете учиться в то время, которое для вас комфортно. Со всеми специальностями можно подробно ознакомиться, перейдя на страницу специальностей ITVDN.
Если вас интересует изучение только языка программирования, соответствующие курсы вы найдете в нашем каталоге.
Желаем успешного обучения и достижения ваших амбиций в IT!
Какой язык программирования выбрать для погружения в специальность
Как выбрать первый и второй языки программирования и как выбрать сферу деятельности, в которой работать в IT.
Меня зовут Станислав Береснев, я разработчик проекта СТАР. В DD Planet я с октября 2022 года, вообще же работаю программистом с 2012 года. В моем стеке – C# .NET6+, Node.js, Next.js, React, Redux, HTML, CSS, ASP.NET MVC, MS SQL Server, Neo4j.
Первый язык
Новичку я бы посоветовал начинать с Паскаля. У него понятный синтаксис, он не перегружен конструкциями и парадигмами, в нем мало ключевых слов. Также он лишен побочных эффектов, присутствующих в других языках, когда программа выполняет действия, которые от нее не ждут.
Это такой простой процедурный язык, в котором вы научитесь работать с алгоритмами, переменными, процедурами и функциями, поэтому его обычно советуют всем начинающим, с него начинают обучение программированию в институтах.
Stable Doodle превращает эскизы в изображения
На Паскале надо научиться придумывать и писать программы, причем не что-то элементарное вроде сложения двух чисел, а, например, игру – Змейку или Тетрис. Когда появится некоторый пласт таких программ, написанных самостоятельно, будет проще понять, куда двигаться дальше.
Второй язык
Со вторым языком сложнее. Некоторые советуют сразу переходить на целевой, тот, с которым вы собираетесь дальше работать, востребованный рынком. Но, по-моему, следующими должны стать Ассемблер, C и C++, каждый хороший программист должен пройти через них, и их тоже преподают в институтах как обязательный базис.
Это языки достаточно низкого уровня, позволяющие изучить, как вообще работает компьютер. Без понимания устройства этой работы, взаимодействия с машиной на низком уровне в будущем могут возникнуть неявные проблемы – например, с многопоточностью или нагрузкой.
Важно добавить, что также необходимо научиться работать в NIX-системах, потому что если не знаешь Linux, то программистская жизнь будет тяжела. Сейчас почти все сервера разворачиваются на Linux.
Для того чтобы легко пройти эти первые шаги, я рекомендую прочитать трехтомник «Программирование: введение в профессию» преподавателя факультета ВМК МГУ Андрея Викторовича Столярова.
Автор намеренно не берет в свои книги современные стандарты, чтобы не забивать голову новичку – например, он останавливается на стандарте C++ примерно десятилетней давности.
Помните ли вы Фидонет — тест для нешуточных олдов
Или он умышленно не использует стандартную библиотеку шаблонов (STL), напротив, даже ругает ее, потому что она не нужна начинающему программисту. Он много критикует языки, про которые рассказывает, и доступно объясняет, почему.
Другие книги, на которые стоит обратить внимание:
- Design Patterns: Elements of Reusable Object-Oriented Software, авторы – Erich Gamma, Richard Helm и другие;
- «Рефакторинг. Улучшение существующего кода» М. Фаулера;
- «Чистый код» и «Чистая архитектура» Р. Мартина (о них и других хороших книгах писал мой коллега Максим Лядов в своей статье «Профессиональная литература для разработчиков»).
В целом, эти книги можно смело читать, они не устареют и через 10 лет. Я, к сожалению, не прочитал их, когда начинал программировать, а с ними было бы проще систематизировать полученные в институте знания и избежать граблей, на которые наступают начинающие программисты.
Выбираем сферу деятельности
Когда есть необходимая база, можно выбирать язык, с которым будешь работать. Надо задать себе вопрос – чем ты в принципе хочешь заниматься? Какие приложения писать? Если это программы для десктопа, то, наверное, стоит смотреть в сторону .NET, в частности, WPF. Если хочется писать серверы, то опять .NET или Java.
При этом надо быть готовым, что чем больше узнаешь сферу, в которой оказался, тем больше понимаешь, как мало на самом деле знаешь, и понемногу расширяешь кругозор. Это, в свою очередь, может привести к желанию сменить сферу профессиональных интересов – например, у меня был коллега, пришедший во фронтенд из геймдева.
Бытует мнение, что JavaScript прост, и начинающим надо идти во фронтенд-разработку. На мой взгляд, это миф. Я бы не советовал начинающим идти во фронтенд. Это заканчивается тем, что люди, не имея понимания, как вообще работают веб-приложения, не могут делать что-то сложнее простой верстки. Переходить во фронтенд нужно из бэкенда, когда в голове есть хорошая база и понимание, как что устроено.
Начинающим разработчикам стоит быть прагматичным в выборе языка и не гнаться за тем, что «в тренде» в сфере. Посмотрите вакансии в своем городе и посмотрите, на какой язык больше требуются разработчики. Новичкам стоит поработать в офисе – так вы можете пообщаться с наставниками и разработчиками, пишущими на интересующем вас языке программирования. Когда у вас появятся вопросы (а они обязательно появятся) они смогут ответить на них и поделиться опытом.
Определившись с языком, продолжайте развиваться в нем до профессионального уровня. Главное – помнить, что байки о скорой смерти .Net или Java – всего лишь байки. И это подтверждается количеством активных вакансий.
Важно помнить, что программисту надо знать не только языки программирования, но и алгоритмы, парадигмы, шаблоны проектирования, архитектурные принципы, устройство баз данных, сетевые протоколы, библиотеки, фреймворки и прочие важные в работе вещи. Поэтому при обучении не стоит фокусироваться только на языках.
Как выбрать язык программирования и начать карьеру: советы от разработчика, занимающегося наймом
Хайп вокруг «войти в IT» привел к тому, что в разработчики и тестировщики потянулись не только студенты профильных вузов, но и люди из других профессий. Не будем сейчас обсуждать правильность подобного выбора в той или иной ситуации, а просто расспросим опытного человека в области разработки о том, как правильно подойти к выбору языка программирования и начать свой карьерный путь, раз вы на это решились или крепко задумались по этому поводу.
Этот пост — выжимка из моей беседы с Даниилом Пилипенко, создателем компании SymbioWay, занимающейся подбором и оценкой IT-специалистов для сторонних компаний и предоставляющей услуги аутстаффинга.
Даниил — профессиональный разработчик с 18-летним стажем. Начал свой путь с младшего программиста на Java. Через шесть лет стал руководителем отдела разработки, изучил PHP и JavaScript. В данный момент, кроме работы по подбору персонала, проводит карьерные консультации, выступает в качестве спикера на конференциях и вебинарах, преподает флагманский курс по Java в Skillbox.
Одно из последних выступлений Даниила, как раз посвященное выбору языка программирования, прошло при поддержке Leader-ID, что и послужило поводом для данного материала. Далее — слово Даниилу.
IT-рынок: какие изменения произошли, оценка текущей ситуации и ожидания в будущем
Если говорить про IT-рынок, то здесь интересно наблюдать за двумя показателями: количество резюме и количество вакансий. Обратившись за статистикой на HeadHunter, можно сказать, что начиная как минимум с первого квартала 2014 года спрос на разработчиков растет быстрее, чем предложение, и расстояние между двумя кривыми — то есть дефицит специалистов — постоянно увеличивается:
Весной 2020 года наблюдался «пандемийный спад», а затем резкий рост рынка с лета 2020 года по конец 2021-го. В декабре 2021-го спрос на разработчиков вырос почти в три раза, и количество вакансий в пике приблизилось к 86 тыс. по сравнению с примерно 32 тыс. в конце марта 2020 года.
Любые кризисы приводят к тому, что экономические пузыри лопаются. Ровно это и произошло со спросом на разработчиков этой весной. Отмечу, что это общемировой тренд и такая картинка наблюдается не только в России. В итоге количество вакансий вернулось к тому, каким бы оно было, если бы рост происходил обычным «допандемийным» темпом. Это хорошо видно на графике выше.
С мая этого года количество вакансий для программистов в России вышло на плато и составляет примерно 46 тыс. При этом происходит реструктуризация рынка: часть вакансий закрывается и некоторые компании уходят с рынка, но другая часть, наоборот, открывается.
Сложно сказать, что будет происходить дальше, потому что в кризисах такого масштаба никто еще не жил. Такие крупные игроки, как Amazon, Facebook, с мая этого года начали приостанавливать наем и даже массово сокращать сотрудников. Это связано со всеобщей неопределенностью и осторожностью крупных инвесторов, которые пока сами не очень хорошо понимают общие тренды и предпочитают не рисковать.
Тем не менее спрос на программистов по-прежнему превышает предложение, как и все последние 25 лет. Истинных профессионалов по всем самым востребованным специальностям сегодня все так же не хватает.
Что касается самих разработчиков, пожалуй, февраль 2022 года был самым напряженным и переломным моментом для них. Как мы знаем, после февраля (и затем в сентябре) из страны уехало большое количество IT-специалистов. Однако, по нашим данным, около 50% из них продолжают работать на российские компании. Ну и сейчас, в ноябре, некоторые специалисты по разным причинам снова начинают возвращаться из-за рубежа.
Реально ли сейчас начать карьеру и устроиться на позицию junior-разработчика?
Есть мнение, что в последнее время компании стали менее охотно нанимать junior-разработчиков. А в дальнейшем спрос на них и вовсе сойдет на нет, потому что программы сами будут писать программы. Но все это лишь слухи.
Во-первых, простые системы тоже надо кому-то разрабатывать. Взять, например, ту же Tilda, которая облегчает создание сайтов. Может показаться, что программист больше не нужен, ведь сайт можно собрать через конструктор. Но не стоит забывать, что кто-то разработал и продолжает улучшать и поддерживать саму Tilda.
Во-вторых, такие инструменты, как Tilda, имеют довольно ограниченный функционал: с его помощью мы можем легко сделать пару страничек, но какой-нибудь серьeзный продукт вроде «Яндекс Маркета» на нем не напишешь. Да и в будущем вряд ли кому-то удастся создать универсальную систему, которая будет писать любую другую систему без участия человека.
В-третьих, учитывая текущие реалии и массовый отъезд программистов уровня middle и senior, компаниям ничего не остается, как нанимать junior-разработчиков. Например, junior-разработчики, которых сейчас воспитывают в том же Skillbox, при грамотно составленном резюме, имея определенную базу и навыки, находят себе работу в течение месяца после окончания курса. Этот факт доказывает, что спрос на джунов по-прежнему высок.
Ну и в-четвертых, в каждом проекте есть задачи, которые просто не поручишь программистам уровня middle и senior, а для junior-специалистов они идеальны — просты, позволяют относительно легко войти в проект и успешно закрепляют базовые навыки.
Поэтому, если есть желание начать карьеру разработчика, — сейчас самое время.
С чего начать
Очевидный первый шаг — выбрать язык программирования и направление, которым вы хотите заниматься (об этом следующий раздел).
Второй — заняться практикой. Ощутить и почувствовать, что такое кодинг. Обзавестись минимальным арсеналом junior-разработчика (см. ниже).
Третий — найти
работуприменение своим знаниям и навыкам. Чтобы поддерживать и расширять экспертность в любом деле, необходимо постоянно практиковаться. Для этого недостаточно придумывать себе задачи «на покодить» или учиться на курсах. Важно как можно быстрее перейти на профессиональный уровень и найти вариант, где вы каждый день занимаетесь разработкой.Что не рекомендуется делать на старте карьеры
Читать много книг. Некоторые книги сложны для восприятия и написаны тяжелым языком. В моей практике есть несколько негативных примеров старта карьеры с книг: такие люди иногда годами читают книги, но так и не написали ни единой строчки кода и, соответственно, пока не стали программистами.
Минимальный арсенал junior-разработчика
- знание синтаксиса языка;
- понимание принципов объектно-ориентированного программирования;
- владение каким-либо основным для данного языка фреймворком (если речь про веб-разработку) или понимание того, как с точки зрения архитектуры создаются мобильные приложения (если речь про мобильную разработку);
- знание языка запросов SQL (для backend-разработки);
- понимание принципов клиент-серверного взаимодействия, базовое знание протокола HTTP и стандарта REST;
- опыт работы с Git и командной строкой;
- опыт командной работы (этот пункт очень желателен и существенно повышает шанс найти работу).
Как выбрать свое направление в программировании
В сфере программирования есть несколько ветвей. Первая, веб-разработка, — самое обширное направление во всем мире (по разным оценкам, более 50% всего программного обеспечения в мире — это именно веб-приложения). Веб-разработка подразделяется на направления frontend- и backend-разработки.
Вторая крупная ветвь — мобильная разработка. Другие ветви — разработка десктопных приложений, игр, встроенного и системного программного обеспечения, разработка для Data Science и другое.
Чтобы выбрать направление, можно для начала задаться вопросом, хотите ли вы работать с визуальной частью тех или иных приложений? Если да, то, имея в арсенале некоторые способности и интерес к данной области, можно начать покорять вершины frontend- или мобильной разработки.
Если же желания работать с визуальной частью нет, а хочется, наоборот, знать и понимать, как устроена серверная часть веб-приложений, как она взаимодействует с frontend’ом и с мобильными приложениями, то стоит рассмотреть для себя backend-разработку.
Если вы хотите развиваться в мобильной разработке, стоит начинать с разработки на той операционной системе, на которой работает ваш смартфон, — Android или iOS. Это значительно ускорит процесс вашего обучения и сделает его более эффективным, поскольку с высокой вероятностью вы знаете соответствующую платформу лучше другой и сможете сразу тестировать то, что вы создали.
Как выбрать язык программирования
Выбор языка существенно зависит от того, какое направление в программировании вы выберете.
Возьмем, к примеру, веб-приложения и frontend-разработку. В этом примере выбор языка очевиден — это JavaScript и в качестве дополнения TypeScript.
Если же мы рассмотрим топ языков для backend-разработки, то увидим, что треть всех вакансий в РФ и, соответственно, первое место в топе уже многие годы принадлежит языку Java.
Второе место в топе и примерно 15% всех программистских вакансий отдано Python. В этом году чуть сдал свои позиции и занимает третье место язык PHP. Четвертое почетное место в топе у языка Go. И, кажется, он скоро сможет пробиться выше. Вот эта первая четверка языков закрывают около 75% рынка. А далее, на пятом месте? идет C#. Его доля на сегодняшний день около 10%. Спрос на С# с каждым годом снижается.
Теперь попробуем сравнить языки backend-разработки между собой. К примеру, Go и PHP — языки программирования, применяющиеся в основном для создания веб-сайтов и веб-приложений. Напротив, Java и Python — более универсальные языки, на них пишут практически всё, и выбор одного из них в качестве своего первого языка выглядит очень логично.
Если задаться вопросом, насколько каждый из них подходит для enterprise-разработки, то Java будет являться несомненным лидером. Все банковские и платежные системы, Госуслуги, «Яндекс Маркет», «Яндекс Музыка» в значительной мере написаны на Java.
Вторым критерием для сравнения Java и Python является порог вхождения. И тут уже побеждает Python.
Давайте посмотрим, как выглядит вывод в консоль традиционного «Hello, world!» на двух языках.
Действительно, на первых этапах Python кажется проще для изучения (пример кода нам это доказывает), но, изучив Java, в дальнейшем можно легко переходить практически на любой другой язык: Kotlin, PHP, С# и тот же Python. Если же вначале изучить Python, то с него «прыгнуть» куда-то еще будет немного сложнее.
Третий критерий сравнения — спрос. Если мы посмотрим рынок РФ, то спрос на Java практически в два раза превышает спрос на Python. Если же посмотреть на мировой рынок, то все будет наоборот — Python сегодня в мировых лидерах. Например, такую активно развивающуюся сферу, как Data Science, язык Python оккупировал более чем на 90%.
Стоит сказать про языки Kotlin и Swift, которые практически полностью заняли собой мобильную разработку на Android и iOS.
Чтобы определиться, нравится ли человеку выбранный язык программирования, необходимо его «попробовать» — решить на нем небольшую практическую задачу. К примеру, если выбор пал на Kotlin, значит, нужно изучить его основы и попробовать написать свое первое, пусть и очень маленькое, мобильное приложение под Android.
Самым правильным вариантом для старта карьеры является «начать пробовать» и, собственно, начать писать код. И не очень важно, на каком именно языке. Главное — начать.
Можно годами изучать рынок и топы, сомневаться в выборе языка и так ничего и не сделать. А можно изучить любой из современных языков и, если он не понравится или захочется расширить свои навыки, просто перейти на какой-либо другой.
Все современные языки программирования сильно похожи, логика написания кода на них практически одинакова, за исключением относительно небольшого количества различий и нюансов, которые познаются за считаные недели, если есть уверенное владение каким-то другим языком.
Есть еще одна важная рекомендация: если вы хотите стать программистом, не стоит идти «в обход» — например через верстку, тестирование или DevOps. Есть риск потерять много времени, занимаясь нелюбимым делом. Даже если вход в разработку видится вам сложным, не стоит искать другие пути. Все трудности будут вам по плечу, если у вас будет интерес. И тяжeлый вход в самое желанное направление будет гораздо эффективнее с точки зрения затрат времени и ресурсов, чем любой «обходной путь».
В мире IT есть тенденция часто менять работу. Почему? Потому что спрос на IT-специалистов значительно превышает предложение, работу найти легко и можно непрерывно улучшать свои условия труда. Но часто люди меняют работу не из желания профессионально расти, а из-за возникновения каких-либо трудностей: сотрудник не может решить поставленную задачу, накапливается большой объем нерешенных проблем, ему не хватает квалификации или опыта, он не может организовать свою работу, и тогда он просто убегает от трудностей, меняя место. А ведь профессионализм человека в любой сфере определяется именно тем, как он умеет преодолевать трудности.
Чтобы стать профессионалом, нужно получить опыт и преодолеть как можно больше трудностей.
С чего начать изучение языка программирования
Начинать изучение любого языка нужно с синтаксиса и с практики. Это как обучение вождению: можно изучить всю теорию, все правила, но пока не сядешь за руль, водить не научишься.
Итогом обучения должна стать в идеале разработка какого-то пусть и небольшого, но полезного проекта. Например, в Skillbox на курсе по Java мы предлагаем по итогам обучения разработать поисковый движок. На подобных задачах можно полноценно ощутить, что такое создание систем с нуля на MVC-фреймворке, закрепить навыки работы с базой данных и языком запросов SQL, попробовать работу с файлами, научиться получать и обрабатывать HTTP-запросы и формировать HTTP-ответы в соответствии со стандартом REST. Без этих базовых знаний об успешном трудоустройстве можно даже не мечтать. Мало знать только синтаксис языка и уметь писать голый код, нужно понимать, как написать код так, чтобы получилась рабочая система или мало-мальски готовый продукт.
Можно ли научиться программировать на курсах?
Курсы и школы бывают разные. Есть школы, у которых все курсы хорошие, а есть школы, где можно выделить только пару достойных курсов. Любой курс разрабатывает специалист (или команда специалистов), поэтому его успех зависит от методики и профессионализма этого конкретного специалиста или команды.
Можно попробовать отыскать для себя хороший курс по программированию по следующем критериям:
- продолжительность курса от шести месяцев и больше;
- он включает в себя изучение основ языка и фундаментальных понятий в современном программировании;
- в программе курса есть много тем, пересекающихся с требованиями в вакансиях по данной специальности;
- на курсе будет очень много практики по написанию кода, а также индивидуальный и командный проекты.
Реализация командного проекта примерно на 50% повышает шанс на трудоустройство выпускников: работа под руководством тимлида, где студенты познают все горести и радости командной работы, учатся взаимодействовать, соблюдать дедлайны и участвовать в таких активностях, как код-ревью, груминг и дейли-митинги.
К сожалению, все чаще можно наблюдать проблему с трудоустройством у выпускников курсов по программированию, которые не доучились или обучались на слабом курсе. Был тут интересный случай: однажды, ко мне на карьерную консультацию пришел мужчина 57 лет, который окончил курс по frontend-разработке и не мог устроиться на работу. Он был уверен, что вся его проблема кроется в возрасте. Но на консультации выяснилось, что он не может написать ни одной строчки кода и просто-напросто не имел практики, изучив только термины и теорию. Поэтому совет для него звучал так: сначала нужно изучить основы (я дал ему конкретный перечень, что и где можно быстро и бесплатно изучить), разместить резюме, устроиться на работу и только потом уже вспоминать, сколько ему лет. Кстати, карьера этого человека сложилась отлично: сначала он устроился на работу верстальщиком и в течение года вырос до младшего frontend-разработчика.
Правильный курс может стать отличной базой для старта карьеры. Остается только вопрос мотивации и интереса самого человека. Если человек занимается чем-то вовлеченно, то он постоянно думает о своем деле и непрерывно практикуется, например на pet-проекте. Комбинация из курса и вовлеченности в дело помогает ему найти работу и стать настоящим профессионалом.
Сертификат после прохождения курса — это просто бумажка, которую можно положить на полку. Но интерес к делу не получится оставить пылиться на полке. Поэтому нельзя однозначно ответить на вопрос, можно ли научиться программировать на курсах. Кто-то научится, а кто-то — нет.
Hard и soft skills на старте карьеры: что важнее
С учетом сегодняшнего дефицита программистов на рынке, hard skills на старте более весомы. Важно хорошо уметь писать код, решать задачи. Существует мнение, что в первую очередь человек должен быть разумный, а дальше он всему научится. Моe персональное мнение состоит в том, что soft skills можно прокачать в процессе работы. А вот то, насколько человек технически подкован, на старте карьеры очень важно, и обучать его основам программирования не всегда есть ресурсы.
На рынке мнение о том, что важнее — hard или soft skills, разделяется ровно пополам. На нескольких своих последних выступлениях я проводил опрос, и эта статистика подтверждается: примерно половине руководителей важнее soft skills, а другой половине — hard skills.
Чем junior, middle и senior отличаются друг от друга?
На эту тему есть две шутки. Первая: junior еще не может работать самостоятельно, а senior — уже не может. Вторая: junior приходит к своему руководителю с вопросами, а middle — с ответами. Выводы из этих шуток следующие: основное, что отличает программистов разных грейдов друг от друга, это уровень их самостоятельности. Безусловно, уровень самостоятельности — это комплексный показатель, отражающий одновременно и hard skills, и soft skills.
Тестирование кода: важный навык хорошего разработчика
Важный навык хорошего разработчика состоит в умении тестировать код (свой или чужой) и находить там ошибки. Поэтому разработчик должен уметь писать unit- и e2e-тесты. По этому вопросу есть одно наблюдение: получается намного эффективнее, если тестовый и основной код пишут разные разработчики. Так программа гораздо быстрее вычищается от багов, улучшается тестовое покрытие и кодовая база в целом.
Методика выявления настоящего профессионала в программировании
Чем каждый день должен заниматься программист? Писать код. Поэтому, чтобы определить настоящего программиста, нужно посмотреть на то, как он работает.
Идеальное собеседование — это один рабочий день, когда мы просто сажаем человека на текущие задачи и в конце дня смотрим, как он с ними справился. Но обычно такой возможности нет, и тогда на собеседовании мы устраиваем live coding, по которому становится понятны опыт, грейд, наличие или отсутствие интереса и образ мышления соискателя.
Таким образом первая часть методики определения настоящего профессионала состоит в небольшой задаче на написание кода. Если код написан чисто, быстро, грамотно разбит на функции и методы, переменные названы понятно и во время выполнения задачи соискатель вошел в состояние потока (включился и полностью погрузился в задачу), такого человека можно брать на работу.
Вторая часть методики заключается в задавании соискателю вопросов в виде задач, которые проверяют умение думать. На такой вопрос нельзя ответить заученными шаблонами, требуется пропустить проблему через себя и искать решение на ходу. Вопросы лучше задавать по возрастающей сложности, чтобы можно было измерить уровень человека и его общий интерес к профессии.
Итоги
Мне кажется, что в программисты успешно попадет тот, кто горит своим делом. Мало просто знать язык и уметь на нем писать. Важно иметь желание разрабатывать продукты, продумывать взаимодействие компонентов приложения, улучшать кодовую базу, автоматизировать рутинные действия, расти и развиваться как специалист. И всегда помнить, что бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и как работают профессионалы.
- программирование
- войти в программирование с нуля