Какая нужна специальность для программиста. Кому подойдет профессия программист

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

Разновидности

В программировании на первое место ставятся не только практические навыки, но и идеи специалиста. Программистов можно условно разделить на три категории в зависимости от специализации:

  1. Прикладные программисты занимаются в основном разработкой программного обеспечения прикладного характера — игры‚ бухгалтерские программы‚ редакторы‚ мессенджеры и т.п. К области их работы также можно отнести создание программного обеспечения для систем видео- и аудио-наблюдения‚ СКД‚ систем пожаротушения или пожарной сигнализации и т.п. Также в их обязанности входит адаптация уже существующих программ под нужды отдельно взятой организации или пользователя.
  2. Системные программисты разрабатывают операционные системы, работают с сетями, пишут интерфейсы к различным распределенным базам данных. Специалисты этой категории относятся к числу самых редких и высокооплачиваемых. Их задача состоит в том‚ чтобы разработать системы программного обеспечения (сервисы)‚ которые‚ в свою очередь‚ управляют вычислительной системой (куда входит процессор‚ коммуникационные и периферийные устройства). Также в список задач входит обеспечение функционирования и работы созданных систем (драйвера устройств‚ загрузчики и т.д.).
  3. Web-программисты также работают с сетями, но, в большинстве случаев, с глобальными - Интернет. Они пишут программную составляющую сайтов, создают динамические веб-страницы, web-интерфейсы для работы с базами данных.

Особенности профессии

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

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

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

Плюсы и минусы профессии

Плюсы:

  • высокая заработная плата;
  • сравнительно высокий спрос на специалистов;
  • иногда можно получить работу не имея высшего образования;
  • по преимуществу является творческой профессией.

Минусы:

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

Место работы

  • IT-компании и web-студии;
  • научно-исследовательские центры;
  • организации, которые подразумевают в своей структуре штатную единицу или отделы программистов.

Важные качества

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

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

Обучение на программиста

Компьютерная Академия ШАГ - международное учебное заведение, обучает . Работает с 1999 года. 42 филиала в 16 странах мира. Крупнейший авторизованный учебный центр Microsoft, Cisco, Autodesk. Студенты получают международные сертификаты и международный диплом. Главная цель - трудоустройство каждого выпускника.

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

Оплата труда

Программист - одна из самых востребованных и высокооплачиваемых профессий в России. Даже не самый продвинутый специалист может найти работу в соответствии со своим уровнем знаний, а затем постепенно учиться и набираться опыта. Зарплата стажера — около $1000. Штатный программист в компании среднего уровня (не IT) получает до $1500-1800, чуть больше — в организации, связанной с массовой разработкой ПО. Зарплата ведущего программиста — $2500—3000. Следующая ступень — руководитель IT-отдела. К необходимым знаниям добавляется обязательный опыт работы, владение иностранным языком, навыки управления персоналом и др., а заработок может достигать $4000. Хороший программист может стать руководителем крупного проекта по разработке ПО, и тут уровень доходов достигает $5000 и выше.

Зарплата на 07.03.2019

Россия 40000—120000 ₽

Москва 50000—170000 ₽

Ступеньки карьеры и перспективы

Хорошим стартом карьеры может стать присоединение к группе программистов при разработке какого-либо проекта. Крупные проекты часто привлекают внимание западных компаний, которые «перекупают» российских программистов. К примеру, когда-то группа наших молодых ученых разрабатывала процессор «Эльбрус» для Минобороны, а в итоге их всех перекупила корпорация Intel, и теперь наши ученые и программисты работают за рубежом, а сам проект «Эльбрус» потихоньку закрылся. Проблема «утечки мозгов» в этой профессии — одна из самых острых.

Программист может сделать карьеру до руководителя группы программистов (тим-лидер), IT-директора предприятия, менеджера IT-проекта и т.п. В ходе работы программист может перемещаться в рамках своей специальности, совершенствуясь профессионально.

Знаменитые и великие программисты

Кнут Дональд Эрвин
Мацумото Юкихиро
Таненбаум Эндрю
Рэймонд Эрик Стивен
Фаулер Мартин
Хоппер Грейс
Столлман Ричард Мэттью
Кей Алан
Мейер Сид
Страуструп Бьёрн

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

