Требования для программиста

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

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

Профессия программиста довольно многогранна. Названия специалистов часто зависят от того, на каком языке или с помощью каких технологий они разрабатывают программы. Например, существуют программисты Java, Delphi, Python, 1С, Android, JavaScript и т.д.

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

Возможные названия вакансий: Инженер по разработке программного обеспечения, Разработчик программного обеспечения.

Проектирование и разработка

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

Внедрение и организация корректного взаимодействия с другими программами

Программист занимается также внедрением готового продукта, то есть запуском в работу (будь это программа, сайт или новый алгоритм). При этом он старается отследить возможные проблемы, которые могут возникнуть во время работы программы / сайта / алгоритма, предупредить или исправить ошибки, если они все же проявились.

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

Содержание:

Профстандарт программиста

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

Описание профессионального стандарта программиста

Для специалистов, занятых разработкой программного обеспечения, профстандарт был утвержден приказом Минтруда РФ № 679н от 18 ноября 2013 года. Документ состоит из 4 разделов:

  1. Общие сведения. Тут отображается информация общего характера о специальности программиста, указывается вид профессиональной и экономической деятельности, которыми он занимается, цель его деятельности.
  2. Описание трудовых функций. Здесь идет перечисление всех возможных обобщенных функции, каждая из которых разбивается на конкретные функции. Всем функциям присваивается свой уровень квалификации и код.
  3. Характеристика трудовых функций. Этот раздел дает расширенное представление о том, чем должен заниматься сотрудник на своем рабочем месте и каким требованиям он должен соответствовать.
  4. Сведения об организациях — разработчиках профстандарта. Здесь отображены наименования разработчиков и организаций, принимавших участие в подготовке документа.

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

Названия должностей в профстандарте и квалификационные требования к ним

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

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

Трудовые функции, закрепленные за программистом

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

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

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

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

ТОП-10 качеств программиста. Мнение лучших работодателей

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

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

Всё зависит от особенностей работы в конкретной компании

Рекомендуется брать поправку на личные особенности при выборе работы. Например, интроверту, скорее всего, будет комфортнее работать удаленно. А экстраверту — в open space-офисе.

Игорь Селецкий, CEO & Founder в Cloud Linux Inc.:
Все люди разные и программисты в том числе. Одни могут летать в облаках, другие будут “цепляться” к деталям — и те и другие важны, пусть и для различных позиций, задач и даже компаний.
А так, главное, чтобы человек был хороший.
Я могу назвать качества, которые значимы для работников в моей компании. Но ведь это не важно. Есть другие компании, где эти качества не играют никакой роли или, наоборот, очень мешают.
У нас вся работа удалённая, поэтому необходимо, чтоб программисты могли сами следить за своим временем и умели работать сами по себе. А люди, которым обязательно нужен тесный контакт (“face to face”) у нас не приживаются. Но это наша специфика. У большинства компаний наверняка наоборот. Но это всё “качества” нужные отдельным компаниям, позициям, а не программистам в общем.

“Работа программиста — это решение задач”

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

Дмитрий Ейбоженко, Development Team Lead в Яндекс:

Думаю, базовый набор качеств примерно одинаков для всех профессий, как и вообще для того, чтобы быть Человеком — это порядочность, ответственность, способность работать в команде. Это слова, которые так часто упоминаются в резюме, что кажутся общим местом, но в действительности крайне важны. Но, всё же, если выделять главное качество, я бы назвал способность решать задачи. Потому что, по большому счёту, работа программиста — это решение задач, такой бег с препятствиями, где ты следуешь по прямой какое-то время и тебе легко за счёт опыта и багажа. Но потом встречается очередное препятствие, которое надо преодолевать. И вот именно здесь и скрывается вся работа. Поиск опыта в интернете, кстати, один из распространенных способов тренировки навыков преодоления трудностей и умения быстро находить подходящие решения и их применять.
По-настоящему несовместимых с работой программистом качеств не так уж и много, думаю, неумение преодолевать трудности — одно из них. Наверное, “научно” это можно назвать “стрессонеустойчивостью”, а в остальном всё зависит от руководителя и того, какие качества он ценит в людях.

