Как выучить C++?
Теперь поговорим о том, как освоить язык C++. Как я уже писал выше, этот язык очень сложный. Освоить его по книге можно только при условии, что у Вас за плечами большой опыт программирования на другом объектно-ориентированном языке (в идеале, C# или хотя бы Java). Если такого опыта нет, то освоить C++ по книге практически нереально. Возможно, это получится сделать, прочитав с десяток книг. Но боюсь желание отпадёт после первой книги, ошибочно подумав, что программирование слишком сложно для Вас.
Поэтому книги отпадают сразу для всех, кроме тех, кто уже отлично знает другой серьёзный объектно-ориентированный язык.
Бесплатные материалы из Интернета тоже никуда не годятся по тем же причинам, что и книги, но здесь все ещё хуже. Так как C++ постоянно меняется, то огромное количество материала по нему просто устарело, но ни один новичок не отличит устаревший материал от свежего. Так же большой вопрос вызывает компетенция авторов этих бесплатных материалов. Работают бесплатно обычно только увлечённые новички. Когда они набираются опыта, у них появляется возможность зарабатывать, поэтому очень часто (за очень редким исключением) они перестают выкладывать что-то бесплатно.
Таким образом, обучение по бесплатным материалам в Интернете – это самый ужасный вариант даже для тех, кто знает тот же C#.
Рассматривать всякие оффлайн-курсы не будем, поскольку эффективность такого обучения стремится к нулю. Если Вы учились в институте, то вспомните, насколько были эффективными лекции там. Чтобы что-то понять, нужно реально напрягаться, не отвлекаться ни на секунду и ничего в этот момент не записывать. Если же записывать, то времени на понимание не останется вовсе. Так же, если просто отвлечься, можно легко потерять нить рассуждений и запутаться (а отмотать лекцию назад, как видео, не получится). Да и цена у таких занятий колоссальная хотя бы из-за аренды.
Есть ещё репетиторы. И это хороший способ, но крайне дорогой. Час нормального репетитора в Москве не может стоить меньше 2000-3000 рублей в час. В противном случае, спокойнее, проще и прибыльнее ему будет просто устроиться на работу C++ программистом или брать какие-то заказы на дом.
А чтобы освоить C++ потребуется не один десятков часов, поэтому сумма у репетитора получится существенной. Да и эта зависимость от другого человека (который может заболеть, который может поменять планы, который может перенести занятие и тому подобное), тоже сомнительная вещь.
Остаётся только видеообучение. И тут есть 2 основных варианта: онлайн-школы и видеокурсы. Разберём сначала первый вариант.
Вариант 1
Онлайн-школы
Преимущества онлайн-школ:
- Видеоинформация усваивается гораздо проще текста, так как задействуется не только зрение, но и слух.
- У большинства онлайн-школ доступны записи лекций (правда, не всегда бесплатно). Поэтому если что-то прослушали или пропустили, можно потом посмотреть запись.
- Структурированный последовательный материал. Обычно, всё построено грамотно: от простого к сложному.
Помимо преимуществ, есть ещё и псевдо-преимущества, которые иначе как обманом не назовёшь, однако, огромное количество онлайн-школ заманивают своих жертв именно благодаря этим обещаниям:
- Личный наставник. Это красивое словосочетание означает не более, чем самую обычную службу поддержки, которая имеется и у любого уважающего себя автора видеокурса. Личным наставником может считаться только репетитор, к которому Вы приходите лично (либо созваниваетесь по скайпу) и перед которым Вы отчитываетесь за каждую домашнюю работу и который прямо при Вас проверяет и комментирует её. Всё остальное – это самая обычная служба поддержки, замаскированная красивым словосочетанием.
- Гарантированное трудоустройство. Удивительно, сколько людей ведутся на эту очевидную ложь. Ни один работодатель не согласится платить зарплату человеку, который просто заплатил за какой-то курс. Это смешно даже обсуждать. Максимум, что может обеспечить онлайн-школа – это гарантированное собеседование. Но на собеседование можно прийти в любую компанию и бесплатно. А вот возьмут или нет – зависит от Ваших знаний, а не от того, сколько Вы заплатили онлайн-школе. Есть второй вариант развода на «гарантированное трудоустройство», когда просто предлагается трудоустроиться в эту же школу без официального трудоустройства и без зарплаты. Формально, обещание выполняется, на практике это выглядит как издевательство и рабство.
- Преподаватели – «ведущие программисты Google/Yandex/Mail/…». Думаю, не нужно объяснять, что проверить достоверность этих сведений не представляется возможным. Но можно поверить на слово (хотя после предыдущих двух пунктов не хочется). И даже в этом случае, компетенция не всегда очевидна. Объясняю. У меня много друзей, знакомых и моих учеников, работающих программистами. И реальная работа, по их словам, выглядит так. Если должность высокая (например, ведущий программист), то он вообще не программирует, он занимается архитектурой. И его главная специализация именно она. И когда архитектор много лет занимается только этим, он забывает вообще, как программировать. Он как бы мыслит на более высоком уровне абстракции. Таким образом, он не сможет обучить программированию хорошо, так как сам его уже не знает. Если должность средняя (middle-программист), то здесь, во-первых, в крупных компаниях (а только такие почему-то онлайн-школы указывают) человек занят очень-очень узкой задачей (например, только валидация форм на крупном сайте, или только искусственный интеллект нескольких боссов в какой-нибудь игре) и ею занимается на протяжении многих месяцев, а, порой, и лет. И количество кода, которое пишется, зачастую, измеряется, в среднем, 5-10 строчек в день. Так же исправляют свои же ошибки, допущенные ранее. Остальное время – это лясы с коллегами, чаепитие и игра в какой-нибудь бильярд (если у компании есть такой зал). В мелких компаниях ситуация совсем другая, но онлайн-школы считают, что непрестижно будет придумывать их, поэтому указывают только крупные компании.
Теперь подходим к очевидным недостаткам онлайн-школ:
- Очень высокая цена. Ниже я приведу конкретные скриншоты с ценами. А здесь я отмечу причину этого. Любая онлайн-школа должна за короткое время успеть собрать группу, с которой будет выгодно работать. Если группа будет маленькая, то вести её будет нерентабельно и придётся возвращать деньги, а все потраченные средства на рекламу утекут, сами знаете куда. А собрать быстро группу можно только очень массированной дорогостоящей рекламой. Вам любой маркетолог скажет, что 1000 человек на сайте в течение дня – это в разы дороже, чем те же 1000 человек на сайте, но в течение месяца. Хотя доход от них будет таким же. Отсюда бесконечная реклама у блогеров с миллионами подписчиков, даже с явно нецелевой аудиторией, лишь бы она была огромной. Отсюда в Директе рекомендуемая цена за клик по некоторым целевым запросам по 300 рублей. За 1-го целевого посетителя они реально готовы платить по 300 рублей! И рекламу у Николая Соболева, и 300 рублей за 1-го посетителя, угадайте, кто оплачивает в итоге? Правильно, клиенты онлайн-школ. Отсюда и такие высокие цены. Так вот у меня вопрос. Вы хотели бы, чтобы деньги шли на дорогостоящую рекламу у блогеров или всё-таки на качество самих учебных материалов и уровень преподавателей? В онлайн-школах, увы, Ваши деньги идут именно на маркетинг, а не на качество. И теперь переходим плавно к следующему пункту.
- Компетенция авторов вызывает сомнения. Вы сами видите, что онлайн-школы несут огромные расходы на рекламу. Поэтому, чтобы у них осталась хоть какая-то прибыль, им нужно максимально сэкономить на всём остальном. А на чём можно сэкономить, если на рекламе это сделать невозможно? Правильно, на преподавателях. Зачем искать профессионалов, когда можно найти на фрилансе или даже в тематических пабликах? Они просто пишут в личку абсолютно неизвестным специалистам, но которые являются активными участниками какого-нибудь паблика, посвящённому конкретному языку программированию, и предлагают ему вот эту работу. Соответственно, кто-то да откликнется, потом они выбирают самого дешёвого и при этом не являющегося уж совсем дебилом, иначе даже новички заметят, что дело тут нечисто. После этого придумывают ему легенду (основатель Google, создатель компьютера, изобретатель первого языка программирования и тому подобное), и люди ведутся. При этом, ни один новичок никогда не поймёт (по крайней мере, во время обучения), что перед ним дилетант. Более того, ни один новичок не отличит дилетанта от профессионала. Это всё равно, что первоклассник будет пытаться понять, кто из двух старшеклассников лучше знает физику.
- Онлайн-формат крайне неудобен. Тут даже дело не в конкретной дате и времени, когда будет проводиться занятие. В конце концов, есть запись. Но проблема в том, что в прямом эфире невозможно всё делать без ошибок. Автор обязательно ошибётся, начнёт искать ошибку, при этом он будет этим очень сильно затягивать занятие, а также очень сильно запутывать учеников. Как правило, поиск ошибок понимают лишь единицы. Так же идёт очень много просто воды, которую потом не вырезать, бесконечные отвлечения на чат с абсолютно неинтересными вопросами, которые интересуют исключительно задающего, но все вынуждены ждать. Понятно, что в записи можно проматывать уже, но где гарантия, что Вы случайте не перемотаете что-то важное? Если Вы хоть раз смотрели любой стрим по программированию (а я посмотрел их на сотни и сотни часов из-за отсутствия нормальной альтернативы), то, наверняка, знаете, что стрим на 3 часа содержит полезной информации от силы минут на 20-30.
Таким образом, онлайн-школа – это очень дорого, неудобно и неэффективно. Если финансы позволяют, то лучше за те же деньги действительно найти репетитора. Здесь хотя бы деньги пойдут на него, а не на Николая Соболева или любого другого блогера с огромной аудиторией.
Кто-то скажет, что я очень много времени уделил, по сути, разоблачению онлайн-школ. Однако, я бы этого не делал, если бы они не набирали такую популярность (а учитывая, что они уже этим занимаются много лет, то это очевидно так, иначе бы они давно закрылись), обманывая людей, которые потом будут проецировать этот обман и на меня, как на их «коллегу». Поэтому мне хотелось бы, чтобы хотя бы моя аудитория всегда чётко понимала разницу между мной и онлайн-школами.
Кто-то так же скажет, что я их ругаю, потому что являюсь заинтересованным лицом. И это так. Но постарайтесь абстрагироваться от этого, и проанализировать всё самостоятельно. Уверен, Вы придёте к тем же выводам, что и я. В конце концов, мне никто никогда не мешал открыть свою онлайн-школу (один мой знакомый даже предлагал мне это, взяв на себя максимум работы), и с моей огромной стартовой аудиторией, никаких проблем с раскруткой бы не возникло, особенно, учитывая мой многолетний опыт в сфере обучения. Нанял бы рабов-преподавателей за 3 копейки, и стал бы брать с каждого человека в 10-20 раз больше денег за «наставничество» и «гарантированное трудоустройство». Но я себе это не позволяю и позволять никогда не буду, каким бы прибыльным это не было.
Теперь перейдём к видеокурсам.
Вариант 2
Видеокурсы
Вот преимущества обучения по видеокурсам:
- Видеоинформация усваивается гораздо проще текста, так как задействуется не только зрение, но и слух.
- Структурированный последовательный материал. Обычно, всё построено грамотно: от простого к сложному.
- Смотреть можно в любой момент, когда угодно и где угодно.
- Низкая цена.
Как видите, преимущества уже отличные. Но это ещё не всё. Поговорим теперь о дополнительных преимуществах уже именно видеокурсов моего авторства:
- Наличие упражнений для закрепления материалов из уроков.
- Поддержка. Все вопросы по курсам/по заданиям/по проверке упражнений всегда можно задавать в мою службу поддержки.
- Ничего лишнего. Только сконцентрированная информация. Если где-то что-то лишнее, или где-то непонятный для большинства поиск ошибок, всё это вырезается из финального видео. Остаётся только сама ошибка, а следующим кадром уже объясняется, как она была решена (иногда показываю ход рассуждений), а не получасовой поиск ошибки, запутывающий любого ученика. Поскольку я сам часто смотрю видеоуроки, и, к сожалению, очень часто с этим сталкиваюсь у других.
- Выдаётся именной сертификат о прохождении курса.
- Достоверно высокая компетенция. С моими знаниями всё очевидно понятно хотя бы просто по следующим соображениям. Даже если в 2010-м году я пришёл с пустой головой (хотя это было совсем не так), то уже за полсотни записанных видеокурсов за столько-то лет уж явно знания хочешь не хочешь, но появятся весьма серьёзные. Проверить же, что я столько лет преподаю крайне легко (а webarchive поможет). Но добавлю так же то, что доказать будет уже сложнее, но всё же считаю нужным это написать. Программирование – это для меня не только работа, но и хобби. Мне в этом плане повезло. Я регулярно совершенствуюсь в этом направлении, прочитав уже огромное количество книг, просмотрев тысячи и тысячи часов видеоуроков на нескольких языках по самым разным языкам программирования. И не потому, что надо, а потому, что хочется. Мне не особо интересны туризм (хотя семья иногда заставляет), абсолютно безразличны (если не сказать хуже) всякие веселушки, дискотеки, вечеринки. И поэтому значительную часть своего свободного времени, а у меня его очень много за счёт грамотного тайм-менеджмента, я уделяю именно программированию. Поэтому в моей компетенции можете быть абсолютно уверены.
Безусловно, я один и не могу разобрать абсолютно всё. Однако, если Вы хотите изучить C++, то Вам повезло, так как такой курс я как раз записал!
Поэтому представляю Вашему вниманию свой новый Видеокурс «Программирование на C++ с Нуля до Гуру».