Привет! Меня зовут Алекс Туманов. Я руководитель направления Академии ITSTEP «Разработка программного обеспечения». За плечами 20 лет программирования на языках C, C++, C#, Java, PHP, Javascript и многих других.
В статье расскажу, почему учить второй, третий и все последующие языки программирования не страшно, а весело и интересно. А главное — необходимо для карьерного роста. Статья поможет и тем, кто еще не знает никакого языка — развеять мифы и войти в IT без сомнений и переживаний.
В 90-х я писал на языке C. И это стало фундаментом карьеры в IT по одной причине
Я был таким же новичком, как и все студенты Академии. Ничего не знал, но очень хотел программировать. Узнать, как устроен мир айтишников, что учат и с чем работают.
У меня была книга «Язык программирования С для чайников». Я ее очень люблю и у меня с ней только самые теплые воспоминания.
Прочитал книгу от корки до корки. Пробовал что-то делать сам, брал идеи у друзей. Они и рекомендовали учиться на языке C.
Мне понравился язык лаконичностью, красотой и строгостью. И C стал фундаментом карьеры. Как в моей истории, так и миллионов разработчиков по всему миру.
Список трендовых языков программирования от TIOBE.
Спустя 20 лет я ни о чем не жалею. Рад тому, что начал путь именно с C. Посмотрите на тренды 2022 года. Востребованы C-подобные языки программирования: C++, C#, Java, Javascript. Недавно появился Rust. Go — тоже C-подобный язык.
Каждому, кто только начинает карьеру в IT, рекомендую обратить внимание на C — это фундаментальный язык программирования.
Учиться программированию на C, как познать основы работы с акциями. Фондовый рынок существует не одну сотню лет. Изменяется общество, тренды. А фундаментальные понятия, вроде диверсификации портфеля, трендов на повышение и понижение курса, биржевые крахи — повторяются. И они помогают правильно выбирать акции компаний, снизить процент ошибочных решений.
С-подобные языки формируют правильное сознание. Не просто программиста, а инженера. И да — это разные понятия.
Программистов и инженеров отличает подход к изучению языков
Когда вы смотрите видео о программировании на Youtube или читаете блоги программистов, в голове закрадывается вопрос: «Все говорят о трендах в языках. Одни пользуются спросом. Другие умирают. Что учить?»
Если я программист, то я знаю определенный язык и пишу только на нем — как правда, так и большое заблуждение.
Хороший программист — всегда инженер. Он не пишет код на конкретном языке, вроде Python или Javascript. А решает задачи клиентов.
Представьте ситуацию: вы работаете над приложением для мобильного банкинга, вроде Privat24. И знаете только один язык. Вы берете этот инструмент, пишете код для приложения. С ошибками, багами — неважно. Сдаете проект, даже о них не задумываясь.
Через время получаете результаты тестирования — приложение не выполняет поставленных заданий. Код слишком длинный, а за время загрузки можно заварить чаю и поесть бутербродов. Клиент сворачивает проект и передает другому программисту.
Поэтому задание инженера — выбрать правильный подход и инструменты для решения задачи. И он не останавливается на одной нише, а маневрирует между проектами. Инженер меняет языки, как хирург перчатки. Новая операция — новый пакет перчаток.
И не каждый работодатель ищет специализированного программиста. Например, Microsoft набирает в штат дженералистов — универсальных разработчиков.
То, на каком языке человек программирует — на втором месте. В Microsoft прекрасно понимают: «Сейчас разработчик пишет на С#. Если появится проект на Java, то мы сможем передать его именно этому программисту. Он знает C#, сможет быстро выучить отличия синтаксиса языка. И приступить к работе».
Отличия синтаксиса — основа изучения второго языка
Любая профессия накладывает ограничения на мозг. Он функционирует так, чтобы помочь освоить конкретную, выбранную вами профессию. Судья знает о своей профессии в обложке канцеляризмов и сложных юридических терминов. Для нас легко сказать «человек». Но для судьи это всегда — «физическое лицо».
Так и в программировании. По мере изучения первого языка мозг создает новые нейронные связи, которые помогают вам думать, как инженер.
В программировании вы учитесь методологии — это идеи, принципы и способы написания программ. Например, если вы знаете правила настольной игры «А», то перейти на игру «Б» с похожими правилами, но доской и карточками с другими картинками легче и быстрее.
Язык — прикладное средство, гаечный ключ с числовой маркировкой.
В голове новичка нужно сначала выучить язык, а уже потом что-то делать. Но это неправильный подход.
Учить 20 языков, чтобы стать экспертом — глупо. Только от количества языков страшно: «А потяну ли я столько?» Это неправильно.
Отправная точка — вы учите методологию. Затем первый язык. Ваш первый язык — помощник для мозга. Он перепрошивает ваш мозг, чтобы тот думал в формате программиста. А вы двигались по лестнице вверх, а не стояли на месте.
Вы выучили все базовые понятия. Уже нет проблем с условиями, циклами и массивами. Это понятные конструкции, которые встречаются и в других языках программирования.
Теперь вы учите новый язык не через правила (вы их знаете), а через отличия синтаксиса. И применяете язык в необходимой для вас нише. Как в примере с мобильным приложением.
Задача при изучении всех языков после первого — понять предметную область. Выяснить, какие задачи он решает. |
Например, вы занимаетесь Frontend-программированием. Если вы уже учили С, или C++, а переходите на Javascript, смотрите: «Так создаются условия в JavaScript. Так работают циклы. А вот создаются массивы – я все замечаю». И вы не тратите время на понимание того, что такое массив. Вы на C++ это выучили.
Как выбрать язык программирования, если понимания в программировании пока нет
Советую учить самые популярные языки программирования. И ориентироваться на ту сферу, где хотите работать. И в этой нише хотите жить.
Некоторым моим коллегам нравится системное программирование — разрабатывать драйвера, антивирусы, фаерволы, программные продукты для автомобильных компьютеров. И они учили С++ первым. Язык до сих пор популярен в игровой сфере.
Если вам интересно работать с веб-проектами — учите технологии Frontend (JavaScript, Html, CSS) и Backend (Java, Python, ASP.NET Core). Затем сможете выбрать одну нишу и остановиться на ней. Или стать Full-stack разработчиком и делать продукт в одиночку.
Если же не знаете, где хотите быть — возьмите язык, который всегда пользуется популярностью. Например С++. Начинайте с него. Или С#.
Я не зря рассказывал о C-подобных языках. Все, что вам потенциально нравится, связано с C — С#, Java, JavaScript.
Начните учить программирование. Со временем вы поймете, что суть не в языках, а в самой профессии. По мере изучения методологии поймете, что нравится.
Посмотрите на Youtube обзоры языков. Обратите внимание, какие задачи они решают. И приходите на специализированные мероприятия, где детально рассказывают о профессиях в IT. Например, на ивенты Академии ITSTEP. Послушайте презентации, задавайте вопросы. Развейте для себя все страхи и сомнения. И не акцентируйте внимание на конкретном языке — какой самый легкий, а где платят больше.
Второй вариант — забыть о языках программирования, нише и интересах. Стать универсальным специалистом.
Четко понять: чему учиться, а чему нет новичку трудно. И самостоятельно это сделать не всегда удается.
Если не хотите учиться на курсах, то попробуйте работать с ментором — опытным программистом. Он станет для вас преподавателем, поможет и расскажет, как правильно.
Проблема не только в том, чтобы найти такого программиста и мотивировать работать с вами. Есть еще несколько факторов, которые влияют на уровень и время обучения:
-
Люди заняты личными проектами, повышением квалификации и работой.
-
Не каждому программисту нравится преподавать.
-
Если нет программистов, готовых работать с вами бесплатно, то ментору придется платить, как и за курсы.
Если выбираете учебное заведение, то сразу устанавливаете цель-минимум — получить диплом и стать специалистом. А то, какой язык учить — на втором месте, или вообще пока не важно.
Если вам интересно программирование, но не знаете, чего конкретно хотите от профессии — станьте универсальным бойцом. Записывайтесь на «Профессиональное компьютерное образование» Академии ITSTEP.
После обучения вы — специалист не в одной нише. Вы программист с багажом технологий. Смело выбираете сферу, где хотите быть. Осознанно и с готовой базой.
На моей практике большое количество примеров, когда люди после «Профессионального компьютерного образования» переходили из одного направления в другое. Например — из разработки мобильных приложений в Frontend. Все зависит от собственных желаний и потребностей компании, где работает человек.
И не думайте сейчас, какой язык программирования учить. Если вы знаете методологию программирования, освоить предметную область второго, третьего… языков легко и интересно, как прочесть книгу или посмотреть все сезоны любимого сериала. Пробуйте!