Аналитический склад ума, упорство и умение работать в команде

Иван Луковников, вице-президент по разработке и облачным технологиям в Acronis:

В первую очередь, хороший разработчик должен обладать аналитическим складом ума. Даже самые сложные задачи программирования имеют логическое решение. В идеале, программист должен получать удовольствие от решения таких задач; особенно, если все решено просто и красиво.
Второе качество — это, конечно, упорство. Чтобы по-настоящему изучить основы компьютерных наук, необходимо достаточно много времени. Придется потратить тысячи часов, программируя и решая подчас головоломные задачи. Разумеется, если вы любите свое дело, вам это будет не так сложно. Но, тем не менее, потребуется много терпения и большая целеустремленность, чтобы достичь на этом пути настоящих успехов.
Третье качество — умение работать в команде. Написание кода в — большинстве случаев вещь коллективная. Современному разработчику необходимо постоянно контактировать с коллегами, работать синхронно, легко читать чужой код и работать с ним.

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

Александр Решетков, ИТ-директор компании Softline:

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

Хороший программист умеет презентовать свои идеи и общаться с людьми

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

Александр Горный, директор по информационным технологиям Mail.Ru Group:

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

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

Другие публикации:  Как правильно оформить памятку

Наиболее ценные качества программиста по мнению работодателей:

  1. Умение решать задачи
  2. Аналитический склад ума
  3. Упорство
  4. Умение работать в команде
  5. Хорошая концентрация
  6. Усидчивость
  7. Алгоритмизированный подход
  8. Ответственность
  9. Коммуникабельность
  10. Инициативность

Нужно понимать, что эти качества крайне желательны, но не обязательны. Здесь всё зависит от компании и специфики должности. Ларри Уолл, создатель Perl, сказал: “Многие знакомы с достоинствами программиста. Их всего три, и, разумеется, это: лень, нетерпеливость и гордыня.” Объясняется это просто: ленивый человек, скорее всего, найдет наиболее эффективный способ решения задачи. Поэтому, если вы обнаружили у себя несоответствие с вышеперечисленными пунктами, то не теряйте энтузиазма. Найдите “позитивное” применение своим особенностям.

Автор: Михаил Климов

Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».

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

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

Всё зависит от особенностей работы в конкретной компании

Рекомендуется брать поправку на личные особенности при выборе работы. Например, интроверту, скорее всего, будет комфортнее работать удаленно. А экстраверту — в open space-офисе.

Игорь Селецкий, CEO & Founder в Cloud Linux Inc.:
Все люди разные и программисты в том числе. Одни могут летать в облаках, другие будут “цепляться” к деталям — и те и другие важны, пусть и для различных позиций, задач и даже компаний.
А так, главное, чтобы человек был хороший.
Я могу назвать качества, которые значимы для работников в моей компании. Но ведь это не важно. Есть другие компании, где эти качества не играют никакой роли или, наоборот, очень мешают.
У нас вся работа удалённая, поэтому необходимо, чтоб программисты могли сами следить за своим временем и умели работать сами по себе. А люди, которым обязательно нужен тесный контакт (“face to face”) у нас не приживаются. Но это наша специфика. У большинства компаний наверняка наоборот. Но это всё “качества” нужные отдельным компаниям, позициям, а не программистам в общем.

“Работа программиста — это решение задач”

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

Дмитрий Ейбоженко, Development Team Lead в Яндекс:

