Поговорим немного про «обучение с учителем» (machine learning тут не при чем). Один успешный парень делится мыслями, почему важно найти хорошего наставника и как он может изменить ваш подход к образованию. Этот парень — сейчас наш сотрудник, один из преподов Кодемики.
Получается своеобразная ретроспектива с благодарностями — про детство, вуз и работу.
Рассказывает Михаил Крючков — преподаватель, аналитик и IT-архитектор Кодемики.
Изучать программирование начал еще в школе, параллельно занимаясь различными смежными технологиями. Интересовался как паскалем, делфи, C# и ассемблером, так и администрированием операционных систем и компьютерными вирусами.
Этим летом я защитил магистерскую диссертацию по направлению ИВТ в одном из ведущих технических вузов в РФ. На этом я решил закончить часть с формальным образованием и на полном ходу включиться в профессиональную деятельность.
В такие переломные моменты невольно вспоминаешь весь тот путь, который проделал ранее, чтобы оказаться там, где находишься сейчас.
Мой путь начался ещё в школе
Я стал интересоваться компьютерами и всем смежным. Но не игрушками, а тем, как это всё устроено, как работает.
В старших классах я начал изучать программирование и сопутствующие области. Интересно было всё — компьютерное железо, программирование на различных языках, операционные системы, компьютерные вирусы и т.д.
В любом обучении половина успеха заложена учителем
Сильный наставник рядом — необходимое (хоть и не достаточное) условие для достижения существенных успехов. Такими наставниками в свое время для меня стали Роман Грушенков и Леонид Андриевский, сейчас вы можете видеть их в числе преподавателей Кодемики.
Помимо получения технических знаний и навыков я учился решать прикладные задачи, мыслить «как настоящий программист» и всегда достигать необходимого результата.
Все преимущества фундаментального подхода в обучении (пусть даже дополнительного к среднему образованию) я по-настоящему оценил уже в вузе. С его выбором мне также помогли наставники — я не боялся поставить амбициозную цель и двигался к ней на всех порах.
На протяжении всех шести лет я был на шаг впереди потока по профильным дисциплинам, что позволяло уделять время более интересным или важным предметам. Причем здесь фундаментальность? Если знания подаются в общем виде и подкрепляются конкретными прикладными примерами, возникает следующая синергия: опыт не даёт забыть общее, а общее позволяет решать любые другие частные случаи за пределами опыта. Знания, таким образом, становятся универсальным инструментом.
Толчок в карьере не заставил себя ждать
Леонид Владимирович научил меня языку языку C#, который я использую в работе по сей день. Работу же выбираю не исходя из финансов или удалённости от дома, а лишь из собственного интереса к делу.
Отмечу, что само по себе программирование в отрасли ничего не даёт. Программист (кодер) лишь заставляет компьютер делать то, что нужно. В реальной работе всегда необходимо не просто писать код, а решать прикладные задачи. Это инженерный подход, аналитическое мышление, способность к гибкости ума и постоянным поискам новых решений исходя из непрерывно меняющихся условий.
Так вот, смотря теперь на весь этот путь, невозможно не испытывать благодарности к моим учителям за то, что я смог почерпнуть с их помощью.
Что делаю сейчас
Работаю full-stack разработчиком в компании Cognitive Technologies и Леонид является моим непосредственным руководителем — тим-лидом и, конечно же, наставником.
Именно он старается дать мне те задачи, решать которые я ещё не умею, но в состоянии разобраться самостоятельно или с его помощью. По крайней мере, вопросы из серии «Как сделать лучше: так или вот так?» всегда приветствуются — в отличие от вопросов вроде «Покажите, пожалуйста, решение и сделайте заодно мою работу за меня».
Только придя в команду, я получал маленькие и простые задачи, связанные, в основном, с исправлением ошибок или расширением уже написанной функциональности. Постепенно сложность задач росла и теперь я решаю проблемы уровня целого модуля или инфраструктуры — тех частей большого решения, которыми в последствии пользуются другие разработчики в команде при решении своих частных задач.
На таких мета-задачах и требуется весь опыт и знания в области архитектуры ПО, шаблонов программирования и оптимизации работы ПО. От моих решений зависит удобство и эффективность работы других участников команды.