Часто первым программируемым устройством принято считать жаккардовый ткацкий станок, построенный в 1804 году Жозефом Мари Жаккаром, который произвёл революцию в ткацкой промышленности, предоставив возможность программировать узоры на тканях при помощи перфокарт.

Первое программируемое вычислительное устройство, Аналитическую машину, разработал Чарлз Бэббидж (но не смог её построить). 19 июля 1843 года графиня Ада Августа Лавлейс, дочка великого английского поэта Джорджа Байрона, как принято считать, написала первую в истории человечества программу для Аналитической машины. Эта программа решала уравнение Бернулли, выражающее закон сохранения энергии движущейся жидкости.

В своей первой и единственной научной работе Ада Лавлейс рассмотрела большое число вопросов. Ряд высказанных ею общих положений (принцип экономии рабочих ячеек памяти, связь рекуррентных формул с циклическими процессами вычислений) сохранили свое принципиальное значение и для современного программирования. В материалах Бэббиджа и комментариях Лавлейс намечены такие понятия, как подпрограмма и библиотека подпрограмм, модификация команд и индексный регистр, которые стали употребляться только в 1950-х годах.

Однако ни одна из программ написанных Адой Лавлейс никогда так и не была запущена.

Аду Августу, графиню Лавлейс, принято считать почётным первым программистом (хотя, конечно, написание одной программы по современным меркам не может считаться родом занятий или профессиональной деятельностью). История сохранила её имя в названии универсального языка программирования «Ада».

Первый работающий программируемый компьютер (1941 год), первые программы для него, а также (с определёнными оговорками) первый язык программирования высокого уровня Планкалкюль создал немецкий инженер Конрад Цузе.

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

Законы Мерфи для программистов

1. Ничто не работает так, как планировалось запрограммировать.

2. Ничто не программируется так, как должно работать.

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

4. На решение проблемы уходит в три раза меньше времени, чем на обсуждение всех "за" и "против" её решения.

5. Обещанный срок сдачи - это аккуратно рассчитанная дата окончания проекта плюс шесть месяцев.

6. Программисту всегда известна последовательность действий, которыми пользователь может повесить его программу, но он никогда не чинит эту проблему, надеясь на то, что никому никогда не придёт в голову эту последовательность исполнять.

7. Настоящие программисты любят Windows — все ошибки, сделанные по собственной тупости, можно свалить на Microsoft.

8. Следствие — 99% проблем, сваливаемых на Microsoft, является следствием тупости самих программистов.

9. В приступе злости все почему-то молотят по невинному монитору, вместо системного блока.

10. В случае голодовки настоящий программист ещё месяц сможет питаться едой, выковырянной из-под кнопок клавиатуры.

11. Настоящий программист уже как минимум поменял три залитых пивом клавиатуры.

12. Все, кто испытывает проблемы с настройкой кодировки, автоматически считаются неандертальцами.

13. Дилетантские разговоры о компьютерах вызывают резкую тошноту вплоть до приступов рвоты. Вопрос о том как поменять "обои" в Windows вызывает желание перерезать горло вопрошающему.

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

15. HTML, HTTP, FTP, SMTP, TCP/IP, RTFM и т.д. - это слова, а не аббревиатуры.

16. Словосочетание "мышка-норушка" не несёт никакого смысла.

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

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

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

20. Решение всех жизненных проблем находится в интернете. Надо только уметь хорошо искать.

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

22. Тех, кто презирает программистов, программисты презирают сильнее, чем те, кто презирает программистов, презирают программистов, которые презирают тех, кто их презирает.

23. Если ты понял предыдущее — то ты программист.

На этом свете 10 типов людей - те, кто понимает двоичную систему счисления, и те, кто не понимает ее.

Видео: ты ж программист

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

Сейчас практически перед каждым предприятием встает вопрос об автоматизации управления. Данный специалист — это своего рода связующее звено между руководителем, который имеет свои планы на развитие производства, и современным миром компьютерных технологий.

Какие бывают программисты?

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

Как появились?

Сам термин «программирование» возник с появлением первого вычислительного механизма. Такой компьютерной новинкой стал «Марк-1». Он был разработан в 1944 году. За несколько десятилетий профессия успела стать очень востребованной и хорошо оплачиваемой. Зарплата программистауже тогда была одной из самых высоких. Неудивительно, ведь тогда компьютерные знания были доступны только самым великим избранным умам.

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

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

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