Думаю, базовый набор качеств примерно одинаков для всех профессий, как и вообще для того, чтобы быть Человеком — это порядочность, ответственность, способность работать в команде. Это слова, которые так часто упоминаются в резюме, что кажутся общим местом, но в действительности крайне важны. Но, всё же, если выделять главное качество, я бы назвал способность решать задачи. Потому что, по большому счёту, работа программиста — это решение задач, такой бег с препятствиями, где ты следуешь по прямой какое-то время и тебе легко за счёт опыта и багажа. Но потом встречается очередное препятствие, которое надо преодолевать. И вот именно здесь и скрывается вся работа. Поиск опыта в интернете, кстати, один из распространенных способов тренировки навыков преодоления трудностей и умения быстро находить подходящие решения и их применять.
По-настоящему несовместимых с работой программистом качеств не так уж и много, думаю, неумение преодолевать трудности — одно из них. Наверное, “научно” это можно назвать “стрессонеустойчивостью”, а в остальном всё зависит от руководителя и того, какие качества он ценит в людях.

Аналитический склад ума, упорство и умение работать в команде

Иван Луковников, вице-президент по разработке и облачным технологиям в Acronis:

В первую очередь, хороший разработчик должен обладать аналитическим складом ума. Даже самые сложные задачи программирования имеют логическое решение. В идеале, программист должен получать удовольствие от решения таких задач; особенно, если все решено просто и красиво.
Второе качество — это, конечно, упорство. Чтобы по-настоящему изучить основы компьютерных наук, необходимо достаточно много времени. Придется потратить тысячи часов, программируя и решая подчас головоломные задачи. Разумеется, если вы любите свое дело, вам это будет не так сложно. Но, тем не менее, потребуется много терпения и большая целеустремленность, чтобы достичь на этом пути настоящих успехов.
Третье качество — умение работать в команде. Написание кода в — большинстве случаев вещь коллективная. Современному разработчику необходимо постоянно контактировать с коллегами, работать синхронно, легко читать чужой код и работать с ним.

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

Александр Решетков, ИТ-директор компании Softline:

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

Хороший программист умеет презентовать свои идеи и общаться с людьми

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

Александр Горный, директор по информационным технологиям Mail.Ru Group:

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

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

Наиболее ценные качества программиста по мнению работодателей:

  1. Умение решать задачи
  2. Аналитический склад ума
  3. Упорство
  4. Умение работать в команде
  5. Хорошая концентрация
  6. Усидчивость
  7. Алгоритмизированный подход
  8. Ответственность
  9. Коммуникабельность
  10. Инициативность

Нужно понимать, что эти качества крайне желательны, но не обязательны. Здесь всё зависит от компании и специфики должности. Ларри Уолл, создатель Perl, сказал: “Многие знакомы с достоинствами программиста. Их всего три, и, разумеется, это: лень, нетерпеливость и гордыня.” Объясняется это просто: ленивый человек, скорее всего, найдет наиболее эффективный способ решения задачи. Поэтому, если вы обнаружили у себя несоответствие с вышеперечисленными пунктами, то не теряйте энтузиазма. Найдите “позитивное” применение своим особенностям.

Автор: Михаил Климов

Тем, кто хочет стать программистом, рекомендуем профессию «Веб-разработчик».

12 признаков плохого программиста – выявляем непрофессионала

Ведущий разработчик Kokoc.com

Rusbase и Kokoc Group продолжают разоблачать дилетантов в digital. На этот раз «под раздачу» попали программисты и разработчики, которые занимаются сайтом компании и его интеграцией со сторонними системами.

О том, как определить, что программист – непрофессионал, рассказывает Алексей Рузин, ведущий разработчик Kokoc.com (Kokoc Group).

Речь о программисте-универсале

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

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

1. Минимальные требования

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

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

  • один из распространенных языков: PHP/Python/Ruby/C#;
  • одну из СУБД: MySQL/PostrgreSQL/MSSQL/Oracle/MongoDB;
  • одну из распространенных систем управления сайтами (CMS): Bitrix, UMI, Drupal, ShoppingCart, WordPress;
  • обладать навыками администрирования Linux и web-серверов, например, одного из Nginx/Apache/IIS или иметь опыт размещения веб-серверов в Cloud-платформах AWS, Google Cloud, Azure.

