Серия "Как стать программистом: истории и советы менторов"
  1. Как стать программистом: история Ивана Такарликова
  2. Как стать программистом: история Ильи Коновалова
  3. Как стать программистом: история Стаса Мехоношина

Как стать программистом: история Стаса Мехоношина

Stas mekhonoshin

Первые шаги

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

В 11 классе я увлекся Delphi, в течение года писал небольшую программку для обработки текстов, и вот тогда я окончательно понял что мне это интересно.

В университете первые года 3 я больше интересовался системным администрированием, и даже устроился работать в универ техником в Лаборатории сетевых технологий. Это была уникальная возможность неплохо прокачаться в компьютерных сетях, серверном железе и, конечно, в Unix системах. И хоть всё это было далеко от программирования, но дало неплохую базу, которая весьма полезна, особенно когда ты разрабатываешь, к примеру, web-приложения.

Настоящее программирование

Как и большинство студентов, в университете я программировал в основном на Java или .Net. В свободное время я также занимался PHP, и именно оно дало мне первую оплачиваемую работу. Мы делали книжный интернет-магазин на 1С-Битрикс. Платили мне тогда 10к рублей за парт-тайм работу. Можно было работать из дома, когда мне удобно, главное было вовремя и качественно выполнять задачи. Но минусы у такой работы также были: мне не у кого было учиться. Никто не мог проверить мой код, подсказать как лучше реализовать фичу и какую книгу почитать.

Через год такой работы с PHP, мне надоела эта технология. Захотелось чего-то более “взрослого”, как мне тогда казалось, и я начал параллельно изучать Ruby. В то же время я знал на базовом уровне Java SE/EE, и поставил себе цель после окончания 3-го курса найти работу на Java или Ruby.

Так вышло, что тем летом ни одна Java-компания в нашем городе не хотела брать на работу стажера/джуниора, все предлагали подождать до осени. Но мне дико хотелось начать работать во “взрослой” компании и учиться у профессионалов, и я попал в Evrone.com на должность стажера. Вот так все завертелось, и с тех пор я больше никогда не возвращался к Java :)

Сложности

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

Менторство

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

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

Вопросы

Какой совет дашь новичкам, который редко встречается или считается необычным, спорным?

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

Как ты сохраняешь свои навыки актуальными? Как постоянно растёшь и становишься лучше как разработчик?

Я всегда работаю над своими pet-projects. Стараюсь пробовать на них все то, что не удается использовать на основной работе. Некоторые проекты вырастают во что-то реальное, некоторые не выходят за пределы ноутбука, но в любом случае они дают опыт и новые знания.

Топ 3 книжек для новичка

Practical OO Design

Clean Code

Code Complete

Топ 3 сайта/рассылки/источника-инфы на которые должен быть подписан каждый разработчик

Ruby Weekly

Ror2ru

github.com

Фото рабочего стола

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


Хочешь быть таким же крутым, как Стаc Мехоношин?

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

Назначить ментором Stanislav mekhonoshin