Разработка
Alexey Laptev

Какие бывают программисты, где деньги и на кого проще учиться. Объясняет программист

Всем привет! Я Лаптев Алексей, основатель и главный разработчик сервиса сквозной аналитики Utmstat и интеграций — ApiMonster. В этой статье расскажу какие бывают программисты, на чем программируют и как ими стать.

О чем статья

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

Ставьте лайк для охвата.

Типы программистов

Фронтенд-программист

Пишет на javascript продвинутый UI на сайтах, например прекрасный редактор статей на VC или ненавистные онлайн-чаты.

В последнее время в моде фреймворки React.js, Vue.js.

Это если повезет попасть в приличный продукт, а если не повезет, то пишет очередные ненужные спецэффекты в корзине no-name интернет-магазина.

Backend-программист

Тут уже серьезней.

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

Серверная бизнес-логика это:

  1. Что показать на сайте, когда вы зайдете на его url
  2. API для мобильных приложений
  3. Какие-то внутрение процессы обработки данных

Пишет обычно на 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 части:

  1. Мобильная разработка для Android
  2. Enterprise-софт для банков и прочих аналогичных клиентов

Самый популярный язык, сложноват, скучноват, но работу всегда найдете.

Несмотря на относительную востребованность и что у всех стоит 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к, то он просто пытается вам продаться любыми способами. Я бы туда не ходил.

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

Смогли пройти техническое собеседование — вас возьмут, не смогли — не возьмут. Все просто.

Куда пойти работать

В идеале, ваша задача попасть в следующие условия:

  1. На проекте много пользователей, что накладывает требования по стабильности работы и качеству кода.
  2. Проект пишется на стандартных популярных фреймворках, а не каком-то noname-самописе, который никому не нужен за пределами конторы. Так как вам нужен опыт работы на востребованных инструментах.
  3. В команде несколько человек и строгий тимлид, который бьет по рукам за кривой код, но при этом подскажет как правильно делать. Постоянные унижения от команды быстро поднимут скилл.

На рынке есть несколько типов контор.

Крупный сервис

Яндекс, Авито.

Это продуктовая разработка, то есть когда контора пилит свои проекты и продает какую-нибуть подписку, а не делает «сайты на заказ», продавая человеко-часы.

Там обычно нет спешки, большой грамотный проект и сильные разработчики, но шансы попасть невелики.

В идеале — сюда.

Малый сервис

Например utmstat.

Та же самая продуктовая разработка, только масштабы поменьше.

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

Но и тут не плохо, а возможно даже лучше.

Заказная разработка сложных проектов

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

Тут уже продажа ваших человеко-часов, поэтому надо быстрее работать.

Сложные проекты — это известные клиенты типа банков, интернет-магазинов, телекома.

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

А большой штат и постоянная потребность в разработчиках увеличивают шанс быть нанятым на работу.

Терпимо

Заказная разработка простых проектов

Noname-контора делает проекты для noname-клиентов.

Иногда такие конторы называют «галерой», а разработчиков — «гребцами».

Начиная от региональных сайтов/приложений и заканчивая заказами из upwork.

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

Как станет скучно и несложно — надо менять место работы.

Если больше никуда не берут, то вариант неплохой.

Фриланс

Тут 3 минуса:

  1. Клиентов искать сложно, хотя как повезет.
  2. Проекты начального уровня, но для обучения нормально.
  3. Нет критики, а на старте она важна.

Ну а жирный плюс — нет собеседования и можно легко прикинуться опытным спецом.

Вполне нормальный вариант, если сможете найти клиентов.

0
85 комментариев
Написать комментарий...
Игорь Косаринский

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

Ответить
Развернуть ветку
Исключительный будильник

Комментарий недоступен

Ответить
Развернуть ветку
3 комментария
Alto

Бред, язык требует погружения. Сейчас чаще программистов не на язык ищут, а на определенный фреймворк, чтобы не платить за 1-2 месяца пока программист будет въезжать. 

Ответить
Развернуть ветку
3 комментария
Bulat Ziganshin

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