Отсутствие этих навыков не говорит о том, что он дилетант. Он вам просто не подходит.

2. Заочное знакомство

Признаки слабого программиста можно выявить еще до собеседования по резюме, изучив портфолио. Если программист указал свои работы (сайты), то стоит открыть их в Google Chrome, зайти в раздел меню браузера «Дополнительные инструменты», выбрать пункт «Инструменты разработчика» и открыть вкладку «Console».

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

Отсутствие портфолио или отказ его продемонстрировать – верный признак неопытного разработчика.

3. Плавали, не знаем

Естественно, большое значение имеет практический опыт работы. Если на собеседовании в ответ на вопросы о прошлых разработках, кандидат «плавает» и не может объяснить собственные действия, стоит насторожиться.

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

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

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

Другие публикации:  Если нет фары какой штраф

4. Птичий язык

Еще один важный момент – способность кандидата разговаривать на «человеческом» языке. Хороший специалист сможет объяснить свою работу простыми словами. Но если соискатель разговаривает исключительно терминами, ему будет сложно взаимодействовать с коллегами и владельцем компании.

Как проверить: попросите рассказать о какой-то ошибке, за которую ему «влетело» от руководства. Например, на сайте 2 недели не работала форма «обратной связи». Представьте, что это ваш сайт.

Уточните в чем была суть ошибки, как он о ней узнал, как нашел причину и устранил ошибку. Если соискатель будет рассказывать «заумными терминами» — попросите разъяснить. Если вы все еще не удовлетворены объяснением, сработаться с ним будет сложно.

5. «ОпенСорс»

Многие специалисты публикуют собственные разработки на сайте GitHub (или BitBucket). Если у программиста несколько публичных проектов и тем более их отметили или скопировали (fork) другие пользователи – это существенный плюс. Большое количество копирований говорит о высоком уровне профессионализма.

Программист уровня Dan Abramov будет искать крупную компанию, уровня Facebook (он сейчас там работает), однако если ваш кандидат имеет проекты с ненулевыми отметками и «зеленая область» тоже заполнена – отлично! Смело зовите его на собеседование.

Как проверить: попросить соискателя прислать ссылку на аккаунт в GitHub (BitBucket) и перечислить проекты, которыми он гордится. Обратить внимание на «возраст аккаунта», количество проектов и число копирований кода другими пользователями.

6. Старый багаж

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

Современные средства позволяют существенно сократить время разработки. К слову, гнаться за новыми технологиями и необоснованно внедрять все новое – тоже плохо.

Как проверить: спросить, какие инструменты или технологии кандидат узнал за последние год-два и как они помогли ему в работе.

7. Цены с потолка

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

На простые задачи типа «замена цвета кнопки» или «создание карты сайта» стоит ожидать быстрые ответы – «дело 5 минут» или «справлюсь за 2 часа» соответственно.

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

Как проверить: спросить у кандидата, сколько времени ему понадобится, чтобы заменить цвет кнопки «Купить» в интернет-магазине и сделать карту сайта (site map).

8. Ручная работа

Есть шутка, что хороший программист – ленивый программист, но в ней есть доля правды. Грамотные специалисты пишут код так, чтобы минимизировать не только усилия тех, кто потом работает с программой, но и собственные. Они стараются использовать чужой готовый код (OpenSource) и в этом нет ничего плохого.

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

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

9. Лишние близнецы

Дубли кода – верный признак неопытного программиста.

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

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

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

10. Резать по живому

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

По-хорошему, программист должен делать копию сайта, тестировать изменения на ней и только после проверки изменений переносить их на основной ресурс.

Как проверить: спросить кандидата, как он обновлял сайт на предыдущем месте работы.

11. Доверяет, но не проверяет

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

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

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

