Обучение

Благодаря интернету весь мир имеет доступ к ресурсам для обучения программированию: как платным, так и бесплатным. Каждый щелчок мыши ведёт к новой статье, новому уроку или видео. И это создает определенные проблемы.

Я работаю в Microverse, онлайн-школе, которая бесплатна до тех пор, пока ты нигде не работаешь — вне зависимости от страны и города. Значительная часть наших учеников пришла к нам из-за того, что была напугана количеством доступных ресурсов. Эти ученики перескакивали с темы на тему, начинали изучать одновременно несколько языков, но не преуспели ни в одном.

Лучший способ не теряться в таком количестве ресурсов — это сосредоточиться на изучении одного языка. Почему? Я работал с начинающими разработчиками из более чем 50 стран и могу уверенно сказать, что хорошее знание одного языка программирования даёт большие шансы найти работу, нежели поверхностное знание десяти разных языков.

Не знаете, какой язык изучить? Вам повезло, эта статья как раз для вас.

С чего начать? Выучите универсальный язык

Я советую всем начинающим разработчикам, не определившимся с языком, начать с изучения одного из универсальных языков программирования. Они хороши тем, что могут использоваться почти в любой сфере.

Python

Благодаря простому синтаксису этот язык стал универсальным для изучения. Он обладает динамической типизацией, автоматическим управлением распределения памяти и поддерживает несколько парадигм программирования: объектно-ориентированное, функциональное и императивное программирование. Одна лишь стандартная библиотека позволяет использовать этот язык в различных сферах.

Веб и десктопные приложения, серверы, машинное обучение и искусственный интеллект используют Python. Он год за годом попадает в топ языков программирования. В 2018 Python получил награду “Лучший язык программирования года” в TIOBE Programming Community Index за наибольший рост рейтинга. В 2019, как мне кажется, этот рейтинг возрастёт ещё больше.

Сейчас на Indeed.com можно найти более 66 тысяч вакансий для Python-разработчиков.

JavaScript

Как показал ежегодный опрос разработчиков на Stack Overflow, более 70% разработчиков используют JavaScript. Он гибкий, может использоваться в любой области разработки программного обеспечения, является одним из главных языков фронтенда всемирной сети. К тому же этот язык позволяет создавать интерактивные веб-страницы, и поэтому важен для большинства веб-приложений.

JavaScript поддерживает как объектно-ориентированное, так и функциональное программирование. Вдобавок к этому язык может похвастаться постоянно расширяющимся количеством библиотек. JavaScript настолько популярен, что его фреймворки есть и там, где он не очень эффективен, например, в разработке игр и виртуальной реальности.

Сейчас на Indeed.com более 40 тысяч вакансий для JavaScript-разработчиков.

Ruby

Этот язык также поддерживает объектно-ориентированное, функциональное и императивное программирование. В нём присутствует динамическая типизация и автоматическое распределение памяти. Чаще всего Ruby используется в веб-приложениях с фреймворком Ruby on Rails и в бэкенде серверов и баз данных.

Его преимущество заключается в легкости для изучения новичками. Он лёгок, потому что синтаксис довольно близок к натуральному языку. Ruby может сделать за пару строчек кода то, для чего в других языках понадобится 20 строчек.

Сейчас на Indeed.com более 9 тысяч вакансий для Ruby-разработчиков.

Java

Слоган этого языка — “написано однажды, работает везде и всегда”, потому что программы работают на любой платформе с поддержкой Java. Это один из самых известных языков среди начинающих разработчиков и второй по популярности на Stack Overflow.

Это основанный на классах объектно-ориентированный язык программирования. Он разрабатывался таким образом, чтобы иметь как можно меньше зависимостей. Благодаря его структуре область его применения довольно широка. Наиболее известное применение — создание Android-приложений. Помимо этого, язык используется в десктопных и веб-приложениях, серверах и сетях. Синтаксис поначалу может показаться сложным, но, освоив его, вы гарантированно найдёте работу.

Сейчас на Indeed.com более 68 тысяч вакансий для Java-разработчиков.

Определились с областью работы?

Если вы уверены в том, что хотите заняться машинным обучением, стать разработчиком мобильных приложений или присоединиться к стартапу, то лучше выбирать язык, наиболее подходящий для конкретной цели.

Машинное обучение

Согласно заметке на GitHub, в 2018 году Python являлся самым используемым языком в этой области. Совместите ваши знания Python и умение работать с библиотекой TensorFlow и вы станете отличным кандидатом на работу, связанную с машинным обучением.

Ещё одним неплохим выбором будет язык R. Он очень эффективен в обработке и анализе данных для статистических целей. Как и Python, этот язык имеет несколько пакетов, облегчающих имплементацию алгоритмов машинного обучения.

Разработка мобильных приложений

Для начала вам нужно определиться, под какую платформу вы хотите разрабатывать приложения: Android или iOS.

Для разработки под Android отличным выбором будет Java. Мобильная разработка на этом языке отличается от обычной разработки из-за ограничений смартфонов. Например, обычная программа, написанная на Java, будет выполняться до тех пор, пока вы вручную не прервёте её выполнение, тогда как приложение Android может быть закрыто в любой момент.

Если же ваш выбор — iOS, то я рекомендую изучить Swift, официальный язык Apple для iOS, macOS и других продуктов компании Apple. Возможно, кто-то порекомендует Objective-C, потому что в нём можно создавать графический интерфейс пользователя и фреймворки с огромным количеством возможностей.Но всё же я настаиваю на Swift, потому что он легче поддается изучению, пониманию и одобрен Apple.

Ещё один язык для мобильной разработки — JavaScript. Совместив его с HTML и CSS, можно создавать приложения, которые можно конвертировать в нативные при помощи Cordova. Также можно использовать .NET-языки для создания и конвертации приложений с помощью Xamarin. Это ещё раз демонстрирует значимость универсальных языков.

Стартапы

Если вы уверены в том, что вы хотите создать свой или присоединиться к уже существующему стартапу, то нет ничего лучше Ruby и Ruby on Rails. Этот язык легко осваивают начинающие и с его помощью можно быстро создавать прототипы приложений.

В Microverse курсы устроены таким образом, чтобы увеличить шансы учеников на получение работы, так как мы не получаем плату до тех пор, пока они не трудоустроятся. Поэтому для тех, кто хочет работать в сфере стартапов, мы предлагаем изучение JavaScrip, React, Ruby и Ruby on Rails.

Каких языков избегать?

Существует огромное количество языков программирования. Списки самых популярных сейчас включают в себя Go, Scala, TypeScript, C++ и Rust.

Однако если вы начинающий в сфере разработки ПО, то следует избегать большинство из них. Они неоправданно сложные или имеют слишком узкую спецификацию.

Заключение

  1. Сосредоточьтесь на оттачивании мастерства в одном языке, а не на параллельном изучении нескольких.
  2. Если не знаете, с какого языка начать, то выберите один из универсальных.

Не пугайтесь того, что нужно делать выбор. Для каждого языка найдётся работа. Что действительно важно — ваша мотивация, целеустремлённость и умение сосредоточиться на изучении выбранного языка.

Успехов!


Перевод статьи Ariel Camus: How to choose which programming language you should learn in 2019