Новый Омск
02 ноября 2023 17.49
Как стать успешным программистом: 5 советов от айтишника
Профессия IT-специалиста становится все более популярной. Ведущий разработчик омской компании Александр Моршинин на своем примере рассказывает о том, как преуспеть в популярной профессии.
1. Тщательно выбирать факультет, вуз и хорошо учиться
Александр хоть и учился в гимназии, но в топ лучших омских школ она не входит. Так как ученик шел на золотую медаль, то особых проблем с оценками не было. Учеба давалась легко, поэтому парню было скучновато.
Александр собирался поступать на физфак классического университета, так как больше всего ему нравился этот предмет. Но мама предложила выбрать математику. Она прочитала в СМИ, что после матфака проще найти работу программиста. Сын послушал маму, но подчеркивает, что сейчас среди его коллег немало выпускников физического фака и химического факультетов.
- Университет - это другой мир. Поначалу я не мог смириться с тем, что к учебе надо относиться серьезнее, чем раньше, - так наш эксперт вспоминает первые годы в вузе. - На первый курс поступило человек 90, из них дипломы получила треть. Не тянешь программу - до свидания!
Причем Моршинин был на потоке одним из самых сильных студентов. Но позволял себе пропускать некоторые занятия, из-за чего порой получал тройки. Преподаватели видели, что перед ними способный студент, который хорошо освоил программу, но снижали оценку в воспитательных целях. И это помогло. Если бакалавриат парень окончил со средним баллом 4,2, то магистратуру уже с железобетонным 5.0.
- Если вы мечтаете о карьере в ведущих мировых IT-компаниях, то знайте: чтобы попасть за границу, вам как минимум нужно окончить магистратуру, скорее всего, бакалавриата будет недостаточно. Знаю это, так как многие мои одногруппники уехали работать в другие страны, - советует омич.
Минусом Моршинин считает то, что в университете студентов толком не учили так называемым soft-skills. Гибкие навыки, например, как общаться с коллегами, заказчиком, правила тайм-менеджмента и прочие, он приобрел уже на работе. Наш эксперт считает, что таким вещам стоит обучать в вузе.
- Программирование, как и любая другая сфера, - она о людях, о взаимодействии. Если ты не умеешь хорошо коммуницировать, то адаптироваться, социализироваться и найти свое место в профессии, да и в жизни будет сложно, даже если ты крутой разработчик. Но раз этому пока не слишком хорошо учат студентов, то приобретайте эти навыки на стажировках и работе, - говорит разработчик.
2. Приходить на стажировки, чтобы понять, где интереснее работать. Не отчаиваться из-за неудачного опыта
Первая IT-компания, куда устроился Александр во время учебы в вузе, занималась веб-разработкой. Студенту хватило всего пары недель для того, чтобы понять: это направление точно не его. Пришлось уходить с тяжелыми мыслями. Летом студент думал, что же делать дальше. В итоге решил, что стоит серьезнее относиться к учебе и пробовать себя в других сегментах айти. За счет хорошей учебы удалось получить стипендию от компании Huawei, куда Моршинина приглашали работать, но он отказался, так как в тот момент не хотел никуда переезжать.
И тут подвернулся случай. Одногруппник Александра уже год работал в компании “Промобит”. Фирма росла, ей требовались сотрудники. Магистранта приняли разработчиком C++. Александра окружали такие же джуны (начинающие специалисты). Несмотря на отсутствие опыта им предстояло создать серьезный продукт.
- Получилась настоящая айтишная школа жизни, я быстро освоил Linux, особенности Hardware и Software разработки, - вспоминает Александр тот период жизни. - Готовил качественные решения: как хранить данные, передавать пользователям, поддерживать их безопасность и консистентность.
Также на этой работе молодой специалист освоил Python, поработал с админкой. В какой-то момент он остался единственным разработчиком, который писал код. Поэтому Александр перегорел и начал искать другую работу.
3. Заниматься наукой, если получается. Эти знания наверняка пригодятся в работе
Но с момента трудоустройства в “Промобит” Моршинин не забывал об учебе. В 2021 году он успешно защитил в Новосибирске кандидатскую диссертацию. Научные интересы молодого ученого - машинное обучение и кластеризация данных.
Сейчас он не только ведущий разработчик частной IT-компании, но и сотрудник Института математики. Правда, на полставки, так как большую часть времени занимает основная работа. Также Александр входит в исследовательскую группу Института, получившей президентский грант для молодых ученых, где отвечает за теорию кластеризации. Мы попросили Александра максимально понятно объяснить, что это такое, какие задачи решает эта сфера математики. Вот что он нам рассказал:
- Допустим, есть библиотека с огромным количеством книг, научных статей. Можно их разбить на группы по определенному признаку (например, создав связи по авторству) и хранить документы в разных геораспределенных базах данных. Это снижает риск “падения” базы данных. Если с каким-то фрагментом возникнут проблемы, то остальные кластеры будут доступны.
На эту тему работает много исследовательских групп в мире. Проблема в том, что подобные задачи в математике труднорешаемые: когда за приемлемое время невозможно найти оптимальную схему в так называемой задаче коммивояжера (курьера), которому нужно объехать 50 пунктов. Из-за возможных перестановок факториал при решении растет со страшной скоростью, которую не обработает современный компьютер. Если представить, что Земля - это компьютер, а каждая молекула - микропроцессор, то он не справится с решением даже за все время, что существует Вселенная.
Но ведь в реальности задачу с курьером бизнесу нужно решать. Это делается с помощью построения алгоритмов и применения кластеров. У меня получилось разработать шесть алгоритмов, когда решение как минимум в два раза не хуже оптимального (как я сказал, которое реально невозможно вычислить). Более того, в ряде случаев решения с помощью этих алгоритмов могут отличаться всего лишь на 5% от идеала.
Научная деятельность помогает омичу при работе в найме, и наоборот. Плюс появились навыки лектора. Александр периодически читает коллегам лекции по искусственному интеллекту и машинному обучению. Для понимания: их используют для создания таких популярных продуктов как ChatGPT и Midjourney. Без математики данных программ просто не было бы.
4. Осваивать навыки, которые помогут двигаться по карьерной лестнице.
Но как наш герой устроился на новую работу, когда его перестала устраивать прежняя? Его схантили, но не сразу. Позвали на собеседование в компанию, где у Александра работал друг. Правда, организации тогда не требовались специалисты по C++, но резюме Моршинина оставили в базу, где через два месяца его открыл HR, который искал сотрудника на Java-разработку. Фирма была готова взять на эту должность человека, который уже демонстрировал способность к быстрому самообучению. Плюс здесь поддержали желание продолжить занятия наукой. Новый руководитель Александра кого-то учился в том же Институте математики.
На новой работе во многом было проще, так как разработчик теперь стал не сотрудником стартапа, а членом сложившегося коллектива. Он начал работать над готовым продуктом, который уже приносил компании деньги. И стал заниматься его улучшением. И за это платили значительно больше, чем на предыдущем месте. Год молодой человек занимался системой принятия решений, даже вводил новые разработки.
5. Проявлять инициативу
Однажды Александр узнал, что компании нужны специалисты по машинному обучению. Эйчары не могли найти их на рынке. Сотрудник проявил инициативу и предложил свою кандидатуру.
Был создан отдел машинного обучения из трех человек. Новые задачи решать было легче за счет того, что они пересекались с теорией кластеризации, которую Моршинин изучает в Институте. Также разработчик начал осваивать нейросети. Два года компания позволяла трем сотрудникам расти как специалистам. А затем это дало результат.
- Один из руководителей компании предложил создать новую систему принятия решений: в старой был плохой код с тяжелой логикой. Задачу выполняли с использованием машинного обучения. Меня сделали руководителем команды из пяти человек, и все знания, что я копил пару лет, мы реализовали в продукте. Проект занял полтора года. Благодаря ему компании удалось серьезно увеличить прибыль, - радуется успеху программист.
Но за это время Александр понял, что ему тяжело занимать руководящую должность. Он попросил сделать его ведущим разработчиком, и сейчас получает большое удовольствие от работы на этой должности.
Самое актуальное в рубрике: IT и Телеком
Больше интересного в жанре: Новости
Просмотры: 1814
Самое читаемое