какие бывают, их навыки, зарплата и время обучения
Программист Данил Головин работал в больших и маленьких командах, на фрилансе и в штате, совмещал разные функции. На его счету — работа над проектами Panasonic, Yves Rocher, «Билайн». Вместе с ним мы составили краткий гид по IT-специальностям.
Программист C++, Java, C Sharp, Go
Сложность задач: высокая, нужно постоянно дополнительно обучаться
Зарплата: от 25 000 ₽ до 580 000 ₽
Сколько в среднем учиться: 8,5–24 месяца
Программирует сайты, мобильные приложения, утилиты, микроконтроллеры, серверы. На С++, например, могут делать нейросети, а на Go — работать с большими данными.
Специалистов по тем же большим данным в стране не более ста. Потому что такие программисты нужны не в каждой компании. Но спрос на них высокий, и зарабатывают они на уровне топ-менеджеров.
Программист JavaScript и PHP
Сложность задач: средняя, много типовых проектов
Зарплата: средняя — 158 000 ₽
Сколько в среднем учиться: 7–14 месяцев
Создает сайты, мобильные приложения и интерфейсы к ним. Может связать сайт с внутренней системой компании, чтобы, к примеру, заявки с него сразу приходили в 1С или битрикс.
Всегда найдет работу. Изучить материал просто, проекты есть в любом городе. Деньги не самые большие, но заработать их несложно.
Frontend-разработчик
Сложность задач: типовые технические задачи, много согласований, все ошибки — простые и на виду
Зарплата: от 25 000 ₽ до 350 000 ₽
Сколько в среднем учиться: 5–12 месяцев
Фронтендер создает визуальную часть сайта — ту, что видит пользователь. Верстает, анимирует страницы плавно появляющимися элементами, всплывающими формами, встраивает системы контроля. В работе использует JavaScript-библиотеку React.
Для новичков работа хороша тем, что у нее невысокий уровень ответственности. Все ошибки разработчик видит сразу и тут же может их исправить. Но визуальную часть сайта видит и заказчик, поэтому фронтендеры часто получают правки и согласуют свою работу.
Backend-разработчик
Сложность задач: высокая, как и уровень ответственности
Зарплата: от 40 000 ₽ до 500 000 ₽
Сколько в среднем учиться: 8–16 месяцев
Программирует внутреннюю часть сайта, работает на языке Python или PHP. Отвечает за правильную обработку данных: например, чтобы товары в интернет-магазине попадали именно в вашу корзину, а не чью-то другую, чтобы работала форма оплаты, приходили автоматические письма.
Ошибки бэкендеров видны не сразу и стоят дороже, чем у фронтендеров. Например, по их вине могут не создаваться заявки в интернет-магазине.
Часто происходят ситуации, когда фронтендеры устают от согласований с клиентом и переходят в бэкенд. Также часто разработчики осваивают сразу две специальности.
Программист fullstack
Сложность задач: высокая, отвечает за весь продукт
Зарплата: от 25 000 ₽ до 550 000 ₽
Сколько в среднем учиться: 12–15 месяцев
Такой специалист может сам собрать сайт с нуля: создать его визуальную часть и написать код для внутренней. Работает в небольших компаниях на маленьких проектах. В среднем зарабатывает 120 000 ₽. Может заработать больше, если берет проекты на фрилансе. Чем больше взял, тем больше заработал.
Вебинары
Тестировщик
Сложность задач: простая работа, но нужно быть внимательным
Зарплата: от 20 000 ₽ до 180 000 ₽
Сколько в среднем учиться: 4–15 месяцев
Проверяет работу сайтов, мобильных приложений, различных программ и систем. Если находит ошибки — фиксирует их, составляет отчет и передает разработчикам.
Хорошо, если тестировщик умеет базово программировать, тогда ему будет легче найти и описать ошибку.
Менеджер проекта
Сложность задач: нужно много общаться внутри команды и с внешними заказчиками
Зарплата: от 150 000 ₽ до 350 000 ₽
Сколько в среднем учиться: 12 месяцев
Полностью ведет проект, общается с заказчиками, передает задачи разработчикам.
Комфортнее работать, если менеджер имеет хотя бы минимальные знания по программированию. Идеально, если это бывший программист.
Какие бывают программисты, где деньги и на кого проще учиться. Объясняет программист — Разработка на vc.ru
Всем привет! Я Лаптев Алексей, основатель и главный разработчик сервиса сквозной аналитики Utmstat и интеграций — ApiMonster. В этой статье расскажу какие бывают программисты, на чем программируют и как ими стать.
35 022 просмотров
О чем статья
Так как сам разработчик, делюсь опытом что из себя представляет коммерческая разработка и как в нее войти. Полезно для тех, кто ищет точку входа и подходящий курс.
Ставьте лайк для охвата.
Типы программистов
Фронтенд-программист
Пишет на javascript продвинутый UI на сайтах, например прекрасный редактор статей на VC или ненавистные онлайн-чаты.
В последнее время в моде фреймворки React. js, Vue.js.
Это если повезет попасть в приличный продукт, а если не повезет, то пишет очередные ненужные спецэффекты в корзине no-name интернет-магазина.
Backend-программист
Тут уже серьезней.
Данный специалист больше отвечает за серверную бизнес-логику и меньше занимается мишурой в виде спецэффектов на сайте.
Серверная бизнес-логика это:
- Что показать на сайте, когда вы зайдете на его url
- API для мобильных приложений
- Какие-то внутрение процессы обработки данных
Пишет обычно на php/python/go/nodejs.
Нужно знать базы данных.
Бонусом может подменить фронтенд-программиста на не очень сложных задачах.
Backend-программист на CMS
Это программисты на WordPress, 1C-Bitrix и прочих конструкторах.
Тут фокус на поднятии типовых сайтов на готовых движках.
Довольно скучно и слабое развитие.
1С-программист
Что-то пишет на 1С для бухгалтерии.
Прочие программисты таких программистов не считают программистами.
Что в целом справедливо, тк это по сути не программирование, а конфигурирование конкретного программного продукта.
Но возможно я уже не прав, не вникал глубоко.
Датасаинтист
Не совсем программист, но модная тема по работе с данными.
Строят графики на Python/R, ищут инсайты. Продвинутые работают с ML.
До программистов не дотягивают, но автоматизировать свою работу на Python/R могут.
Ценность данных специалистов не в самом программировании, а в способности автоматизированно обрабатывать и делать выводы на основе больших данных.
Системный программист
Пишет сложное ПО на C/C++ — драйверы, ОС, игры.
Если хочется быстро войти в профессию, то точно не здесь.
Какие есть языки и что они делают
JavaScript
Не путать с Java.
Весь интерактив что вы видите на сайте (лайки, лента справа) — это все пишется на javascript.
То есть его основная задача — это красивый и местами функциональный UI.
Есть еще серверная версия — NodeJs, но о ней позже.
PHP
Пожалуй лучший язык для написания серверной части веб-проектов — сайты, api. В первую очередь для тех кто-то только запускает новые сервисы и пишет MVP.
У людей с ним не работающими, есть стереотип, что это язык плохокодеров и что-то писать на нем — моветон, лучше какой-нибуть модный go или nodejs.
На мой взгляд такой стереотип сложился лет 10-15 назад в php4, когда это язык был самый популярный, простой и в тоже время не было еще сформировавшихся подходов к разработке.
Энтузиасты методом тыка или по книжкам (невероятно!) на голом php что-то пытались делать не заморачиваясь с архитектурой. А те кто потом это поддерживали и сформировали стереотип.
Сейчас же PHP дорос до 8-й версии, обзавелся фреймворками — Yii2, Symfony, Laravel и на мой взгляд не имеет никаких серьезных недостатков, при этом имеет сильные преимущества — удобный язык, одна самых высоких скоростей разработки и доступность специалистов на рынке.
Python
Раньше это был аналог PHP для сайтов. Сейчас стал главным инструментом датасаинтистов.
Веб-проекты я бы на нем не писал, выбрав PHP, но решать различные личные аналитические задачи — самое то, там богатый выбор аналитических и ML библиотек.
К слову в аналитику прекрасно может и PHP.
Многие сервисы сквозной аналитики, в том числе и utmstat написаны на PHP, но там не требуется сложной математики и специфичных библиотек.
R
Не вникал в суть языка, но вроде он заточен для аналитики.
Если вы новичек — лучше учите python.
Go
Модный язык, на котором сейчас многие переписывают проекты через микросервисы!
Этот язык нужно учить третим после PHP и Javascript.
Go нужен для реализации высоконагруженных модулей, но из-за некоторых неудобных архитектурных особенностей и большого объема писанины, на мой взгляд, он не подходит в качестве основного серверного языка.
NodeJS
Не работал с этим языком, но по сути он похож на Go.
Быстро работает, но сложно писать большие проекты.
Подходит для реализации небольших высоконагруженных модулей.
Swift/Objective-C
На них пишут приложения и игры под IOS (айфон).
Не самая простая штука, но несомненно актуальная.
Java
Делится на 2 части:
- Мобильная разработка для Android
- Enterprise-софт для банков и прочих аналогичных клиентов
Самый популярный язык, сложноват, скучноват, но работу всегда найдете.
1С
Несмотря на относительную востребованность и что у всех стоит 1С, с точки зрения карьеры программиста — тупиковый путь.
Выучив 1С вы закроете себя в довольно узком сегменте бухгалтерских задач и будете учить «язык», который нигде за пределами 1С не нужен.
Если между php/python/js/go можно довольно легко перескакивать, то с 1С вы туда не перескочите, оставшись весьма условным программистом с ограниченным выбором вакансий.
Но если нет амбиций на работу на международном рынке и нужна просто стабильная работа в IT — то возможно стоит учить.
C/C++
Это основа основ. На нем пишется все — прикладной софт, игры, драйверы, операционные системы.
Где деньги?
Судя по предлагаемым вакансиям — в Go, Javascript, Java.
Чуть поменьше в PHP/Python.
Но стоит иметь ввиду, что много платят реально опытным спецам, новичкам будет удачей устроится хотя бы на x/5-10 зарплату для набора опыта.
Как легко стать программистом
Никак.
Тут главное понять, что нет смысла учиться на программиста чтобы работу работать, это должно быть интересно настолько, что вы самостоятельно будете что-то изучать и делать это без пинков в виде курсов.
Без интереса вас не хватит на 3-5 лет постоянного обучения и ломания себе мозга, от силы на 1-2 месяца.
Если решились, то выбирайте какая тематика интересна и вперед учиться.
Но все же проще всего мне кажется через фронтенд/javascript. Там минимальный набор знаний — только js/html/css. Никаких баз данных, серверов, нагрузок и сложных языков.
Куда пойти учиться
Вообще раньше учились по книжкам или мануалам. Просто брали книжку по языку и читали от и до, делая свой pet-проект. Но сейчас такой подход выглядит невероятным.
Сейчас возможно стоит найти курс на ютуб из нескольких десятков уроков, главное чтобы этот курс ничего не продавал.
Или в невероятном текстовом варианте, например learn.javascript.ru. У каждого языка есть какой-то официальный курс/мануал.
Лучше всего учится на своем pet-проекте.
Найдите задачу которая вам важна и интересна, но на которую тратите много ручного труда и попробуйте ее сделать — парсер, калькулятор, график. Когда задача имеет смысл — обучение идет сильно проще, чем на синтетических примерах.
Как пройдет первый в шок и в голове что-то отложится, можно думать дальше.
Если все легко дается — можно уже искать работу на джуниора, показывая свой pet-проект.
Если не очень легко дается, можно поискать курсы, но тут надо быть очень осторожным — много скама.
Рекомендую учится у технологических компаний типа яндекса, mail.ru, сбера — они точно разбираются в разработке.
А если курс предлагает скидку 50% и зарплату в 200к, то он просто пытается вам продаться любыми способами. Я бы туда не ходил.
Тут есть неприятный факт: при найме разработчиков в основном смотрят только на опыт и реальные проекты, дипломы и потраченное на них время значения не имеют.
Смогли пройти техническое собеседование — вас возьмут, не смогли — не возьмут. Все просто.
Куда пойти работать
В идеале, ваша задача попасть в следующие условия:
- На проекте много пользователей, что накладывает требования по стабильности работы и качеству кода.
- Проект пишется на стандартных популярных фреймворках, а не каком-то noname-самописе, который никому не нужен за пределами конторы. Так как вам нужен опыт работы на востребованных инструментах.
- В команде несколько человек и строгий тимлид, который бьет по рукам за кривой код, но при этом подскажет как правильно делать. Постоянные унижения от команды быстро поднимут скилл.
На рынке есть несколько типов контор.
Крупный сервис
Яндекс, Авито.
Это продуктовая разработка, то есть когда контора пилит свои проекты и продает какую-нибуть подписку, а не делает «сайты на заказ», продавая человеко-часы.
Там обычно нет спешки, большой грамотный проект и сильные разработчики, но шансы попасть невелики.
В идеале — сюда.
Малый сервис
Например utmstat.
Та же самая продуктовая разработка, только масштабы поменьше.
Из-за ограниченных бюджетов шансов попасть чуть больше, но все равно не очень много. Так как проще взять спеца подороже, чем учить дешевого.
Но и тут не плохо, а возможно даже лучше.
Заказная разработка сложных проектов
Может быть как крупный epam, так и относительное мелкие, но известные агентства по разработке.
Тут уже продажа ваших человеко-часов, поэтому надо быстрее работать.
Сложные проекты — это известные клиенты типа банков, интернет-магазинов, телекома.
Наличие таких клиентов говорит о том, что в конторе есть определенный уровень экспертизы и есть чему поучиться.
А большой штат и постоянная потребность в разработчиках увеличивают шанс быть нанятым на работу.
Терпимо
Заказная разработка простых проектов
Noname-контора делает проекты для noname-клиентов.
Иногда такие конторы называют «галерой», а разработчиков — «гребцами».
Начиная от региональных сайтов/приложений и заканчивая заказами из upwork.
Не стоит ожидать интересных проектов и грамотной технической части, но если опыта вообще нет, то вариант вполне нормальный набить руку и получить коммерческий опыт.
Как станет скучно и несложно — надо менять место работы.
Если больше никуда не берут, то вариант неплохой.
Фриланс
Тут 3 минуса:
- Клиентов искать сложно, хотя как повезет.
- Проекты начального уровня, но для обучения нормально.
- Нет критики, а на старте она важна.
Ну а жирный плюс — нет собеседования и можно легко прикинуться опытным спецом.
Вполне нормальный вариант, если сможете найти клиентов.
5 вещей, которыми занимаются программисты помимо программирования
1 января 2023
Задумывались ли вы когда-нибудь: «Чем именно занимаются программисты?» Если вы подумываете о карьере программиста, скорее всего, да.
Итак, где работают программисты? Многие люди представляют компьютерных программистов как рабов перед экраном, заполненным единицами и нулями. Что ж, подумайте еще раз: быть программистом — это гораздо больше, чем программировать. На самом деле, в некоторые дни многие программисты тратят 80 процентов своего времени на анализ и переговоры и только 20 процентов на собственно кодирование.
Проще говоря, программисты несут ответственность за анализ бизнес-потребностей своих клиентов и создание технических решений для решения этих бизнес-проблем. Это может охватывать множество различных задач, таких как разработка и тестирование программного обеспечения, написание кода и отладка. Вот 5 вещей, которые программисты делают помимо кодирования.
1. Они работают с остальной частью компании над планированием продукта
Это основа работы программиста. Независимо от того, является ли он единственным инженером в стартапе или частью большой команды разработчиков в компании из списка Fortune 500, планирование графика разработки продукта стоит на первом месте. Прежде чем написать какой-либо код, инженеры-программисты должны работать с исполнительной командой, менеджерами по продукту, дизайнерами UX и отделом продаж, чтобы понять бизнес-проблему и разработать правильное решение.
Члены команды из всех отделов могут участвовать в «белой доске» или совместном решении проблем, чтобы определить подход к решению бизнес-проблемы помимо написания кода.
Хорошие программисты тратят время на то, чтобы убедиться, что они понимают требования, отступают, когда это необходимо, и переводят бизнес-требования в технические требования, чтобы они могли делать оценки до начала работы.
2. Они пишут программное обеспечение
Очевидная часть рабочего дня программиста. Программисты используют различные языки, такие как JavaScript и Ruby, для написания программ.
Чтобы упростить этот процесс, программисты также используют библиотеки базового кода, которые можно модифицировать или настроить для конкретного приложения. Этот подход дает более надежные и согласованные программы и повышает производительность за счет исключения некоторых рутинных шагов. В некоторых случаях им может понадобиться их код для адаптации к нескольким системным платформам, таким как Интернет, мобильные устройства, Windows или Mac OS X.
3. Они тестируют, поддерживают и отлаживают программное обеспечение
Так же важно, как и написание программное обеспечение обеспечивает правильную работу программного обеспечения. Программистам необходимо часто тестировать код, который они пишут, особенно если они работают с другими товарищами по команде, чтобы убедиться, что их код не конфликтует с чужим. Это может состоять из сотен или даже тысяч модульных и функциональных тестов. Модульные тесты — это тесты, которые программисты пишут, чтобы убедиться, что отдельные фрагменты кода (модули) работают должным образом.
Младшие инженеры, в частности, тратят значительную часть своего дня на обновление текущих программ и выполнение тестов, чтобы найти ошибки и убедиться, что программное обеспечение работает без сбоев.
4. Они разрабатывают новые функции
После отладки приложения или программы программисты обновляют и расширяют существующие программы. Инженеры и разработчики проектируют обновления программ, а программисты преобразуют эти обновления в язык компьютера. Например, они могут ввести функцию планирования для мобильного приложения по работе по дому или интегрировать API Facebook на веб-сайт, чтобы пользователи могли входить в свои онлайн-аккаунты с помощью Facebook.
5. Они часто работают в группах
ИТ-отделы многих компаний используют какую-либо гибкую среду разработки программного обеспечения для управления рабочим процессом, например Scrum и Kanban. Фреймворк Scrum состоит из разбиения работы на действия, которые программисты могут выполнять в течение нескольких «спринтов» или 2-4-недельных циклов. По сути, команды разработчиков должны работать как единое целое для достижения общей цели совместной разработки продукта.
Часть структуры Scrum требует ежедневных встреч и частого сотрудничества между товарищами по команде. Многие программисты работают полные 40 часов в неделю, а иногда и больше, чтобы уложиться в сроки или решить технические проблемы.
В целом, черты, которые делают кого-то успешным инженером-программистом, выходят далеко за рамки умения программировать. Великие программисты организованы, обладают высокой степенью аналитики и ориентированы на детали. Кроме того, они отличные коммуникаторы, способные сопереживать своим конечным пользователям, чтобы создавать исключительные продукты.
—
Готов стать программистом? Ознакомьтесь с программами Hack Reactor.
We Hack the Future
Не уверены, что ваш следующий шаг — буткемп? Запишитесь на информационную сессию или запланируйте индивидуальную сессию вопросов и ответов с консультантом, чтобы узнать о наших программах.
Звонок советника по расписанию событий
Чем занимаются программисты? — Видеоруководство по Python
Из курса: Введение в профессиональные навыки в разработке программного обеспечения
Чем занимаются программисты?
“
— Программисты — это скрытая сила, стоящая за технологиями, с которыми вы взаимодействуете каждый день, будь то телефонный звонок, игра в видеоигру или участие в виртуальной встрече. Если бы я спросил вас, чем занимается программист? Вы можете сказать, что они кодируют, и вы будете правы. Тем не менее, это гораздо больше, чем просто кодирование. Программисты проектируют, разрабатывают и тестируют программное обеспечение. Программное обеспечение включает в себя программы и инструкции по эксплуатации, используемые любым вычислительным устройством. Ваш телефон, ноутбук, даже самолет — все они содержат программное обеспечение. Программисты следят за тем, чтобы программное обеспечение соответствовало передовым практикам в области производительности, надежности и безопасности. Это позволяет вам выполнять повседневные задачи с уверенностью в том, что ваши устройства будут вести себя должным образом. Но как программисты узнают, что разрабатывать? Ну, это основано на потребностях программного обеспечения. Например, предположим, что они работают в банковском приложении и получают запрос на поддержку новой функции перевода. Во-первых, они будут работать с другими членами своей команды, чтобы определить, какое программное обеспечение следует разработать. Обычно это включает в себя множество итераций проектирования, разработки и тестирования, чтобы убедиться, что все работает гладко и как ожидалось. Затем, используя свой опыт, программист должен написать код, понятный компьютеру для обработки новых функций. Однако программисты могут не только писать новые программы. Им часто приходится работать над обеспечением работоспособности и надежности существующих программ. Давайте проведем краткий урок истории, чтобы понять, почему это так важно. В 19В 1999 году по всему миру были потрачены миллиарды долларов на обновление компьютерных программ. Почему? Из-за компьютерной ошибки или неисправности, известной как Y2K. Y2K — это сокращенное обозначение 2000 года. Поскольку год изменился с 1999 на 2000, программы, которые представляли год из четырех цифр только с двумя последними цифрами, начали бы сообщать год как 1900. Невероятно. Программистам во всем мире пришлось изо всех сил обновлять бесчисленное количество программного обеспечения, чтобы предотвратить крупный международный кризис.