Какое нужно образование?

В большинстве своем программисты — это выпускники престижных технических учебных заведений. Но встречаются и довольно успешные самоучки. В профессии программиста, безусловно, важную роль играет теоретическая база. Однако профессионалу необходимо постоянно решать важные задачи, участвовать в разработках. Одним словом, программист должен «шевелить мозгами самостоятельно». Диплом — это хорошо, но самообучение намного лучше повлияет на квалификацию. Как уже говорилось ранее, зарплата программистазависит от того, какое у вас стартовое образование, а также от количества тех знаний, которые вы приобрели самостоятельно.

Где работают программисты?

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

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

Сейчас на рынке существенным спросом пользуются сотрудники со знанием 1С. Эта бухгалтерская программа облегчит труд любой организации, оптимизирует работу. Среда веб-программирования — это также основная сфера деятельности компьютерных специалистов. Знание PHP, MYSQL, XHTML, CSS, JavaScript и способность их модернизировать нужны для поддержки всех сайтов.

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

Какая зарплата у программиста?

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

По подсчетам, в среднем в городах, население которых больше миллиона, программист получает на 20% больше, чем такой же специалист из провинции. Конкретные суммы: 2000 долларов в месяц - оклад хорошего работника. Человек, работающий напрямую с заказчиками, имеет примерно в два раза больше, соответственно, новички сферы - меньше. Западные компании, которые ориентируются на международный рынок, как правило, платят больше. Помните, что зарплата программистаи ее повышение зависят от ваших способностей развиваться.

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

Разработка web-приложений

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

Web-программирование можно разделить на backend (написание серверных скриптов - PHP, Python, Ruby) и frontend (разработка юзерского интерфейса - Javascript, HTML, CSS).

Разработка desktop-приложений

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

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

Это различные игровые сервера (ваша любимая Дотка, CS: GO), IM-сервисы (серверная часть Skype, ICQ, MSN), банковские базы данных.

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

Множество Java-приложений. VK, Viber, Яндекс.Карты, переводчики, электронные читалки.

Программирование встраиваемых систем

Интересная отрасль программирования для различной домашней техники: пылесосы, холодильники, стиральные машины, плееры, навигаторы, электронные весы. Здесь задействованы научные разработки с использованием специализированных языков, типа MATLAB.

Системное программирование

Написание различных драйверов для оборудования, программирования «ядра» операционных систем. Кстати, создание компиляторов и интерпретаторов для языков программирования относятся сюда же.

Разработка игр

Гигантская отрасль. Сюда включается разработка игр и для ПК, и для консолей, и для мобильный устройств.

Олимпиадное программирование и решение задач

Программирование на различных «непрактичных» и не распространенных языках (Pascal, Delphi) для решения каких-то оригинальных задач, требующих нестандартного подхода, смекалки и IQ выше 160.

Программирование для бухгалтерских и финансовых продуктов

«1С: Предприятие». Вся бухгалтерия в России завязана на этом продукте. Но недостаточно знать лишь сам язык, важно понимать основы бухгалтерского учета. Плюс в том, что работы очень много, и без хлеба вы не останетесь.

Программирование баз данных

Серьезное направление. Хотите разрабатывать базы данных, способных хранить миллиарды строк информации о всех пользователях VKontakte или Facebook и при этом не тормозить - вам сюда.

Science

Наука и этим все сказано. Нейронные сети, моделирование структуры ДНК, запуск спутников, моделирование Большого Взрыва.

Кстати, недавно на сайте NASA была опубликована новость о поиске программиста на «древнем» языке Fortran, которому уже более 60 лет. Требовался программист для разработки программ по управлению автоматическими зондами Вояджер-1 и Вояджер-2, программное обеспечение для которых было написано на Ассемблере, Фортране и языке COBOL еще в 1970-х годах. Никогда не знаешь, какие знания могут пригодиться.

Я не знаю, как обстоят дела в образовании сейчас, но 10-15 лет назад ни в школе, ни в университете никто всерьёз не объяснял, что программирование имеет свои типы, каждый из которых требует особого типа мышления. Не то чтобы это покалечило чьи-то судьбы, но изучение программных дисциплин могло бы проходить гораздо быстрее, если на стадии закладки фундамента мы представили многообразие языков и подходов, а не зомбически учили C++ в его консольных проявления.

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

