0

Про программистов

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

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

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

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

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

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

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

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

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

Плюсы:

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

Минусы:

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

Место работы

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

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

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

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

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

Курсы программистов

Образовательный IT-портал GeekBrains (Онлайн) Занятия ведут практикующие Веб-разработчики с профильным образованием и стажем работы по специальности от 5 лет. 13 практических курсов и 2 месяца стажировки. 10 лет на рынке образования, 4 миллиона пользователей. Все курсы можно купить с беспроцентной рассрочкой на год. Также можно получить IT-специальность в Geek University, а оплатить учебу через год после ее начала. В SkillFactory обучают так, что вы освоите программирование, не имея технической базы. С самого старта программы студентам помогает ментор: отвечает на вопросы, разбирает вместе с вами задачи, курирует финальные проекты. Оплачивайте по частям или после обучения: учись, не отвлекаясь на решение финансовых вопросов. Компьютерная Академия ШАГ (Очно, Москва) Компьютерная Академия ШАГ — IT-образование, каким оно должно быть. С 1999 года они готовят программистов, дизайнеров и системных инженеров, которых нельзя заменить искусственным интеллектом. Для этого, кроме глубоких профильных знаний, учат понимать задачи, мыслить готовыми проектами и работать в команде. И делают всё, чтобы выпускников Академии ШАГ принимали на работу сразу после защиты дипломов. МАЭО (Международная Академия Экспертизы и Оценки) (Дистанционно) На этом курсе вы можете получить профессию программиста дистанционно за 1-3 месяца. Диплом о профессиональной переподготовке установленного государством образца. Обучение в полностью дистанционном формате. Крупнейшее образовательное учреждение дополнительного проф. образования в России. SkillBox (Онлайн) Профессия веб-разработчик с 0 до PRO. За 115 часов можно научиться создавать сайты и интернет-магазины, зарабатывать на этом 120 тысяч рублей в месяц. После прохождения обучения — гарантированное трудоустройство. Преимущества: доступ к курсу навсегда, 3 специализации на выходе, гибкий и свободный график занятий, работа с личным наставником, трудоустройство гарантировано документарно.

Вузы

Московский гуманитарный университет, МосГУ Прикладная информатика в экономике (Факультет экономики, управления и международных отношений) Национальный исследовательский университет «МЭИ» Безопасность компьютерных систем (Инженерно-экономический институт НИУ «МЭИ») Московский государственный университет пищевых производств Информатика и вычислительная техника (Институт промышленной инженерии, информационных технологий и мехатроники) Московский технический университет связи и информатики Информатика и вычислительная техника (Заочный общетехнический факультет МТУСИ) Московский государственный университет геодезии и картографии Информационные системы и технологии (Московский государственный университет геодезии и картографии)

Оплата труда

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

Зарплата на 17.09.2020

Россия 70000—170000 ₽ Москва 60000—250000 ₽

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

Хорошим стартом карьеры может стать присоединение к группе программистов при разработке какого-либо проекта. Крупные проекты часто привлекают внимание западных компаний, которые «перекупают» российских программистов. К примеру, когда-то группа наших молодых ученых разрабатывала процессор «Эльбрус» для Минобороны, а в итоге их всех перекупила корпорация 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 типов людей — те, кто понимает двоичную систему счисления, и те, кто не понимает ее.

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

Менеджер проектов

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

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

Основные навыки менеджера – это коммуникация, планирование и постановка задач, контроль хода проекта.

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

Тестировщик

Специалист по тестированию занимается проверкой качества создаваемого ПО. Что сюда входит:

  • проведение тестирования по чек-листам или тест-кейсам
  • создание тест-кейсов / чек-листов.
  • создание автотестов (автоматизатор)
  • проведение исследовательского тестирования

В проекте тестировщик обычно взаимодействует с программистами – проверяет задачи, задает вопросы, скидывает баги через баг-трекер и поясняет их.

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

На мой взгляд, переход из программиста в тестировщики возможен только, если вы почувствуете, что контроль качества в ПО – это ваше призвание. В остальных случаях такой переход скорее шаг назад, нежели чем шаг вперед.

Заказчик (или продукт-менеджер)

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

Если вы задумываетесь о создании своего продукта рекомендуем вам ознакомиться с курсом для продукт менеджера «Как создать программный продукт”

Бизнес-аналитик / Автор ТЗ

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

Эта работа обычно требует хорошего понимания бизнес-логики предметной области заказчика, а также умение проектировать системы. Менеджер проекта вполне может выполнять роль бизнес-аналитика, но если только он «в теме” – т.е. старший программист.

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

Дизайнер

Дизайнер делает графический вид продукта. Иногда дизайнер делает макеты сайта (хотя это лучше отнести к созданию ТЗ).

Задача дизайнера – это придать содержанию продукта заказчика правильную форму. Что это значит?

  • Сделать продукт простым для понимания
  • Сделать продукт удобным для использования
  • Сделать продукт эстетически приятным

Порядок здесь важен. Дизайнер – это не человек, который вешает бантики и стрелочки на продукт. Его задача – придать максимально правильную форму для использования продукта. Вспомните дизайн самолета – там нет ничего лишнего. Любая деталь самолета имеет смысл.

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

← Преимущества работы программистом ч.3 Смежные профессии и перспективы работы программиста ч.2 →

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

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

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

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

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

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

При каких условиях программист получает уровень?

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

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

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

Именно поэтому нет четких границ между грейдами. Каждая компания устанавливает свой список навыков, которыми должен владеть разработчик того или иного уровня. Критерии для перехода сотрудника с одной позиции на другую достаточно субъективны. О зарплате Middle программиста и кодеров других рангов читайте ниже.

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

Какие средние зарплаты у Junior, Middle и Senior программистов в Москве и регионах?

Без привязки к языкам разработки, работодатель может назначить кодеру следующую среднюю зарплату:

Это средние показатели в вакансиях hh.ru. В зависимости от своих ресурсов работодатель может предлагать больше или меньше указанных диапазонов.

Важные факторы формирования заработной платы разработчиков

Удивительно, но квалификация и город на самом деле не играют решающей роли при оплате труда разработчика. Случается так, что в одной компании Senior developer получает зарплату в 2-3 и более раза выше, чем программист того же ранга, но работающий в другой компании. Почему так происходит?

Определяющий фактор в назначении зарплаты — место работы кодера. Является ли разработка ПО основным направлением деятельности компании? Кто собственник фирмы – отечественная и зарубежная организация? На какой рынок ориентирована компания – внутренний или международный. Иными словами важен не только уровень программиста Junior / Middle / Senior, но и уровень самой компании.

На нашем сайте можно найти резюме программистов от начального и до высшего уровней.

admin

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *