Профессия: программист

Как стать программистом за два года, почему активность на парах поможет найти работу и зачем постоянно учиться

Профессия: программист
Владислав Песков
Владислав Песков
работает C# программистом

Чем занимаются программисты

Виды программирования

Как научиться программировать

Необходимые навыки

Что даёт университет

Сколько зарабатывают программисты

Как подготовиться к профессии

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

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

На 15-летии компании АО «Монитор-Электрик»

Чем занимаются программисты

Кодеры есть практически в любой компании. Особенно в тех, которые создают свой программный продукт и его продают. Например, Гугл, «Микрософт» или «Адоб».

В других компаниях разработчики занимаются внутренними продуктами: могут создавать программу для оператора в банке или автопилот для самолёта. Обычные пользователи их не видят. С таким программным обеспечением работают люди, которые оказывают услуги.

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

Новые технологии

Сейчас развивается технология .NET Core. С её помощью можно писать и сайты, и приложения для Linux и Mac OS. Такие программы называют мультиплатформенными.

Для мобильных приложений для Android и iOS обычно используют другие языки и технологии, которые официально предлагают Гугл и «Эпл». Сейчас это Java или Kotlin для Android и Swift для iOS.

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

Над чем работаю я

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

Так разработчик может сократить размер кода и ускорить создание сложных приложений. Свои программы я пишу на языке C#. Связка этого языка и фреймворка позволяет писать приложения для Windows.

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

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

Расписание Физического факультета, которое Владислав сделал со своим однокурсником

Виды программирования

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

Низкоуровневое

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

К примеру, в радиофизике нужно проводить обработку сложных сигналов в реальном времени. Для этого используют ПЛИС и специальные алгоритмы, которые уникальны для каждого стандарта связи. Ещё подобные схемы могут использовать в обработке видео в режиме онлайн, например, в потоковом воспроизведении видео со спортивных трансляций.

Высокоуровневое

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

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

Как научиться программировать

Я учился на Физическом факультете ВГУ на направлении радиофизика. Это не профильный факультет для программистов, но у нас преподавали три языка: C++, AssemBler и язык проектирования ПЛИС — Verilog. Так нас учили низкоуровневому программированию.

Эти занятия мне не очень нравились, поэтому учиться кодить я начинал с нуля и полностью сам.

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

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

Выбирайте свежие курсы и книги, а лучше сначала уточните, какие технологии или версии языков сейчас актуальны. Ищите их сами или спрашивайте об этом на форумах. На русском языке советую «Киберфорум». Если уверенно знаете английский, воспользуйтесь Stackoverflow, но у него есть и русская версия.

Практика. После того как вы освоите азы, найдите более серьёзные и углублённые курсы. Я для себя выбрал Geek Brains, тогда они уже были платными. Параллельно я читал более продвинутые книги, но понимать их стало намного проще. Также добавилась практики на работе — мне начали давать небольшие задания.

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

1. Пишите какие-нибудь простые программки, например, крестики-нолики или калькулятор.

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

3. Если ничего не можете найти, попросите совета на тематических форумах.

Необходимые навыки

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

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

Что даёт университет

Хотя я и учился не на профильном факультете, университет всё равно помог мне стать программистом.

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

Это помогло мне в программировании: я не боялся большого объёма новых знаний. Я без проблем находил информацию и хорошо её усваивал.

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

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

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

Сколько зарабатывают программисты

Программистов принято разделять на три уровня: Junior, Middle или Senior.

Junior. Начинающий программист, но его не стоит путать с практикантом. В таком статусе специалист работает первые 1–3 года. Зарплата у «джунов» 20–40 тысяч рублей, в зависимости от фирмы и региона.

Middle. Специалист с опытом 3–6 лет и хорошими знаниями какого-то языка и технологии. Он получает 40–60 тысяч рублей.

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

Team lead. Кроме разделения по уровням опыта в компаниях есть люди, которые руководят группой программистов. Их называют руководителями проектов или team lead. Такие специалисты могут получать 60–100 тысяч рублей, в зависимости от своего уровня программирования, размера команды и сложности проекта.

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

Как подготовиться к профессии программиста

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

👨🏻‍💻 Найдите ментора. Мне в школе очень не хватало опытного человека, который рассказал бы мне о программировании и возможностях этой профессии. Если вам интересно кодить, найдите среди знакомых кодера и попросите рассказать вам все нужные детали.

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

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

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

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

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

👉

Хотите получать новые статьи во «ВКонтакте»? Подпишитесь на рассылку полезных статей