Как проверить: если есть сомнения в программисте, протестировать сайт самостоятельно. Допустим, после интеграции сайта с платежными системами, попробовать оплатить заказ, например, через «Яндекс.Деньги». Все должно пройти гладко.

12. Улыбаемся и машем

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

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

Как проверить: попросить программиста рассказать, как он узнавал об ошибках на предыдущих проектах.

Профессия программист: требования, умения, перспективы

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

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

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

Перспективность профессии заключается в том, что прогресс не стоит на месте, а основными направлениями его развития являются именно автоматизация производства и внедрение IT-технологий. И программист является именно тем человеком, который воплощает запросы руководителей различных предприятий и организаций.

Программисты могут развивать свою деятельность в двух направлениях:

  • прикладное программирование ― разработка и отладка программ для решения определенных задач конкретного предприятия;
  • системное программирование ― разработка и последующая эксплуатация системного ПО.

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

Что нужно знать и уметь?

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

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

Английский язык. Знание английского на уровне, достаточном для изучения технической документации, является еще одним необходимым условием для нормальной работы.

Гибкость. Специалист по программированию должен уметь работать как в команде, так и самостоятельно. Большим преимуществом является умение координировать работу большого коллектива.

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

Сегодня одинаково популярны оба направления программирования.

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

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

Web-программисты. В данном случае речь идет о разработке, усовершенствовании и технической поддержке сайтов. В этой области нужны знания языков программирования, например, JavaScript или Objective-c, языки разметки гипертекста XHTML или XML, и многое другое. Зачастую работодатели требуют от web-программиста выполнения обязанностей и web-дизайнера.

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

Как стать программистом?

За большинством технических удобств вроде онлайн-банка или информационного табло в аэропорте стоят специалисты одной и самых востребованных профессий современности – программисты. Без них не работали бы ни гаджеты, ни соцсети. Даже заказать новые кроссовки в интернет-магазине было бы проблематично. До сих пор it-сфера только ускоряет темп развития, требуя все новых работников. Кампании готовы нанимать даже новичков. Средняя зарплата программиста начинается от 35 тысяч рублей, а уж профессионалы со стажем могут зарабатывать заоблачные деньги.

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

Кто такие программисты и чем они занимаются

Запросы it-сферы на профессионалов постоянно увеличиваются. Следовательно нужны люди, которые будут в этом разбираться: создавать, чинить, поддерживать. Кодеры бывают разные, и каждая работа имеет свою специфику. Расскажем про основные специализации айтишников:

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

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

Ещё одно перспективное направление – java-программирование. Большинство банковских систем спроектированы на этом языке. Банки готовы хорошо платить за качественный продукт и штатным работникам, и сторонним фирмам. Но и требования тут высоки: придется нести ответственность за корректную работу приложения с чужими деньгами. Конечно, программировать на java можно не только в банке, а хорошие it-специалисты со стажем получают около 200 тысяч рублей в месяц.

Другие публикации:  Объяснительная забыл пропуск

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

Ещё одна похожая профессия – qa engeneer, специалист по качеству продукта. Основное его отличие в том, что он не ищет ошибки в коде, а старается их не допускать. Подробно выяснить требования заказчика, спланировать разработку, наладить связь между группами программистов – все это обязанности qa engeneer. Часто тут даже язык программирования знать не надо, важнее представлять этапы разработки и особенности управления проектами.

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

Согласно исследованию StackOverFlow, это самая востребованная it-профессия 2017 года. Web-программисты делятся на две категории: front end и back end (они же часто шифруются как UX/UI дизайн). Первые следят за всем, что связано с пользовательской частью: удобство приложения и сайта, интуитивно понятное использование и просто красивая картинка. Вторые прорабатывают техническую составляющую: логика сайта, его функции, взаимодействие с базой данных. Чтобы страничка в интернете выглядела современно, разработчики проходят курсы html и php, владеют css, java-script, программированием на python.

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

  • Программист 1C

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