Ответить
Развернуть ветку
Alexey Laptev
Автор

Ну это да

Ответить
Развернуть ветку
Maxim Syabro
NodeJS
язык

Ясно-понятно

Ответить
Развернуть ветку
Иван Фейкович

по сути он похож на Go.

Ответить
Развернуть ветку
Victor Pomortseff
Серверная бизнес-логика это:
Что показать на сайте, когда вы зайдете на его url
API для мобильных приложений
Какие-то внутрение процессы обработки данных
Пишет обычно на php/python/go/nodejs.

Ох... Не видели настоящего бэка... Там вся эта ерунда не используется т.к. требования производительности и потребления ресурсов очень жесткие.

Java> Делится на 2 части:
Мобильная разработка для Android
Enterprise-софт для банков и прочих аналогичных клиентов

Шта-а-а??? Вы серьезно??? Энтерпрайз для банков на жабе? Поинтересуйтесь на чем работает core уровень таких банков как райф, альфа, росбанк. Нет там жабы. И не будет никогда. 
Нет, она есть, но в миддл слое. А ядро там на совсем других языках написано.

Вообще очень поверхностно. А местами откровенно неправда.

Ответить
Развернуть ветку
Alto

Это интересно слышать, учитывая, как банки пылесосят джавистов ) https://ekaterinburg.hh.ru/search/vacancy?employer_id=80&L_is_autosearch=false&clusters=true&enable_snippets=true&ored_clusters=true&specialization=1.221&hhtmFrom=vacancy_search_list&page=1 вот, например, джавы больше всего

Ответить
Развернуть ветку
5 комментариев
Alexey Laptev
Автор

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

Ответить
Развернуть ветку
7 комментариев
Исключительный будильник

Комментарий недоступен

Ответить
Развернуть ветку
Bulat Ziganshin

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

Ответить
Развернуть ветку
11 комментариев
Alexey Laptev
Автор

Ну вообще можно написать и кому-то сэкономить пару лет на получение личного опыта, но как нибуть потом.

Ответить
Развернуть ветку
Иван Крючков
Системный программист Пишет сложное ПО на C/C++ — драйверы, ОС, игры.

Системный программист не пишет игры. Это gamedev, там другой набор знаний нужен. Геймдев надо отдельным пунктом делать. Никто у программиста драйверов не будет спрашивать про 3д графику.

Ответить
Развернуть ветку
Alexey Laptev
Автор

Да, излишне обобщил

Ответить
Развернуть ветку
Александр Бердышев

"Где деньги?
Судя по предлагаемым вакансиям — в Go, Javascript"
Рекомендовать писать на Javascript/PHP, да ещё говорить, что за это нормально платят - это быть немного не в себе.
Как и рекомендовать учить 1С.

Ответить
Развернуть ветку
Alexey Laptev
Автор

У меня стойкое ощущение что аудитория разучивается читать вообще.

В тексте написано что 1С не очень вариант для it карьеры.

Пожалуйста прочитайте.

Ответить
Развернуть ветку
2 комментария
Денис Кошкаров

Странно что в данной статье, к 1С отнеслись очень посредственно. Я работаю 1с программистом 2 года и вышел на зарплату 100к + причем в одной компании, без беготни со сменой работы и постоянным прохождением собеседований. Порог вхождения очень низкий. Да, у меня не типичные задачи 1С программиста, я занимаюсь в основном интеграциями различных продуктов в 1С. Например интегрировал чат Авито в 1С, и там я использовал CSS+HTML+JS на минимальном уровне. Так же был проект где использовал стороннюю библиотеку написанную на C#. Вообще на 1С можно и мобильные приложения писать. Есть так же 1С ERP написанная полностью на английском. Тут выше написали, что главное это мышление, а на чем писать это уже дело техники. Плюс например если вам уже за 30 и с английским у вас не очень, начать программировать на 1С намного проще.

Ответить
Развернуть ветку
Борис Моренко
Node.js Не работал с этим языком, но по сути он похож на Go