Типы программирования

Условимся сразу: типов будет шесть. Это достаточно подробное деление. Обычно выделяют 3-4, но так как перед нами стоит задача выбора пути для новичков, оно вполне оправдано.

Процедурное программирование , оно же императивное.

Оно ставит задачу создания кода на языке, понятном используемой машине. Самый известный случай - машина Тьюринга, из известных языков программирования - С/C++, Ада, Паскаль, Go. Задачи здесь решаются планомерно: сначала объявляется объект, потом он определяется и затем выполняется с ним действие:

var
S: String;

S:= ‘Hello!’;

Декларативное программирование .

В процедурном случае вектор оптимизации языка направлен от машинного уровня к языку пользователя путем использования базовых принципов ООП, классов, методов и пр.. Здесь же во главе угла стоит непосредственно задача, а способ её исполнения второстепенен. Яркий пример - язык разметки HTML. Если вы хотите разместить кнопку, вам формально не надо создавать объект и присваивать ему атрибуты:

Функциональное программирование .

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

Функциональное программирование лишено этого недостатка: здесь вы оперируете функциями - исходными, приращения и результативной, - но не конкретными значениями. Среди популярных представителей - Lisp, Clojure, Haskell. Функциональное программирование считается сложным и избыточным для большинства прикладных задач. Отсюда невысокий спрос на специалистов, но от этого же высокие зарплаты и действительно интересная работа.

Логическое программирование .

Как следует из названия, оно оперирует простой математической логикой. Яркие представители - Planner и Prolog. Достаточно ограниченный набор действий может быть реально полезен для создания простейшего искусственного интеллекта или разминки мозгов, но в реальной жизни логическое программирование самостоятельно используется редко.

Динамическое программирование .

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

Графическое программирование , оно же визуальное.

Оно предлагает разработчику работать с графическими изображениями, а не текстом. Выражаться это может по-разному - есть специальные языки, вроде Scratch или BluePrint, есть языки схем или диаграмм (LD или FBD), есть просто разделы программирования, связанные со взаимодействием с формами и графикой. В последнем случае это может быть любой язык, визуализация осуществляется средствами разработки (Borland Delphi/C++, Visual Studio, Adobe Dreamweaver и пр.). Такое графическое программирование в чистом виде встречается крайне редко, без понимания языка и структуры кода создать что-то серьезное невозможно.

Остальное

Программирование делят по множеству типов, и о некоторых новички даже не догадываются: синхронное/асинхронное/событийное, последовательное/параллельное, различное по решаемым задачам и задействованности ИИ и статистики.

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

Игорь Котов, директор по производству

Недавно прочитал на hh статью о том, что IT сфера является наиболее привлекательной на российском рынке. Из плюсов автор выделяет высокие зарплаты, возможности для роста, возможность удалённой работы и качество труда. Однако в этих пунктах кроются причины многих бед российского IT. Рынок IT очень перегрет предложениями. Зачастую можно увидеть зарплаты для мобильных, фронтенд и других разработчиков (по РТ) превышающие 100 тысяч рублей. При этом средняя зарплата в том же Татарстане чуть больше 37 тысяч. Поиск действительно стоящего кадра для не очень крупной компании может занять продолжительное время и приходится постоянно повышать планку зарплат, предлагать, как можно больше “плюшек” и более свободный график. Но даже это не всегда является стопроцентным вариантом найти действительно стоящего программиста (об этом ниже). К сожалению, эта погоня рынка за кадрами только в маленьком проценте случаев является оправданной. В большинстве же это приводит к тому, что небольшие компании не могут угнаться за рынком и либо просаживаются по качеству, отпуская сотрудников за крутыми оферами, либо потихоньку загибаются.

При чём же тут программисты? Всё дело в том, что, по моему мнению, есть два типа программистов: кодеры и настоящие программисты.