Возможную рутинность работы с лихвой компенсирует порядок зарплат. Если говорить о фиксированной ставке, то начинающий Программист 1C сразу найдет вакансию с зарплатой в 45 тысяч в месяц, а ведущий специалист получает от 120. А вот в случае фриланса заработок будет зависеть от ваших навыков и от количества рабочих часов в неделю. Профессионалы зарабатывают и 200, и 500К в месяц.

Этот айтишник не совсем программист. Его особенность в том, что он отлично разбирается в «железе». Подключить принтер, ноутбук, проектор, настроить его работу, раздать интернет и спроектировать хитрую локальную сеть – это все к нему. Гуру проводов и работающих принтеров платят от 25 тысяч рублей, а зарплата программиста-сисадмина с хорошим опытом может доходить до 150 тысяч в месяц.

Он же product manager, он же product owner. Менеджер продукта выступает как переводчик между заказчиком, которые не разбирается в информационных технологиях и исполнителей-программистом. Кажется, что это работа из ничего – что заказчик с программистов сами разобраться не смогут?! Хорошо не смогут. Именно product manager может объяснить заказчику возможности функционала и потом уже сформулировать точное задачу для айтишников. На product owner лежит ответственность, чтобы готовое приложение, сайт или игра приносили пользователю максимум радости и пользы.

  • Директор по ИТ-продукту

Любой успешный айтишник может достичь высшей позиции в it-сфере – chief procurement officer (коротко CPO). Этот человек глубоко знает продукт, понимает систему кодинга, знает лучшие стратегии для создания программного обеспечения. В подчинении ИТ-директора средней компании может находиться 30-50 человек. Средний доход… далеко выше среднего.

Как стать программистом?

Обучение программированию в вузе

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

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

Обучение на программиста в колледже

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

  • 09.02.03 Программирование в компьютерных системах;
  • 09.02.05 Прикладная информатика;
  • 09.02.07 Информационные системы и программирование.

Всего в стране 71 учреждение среднего профессионального образования с нужными нам направлениями подготовки. Эти профили вы найдете в Санкт-Петербургском колледже информационных технологий, Петровском колледже, Новосибирском колледже электроники и вычислительной техники, в Уральском технологическом колледже “МИФИ” и в многих других.

Курсы дополнительного образования

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

Изучать приглянувшийся язык программирования можно самостоятельно в удобном темпе на одном из обучающих ресурсов. Например, на INTUIT легко подобрать курс по java-программированию. После успешного прохождения итогового тестирования система выдаст бесплатный сертификат.

Если идея самостоятельного изучения вам не по душе, то приглядитесь к онлайн-школам. Существенный плюс — чаще всего тут курсы ведут практикующие программисты, которые не только поделятся общими знаниями, но и расскажут о реальных интересных кейсах. В конце обучения дают диплом и обещают помочь с трудоустройством. Обучение «официальное», даже налоговый вычет можно получить. Но и стоит довольно много. Годовой курс обойдется в 150 тысяч рублей. Здесь уже как посмотришь: это большой расход или умная инвестиция в себя.

Для желающих видеть преподавателя не через экран монитора, а вживую, есть очные курсы. Например, MAXIMUM ведет занятия по изучению it-сферы для школьников Digital Skills. Программирование там тоже есть, а на ознакомительное занятие можно прийти бесплатно.

Как поступить на специальность Программирование и что сдавать?

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

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

