Дорожная карта по изучению C++

ARTICLES 05.12.21 05.12.21 341
Бесплатные курсына главную сниппетов

Представляем вашему вниманию дорожную карту для изучения языка программирования C++. Идея дорожной карты возникла после проведения десятков собеседований молодых разработчиков, которые претендовали на роль Junior Developer C++, но обладали довольно слабой подготовкой. Часто можно наблюдать, что у молодых разработчиков формируется некорректное представление о языке по нижеперечисленным причинам:

TL;DR

Мы создали роадмапу в которой собрали полезную информацию для тех, кто начинает знакомиться с языком, либо пытается понять, каких навыков ему не хватает для более уверенного владения.

Вот ссылка.

Если вам интересна история создания, то читайте данную статью дальше.

Предыстория

Насмотревшись на страдания юных падаванов, возникли навязчивые вопросы: А почему так происходит? Каковы причины такой слабой подготовки у огромного количества джунов? Задав себе эти вопросы, я решил, что следует провести небольшое исследование: какие материалы представлены и по-прежнему актуальны для начинающих?

Я изучил текущее состояние и количество доступных материалов как по C++, так и по другим языкам (Java, C#, JavaScript и т.д.). Результаты поиска для других языков привели к следующим наблюдениям:

По всем вышеперечисленным пунктам у C++ оказались сплошные провалы:

Создание видеокурса требует колоссальных ресурсов, к тому же на СНГ рынке представлены пара достойных онлайн курсов/видеокурсов, потому в эту сторону было решено не идти. А вот собрать литературу, отрисовать дорожную карту и сопроводить материалы различными комментариями выглядели вполне посильными задачами. На том и было решено остановиться.

Для чего это всё?

Можно бесконечно долго спорить, что язык C++ — это умирающий язык, что его победит %yet_another_brilliant_language%. Для этих обсуждений мы приглашаем вас в комментарии. Тем временем рынок и желание кандидатов говорят совершенно об обратном: специалисты, владеющие языком, по-прежнему требуются на рынке, а также ощущается их острая нехватка не только в России, но и на международном рынке. Данной дорожной картой мы хотим попытаться хоть немного заполнить имеющуюся брешь. Опять же, каким-то образом надо переписывать миллионы строк кода с C++ на %yet_another_brilliant_language% ;)

Первые шаги

Преисполнившись отсутствием внятной дорожной карты, я принялся за работу. Основной целью карты стала попытка систематизировать актуальную информацию вокруг C++ и экосистемы языка, а также предоставить актуальные источники информации, по которым можно построить свое обучение.

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

По какой-то счастливой случайности на работе зашел разговор на данную тему с коллегой. Оказалось, что у него в голове вертятся похожие идеи. В особенности его интересовало создать дорожную/ментальную карту, чтобы систематизировать свои знания по языку. Поведав коллеге о своих планах и предложив присоединиться к проекту, он без колебаний согласился поучаствовать.

Основная стадия

В конце апреля началась работа над дорожной картой. Для более продуктивной работы мы устраивали регулярные созвоны, чтобы обсуждать и отрисовывать дорожную карту шаг за шагом. Через пару месяцев удалось получить черновую версию.

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

Собрав порцию фидбека, мы двинулись дальше. Более-менее определились с базовыми разделами. Началось погружение в детали и более тщательная проработка. В основе философии дорожной карты лежит идея представить усредненный набор компетенций и знаний C++ разработчика, которые повсеместно могут встретиться на проектах. Углубляться в специализированные ниши мы посчитали бессмысленным, т.к. потребовалось бы собрать все знания мира. Перед нами стояла задача "дать удочку" для желающих, а не "накормить рыбой".

К концу Сентября наши силы и мотивация стали иссекать. Потому было решено сделать последний рывок, и выкатить в свет MVP версию карты. Навалившись на последние крупные пробелы, мы дописали необходимые статьи и комментарии к дорожной карте.

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

Мы решили попробовать пустить инфошум в какой-нибудь социальной сети. В качестве стартовой площадки выбрали твиттер, т.к. обитаем в местном айтишном окружении. Был опубликован твит-анонс со ссылкой на репозиторий. Чтобы придать больше огласки, мы попросили поретвитить сообщение твиттерян-тысячников, за что им неземная благодарность!

Следующие 48 часов представляли собой нескончаемый дофаминовый трип, т.к. мощь и величина реакции сообщества была несколько неожиданной. Придя в себя, мы принялись за обработку обратной связи. Столь бурная реакция придала нам хороший импульс, чтобы оперативно обработать входящие рекомендации и критику, и внедрить большую часть предложений в карту/репозиторий.

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

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

В заключение

Спустя ~6 месяцев работ над картой и её публикацией в разных источниках мы видим устойчивый спрос на информацию, представленную в дорожной карте и в репозитории. Суточная посещаемость репозитория составляет ~100 уникальных пользователей в день. Это отличный результат, на который не было никакого расчета, когда затевался весь этот проект.

Какие преимущества данного проекта хочется выделить:

Ссылки:

 

Qt 5.10. Профессиональное программирование на C++Qt 5.10. Профессиональное программирование на C++ 1074 страницы · 2018 · 99.04 MB · русский by Шлее М.
Программирование на C++ в примерах и задачахПрограммирование на C++ в примерах и задачах 369 страниц · 2017 · 11.54 MB · русский by Алексей Васильев
Освой самостоятельно C++ по одному часу в деньОсвой самостоятельно C++ по одному часу в день 754 страницы · 2017 · 43.37 MB · русский by Сиддхартха Рао
Эффективный и современный С++: 42 рекомендации по использованию C++11 и C++14Эффективный и современный С++: 42 рекомендации по использованию C++11 и C++14 306 страниц · 2016 · 12.87 MB · русский by Мейерс С.
Программирование. Принципы и практика использования C++. 2-е изданиеПрограммирование. Принципы и практика использования C++. 2-е издание 1329 страниц · 2015 · 80.07 MB · русский by Бьерн Страуструп
 
на главную сниппетов
Курсы