Как я переучился из тестировщика в .NET-разработчика
Дмитрий Мишин из Рязани начинал свой путь в IT на позиции тестировщика, но еще с университета хотел стать разработчиком. Два года он искал баги на работе, а в свободное время самостоятельно изучал .NET.
Сейчас Дмитрий работает Senior .NET-программистом. Он рассказал, как у него получилось перейти из тестирования в разработку.
Как я стал тестировщиком
Я закончил университет по специальности «Проектирование электронно-вычислительной аппаратуры» в 2005 году. На последних курсах понял, что работать по профессии не буду — учеба за пять лет так и не смогла вдохновить. Тогда я и решил развиваться в сторону IT.
Обычно студенты присматриваются к работе, учась на последних курсах — я поступил так же. На пятом курсе пришел в VDI — самую крупную IT-компанию в Рязани, которая год спустя объединилась с EPAM. У них были бесплатные курсы разработчиков, но в тот момент набор туда был закрыт. Зато формировалась группа по тестированию. В 2005 году почти никто не слышал о тестировщиках — в Рязани уж точно. И всё равно я решил записаться в группу. Решил, что начну с тестирования, а потом придумаю, как перейти в разработку.
После курсов я проработал тестировщиком два года, но так и не смог почувствовать себя на своем месте. Думаю, тут многое зависит от внутренней предрасположенности. Есть люди, которые по характеру более усидчивы, внимательны и скрупулезны, чем я, — из таких получаются отличные тестировщики.
Я знал, что в EPAM есть собственные курсы разработчиков. В основном в группы набирали старшекурсников технических вузов. Я пошел к руководству и попросился на обучение — до такой степени мне наскучило то, чем я тогда занимался. Мне предложили два направления на выбор — Java или .NET. Я выбрал второе, потому что уже начинал самостоятельно изучать С# и .NET.
С чего начать изучать .NET
Следующие четыре месяца я учился с утра до вечера. Несмотря на то, что это было больше десяти лет назад, я могу дать новичкам несколько советов из своего опыта, актуальных и сегодня.
- Определитесь с приоритетами
Учеба, если пытаться совместить ее с работой, может затянуться на неопределенное время. Если вы всерьез хотите погрузиться в новую специализацию, нужно либо оставить работу, либо договориться с начальством о длительном отпуске. Я закончил курсы за четыре месяца только потому, что меня освободили от проекта и разрешили все время тратить на учебу.
- Не знаете, с чего начать изучать .NET, — пройдите курсы
Выбирайте те, где помимо теории предусмотрены практические задания и их детальный разбор. Онлайн-курсы по .NET можно найти на Pluralsight, Udemy, Codeschool, Lynda, Microsoft Virtual Academy.
Если вы живете в городе, где есть учебный центр EPAM, можно попасть на бесплатные курсы по .NET. Они, конечно, стали более продвинутыми по сравнению с теми, на которых учился я. Программа меняется каждый год и тесно связана с производством.
- Читайте книги
Советую начать с этих:
Эндрю Троелсен «C# и платформа .NET»
Джеффри Рихтер «CLR via C#»
- Разберитесь с документацией
Внимательно изучите MSDN, C# Language Specification, SQL Server Books Online. Знание документации поможет в дальнейшей работе.
- Прокачивайте английский
Большинство курсов, книг, технической документации написано на английском языке. Если будете владеть им на хорошем уровне, учиться будет проще.
Как развиваться новичку
Сразу после курсов я начал работать джуниор-разработчиком на финансовом проекте. Помню свое первые впечатления — шок от объема production-кода и полное непонимание, как к нему подступиться. В тот момент я осознал, что учиться придется еще долго.
Вот что я советую делать программистам, которые, как и я тогда, только начали работать на проекте:
Продолжайте читать книги
Когда продвинетесь в обучении, обратите внимание на эти:
Jon Skeet «C# in Depth»
Joseph Albahari «C# in a Nutshell»
Роберт Мартин «Чистый код»
Стив Макконнелл «Совершенный код»
Изучайте open-source проекты
На github можно найти огромное количество проектов на C# и .NET, которые можно изучать. Это поможет лучше разбираться в чужом коде и научит ориентироваться в проектах с большим количеством кода. А еще очень полезно присоединиться к такому проекту и вносить свой вклад в свободное время.
Общайтесь с более опытными разработчиками
Не стесняйтесь задавать вопросы и спрашивать совета у старших коллег. Обсуждая какую-либо задачу с опытными программистами, вы каждый раз расширяете свой профессиональный кругозор.
Сначала вам будут давать самые простые задачи — пофиксить баги, изменить UI, реализовать несложную бизнес-логику. Будьте к этому готовы и не пытайтесь сразу просить чего-то более интересного. Чем больше вы будете вовлечены в процесс, тем быстрее вам начнут давать более сложные задачи. Со временем в голове выстроится целостная картина проекта и вы поймете, что всю громаду кода можно свести к элементарным структурам.
Мне понадобился год, чтобы прийти к этому и вырасти до миддл-разработчика. Еще через несколько лет я стал синьором. К тому времени я больше занимался инфраструктурными задачами: доступом к данным, секьюрити, ключевыми алгоритмами бизнес-логики.
Будьте открытыми новому
Путь программиста — это постоянное развитие, и я стараюсь следовать этому принципу. Сегодня, например, большим спросом пользуются full-stack разработчики. На текущем проекте мне приходится работать с HTML, CSS, JavaScript, Typescript, React, Redux.
Навыки тестировщика также помогают в работе. Я более ответственно и внимательно отношусь к своему коду, всегда самостоятельно тестирую то, что написал. Так что те два года в QA-отделе не были потерей времени.
Я уже 13 лет работаю в IT, но так и не испытал озарения в духе «вот теперь я наконец-то стал настоящим программистом». До сих пор есть задачи, которые вызывают шок и непонимание. Над ними нужно думать, пытаться подойти с разных сторон. И этот цикл «от неподъемных задач — к озарению» не заканчивается. Уверен, что каждому разработчику это знакомо.