Чем заняться сейчас, чтобы повысить свои шансы на успешную карьеру программиста

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

  • Ботайте английский язык. Многие ресурсы на английском. Чтобы не ждать, пока кто-то сжалится и переведет текст за вас, позаботьтесь о языке заранее. Это настолько важно, что некоторые платные курсы дают уроки по языку своим студентам как часть основного программы.
  • Чатьтесь на it-форумах. Ответы на многие вопросы можно найти на форумах программистов, как например, Хабрахабр. Профессиональное сообщество щедро делится знаниями и полезными кусочками кода. Правда, иногда поиски растягиваются на несколько дней и параллельно приходится разбираться в новых инструментах, с которыми не был знаком раньше. И да, часто самая полезная ссылка будет на английском.
  • Погружайтесь в книги. Не спешите покупать первую попавшуюся литературу в ближайшем книжном. На полках много бесполезного и безнадежно устаревшего материала. Опять же много трудов изначально написаны на английском, и русская версия может страдать серьезными недочётами перевода. Можете начать с наших рекомендаций, а потом поймете, как выглядит годный контент.

Дочитали до конца? Вот вам ещё пара интересных фактов, которые помогут лучше представить профессию программиста.

  • Если вы зайдёте на сайт вакансий, то увидите: требуются загадочные middle или senior разработчики. У программистов есть своя градация степени профессионализма: junior, middle и senior. Первые, новички, должны владеть всеми средствами языка, на котором работают. Вторые — it-специалисты со стажем 3-5 лет. Третьи не только знают все о коде, но и могут организовать работу группы разработчиков над проектом. С ростом звания соответственно растет и зарплата!
  • Популярный портрет типичного программиста – неразговорчивый человек в очках с литровой чашкой кофе. На самом деле, эта картинка верна разве что для редкого фрилансера. И совсем не обязательно быть интровертом, чтобы идти в профессию. Как и в любом другом деле, важны надпрофессиональные навыки — объяснять, аргументировать, договариваться, выходить из конфликта.​

  • Над большими проектами работает целая группа it-специалистов. Каждый отвечает за свой участок кода, и все кусочки в конце должны собраться в единый продукт. Чтобы это случилось, команды постоянно проводят планерки, помогают коллегам искать и исправлять недочёты. А в некоторых офисах даже есть TV-приставки и настольные игры. Коллективная смена деятельности помогает наладить контакт и переключиться, когда работа «встала».
  • Программисты празднуют свой профессиональный праздник 13 сентября. Дата выбрана не случайно: это 256-ой день года, максимально возможная степень двойки, которая влезает в число 365.

Читайте так же:

  • Программист требования к профессии Профессия программист Программист – это востребованная профессия в сфере информационных технологий. Существует много специализаций программистов: например, системный программист, прикладной программист, web-программист, а также программист 1С, Java-программист, PHP-программист, С++ […]
  • Php возврат в форму Возврат из формы отправки вызова в .php файл У меня есть анкета в форме. В конце этого нажата кнопка отправки, которая должна вызывать .php файл, который вставляет данные в базу данных через свою информацию о действии, а затем показывает последнюю страницу, содержащую что-то вроде […]
  • Образец договор с артистом Договор на выступление артистов Заключение договора на выступление артистов с мячом возможно, но в 99% случаев наши фристайлеры выступают без него. Что делать, если вы хотите заключить договор? Необходимо позвонить по телефону +7-921-561-48-65 или написать ВКонтакте о желании […]
  • Где можно оформить проездной для школьника ГУП «Мосгортранс» Льготные проездные билеты Учащимся и студентам Социальная карта учащегося или студента (СКУ, СКС). Оформление социальной карты учащегося (школьника) или студента производится в любом центре государственных услуг «Мои документы» (МФЦ) города Москвы или на портале […]
  • Свободные вакансии юристом Вакансии → Работа юристом В разделе «Работа юристом» представлены вакансии для юристов в Москве и Московской области. Список содержит предложения работы от прямых работодателей и кадровых агентств Московского региона. Многие работодатели не размещают вакансии, а смотрят резюме […]
  • Касперский лицензия цены Касперский лицензия цены Максимальная защита Windows, Mac и Android. Защита детей и управление паролями на всех устройствах, включая iPhone и iPad. Internet Security Надежное и удобное решение для защиты вашей жизни в интернете, совместимое с Windows, Mac и Android. VPN Secure […]