Пожалуй самый волнующий вопрос для начинающего программиста: в каком направлении двигаться и какую специальность выбрать? В этой статье мы попытаемся в полной мере раскрыть данную тему, чтобы помочь вам определиться.
Объективно, самыми популярными на сегодня являются следующие специальности:
- Front-End
- Back-End
- Mobile Dev
- Embedded
- Game Dev
- Enterprise
При выборе в первую очередь стоит обратить внимание на востребованность (количество вакансий и зарплату), перспективы и на порог вхождения.
Итак, начнем:
Back-End
В современную эпоху даже самой маленькой фирмочке стыдно не иметь собственного сайта или визитки. На рынке полно предложений на любой вкус и кошелек. Но и хватает фирм, предлагающих вполне хорошие решения за разумные деньги.
Порог входа достаточно низкий, достаточно широкий рынок, на котором легко начинать (как я уже говорил) и есть куда расти. Но за счет легкости входа на рынок зарплаты в этом секторе самые низкие в индустрии. Долгое время все было оккупировано PHP. Разработчикам явно хочется чего-то большего, чего-то нового. Поэтому и идет попытка заменить PHP на Ruby, Python или на что-нибудь еще. Как вы понимаете — веб сейчас можно делать вообще на любом языке высокого уровня — в каждом есть соответствующие фреймворки.
Мобильная разработка
Первое на что стоит обратить внимание — относительно низкий порог вхождения. Ничего запредельно сложного и получить опыт вполне реально. Отсутствие специалистов с 15-20 лет стажа в этой области. Огромный запрос на рынке создает дефицит квалифицированных кадров, следовательно — неуклонно растущие зарплаты.
Вывод — на сегодняшний день этот сегмент смотрится как одни из самых привлекательных.
Front-End разработка
JavaScript становился все круче, AJAX поднимает голову. На клиенте уже крутиться достаточно много кода. А дальше еще больше — навороченные фреймворки, синтетические языки, которые компилировались в JavaScript, и многое другое.
Плюс nodeJS который даёт фронтендщикам кучу возможностей. Бэк-енд разработчики могут написать REST-запросы на любом языке. Фротендщики могут использовать nodeJS для работы с серверным уровнем на чистом JS, выполняя необходимые функции через REST-запросы. Фронт-енд сейчас расширился на сервер, до границ UI на nodeJS, а остальная часть задач остаётся для бэк-енда.
Таким образом, на сегодня, front-end одна из самых динамически развивающихся специальностей. Очень быстро растущие запросы рынка, на фоне отсутствия специалистов с большим опытом. А еще порог вхождения, который достаточно низкий и позволяет без особых трудностей найти первую работу.
Вывод — отличный выбор для новичка.
Но есть нюанс: потребность в дизайне и качественной верстке. Будьте готовы к тому, что Photoshop будет таким же часто используемым Вашим инструментом, как и любимая IDE.
Game dev
Любимое направление всей молодой аудитории, особенно мужской части.
Работы откровенно мало, так как на рынке СНГ очень немного гейм-девовских студий.Далее, если вдруг ваша мечта сбудется, и вы будете разрабатывать настоящие игры, а не социалки, то вам придется держать на столе справочники по сопротивлению материалов, акустике, оптике, гидро- и аэродинамике и всяким другим страшно любимым студентами предметам, так как именно они и будут самыми важными вашими знаниями.
Касаемо доходов — зарплата не такая уж и плохая, но чем интереснее проект — тем больше на него охотников и тем меньше зарплата.
В целом, если вам хочется с друзьями в гараже создать свой World of Warcraft — создавайте. Это весело, и научит вас, например, отношениям внутри коллектива. Но стать профессиональным гейм-девом и хорошо на этом заработать, очень сложная задача.
Enterprise разработка
Речь идет о разработке программ для крупных и гигантских компаний. В enterprise разработке вам придется столкнуться со следующим:
- Работа с огромным количеством сущностей. Это счета, документы, пользователи, товары, адреса, этажи, клиенты, какие-либо группы, списки типов, телефоны и прочая, и прочая, и прочая. Не очень большие системы содержат сотни и сотни таблиц. А то и тысячи.
- Огромные объемы данных. Терабайтные базы, гигабайтные файлы передаваемых данных.
- Эти программы никогда нельзя заморозить на уровне какой-либо версии – они «живые». Бизнес меняется постоянно и приложение должно ему соответствовать. А значит оно меняется вместе с бизнесом. Вряд ли вы видели компанию, которая не меняла свои бизнес-процессы годами – такие компании чаще всего исчезают достаточно быстро. Может и есть исключения, но разве что в государственных структурах. Для бизнеса такое положение вещей вряд ли возможно.
- Крайне консервативное отношение к используемым системам и фреймворкам. В enterprise вы практически не встретите софта, разработанного позднее, чем 5 лет назад.
- Из-за наличия большого количества сущностей и постоянного изменения эти программы крайне запутанные. И их поддержка может превратится в головную боль не одной команды программистов.
Существует две платформы для Enterprise разработки — это .Net и J2EE.
.Net разработчика:
- Более низкий, чем у Java, порог вхождения.
- Одни из самых высоких на рынке зарплат. Выше только у Java;
- Отсутствие альтернатив в выборе средств разработки. Это облегчает разработку, хоть и лишает гибкости;
Java Enterprise разработка:
- Топовые зарплаты на рынке;
- Самый высокий на рынке порог входа;
- Наибольшая востребованность на рынке.
- Пожалуй самые сложные задачи;
И еще один нюанс: Java Enterprise часто не имеет отношения к разработке в принципе. Например будет случаться так что ваша задача будет состоять в настройке приложения на мощном распределенном серверном кластере. После Java Enterprise, в случае потребности любой другой язык выучивается на одном дыхании.
Embedded разработка
Телевизоры, холодильники, автомобили, телефоны, промышленное оборудование… Все это работает с использованием электроники, которую нужно запрограммировать. Этим и занимаются embedded разработчики.
В основном используются С++, Java и даже ассемблер.
Языки С++ и асемблер, и так не очень просты, а то, что помимо них надо знать еще и конкретное железо, как вы понимаете, делает задачу очень непростой. Исходя из этого можно сделать вывод что порог вхождения высокий. Если вам нравится программировать ардуинки, делать своих роботов-квадрокоптеров, программировать сигнализацию и писать свои собственные прошивки на андроид то это для вас.
Рабочее место embedded-разработчика – это куча какого-то непонятного полу-разобранного железа, связанного друг с другом навесным монтажом, все это соединено с таким же полу-разобранным компьютером, откуда-то торчит несколько мониторов, на некоторых из которых синусоиды, странные изображения и диаграммы.
Вывод — порог вхождения высокий, зарплаты хорошие, перспективы — отличные. Вряд ли данный рынок начнет уменьшаться. Если вам нравятся железяки, С++ и провода — выбирайте embedded разработку.
Надеюсь данная информация поможет Вам сделать правильный выбор. Также советую посетить наш стриминговый сервис для программистов livecoding.tv где вы можете поинтересоваться у опытных программистов их опытом и получить ценный совет.
Считаете информацию полезной? Поделитесь с друзьями через кнопки социальных сетей!