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

Читайте также:

На какого программиста учиться?

Вначале пара слов об универсальных факторах выбора профессии, на которые обязательно надо обращать внимание.

1. Ситуация на рынке труда

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

Поэтому, прежде чем приступать к обучению, совсем нелишним будет оценить положение дел на рынке труда. Есть ли в вашем городе вакансии в интересующей вас области? Насколько это востребованное направление сейчас и как оно оплачивается? Такое исследование даст вам представление о том, какие перспективы ждут в выбранной области.

2. Сложность изучения

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

Языков программирования огромное множество, и все они отличаются не только своими возможностями в реализации программных продуктов, но и сложностью освоения. Наиболее простыми считаются Ruby, Python, PHP.

Читайте также:

3. Интерес

И, наконец, очевидный, но не теряющий своей актуальности совет. Ищите такую область, которая вам нравится и вызывает интерес. Казалось бы, этот пункт может вступать в противоречие с двумя предыдущими. Ведь может статься, что для изучения того, что вам по душе, придется приложить немало усилий и времени, а размер заработной платы поначалу будет существенно ниже, чем у коллег по цеху. Но просто представьте себе, что это то, чем вы будете заниматься, к примеру, следующие 5 или 10 лет. Что вы при этом почувствуете? Радость? Интерес? Отвращение? Усталость?

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

Читайте также:

Теперь о специализациях. Итак, какие же направления в программировании сейчас существуют?

1. Embedded-разработка (разработка встроенного программного обеспечения)

Практически во всех устройствах, окружающих нас в повседневном быту (и не только) используются микросхемы. Автомобили, электрические плиты, роботы-пылесосы, холодильники, банкоматы, стиральные и посудомоечные машины, роутеры, швейные машины...Этот список продолжает расширяться с каждым днем. Все эти многочисленные приборы работают при помощи электроники, которую кто-то должен запрограммировать. Именно этим и занимаются embedded-разработчики.

Основной язык программирования, использующийся в этой области, — это C++, встречается также ассемблер и JAVA, использующиеся преимущественно для низкоуровневого программирования.

Порог вхождения в эту профессию достаточно высок: C++ и ассемблер не относятся к числу самых простых языков. Кроме того, вам понадобится хорошо ориентироваться в том оборудовании, для которого вы будете создавать программы.

Заработная плата в этой сфере достаточно высока, embedded-программисты зарабатывают от 60 до 150 тыс. рублей и выше, в зависимости от уровня квалификации и профессиональных навыков.

Разработка встроенного программного обеспечения — это активно развивающееся направление. Поэтому если вам нравится работать с оборудованием и C++ для вас интересен, то это отличный выбор.

Читайте также:

2. Разработка мобильных приложений (Android и iOS)

Разработка приложений под эти операционные системы ведется на разных языках, однако эти специализации достаточно схожи (подробнее об этой профессии). Рынок мобильного программного обеспечения постоянно развивается и продолжает расти в геометрической прогрессии, в немалой степени за счет высокой конкуренции в этой сфере, а спрос на таких специалистов огромен.

На этом направлении низкий порог вхождения — создание небольших приложений возможно даже в домашних условиях. В этой области легко набраться опыта и создать собственное портфолио.

Разработчику приложений под операционную систему iOS необходимо изучить языки программирования Objective-C и Swift (разработан компанией Apple). Для создания приложений на Android вам потребуется знание Java или C#.

Доход разработчика мобильных приложений варьируется от 50 до 160 тыс. рублей и выше.

Читайте также:

3. Front-end разработчик

Еще одна очень востребованная и интенсивно развивающаяся область программирования — это веб-разработка (подробнее о профессии Web-программист). Через интернет продаются самые разнообразные товары и услуги. Сейчас чуть ли не у каждой компании есть свой хотя бы самый простенький сайт или представительство в социальных сетях, на маркетплейсах. А это означает, что спрос на специалистов в области веб-разработки высок и будет расти. 

Frontend — это та часть сайта или приложения, которую видит пользователь: страницы и разделы сайта, меню, интерфейс и т. п. Соответственно, frontend-разработчик — это специалист, отвечающий за то, чтобы сделать сайт или мобильное приложение максимально удобным для пользователей.

Эта профессия потребует творческого мышления: необходимо придумывать различные формы веб-дизайна, который будет интуитивно понятен для посетителей сайта, и находить способы их реализации с помощью программирования. Такие специалисты востребованы и в небольших компаниях, и в гигантах уровня Google, Яндекс, Microsoft, Apple и др.

Начать работать в этой области сравнительно несложно, веб-разработка предоставляет хорошие возможности для приобретения опыта и профессионального развития. Для работы специалисту необходимо на высоком уровне владеть JavaScript, знать HTML, СSS, серверные языки (Perl, PHP), а также уметь работать с базами данных (MySQL).

Кроме технического образования, важно иметь начальные познания в области психологии, разбираться в особенностях работы человеческого мозга восприятия и познавательных процессов.

Заработная плата web-разработчика — в пределах от 50 до 150 тыс. рублей.

Читайте также:

4. Back-end разработчик

Еще одна специализация в веб-программировании — это back-end-программист.

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

Back-end программист работает в постоянном взаимодействии с фронт-енд-разработчиком, получая от него информацию о мнении пользователей и внося в работу сайта соответствующие изменения.

Порог вхождения для работы в этой сфере выше, чем у front-end разработчика. Необходимо знать Ruby, MySQL, MongoDB, PostgreSQL, Python и .NET.

Зарплата back-end-программиста составляет от 60 до 200 тыс. рублей.

Читайте также:

5. Gamedev (Разработчик игр)

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

Программисты в gamedevе разрабатывают базовую механику игр. В их обязанности входит написание программного кода, создание игровых объектов и их характеристик, разработка искусственного интеллекта игры, разработка и модернизация игрового движка и др.

Какими навыками должен обладать gamedevе?

  • Главным образом это основы: С++, C#, Java, OpenGL, DirectX, шейдерные языки.
  • Также желательно знать Objective-C и Java, обладать навыками компьютерного моделирования, знать закономерности игрового процесса и особенности игровых миров.
  • Не будет лишним изучение игровых движков (Unreal, CryEngine, Unity3D).
  • В случае, если вы планируете разрабатывать браузерные игры, то пригодится знание HTML5 и JavaScript, а также сравнительно новой WebGL.

Заработок программиста, работающего в сфере разработки игр, может сильно разниться в зависимости от конкретной компании или проекта.

Читайте также:
  • Dzhambulat Sardal
    "Для работы такому специалисту необходимо на высоком уровне владеть JavaScript в различных его проявлениях, знать Html, СSS, серверные языки (Perl, PHP), а также уметь работать с базами данных (MySQL)."

    Знать серверные языки и уметь работать с базами данных (MySQL)? Тогда это, выходит, не front-end web developer, а back-end.