- Кто такой программист
- Должностные обязанности
- Какими личностными качествами должен обладать программист?
- Преимущества и недостатки профессии
- Направления профессии и карьерный рост
- Какие предметы сдавать на программиста
- Обучение в вузе
- Онлайн-курсы
- Самообучение
- Составление резюме и портфолио
- Пример
- Работа программистом
- Кому подходит должность
- Работа в офисе
- Удаленная работа
- Фриланс
- Постоянная удаленная работа
- Зарплата программиста
- Советы новичкам
Кто такой программист
Специалисты по разработке, корректировке программ и алгоритмов для вычислительно-операционной техники, а также специалисты по написанию для них кодов методом математического моделирования, именуются программистами.
Под программами понимаются:
- операционная система компьютера, например, Windows;
- компьютерная игра;
- мобильное или веб-приложение;
- алгоритмы работы технических устройств (как компьютера, так и микроволновой печи).
Для работы применяются различные языки программирования. Они могут меняться в зависимости от вида программы, поэтому специалист должен знать как минимум пару языков. Наиболее востребованные – это Python, Java, C++, PHP, C#, Perl.
Должностные обязанности
Профессия программиста является творческой, несмотря на все мифы о том, что создавать программный код – это скучно. Область деятельности специалистов весьма обширна: от компаний по созданию компьютерных игр и промышленных организаций, до ракетостроения и научных институтов.
И вот в чем заключается работа программиста:
- Составление алгоритмов для решения научно-технических задач.
- Анализирование уже готовых программ, созданных чужими предприятиями, и определение их эффективности и возможности использования для удовлетворения требований работодателя.
- Разработка различного рода программ на основе алгоритмов и математических моделей, применяемых для решения технических задач.
- Унификация и типизация вычислительных процессов.
- Разработка форм документов, подлежащих машинной обработке.
- Создание сервисов для автоматического перевода на языки программирования.
- Разработка макетов и схем ввода, выдачи, обработки и хранения информации.
- Тестирование и исправление ошибок в разработанных программах.
- Создание инструкций к программам.
- Разработка и внедрение методов автоматического решения для типовых, стандартных задач.
- Участие в проектных работах по расширению области применения вычислительной техники.
- Разработка и усовершенствование продуктов программирования.
- Запуск программного обеспечения.
- Разъяснение простыми словами условий и инструкций по работе с программами обычным пользователям.
- Создание и внедрение различных системных возможностей для автоматической проверки программ.
Какими личностными качествами должен обладать программист?
Работа программиста относится к высокоинтеллектуальной деятельности, которая требует от специалиста наличия математических способностей и логического мышления. Кроме того, хороший программист обязательно обладает такими личностными качествами, как:
- способность к самообучению;
- терпеливость;
- выдержка;
- коммуникабельность;
- инициативность;
- самостоятельность;
- креативность;
- ответственность;
- упорство.
Необходимо также учитывать, что официальный язык программистов – технический английский. Потому знание английского языка также является одним из важнейших требований, предъявляемых к специалисту. Мало того, без знания английского языка программисту будет очень сложно выполнять свои профессиональные обязанности.
Преимущества и недостатки профессии
У этой профессии можно выделить следующие положительные стороны:
- Востребованность и большое количество вакансий от работодателей.
- Отсутствие строгого графика. Есть возможность работать как в офисе, так и удаленно.
- Высокий доход.
- Разноплановые и интересные задачи, простор для творчества и креатива.
- Не требуется диплом о высшем образовании, если есть знания и способности к программированию.
Имеются и минусы:
- Постоянные стрессовые ситуации, авралы.
- Сидячий образ жизни.
- Нередко надо объяснять сложные термины простыми словами.
- Частое устаревание технологий и знаний в связи со стремительным развитием IT-сферы.
Направления профессии и карьерный рост
Грамотные и постоянно развивающиеся программисты всегда в цене. Они востребованы и имеют все шансы найти работу, соответствующую всем запросам.
Бывает, что организации берут к себе на работу перспективных студентов без опыта. Но чаще, конечно, работодатели ждут опытных специалистов.
У программистов есть возможность работать как на фрилансе, так и на какую-либо компанию, например:
- научно-исследовательское учреждение,
- веб-студию,
- предприятие-разработчик,
- IT-компанию,
- любую организацию, имеющую IT-отдел, отдел по ПО или digital-маркетинга.
Новички в компании начинают с самой низшей должности. И пока не наработают опыт и не скопят знания, они – junior. Если будут быстро обучаться, проявлять инициативу и хорошо работать, то через года 2-3 смогут перерасти в middle. А уже через лет 5 их ждет последняя ступень программиста – senior.
Четкой границы между ними нет. И нельзя точно сказать, сколько может понадобиться времени, чтобы повысить свой профессиональный статус. Можно лишь назвать примерную разницу между рангами.
- Junior
Владеет минимум одним языком программирования, знает основы IT-сферы, выполняет типовые задачи. Если у него возникают трудности в работе, то эту проблему сможет быстро решить middle.
Junior не хватает опыта. Например, он не всегда обращает внимание на детали и мелочи, по незнанию загружает программу и замедляет ее, пишет нечитаемый код, лишь бы быстрее сдать работу.
- Middle
Более осторожен, не допускает большинства ошибок junior, внимательнее и аккуратнее пишет код, который старается делать простым и качественным.
Решает более сложные задачи, требующие длительной работы, свободно и на продвинутом уровне владеет как минимум 2 языками программирования и различными технологиями. Middle способен обосновать и доказать правоту своих решений.
- Senior
Это уже эксперт в своей деятельности. Он опытен, способен анализировать и предвидеть свои и чужие ошибки, эффективность будущей программы или сложность поставленной задачи.
Senior уверен, что справится с задачей за конкретное время, может быстро найти ошибку и исправить ее. Этому специалисту доверяет команда и знает, что на него можно положиться.
Кроме улучшения своих навыков, программист может уйти в смежные области. Например, заняться дизайном или маркетингом и работать в этом направлении. Опытным программистам доступны такие должности, как архитектор программного обеспечения, менеджер IT-проектов, IT-директор предприятия и т. д.
Разделение программистов на группы есть не только в плане их профессионализма и опыта, но и в зависимости от направления деятельности.
- По специализации
Работники делятся на прикладных, системных и веб-программистов.
Прикладные ответственны за разработку, написание и обслуживание программ и приложений для конкретной задачи. Продуктами их деятельности могут быть игры, офисные и бухгалтерские программы, редакторы‚ мессенджеры, ПО для систем аудио- и видеонаблюдения или систем пожаротушения и т. п. Еще они занимаются переработкой существующих программ под требования и потребности той организации, на которую работают.
Системные программисты – это разработчики операционных систем, интерфейсов различных баз данных, сервисов. Они работают с сетями, обеспечивают функционирование и работу созданных ими систем. Эта специализация программистов считается самой малочисленной.
Веб-программисты создают и продвигают интернет-платформы, разрабатывают контент и пишут программную составляющую для сайтов, настраивают динамические веб-страницы и интерфейсы для работы с базами данных.
- По языкам программирования
При поиске работы часто встречается такое разделение. Работодатели выделяют те языки, которыми предлагают пользоваться специалистам. Например, PHP-программист, Java-программист, программист C++ и т. д.
- По видам рабочих задач
Могут быть программистами баз данных, frontend-разработчиками, backend-разработчиками, fullstack-разработчиками, техниками-программистами, системными инженерами и т. д. Ежегодно появляются все новые должности, например, набирает силу профессия программиста умного дома.
Можно сделать вывод, что программист – достаточно обширный термин. А областей применения этого специалиста очень много.
Какие предметы сдавать на программиста
На программиста можно учиться после 9 или 11 класса. Для получения образования после 9 класса сдают математику и русский язык.
Для обучения на программиста в вузе сдают экзамены по четырем направлениям:
- русский язык;
- математика;
- физика;
- информатика.
Проходной балл ЕГЭ во всех вузах разный, более точную информацию можно узнать исходя из данных прошлого года.
Обучение в вузе
Самое простой вариант для освоения профессии – поступить в технический вуз после школы.
Примеры направлений:
- «Разработка компьютерных систем».
- «Компьютерная безопасность».
- «Прикладная математика и информатика» и т. д.
Обучение в вузе на программиста удобно для быстрого старта карьеры. Часто вузы помогают со стажировкой и трудоустройством в крупных IT-компаниях. Есть варианты целевого обучения, стипендиальные программы и гранты для будущих специалистов. Минус такого варианта — высокий конкурс (до 1000 человек на место), особенно в крупных и престижных вузах.
Лучшие вузы для программистов в России:
Москва:
- МГУ им. М.В. Ломоносова.
- МФТИ.
- НИУ «ВШЭ».
- МГТУ им. Н. Э. Баумана.
Санкт-Петербург:
- СПбГУ.
Пермь:
- ПГНИУ.
Выпускники этих вузов чаще устраиваются на самые высокооплачиваемые должности.
Онлайн-курсы
Альтернативный вариант изучить программирование с нуля – курсы программистов. Их часто организуют крупные IT-компании, предлагая лучшим ученикам дальнейшую стажировку. Направления касаются освоения популярных языков программирования.
Главный минус большинства курсов — отсутствие системного подхода. Из описания профессии программист следует, что эти люди занимаются написанием кода, но изучить все нюансы работы можно только при ежедневной практике. Эти навыки можно получить самостоятельно — это более тяжелый путь, но он приносит больше пользы для будущего специалиста.
Самообучение
Обучение в вузе необязательно для программиста — многие специалисты изучают эту профессию самостоятельно.
Для наработки опыта они участвуют в проектах безвозмездно или за низкую плату, самостоятельно ищут заказы и стажировку, долго практикуются, нарабатывают портфолио и доказывают заказчикам свою профпригодность. Опытные специалисты советуют заранее определиться с языком программирования, который сейчас востребован на рынке – так больше шансов трудоустроиться.
Составление резюме и портфолио
Можно начать работать на бирже, чтобы было что написать про свой опыт в резюме и добавить работы в портфолио. Для первого реального опыта подойдут и небольшие проекты. Главное – начать.
Лучше выбирать иностранные биржи, особенно если есть знания английского языка. Там и заказов больше, и доход выше. Подойдут, например, Upwork и YouTeam. Если говорить о русскоязычных биржах, то популярны Kwork, FL.ru и Freelance.ru.
Заполнить портфолио могут помочь и собственные проекты, если есть идеи, возможность и желание.
А дальше можно уже перейти на специализированные сайты с вакансиями только для программистов, например, We Work Remotely и Хабр Карьера. А можно поискать работу на таких ресурсах, как hh.ru или SuperJob.ru.
У специалиста должно быть резюме, когда он откликается на вакансию. В нем надо указать правдивые факты о проектах, в которых он участвовал, и свои достижения на этой работе. Не помешает рассказать и о собственных проектах, если они есть. Это показывает профессиональный уровень и любовь к IT-сфере.
Надо указать свои знания и навыки, но не на несколько страниц, а коротко, четко и лаконично. Нужно писать саму суть, без воды.
В портфолио лучше указывать несколько самых лучших проектов, которыми специалист если не гордится, то хотя бы доволен ими.
Пример
Денис ПоповТелефон: +7 (999) 123-45-67Почта: denis@example.com
Город: Москва
Дата рождения: 21 сентября 1986
Желаемая зарплата: от 100 000 рублей
Занятость: Полная занятость
График работы: Полный день
Цель: Программист
Ключевые навыки:
- Знание C#, Java и jаvascript, PHP, HTML, CSS, jQuery, Transact-SQL, Oracle PI/SQL.
- Навыки разработки и сопровождения приложений под СУБД Oracle.
- Навыки интеграции ПО с MS Project.
Опыт работы
Март 2009 — Настоящее время
Программист — ООО «Интеллектуальные технологии»
Разработка программного обеспечения для малого и среднего бизнеса
Должностные обязанности:
- Разработка системы автоматизации учёта и отчётности с интеграцией с Microsoft Project.
- Создание и отладка приложений клиент-сервер с использованием C#, ASP.NET.
- Разработка веб-сервисов для корпоративных клиентов.
Профессиональные достижения:
- Разработал сокет (C#) для управления клиентской частью приложения типа клиент-сервер.
- Написал алгоритм внедрения MES для деревообрабатывающего предприятия.
Образование
Сентябрь 2004 — Июнь 2009
МГТУ им. Н. Э. Баумана
Факультет: Информатики и систем управления
Специальность: Информационные системы и технологии
Форма обучения: Очная
Курсы и тренинги
Декабрь 2019 — Январь 2020
Автоматизированное тестирование веб-приложений с применением Selenium
Место проведения: Учебный центр «Специалист» при МГТУ им. Н.Э. Баумана
Дополнительная информация
Водительские права:
Категория B
Иностранные языки:
Английский (Письменный)
О себе:
Программист с опытом разработки более 11 лет.
Шаблон резюме
Работа программистом
Когда получены начальные знания, необходимые для программирования, встает вопрос – где их применять. Работу в IT я бы поделил на 2 большие части – работа в офисе и удаленная работа. На эту тему есть старая, но не теряющая актуальности статья про плюсы и минусы разных вариантов.
Кому подходит должность
Как я писала ранее, возрастных рамок для освоения профессии нет. Не существует и ограничений касательно пола специалиста, хотя и считается, что эта специальность больше подходит мужчинам.
Главный критерий – это наличие интереса к программированию и информационным технологиям.
Кроме этого, должность подойдет человеку, если он обладает следующими личностными характеристиками:
- стрессоустойчивость,
- усидчивость,
- внимательность,
- коммуникабельность,
- ответственность,
- самостоятельность,
- терпеливость,
- инициативность,
- креативность.
Важно понимать, что программисты – это не скромные парни в очках, спрятавшиеся за компьютером, какими их рисует кино, а специалисты, способные генерировать идеи, выдвигать и воплощать их, умеющие взаимодействовать с коллективом и простыми словами объяснять обычному человеку, что такое программирование.
Работа в офисе
“Делать правильно” – критически важно на начальных этапах погружения в профессию, т.к. переучиваться намного тяжелее чем учиться. Именно по-этому работа в сильной команде в офисе – лучший выбор для начала карьеры.
Сам по себе офис, если вы единственный разработчик на проекте много не даст. Важно присутствие более опытных коллег. Code review, неформальное общение за чашкой кофе – все это экспоненциально усиливает скорость получения знаний. Тут важна не “слепая вера” в безошибочность старшего товарища, а в общей атмосфере разных точек зрения в комнате. Критическое мышление – ваш помощник, чтобы формировать свое видение решения проблем.
Удаленная работа
Стоит начать с того, что она подходит не всем. Не из-за уровня знаний в программировании, а потому что она требует большей самоорганизации, самоконтроля и ответственности. Я знаю крутых разработчиков, которым, на мой взгляд, было бы не комфортно работать удаленно.
Коммуникация – вторая большая проблема в удаленной работе. Необходимо поддерживать живое нерабочее общение, которое происходит само собой в офисе. Также – эффективное взаимодействие с вашей командной требует работы от всех. В офисе это на порядок проще. К тому же в офисе изначально все настроено для продуктивной деятельности, а о рабочем месте при удаленке надо думать самостоятельно.
И главное, что важно помнить – при выходе на рынок удаленной работы вы начинаете соревноваться с разработчиками со всех регионов. А при выходе на международную арену – со всем миром. Требования и к уровню программирования и к уровню Soft скиллов выходят на новый уровень.
Кстати и сама удаленная работа делится на 2 класса: фриланс от проекта к проекту и длительный контракт, по сути найм, но при нахождении вне офиса.
Фриланс
К фрилансу я отношу небольшие проекты, которые оплачиваются по факту или же на почасовой ставке. Зачастую ставка на фрилансе в пересчете на час работы может быть выше, чем работа по ТК в офисе или удаленно. Это происходит, потому что поиск проекта, вся работа с документами по сделке и т.д. не учитываются в этом времени. Грубо говоря – получение и согласование заказа на 20 часов заняло у вас еще 5 часов. При ставке 1 000 рублей в час (164т.р. при пересчете в рабочие часы в офисе) реальная ставка 20 * 1000 / 25 = 800 рублей. Ведь вы 5 часов потратили условно бесплатно.
Работа по ТК подразумевает отпуска, праздники и т.д. Фриланс прост как валенок. Работаешь – получаешь деньги, не работаешь – нет. Зато вы сами регулируете свою загрузку. Правда не сразу. Стартовать на фрилансе при сильной конкуренции – сложно. Для наработки портфолио придется тратить больше времени на поиск проекта чем на его реализацию.
На фрилансе проекты ищут либо уже по наработанной базе клиентов, либо на площадках:
- Weblancer.net – русскоязычный ресурс поиска работы на фрилансе.
- Fl.ru – наверное крупнейший русскоязычный сайт, посвященный поиску проектов.
- Freelancer.com – зарубежный сайт поиска работы на фрилансе.
- Upwork – один из самых известных сайтов по фрилансу на мировой арене.
- Toptal при почасовой работе – площадка, на которую сложно попасть, но она стоит того.
Постоянная удаленная работа
Разница между фрилансом и удаленной работы для меня в том, что она не подразумевает частую смену проектов. Длительная работа над проектом это большее погружение в разрабатываемый сервис, соучастие и вовлеченность.
Честно говоря, фрилансом, как описал выше я практически не занимался. Первую удаленную работу я нашел через платформу Toptal будучи еще в Яндексе. Это был проект на ~10 месяцев с зарубежным заказчиком на полный удаленный рабочий день.
С момента начала своей удаленной работы я сменил порядка 5 проектов на Toptal. В перерывах между ними мониторил прямые вакансии от зарубежных компаний. Почему зарубежных? В связи с курсом, с 2014 работать с валютой стало намного выгоднее.
Зарплата программиста
Хочу рассказать о зарплатах программистов. Как собственно обстоят дела с зарплатой, куда лучше идти работать, а куда — нет. Если вы не программист и попытаетесь самостоятельно разобраться в этой теме, то можете получить набор очень противоречивых данных. Все дело в том, что главным фактором, влияющим на зарплату программиста, является не его квалификация, а место работы. Иногда, при одинаковой квалификации, разница между хорошим и плохим местом может достигать 2-10 раз(!) В каждый конкретный момент времени ваша квалификация постоянна. Вы не можете за месяц стать опытнее в два раза и получать в два раза больше. А вот сменить за месяц работу и получать в два раза больше — очень даже можете. Однажды в течении двух месяцев моя зарплата выросла в три раза(!) — незабываемое впечатление. Давайте же выясним, где лучше всего работать. Вот три фактора, которые очень сильно влияют на уровень зарплат в компаниях:
- Является ли разработка ПО основным бизнесом компании.
- Ориентирована ли компания на международный рынок или на внутренний.
- Собственником фирмы является западная компания или отечественная.
Обратите внимание, что город, в котором вы живете не играет решающей роли. Т.е. если вы получаете в 10 раз меньше, живя в Дрездене, чем ваш знакомый в Нью-Йорке, значит, в дело вступили перечисленные выше факторы.
Советы новичкам
Создайте план обучения, разбив его на этапы, рядом с которым пропишите, что именно надо выучить и с помощью каких средств. Переход от одного этапа к другому должен быть по мере увеличения сложности.
Не растягивайте обучение на полдесятка лет. Информационные технологии имеют способность быстро развиваться. И пока вы тщательно изучаете какой-то инструмент программирования, он уже может быть заменен на что-то более современное.
При обучении используйте все материалы, сервисы и знания других людей, которые будут доступны. Не пренебрегайте ничем.
При возможности общайтесь с практикующим программистом, у которого есть опыт работы. Если он согласится курировать над новичком, направлять его, указывать на ошибки и давать задания для развития – это будет отличным дополнением ко всему обучению. Особенно если начинающий специалист обучается самостоятельно.
Узнайте больше об архитектуре компьютера.
Учите английский. Большинство обучающих программ представлены на этом языке. Есть и русскоязычные, но их значительно меньше. Без иностранного языка сложно что-то найти в англоязычном интернете. А уже непосредственно при работе программисты сталкиваются с английским во время чтения и написания кодов.
- https://iklife.ru/internet-professii/programmist/kto-takoj-programmist-i-chto-on-delaet.html
- https://fulledu.ru/articles/588_programmist.html
- https://kedu.ru/press-center/profgid/programmist/
- https://iklife.ru/internet-professii/programmist/s-chego-nachat-obuchenie-programmirovaniyu.html
- https://Resumeshkin.com/ru/examples/69-obrazec-rezjume-programmista-na-rabotu.html
- https://dimlix.com/programming-for-beginners/
- https://javarush.ru/groups/posts/2081-putjh-programmista