Для начинающих программистов
Время на прочтение
После окончания университета через несколько лет работы по специальности у меня появилась мысль прийти на кафедру программирования и предложить организовать лекцию для студентов старших курсов, где я бы рассказал им, как вообще работается программистом, и что я сам хотел бы знать об этом, когда учился. Это по разным причинам не случилось, но идея осталась, и я решил реализовать ее в виде статьи. Текст написан для студентов без опыта работы.
Немного о себе. Я занимаюсь веб-программированием, у меня 12 лет опыта, основной язык PHP. Проекты, где я работаю, это обычно крупные системы, над которыми работает команда программистов, и которые нужны какому-то бизнесу для его деятельности. Такие проекты называют словом “энтерпрайз”. Например, это интернет-магазины и связанные с ними внутренние системы.
Языки программирования
Начнем с языков программирования. Мы в университете изучали C++ на первых курсах. Про него нужно знать следующее. Если вы разобрались с классами, указателями, и пишете все лабы на C++, это не значит, что вы знаете C++. Там есть много технических нюансов – undefined behavior, умные указатели, виртуальные деструкторы, и много чего еще. Также надо знать основные библиотеки – std, boost. Если вы этого не знаете, на реальные вакансии вас не возьмут. Если только на стажировку, которая есть далеко не везде. Даже профессиональные программисты на C++ иногда жалуются на техническую сложность C++.
Более современные низкоуровневые языки это Rust и Go. Есть более высокоуровневые языки – например Java, C#, PHP, Python. Все они очень распространены, нет необходимости хорошо знать именно C++. Но в целом понимание, как всё работает на низком уровне, это плюс.
Языки Lisp и Prolog в чистом виде не используются. Функциональные языки, которые используются на практике, это например Haskell, Scala, Erlang, F#. Но их доля относительно императивных языков не очень большая. Нужно знать, что есть такая концепция неизменяемых переменных, у нее есть свои плюсы, и на таких языках тоже можно писать программы.
Могу посоветовать изучить HTML, CSS и JavaScript, даже если это не требуется по программе. Браузер имеет хорошие возможности по отображению графики, в нем удобно делать лабораторные работы, где нужен интерфейс пользователя, но не требуется какой-то определенный язык программирования.
Веб-программирование сейчас очень распространено, обычно в таких проектах есть база данных и серверный язык, который генерирует HTML для браузера, или возвращает в браузер нужные данные, а интерфейс создается с помощью приложения на JavaScript. Серверный язык может быть любым, часто это один из тех, которые я написал выше. JavaScript тоже используется в качестве серверного языка.
Для любых языков важно знать не только сам язык, но и распространенные библиотеки и фреймворки для него. Вас не будут брать на работу, если вы не знаете хотя бы один фреймворк.
Базы данных
Базы данных широко используются. Проектов, где не нужно хранить данные, довольно мало, а если их нужно хранить, то обычно для этого используются базы данных, а не просто файлы. Нужно знать SQL и уметь с ними работать. Реляционную теорию знать не нужно, нормальные формы никто не спрашивает. Нужно знать, как разделять данные на таблицы и как их соединять через внешние ключи. На практике чаще всего используются INNER JOIN и LEFT JOIN, другие формы использовать не рекомендуется, так как их сложно понимать. В джойнах лучше писать только условие равенства ключей, дополнительные условия лучше писать в WHERE.
В контексте теории баз данных есть распространенное утверждение, что искусственные (суррогатные) автоинкрементные первичные ключи использовать не рекомендуется, лучше найти уникальные естественные ключи. Это не так. В реальности любые 2 объекта могут иметь одинаковые характеристики. Характеристики, которые можно использовать в качестве первичного ключа, это такие же искусственные ключи, просто придуманные для некомпьютерного учета. Обычно они тоже имеют инкрементную природу, например, инвентарные номера или номера телефонов. При этом не нужно использовать номер телефона в качестве первичного ключа для таблицы со списком людей, у человека может быть 2 номера или ни одного. Номер телефона может являться первичным ключом только для таблицы телефонов.
Искусственные ключи, которые уже существуют в предметной области, обычно не оптимальны для производительности, поэтому делают числовой автоинкрементный первичный ключ, а на поле, которое можно считать уникальным, добавляют уникальный индекс. Первичный ключ нужен для самой системы, чтобы можно было программным способом идентифицировать и различать соответствующие объекты, поэтому нужно делать так, чтобы это было удобно с технической стороны.
Случай, где отдельный автоинкрементный ключ использовать не нужно – это промежуточные таблицы для связи многие-ко-многим. Связь подразумевает 2 объекта, которые она соединяет, поэтому первичный ключ для нее состоит из ключей этих объектов. Для других связей промежуточную таблицу обычно не делают, поэтому для них используется первичный ключ основной таблицы.
Cистемы контроля версий
Cистемы контроля версий тоже широко используются. Основные это Git, Mercurial, SVN. Самая распространенная система это Git. Они нужны для хранения истории изменений, отслеживания и управления изменениями, особенно при работе в команде.
Если вы с ними не знакомы, и пробовали разрабатывать какую-то большую программу, то у вас скорее всего была необходимость делать копии текущего состояния, которое точно работает, и на которое можно вернуться, если новые изменения не работают. В результате у вас были папки вида “ProjectName v1”, “ProjectName v2”, “ProjectName v3”. Система контроля версий упрощает эти действия, и имеет более развитые возможности, в том числе для работы многих людей над одним проектом. Нужно знать, что такое коммит, ветка, мерж-реквест, и как с ними работать.
Связанные дисциплины
Физику знать не нужно. Желательно иметь представление на школьном уровне об основных терминах, в основном связанных с электричеством, чтобы понимать, о чем идет речь, если она где-то об этом идет.
Математику подробно знать не нужно. Но ее изучение показывает, насколько хорошо вы можете разобраться в незнакомой информации. Также надо иметь представление об основных концепциях, вдруг где-то понадобится – проценты, синус-косинус, логарифмы, матрицы.
Отдельно надо отметить математику, связанную со сложностью алгоритмов. Нужно иметь представление, что такое сложность алгоритмов, как она оценивается. Обычно в работе это не требуется, но иногда все-таки требуется. Несмотря на это, про нее часто спрашивают на собеседованиях, так как это один из способов проверить хотя бы какие-то знания из области ИТ за несколько минут. Сортировки, деревья, графы. Обычный цикл – линейная сложность, вложенный цикл – квадратичная, дерево или рекурсия обычно логарифмическая, но зависит от ситуации. Лучший и худший случай могут иметь разную сложность. Константный множитель не считается.
В работе более важно не знание чего-то, а умение изучать незнакомый материал. Но чтобы изучать, надо хотя бы что-то знать.
Английский язык
Английский язык желательно знать. Он помогает в чтении документации и при поиске работы. Во многих зарубежных компаниях идет общение на английском, и уровень владения им оценивается на собеседовании.
Процесс поиска работы
У тех, кто еще не искал работу, часто есть неправильное представление об этом процессе. Кажется, что это происходит так. Вы прочитали объявление “Требуется программист”, приходите такие, спрашиваете “Еще ищете программиста? – Да – Я согласен – Знаете то-то и то-то? – Да, там вот так-то и так-то – А вот это знаете? – Нет, но я разберусь – Хорошо, вы приняты, начинайте работать”. Такого не бывает.
Обычно происходит так. Компания проводит собеседования пару недель, потом из кандидатов выбирает лучшего. Даже если вы ответили на все вопросы, далеко не факт, что возьмут именно вас. Если у другого человека опыт работы на 6 месяцев больше, или есть какие-то дополнительные курсы, проекты, выступления, или он отвечал более подробно и уверенно, возьмут его, а не вас, даже если он проходил собеседование позже. Так, чтобы взяли первого подходящего, происходит крайне редко.
Если вы чего-то не знаете, никто не будет проверять, разберетесь вы или нет. Компания не будет платить вам деньги, чтобы это проверить. Специалисту с хорошим опытом могут поверить, вам без опыта никто не поверит. Поэтому и нужно знать хотя бы один распространенный фреймворк для вашего языка, так выше шансы получить работу, где он используется.
Иногда не берут никого из первых кандидатов и продолжают искать, месяц, два, или дольше. Потому что уволить плохого специалиста не так просто, проще подождать и взять нормального.
Собеседований может быть одно или несколько. Обычно сначала разговор с HR, потом техническое собеседование с программистом, чаще всего с руководителем команды (тимлидом). В небольших компаниях может быть одно сразу техническое, в больших 3-4.
HR-специалисты бывают не всегда компетентны. Технические специалисты, которые проводят собеседование, иногда бывают неприятными в общении людьми, пытаются показать превосходство, задают слишком сложные вопросы, спрашивают не то, что нужно в реальной работе. Надо понимать, что так бывает. C HR-специалистами после приема на работу вы обычно не будете сталкиваться, а вот если вам встретился такой технический специалист, то надо подумать, действительно ли вы хотите работать в такой компании.
Заведите аккаунт на GitHub или Bitbucket, напишите пару небольших проектов с хорошо оформленным кодом и выложите туда, добавьте ссылку в резюме. Тестовые задания тоже обычно просят выложить на GitHub.
Пока у вас нет опыта, берите любые тестовые задания. Это даст вам представление, какие задачи вообще бывают. Нормальное тестовое задание можно сделать за один вечер. Тестовые задания на неделю это странно, такие компании лучше избегать. Можно сделать такое задание из интереса, но не отправлять результат. Иногда дают небольшое задание, и разрешают прислать в течение недели, это нормально.
В тестовом задании важно не только то, что оно должно работать, а еще и стиль кода, структура классов, насколько код понятен и легко читается. Не нужно комментировать каждую строку, это наоборот минус. Нужно выравнивать отступы, понятно называть переменные, классы и методы, разбивать большой код на разные методы, выносить группы связанных методов в разные классы. Нужно использовать общепринятые подходы, даже если для небольшого задания они кажутся избыточными. Тут есть сложность, что если нет опыта, то непонятно, какие подходы общепринятые. Тут ничего не сделаешь, нужен хотя бы косвенный опыт. Уточняйте у проверяющего, что было не так с тестовым заданием, читайте технические книги и статьи, изучайте код open-source проектов, пробуйте сами что-то писать.
Часто на собеседованиях спрашивают, есть ли у вас вопросы. Говорят, что если ничего не спрашивать, то это минус, будто бы показывает, что вы не заинтересованы. Это конечно не так, пока нет опыта, хоть какую-то работу бы найти, но не все HR-специалисты это понимают. Я обычно спрашиваю, сколько человек работает в команде, и еще что-нибудь по ситуации.
Если у вас уже есть какой-то небольшой опыт тут и там, возникает желание добавить всё в резюме. Частая смена места работы у HR вызывает подозрение. Это может говорить о том, что вы плохо взаимодействуете с коллективом и не можете удержаться на одном месте. 2 года и больше на одном месте считается нормально, 1 более-менее, меньше 1 уже странно. Пока у вас мало опыта, объясняйте в описании каждого места, почему ушли – может это был небольшой разовый проект, и вы его завершили, или зарплату платили меньше, чем обещали. Подумайте о том, чтобы объединить несколько мест в одно с названием типа “Разовые проекты” или “Фриланс”, без лишних подробностей.
Отзываться плохо о бывших коллегах не рекомендуется, особенно в разговоре с HR. Если на прошлом месте работы были проблемы с поддержкой плохого кода, ищите нейтральные формулировки, или просто не сообщайте подробностей. В разговоре с программистом можно осторожно обсудить технические недостатки решений, он хотя бы поймет. Но без особой причины тоже лучше не нужно. Идеального кода не бывает, везде есть какие-то недостатки, вопрос только в том, насколько приемлемо их количество.
Процесс работы
После приема на работу вы будете работать в команде, поэтому умение взаимодействовать с людьми очень важно. Это называется soft skills. Их проверяют на собеседованиях. Нужно уметь вежливо общаться, защищать свою точку зрения без грубости, даже если кто-то грубит вам, нужно уметь слушать и не перебивать, давать высказать другому человеку его мысль, нужно уметь идти на компромиссы, принимать другую точку зрения, и делать что-то, с чем лично вы не согласны.
Практически на любой работе есть процесс код-ревью. Вы сделали свою задачу, написали код, создаете мерж-реквест с изменениями, и кто-то из других программистов его просматривает. Для этого используются системы контроля версий и связанные с ними инструменты. Код должен не только работать, но и быть понятен для других. Потому что потом задача на изменение этого кода может попасть к другому программисту, и для компании лучше, если он не будет тратить время на то, чтобы разобраться, что вы там написали. Во время код-ревью проверяется соответствие общепринятому стилю, структура и понятность кода, код анализируется на возможные ошибки.
Можно также отметить процесс тестирования. Для кода часто делают юнит-тесты, они находятся вместе с основным кодом проекта, их пишут программисты. В тесте задаются правильные входные и выходные данные для какого-то кода, это гарантирует, что если в дальнейшем при внесении изменений в этот код будет допущена ошибка, из-за которой выходные данные изменятся, то это будет заметно. Такие тесты запускаются перед каждой выкладкой новых изменений на рабочий сервер (“в продакшн”), а также сразу при создании мерж-реквеста.
Кроме этих тестов есть отдел тестирования. Тестировщики тестируют работу проекта с точки зрения пользователя, они проверяют основные сценарии вручную или с помощью специальных автотестов, которые управляют браузером или окном приложения и имитируют взаимодействие пользователя с элементами интерфейса. Иногда такие тесты тоже пишут программисты.
Задачи назначаются в трекере задач, их много разных, самый популярный это Jira. У задачи есть номер, обычно его нужно указывать в сообщении коммита. Так другие программисты в дальнейшем смогут найти, почему было сделано какое-то изменение в коде. Часто есть требование заносить в задачу примерное время, которое на нее было потрачено. Это нужно для отчетов и планирования, в нормальных компаниях никто у вас не будет спрашивать доказательства, почему вы потратили 2 часа вместо 1. Некоторые компании требуют устанавливать средства контроля, которые делают снимки экрана, чтобы проверить, что вы действительно работали, их лучше по возможности избегать. Уточняйте это на собеседованиях.
Часто используется подход, когда рабочий день начинается с общего созвона через интернет или сбора в офисе, где все рассказывают, что они делают, какой прогресс по задачам, и есть ли какие-то проблемы или вопросы.
Удаленная работа практически ничем не отличается от офисной, только в офис ходить не надо. Обычно есть рабочий чат, где можно обсудить любые вопросы.
Книги
Могу посоветовать 3 книги, которые стоит прочитать:
Здравствуйте, в этой статье мы постараемся ответить на вопрос: «Профстандарт и должностная инструкция программиста. Права и обязанности». Если у Вас нет времени на чтение или статья не полностью решает Вашу проблему, можете получить онлайн консультацию квалифицированного юриста в форме ниже.
Нормативная база для профстандартов стала активно развиваться с 2015-го года, когда был введен в действие ФЗ-122, вносивший крупные изменения в Трудовой кодекс и Закон об образовании. В соответствии с ним в ТК появилась статья 195.3, утвердившая обязательное использование профстандартов в профессиях, квалификационные требования к которым устанавливались законодательством. Далее применение профстандартов расширялось: в 2016-м году Правительством было принято Постановление №584, где устанавливалась их необходимость для организаций, свыше 50% которых принадлежит государству или имеющих бюджетный формат.
https://youtube.com/watch?v=9yxPCJ-RJxA%26pp%3DygVb0J_RgNC-0YTQtdGB0YHQuNC-0L3QsNC70YzQvdGL0Lkg0YHRgtCw0L3QtNCw0YDRgiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0LAg0YEgMjAyMyDQs9C-0LTQsA%253D%253D
Профстандарт «Программист» — требования к профессиональным обязанностям
В новом профстандарте установлены следующие квалификации работников:
После того как будет утвержден профессиональный стандарт программиста, к представителям данной профессии будут предъявляться следующие требования, прописанные в должностных инструкциях и регламентирующие их трудовую деятельность:
Обобщенные трудовые функции по профстандарту «Программист»
Согласно профстандарту, основная цель трудовой деятельности программиста — создание, отладка, тестирование и модификация программного обеспечения (далее по тексту — ПО). Документ устанавливает следующие обобщенные трудовые функции в зависимости от уровня квалификации:
Утвержден профессиональный стандарт для программистов
Как правило программист имеет ряд обязанностей:
Для персонала, занимающегося разработкой или отладкой программного обеспечения, разработан профстандарт программиста. В нем четко оговаривается, каковы функциональные обязанности программистов в учреждении или на фирме. Кроме того, в профессиональном стандарте приводится полный перечень критериев, которым должен удовлетворять сотрудник, отвечающий за работоспособность компьютерной техники.
Адрес проведения экзамена
Номер
Адрес проведения экзамена
16.014.16.02
г Казань, ул Бари Галеева, д 3А Показать на карте Открыть
Названия должностей в профстандарте и квалификационные требования к ним
В профстандарте для каждой обобщенной функции программиста назначен свой перечень возможных наименований должностей. При этом по общему правилу квалификационные требования предъявляются не к должности вообще, а к конкретному сотруднику, выполняющему отдельную обобщенную функцию. В связи с этим в профстандарте для программиста каждой обобщенной функции соответствуют разные названия должности и требования:
Плюсы обучения в НТУ и как записать программистов на повышение квалификации
Повышение квалификации программистов
Почему стоит выбрать именно нас:
https://youtube.com/watch?v=ZTOy4nKrkVE%26pp%3DygVb0J_RgNC-0YTQtdGB0YHQuNC-0L3QsNC70YzQvdGL0Lkg0YHRgtCw0L3QtNCw0YDRgiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0LAg0YEgMjAyMyDQs9C-0LTQsA%253D%253D
Изменения в профстандарте «Программист»
Специалисты отмечают, что выпущенный Минтрудом профстандарт программиста менее требователен к образованию техников и инженеров в сфере IT, нежели предыдущий документ.
Основные изменения коснулись требований к образованию и опыту работы специалистов по программированию:
Профессиональный стандарт «Программист» 2022 года облегчает для специалистов вход в профессию и карьерный рост. Это связывают с дефицитом в Российской Федерации грамотных работников в данной сфере.
Профессиональными стандартами должны в обязательном порядке пользоваться те компании, чьи сотрудники пользуются социальной защитой и льготами, разработанными для представителей IT-профессий Правительством РФ. Для остальных организаций — этот документ носит рекомендательный характер. .
Программист — это профессия. Специалисты по программированию работают во всех отраслях и занимаются созданием исходных кодов для программ: должностная инструкция программиста бюджетного учреждения в основной части и по квалификационным требованиям очень схожа с аналогичным ЛНА частного предприятия. Не следует путать их с компьютерщиками, с IT-специалистами. Существующие специализации:
Должность «Программист» прописана в ЕКСД и присутствует в сборнике профессиональных стандартов – оба классификатора относят ее к сквозным позициям занятых в отраслях экономики.
ЕКСД содержит два квалификационных уровня:
https://youtube.com/watch?v=HMYbYXXDly4%26pp%3DygVb0J_RgNC-0YTQtdGB0YHQuNC-0L3QsNC70YzQvdGL0Lkg0YHRgtCw0L3QtNCw0YDRgiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0LAg0YEgMjAyMyDQs9C-0LTQsA%253D%253D
Профстандарты с 1 июля 2021 года применяются в следующих случаях:
Как уже было отмечено, ПС станут обязательными для некоторых категорий работников. Применение профессиональных стандартов обязательно в случаях, когда требования для квалификации работников установлены в ТК РФ и иных нормативных правовых актах.
Таким образом, согласно части 4 статьи 7 ФЗ №402 от 06.12.2011 г. в страховых фирмах, негосударственных пенсионных фондах, публичных АО у главбуха в обязательном порядке должны присутствовать:
Стоит заметить, что прочие организации (не перечисленные в предыдущем абзаце) могут нанимать работников, минуя данные условия.
На основании профстандарта РФ работодатель имеет право на утверждение новых должностных инструкций. Иногда в результате подобных изменений круг обязанностей работников может стать более обширным. Ни в коем случае нельзя производить данное действие не уведомляя об этом сотрудника. Согласно ч.2 статьи 72 и ч.2 статьи 74 Трудового кодекса России, работник должен предупрежден о вышеназванных обстоятельствах минимум за 2 месяца и дать свое согласие, если его все устраивает.
ВАЖНО! Если работник не соответствует профессиональным стандартам 2021, то уволить его на этом основании все-равно нельзя. Он может быть лишен работы лишь в том случае, если результаты его аттестации будут плохими или в организации не найдется вакантного места для него соответствующего его знаниям и умениям. Также работнику может быть предложено получение дополнительного образования с целью его дальнейшего соответствия профстандарту.
Вопрос: Какое наказание грозит работодателю, если он отказался от внедрения ПС, но данное правило в обязательном порядке установлено законодательством?
Ответ: Согласно положениям статьи 5.27 Кодекса об административных правонарушениях, за подобное нарушение предусматриваются следующие варианты наказаний:
Профессиональные стандарты программиста и руководителя разработки программного обеспечения
Тщательно проработав данный вопрос для каждой из должностей можно подобрать соответствующий профессиональный стандарт.
ВАЖНО! Наименование ПС не равно названию должности, так как он охватывает всецело вид деятельности с общими характеристиками должностей, а не конкретную профессии. Также в результате работы с ПС может возникнуть потребность в переименовании должностей.
Внедрение профстандартов по пунктам (обобщение сказанного в разделе):
Если работа дает право сотруднику на какие-либо льготы или компенсации, а также связана с ограничениями, то в трудовом договоре следует отразить наименование должности так же, как и в ПС или квалификационных справочниках.
Стоит заметить, что между квалификационным справочником и профстандартами могут быть различия. Например, не совпадать должности, которым положена льготная пенсия. Равнозначность этих понятий в последующем планируется быть установленной Правительством РФ. Решение по данному вопросу должно оформляться протоколом. Потому что в случае проверки именно протокол даст ответ на вопрос — «Почему наименование должности не аналогично указанной в ПС». Поможет данный факт и в случае возникновения конфликтов с сотрудниками или наличии претензий от органов инспекции.
Профессиональные стандарты в РФ 2021 года в соответствии с приказом Минтруда
Профессиональный стандарт «Программист»(.doc, 418 Кб)
Министерство трудаи социальной защиты
УТВЕРЖДЕН приказом Министерства труда и социальной защиты Российской Федерации от 18.11.2013 № 679н
I. Общие сведения
Разработка программного обеспечения
Основная цель вида профессиональной деятельности: Разработка, отладка, проверка работоспособности, модификация программного обеспечения
1. Участие в анализе требований и создании сценариев использования продукта
2. Участие в разработке различных типов требований к программному продукту
3. Разработка кода программного продукта на основе готовых спецификаций на уровне модулей
4. Отладка и тестирование кода на уровне модулей
5. Участие в интеграции программных компонент в единое целое
6. Анализ и оптимизация кода с использованием инструментальных средств для повышения качества изделий и производительности разработки
7. Разработка тестовых наборов и тестовых процедур
8. Разработка и ведение проектной и технической документации по порученным задачам
9. Участие в ревьюировании технических документов
10. Участие в измерении характеристик программного проекта
Перечень основных умений, навыков и знаний, требуемых для выполнения должностных обязанностей (первый уровень)
Основные умения и навыки, необходимые для выполнения должностных обязанностейОсновные знания, необходимые для выполнения должностных обязанностей
1. Участие в анализе требований и создании сценариев использования продуктаВырабатывать требования к программному обеспечению Использовать средства и методы разработки требований и спецификаций Работать в командеОсновные методы и средства эффективной разработки Типовые роли в процессе разработки программного обеспечения Методологии разработки программного обеспечения Внутренние нормы и регламенты разработки
2. Участие в разработке различных типов требований к программному продуктуВырабатывать требования к программному обеспечению Использовать средства и методы разработки требований и спецификаций Использовать методы и технологии разработки формализованных требований и спецификаций для контроля заказанной функциональности и качества продукта Использовать методы и технологии разработки для генерации исполняемого кода Использовать методы и технологии разработки для генерации тестов по формальным описаниям Работать с документацией и технической литературой Работать в командеОсновные методы и средства эффективной разработки Объектно-ориентированная разработкаМетодологии разработки программного обеспечения Внутренние нормы и регламенты разработки
3. Разработка кода программного продукта на основе готовых спецификаций на уровне модулейВладеть основными методологиями процессов разработки программного обеспечения Оптимизировать программный код с использованием специализированных программных средств Осуществлять разработку программного обеспечения на современных языках программированияОсуществлять объектно-ориентированную разработкуЯзыки программирования и инструментарий разработки программного обеспечения на соответствующих языках Основные методы и средства эффективной разработки Типовые роли в процессе разработки программного обеспечения Методологии разработки программного обеспечения Внутренние нормы и регламенты разработкиСтандартные алгоритмы и области их применения
В июле 2020 года в законную силу вступила ст. 195.3 Трудового кодекса РФ от 30.12.2001 № 197-ФЗ, регламентирующая схему применения профстандартов, использование которых стало обязательным в установленных законом случаях. Подробнее читайте в статье Какие организации обязаны применять профстандарты? Таким образом, если федеральным законодательством (в т. ч. ТК РФ) будут определены требования к квалификации и образованию работника, которые необходимы ему для ведения трудовой деятельности, профстандарты-2018 – 2020 в этой части обязательны к применению работодателями-организациями бюджетной сферы.
Реестр профессиональных стандартов — 2020 – 2020 размещен на специальном сайте Роструда РФ.
Реестр профстандартов ведется в алфавитном порядке. Для каждого из них установлены наименование должности, профессии, а также конкретный вид поручаемой трудящемуся работы.
Требования к навыкам и знаниям
В случае определения необходимых знаний важно учитывать направление деятельности программиста и его категорию, согласно профессии. Основные требования можно рассмотреть в следующей таблице:
Инженер-программист
Техническое/ Инженерно-экономическое высшее профессиональное образование
Инженер-программист III категории
Техническое/ Инженерно-экономическое высшее профессиональное образование, стаж работы, приобретенный в период обучения без квалиф. категории
Инженер-программист II категории
Техническое/ Инженерно-экономическое высшее профессиональное образование, стаж работы на должности инженера программиста III категории не меньше 3 лет
Инженер-программист I категории
Техническое/ Инженерно-экономическое высшее профессиональное образование, стаж работы на должности инженера программиста II категории не меньше 3 лет
Кроме того, программист обязательно должен владеть хотя бы одним иностранным языком, чаще прочего английским, на уровне не ниже среднего; знать свои обязанности в согласии с трудовым законодательством; знать нормы трудового распорядка организации.
Обязанности нового сотрудника
Должностные обязанности определяются потребностями компании и должны в должностной инструкции быть прописаны четко. Для получения более подробной информации рассмотрим следующий пример, описывающий общие обязанности программиста:
Обязанности сотрудников разных должностей в рамках должности программиста могут отличаться. Например, должностные обязанности инженера-программиста будут отличаться от обязанностей техника-программиста. В конечном итоге свод обязанностей сотрудника компании определяется работодателем.
https://youtube.com/watch?v=FtmpnzWlTOM%26pp%3DygVb0J_RgNC-0YTQtdGB0YHQuNC-0L3QsNC70YzQvdGL0Lkg0YHRgtCw0L3QtNCw0YDRgiDQv9GA0L7Qs9GA0LDQvNC80LjRgdGC0LAg0YEgMjAyMyDQs9C-0LTQsA%253D%253D
Востребованность и зарплаты программистов
На сайте поиска работы в данный момент открыто 79 290 вакансий, с каждым месяцем спрос на программистов растет.
Количество вакансий с указанной зарплатой программиста по всей России:
Вакансий с указанным уровнем дохода по Москве:
Вакансий с указанным уровнем дохода по Санкт-Петербургу:
Функциональная карта программиста
Карта включает в себя следующие работы:
Профстандарт для работы с персоналом
При приеме программиста на работу работодатель в своих же интересах должен проверить, насколько соискатель должности соответствует квалификационным требованиям. При составлении штатного расписания учитывается унифицированность требований для всех программистов.
Разработчики профстандарта программист: 1С, МЭСИ. Стандарт рекомендован к использованию работодателями и ответственными лицами за подбор кадров. Это удобный инструмент кадровой политики. Его преимущества заключаются в том, что он позволяет автоматизировать управленческие процессы. Его использование делает должностные инструкции максимально внятными и доступными.
Кроме того, профстандарт — это современный инструмент для быстрого проведения тарификационных работ и присвоения квалификационных категорий сотрудникам. Вся работа с персоналом при использовании профессионального стандарта программиста унифицирована, что обеспечивает максимальную объективность в плане оценок руководством должностных качеств персонала.
Когда встает вопрос о доверии должности программисту, решение руководства должно быть ориентировано на профессиональный стандарт. Именно согласно ему расписываются должностные инструкции и утверждаются функциональные обязанности.
Когда часть иностранных компаний ушла, российский бизнес обратился к отечественным решениям. Например, часть наших клиентов перешли с SAP на 1С. Внедрение тяжелых систем ERP или WMS трудоемкий процесс, поэтому на рынке востребованы специалисты с опытом и популярность 1С-программистом вновь на пике. На момент публикации статьи на известном джоб-сайте опубликовано более 4 тыс. вакансий. Олдскульное направление обрело новые перспективы, сейчас отличное время, чтобы заняться карьерой?
В статье поделимся наблюдениями и рекомендациями о том, как развиваться программисту 1С с опытом уровня Middle. Ведь в какой-то момент на пути 1С программиста возникает «былинный камень» с разными вариантами развития: налево пойдешь — архитектором станешь, направо — тимлидом, а прямо пойдешь — ведущим специалистом. Можно и не выбирать, а остаться на месте, только вам решать, но эта статья о развитии.
Про Профстандарты РосМинТруда