starstarstarstarstarstar
Новости

Игорь Сикачина, C++ Developer

Свой путь в C++ разработчики я начинал несколько неосознанно. Еще в школьные годы, поспрашивав мнение старших о том, на каком языке стоит писать, выбрал язык C++, относительно которого часто отзывались как “можно все, но нужно думать”. Сам процесс изучения языка был достаточно типичный: выбран курс по языку — пройден, выбрана книга — прочитана. Далее следовал уже более значительный этап — решение реальных задач. Я начинал свой путь с решения алгоритмических задач, которые по своей сути строят базис понимания задач в целом и позволяют в значительной мере набраться опыта и понимания процесса основ разработки.

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

  • Найти и применить готовое решение крайне легко;
  • Придумать и создать свое решение значительно сложнее;
  • Независимо от того, насколько хорошо работает что-то готовое, этого все равно будет недостаточно.

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

Я работаю в компании более 2-х лет и за это время успел поучаствовать во множестве различных проектов совершенно разных направленностей и требований. Самым интересным оказался тот факт, что пригодились почти все навыки которые я получал в процессе учебы не связанной с C++: написание программ на C#, Node.JS, создание презентаций и отчетов по результатам в разном виде, навыки работы с Matlab и Wolfram Mathematica, опыт работы с Arduino. Это показывает не столько ценность отдельного навыка, сколько ценность опыта в целом — практически любой опыт может быть применен в разных условиях и может благоприятно способствовать работе. Во время работы в компании пришлось затронуть много различных технологий и библиотек с которыми раньше не имел дела — OpenCV, Caffe, Tensorflow, программирование на Рython, создание GUI на Qt.

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

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

Эта страница использует файлы cookies для аналитики и улучшения предоставляемых услуг. Нажимая “Принять”, вы соглашаетесь с нашей политикой использования cookie-файлов, а также других отслеживающих технологий. Узнайте больше здесь: Privacy Policy