Разберём сначала кодеров . Эти ребята зачастую отличные исполнители, они делают всё, что им говорят или ставят в задачах аналитики, PM’ы или другие старшие товарищи. Как правило, их плюсы на этом заканчиваются. Кодер не развивается. Он считает, что знает достаточно для того, чтобы выполнять свою работу. При этом кодер может быть на волне хайпа и участвовать в обсуждениях новых технологий. Но не надо путать кодера и условный грейд джуниора в компании, подразумевающий небольшое количество опыта и знаний. Я рассматриваю именно тип программиста. Кодер не может вырасти выше мидла (среднего уровня). Разумеется, даже для этого ему нужно больше времени и внешних сил (техлид, коллеги, обучающие курсы). Кодера, как правило, не заботит тестирование своего продукта. Он считает, что работающий продукт не может сломаться, если работал однажды. К сожалению, автоматическое тестирование тоже не всегда может “исправить” кодера. Если в компании ведётся хоть какой-то учёт задач, то легко отследить кодера по количеству возвратов задач в работу. Начинаете узнавать кого-то? 🙂 В кодеры приходят люди со всех профессий и в любом возрасте (но это не означает, что среди них нет профессиональных, в образовательном плане, программистов). Это напоминает индийцев, которые не считают программирование чем-то сложным и требующим определённых навыков. Отсюда всем известные дешёвые фрилансеры индийцы, которые могут просто поразить Вас “качеством” кода. Зачастую кодера бывает сложно определить на собеседовании, так как оно не может в полной мере определить все требуемые для программиста навыки и знания. Кодеры раскачали этот рынок и не стесняются каждые N месяцев менять работу в погоне за большей зарплатой, более свободным графиком и большим количеством “плюшек”. Почему так происходит? Потому что настоящих программистов на самом деле не так много. Кто это такие?

Настоящие программисты (НП), как по мне, это люди, которые своим складом ума и, возможно, характера идеально подходят на эту работу. НП никогда не кичатся своими знаниями. Они постоянно развиваются и изучают новые технологии (а в IT они меняются ой как быстро). Эта черта человека осознавать свою глупость и даёт возможность быть умнее других и постоянно расти, развиваться. Настоящий программист применяет все свои знания для решения задачи, ускорения, улучшения, а не для галочки или хайпа. В этом возможно и заключается особенность НП. Для них решение очередной задачи - это не монотонная работа, а некая внутренняя игра для поиска оптимального, красивого и практичного результата. Иногда это бывает проблемой для бизнеса, когда такие люди «заигрываются», ведь часто надо сделать быстро, и чтобы работало (и пускай это костыль). Среди НП можно часто встретить людей, увлекающихся математикой, а также олимпиадными задачами, ведь именно в этих сферах можно заниматься поиском решения, которое так завлекает. К сожалению, или счастью это образ мышления, образ жизни. НП нельзя стать (я не знаю ни одного такого случая). НП мне встречались только двух типов: асоциальные или же резко противоположно очень активные ребята. Из этих сотрудников всегда и вырастает основной технический костяк в компании. Вторые [активные], как правило становятся тимлидами, техлидами и некоторые, дорастая до определённого уровня уходят в менеджмент, становясь техническими директорами и руководителями тех. департаментов. Как я уже написал ранее, если кодеры доходят до мидлов, то предела у настоящих программистов нет. НП не пишет на каком-то языке программирования, для него не важен синтаксис и версия IDE. Он знает паттерны и подходы, которые будут работать практически везде. Для него достаточно посмотреть пару примеров и правила синтаксиса, чтобы уже начать разбираться и писать программный код. НП не просят разжёвывать задачи, они сами предлагают правильные решения и исправляют ошибки.

Теперь, когда Вы понимаете, как я различаю программистов, можете задать вопрос в чём же проблема? НП намного меньше чем кодеров, но компаниям нужны кадры. Это приводит к тому, что всё большее количество людей начинают считать себя программистами, отзываясь на завышенные зарплаты и хорошие условия. К сожалению, большинство HR’ов не могут отличить настоящего программиста от кодера. Возможно это происходит как раз из-за различной самооценки собеседуемых кандидатов. В результате и без того перегретый рынок предлагает равные зарплаты кодерам и НП. Качественный уровень российских программистов снижается. Это можно наблюдать по тому, как ценятся наши ребята на западе. Спойлер: ниже, чем ранее. Многие хорошие кандидаты грезят работой в крупных гигантах рынка вроде Яндекса, Google, Microsoft и т. д., и уходят туда, как только вырастают до нужного уровня.

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