Не похож от слова совсем. Не по синтаксису и не по подходу. Исключений нет, классов нет, в одном случае рутины в другом асинхронность. Один жрет память, а другой заточен на минимализм. Один компилируется в выполняемый файл, а другой выполняется на движке v8

1С. это по сути не программирование, а конфигурирование конкретного программного продукта.

1С - это платформа на которой можно написать автоматизацию любого предприятия. Торговля, склады, расчет зарплаты,  документооборот, бухгалтерию.
Программист 1С по сути мало чем отличается от обычных программистов. Разве что язык программирования русский. И заранее заложенная объектная модель.

Ответить
Развернуть ветку
tomas

Всё правильно. Чтобы быть востребованным на рынке, нужно работать с востребованными рынком инструментами. И чем больший денежный поток про этом через эти инструменты проходит - тем ценнее опыт.
Но нужно отличать востребованное от хайпового: каждый год появляется много новых технологий, но из них на рынке задерживаются единицы - на них и стоит тратить силы и время, остальное завтра обесценится.
Самые эффективные технологии требуют квалифицированных специалистов и соответствующей инфраструктуры. Всё это стоит дорого, поэтому их можно не искать среди мелких игроков - оно этого себе позволить не могут. А следовательно и ценного опыта там получить почти нельзя.
Чтобы развиваться, нужны перемены, наш мозг работает, когда вынужден адаптироваться к новым условиям, извлекает новый опыт. Монотонность и однообразие - верный, но стабильный, путь к профессиональной деградации. На рынке есть ниши и для тех, кто развивается, и для тех, кто не развивается. Каждому своё.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
Даниил Литий

REST API много где на Node.js пишется. Плюс всеми любимый редактор кода Atom, Spotify, Discord написаны на Electron(node.js).

Ответить
Развернуть ветку
9 комментариев
Даниил Литий

Опечатка, может людей привести в замешательство - не Vui, а Vue.js, который по звездам на гитхабе обогнал React.

Ответить
Развернуть ветку
Аккаунт удален

Комментарий недоступен

Ответить
Развернуть ветку
2 комментария
Alexey Laptev
Автор

Поправил

Ответить
Развернуть ветку
Александр Демидов

Все четко по делу, по полочкам. Все правда. Слог здравый, бодрый. Почти без рекламы своей конторы.
Норм статья, и весело и легко читается. Буду ждать продолжения.

Пойду nodejs учить, люблю "лёгкие деньги". Не могу во все эти C, IBM, хрен знает ещё что. Вот javascript - это да.

Ещё бы понять где найти точку входа в nodejs в связке с фронтом, а то go, php - ну их нафиг, зачем Пых, когда все на яваскрипт и так можно.

Ответить
Развернуть ветку
Vitaliy Nechaev

Что за связка?))) API что ли?

Ответить
Развернуть ветку
1 комментарий
Vitaliy Nechaev

Достаточно поверхностно и очень субъективно.
К чему это не понятно написано. 

Есть специализированные ресурсы и зарплатные исследования по языкам, и подобные субъективные статьи основанные на "я так вижу" больше запутают и исказят реальность.

Местами написана откровенно чушь. Либо мало опыта либо хз.

Ответить
Развернуть ветку
Alexey Laptev
Автор

Статья написана ради рекламы 2-х ссылок в первом абзаце.

Но тем не менее, опыт разработки довольно большой, где конкретно чушь?

Ответить
Развернуть ветку
9 комментариев
Denis
go
 из-за некоторых неудобных архитектурных особенностей

Какие особенности имеете в виду?

Ответить
Развернуть ветку
StannyK

"Но возможно я уже не прав, не вникал глубоко" - это в целом к статье применимо, извините

Ответить
Развернуть ветку
Женя Романов
Но все же проще всего мне кажется через фронтенд/javascript. Там минимальный набор знаний — только js/html/css. Никаких баз данных, серверов, нагрузок и сложных языков.

Ну удачи найти работу, зная только HTML, CSS и JS

Ответить
Развернуть ветку
Александр

-

Ответить
Развернуть ветку
Читать все 85 комментариев
null