Школа анализа данных Яндекса составила подборку из 10 бесплатных ресурсов для изучения языка программирования C++.
Освоить C++ сегодня — не такая большая проблема, в интернете много учебных материалов. Но сориентироваться в них и выбрать действительно полезную информацию порой сложно, особенно новичкам, которые только начинают свой путь в программировании.
Алексей Толстиков, академический руководитель Школы анализа данных Яндекса, делится практическими рекомендациями по изучению языка, а также подборкой бесплатных ресурсов для тренировки.
Что нужно знать
Для того, чтобы научиться писать на С++ , обычно бывает достаточно знания любого языка программирования. Если такого опыта нет, то свой путь придется начать с изучения основных понятий: переменные, циклы, функции, условные операторы и так далее.
Базовые знания, которые позволят новичку приступить к проектам и началу карьеры:
- Базовые компоненты: создание итераторов, конструкторов, шаблонов. Для этого будет полезно изучить не только базовую библиотеку STL, но и другие, которыми пользуются разработчики, например, Boost.
- Структуры данных и алгоритмы: линейный поиск, двоичный поиск, быстрая сортировка, хеш-таблицы, списки, деревья.
- Многопоточность: важная концепция, которая применяется, когда есть несколько задач, работающих параллельно, и несколько доступных ядер процессора.
- Эффективный код: написание такого кода включает в себя тестирование и проверку на безопасность для определения проблем, которые могут возникнуть с производительностью. Нужно понимать, как их исправить, как оптимизировать поиск, использовать память, настраивать ограничения.
C чего начать знакомство с C++
Стратегия изучения частично зависит от профессионального бэкграунда разработчика. Но есть три универсальных совета, которые помогут как новичкам, так и более опытным специалистам.
Какой навык можно освоить за 30 дней?
1. Прокачивайте логику
Тем, кто изучает C++ на базе другого языка, освоить синтаксис будет намного легче, чем начинающим разработчикам: основные «кирпичи» те же, просто сформированы немного иначе. А вот новичкам на старте важно научиться трансформировать свои мысли в последовательность действий-команд, которую можно задать компьютеру при помощи операторов языка программирования.
Этот процесс включает два этапа:
- Тренировку алгоритмического мышления.
- Изучение синтаксиса языка.
Теорию и практику лучше осваивать параллельно — такой системный подход позволит сразу же применить абстрактные знания в решении задач, пусть и учебных. Из стартовых материалов подойдут руководства, например, «Язык программирования С++» от его создателя Б. Страуструпа, и видео на YouTube, которые можно дополнить различными тренажерами для развития алгоритмических навыков.
2. Совершайте ошибки
Этот совет подойдет для изучения любого языка программирования. И новичкам, и опытным специалистам важно помнить, что С++ — очень низкоуровневый и «опасный» язык. При его использовании легко совершить базовую ошибку, которую удастся выявить только тогда, когда сервис вместо 10-ти человек начнет использовать миллион. Еще про С++ говорят, что, используя его, легко “выстрелить себе в ногу”.
Какому скиллу можно обучиться дома за неделю?
Во многих языках такие ошибки проявляются быстрее и скорее исправляются разработчиками, но за это нужно платить временем работы программы. Например, в Python встроенный интерпретатор еще по ходу исполнения упадет и скажет: «Происходит не то, что ожидалось, давайте прервемся.
Вот что пошло не так.», а C++ не будет до последнего реагировать на неправильную работу – это связано с термином “неопределенное поведение”. Поэтому всем, кто программирует на C++, нужно набирать практику на множестве возможных ошибок. Это не гарантирует, что в процессе кодинга реального проекта разработчик не столкнется с проблемами, но снизит вероятность локальных и глобальных программных сбоев в будущем. С опытом и насмотренностью ошибки становятся более редкими, нестандартными и даже интересными. О самых нетривиальных случаях специалисты делают доклады и выступают с ними на конференциях или пишут статьи.
3. Пишите свой код и смотрите чужой
Программист должен знать не только, какие ошибки встречаются, но и понимать, как предотвратить их, а если они случились — уметь оперативно исправить. Все это невозможно без практики, поэтому важно набивать руку: часами писать код, а потом столько же читать чужой. Последнее научит мыслить в обратную сторону — от команд для компьютера к пониманию, чего же хотел добиться своими действиями другой разработчик.
Практиковаться лучше не только по книжкам, но и в реальных условиях, например, можно просматривать открытые репозитории проектов в github или использовать платформы вроде Codeforces и Codewars, где объединяются люди, которые интересуются быстрым и эффективным решением задач. Такие активности позволяют не только потренироваться в поиске решения, но и посмотреть, как с задачами справились другие. Если у платформы есть возможность проголосовать за понравившееся решение, то получаем классную возможность посмотреть, что другим специалистам в этой области нравится больше, что они считают более читаемым, компактным и быстрым.
Где еще набираться опыта и закреплять теорию
Помимо соревнований, практика может состоять из хорошо подобранных учебных задач или собственного пет-проекта, например, начать можно с калькулятора, конвертера валют, простой игры по типу «Змейки», «Сапера» или «Тетриса».
Ниже несколько ресурсов, которые помогут закрепить теорию и поупражняться в программировании:
- Хендбук Академии Яндекса по С++ — бесплатный онлайн-учебник для самостоятельного погружения в С++ для новичков, которые знакомы с основами информатики и владеют любым языком программирования на школьном уровне. Теория разбирается одновременно с тренировкой на практических задачах. Решения проверяются автоматически. А заниматься можно в своем темпе: проходить материал по порядку или выборочно по главам, чтобы освежить и закрепить конкретную тему.
- Hacking C++ — наглядный справочник с картинками и инфографикой. Здесь также есть подробное руководство по изучению языка для новичков.
- The C++ Asynchronous Framework — современный асинхронный фреймворк с открытым исходным кодом и богатым набором абстракций для быстрого и удобного создания микросервисов, сервисов и утилит.
- CodeRun — это онлайн-тренажёр с каталогом задач для разработчиков. Эксперты Яндекса и приглашённые спецы собрали задачи с Тренировок по алгоритмам от Яндекса, Yandex Cup и многих других мероприятий. Все задания разбиты по темам и уровням сложности.
- Комьюнити Stack Overflow — платформа, на которой собрана огромная коллекция вопросов и ответов по программированию. Участники сообщества активно делятся опытом с коллегами. Для тех, кто самостоятельно работает над своим первым проектом, такая помощь неоценима.
- Онлайн-документация по С++ — справочник на английском по языкам C, C++ и стандартным библиотекам с подробными примерами. Для пользователей, которые предпочитают учиться на русском, есть адаптированная версия сайта.
- Сайт Standard C++ Foundation — ресурс, на котором публикуются новости, обсуждение стандарта C++ для всех компиляторов и платформ, а также анонсы тематических конференций.
- Гайдлайны С++ Core Guidelines — open-source проект от создателя С++ Бьярне Страуструпа и эксперта по C++ Герба Саттера. На сайте публикуются рекомендации, которые помогают разобраться с синтаксисом языка и упростить процесс написания кода.
- Онлайн-компилятор Compiler Explorer — интерактивный инструмент, который позволяет набирать код в одном окне и сразу просматривать ассемблерный вывод в другом. Результатом проверки можно поделиться с друзьями и коллегами, отправив им ссылку.
- #SimpleCode — YouTube-канал о том, как программировать на разных языках, в том числе и на C++. Будет полезен разработчикам с любым бэкграундом.
- ProgrammingKnowledge — YouTube-канал для начинающих программистов. Здесь можно найти много пошаговых видеоуроков по разным языкам.
- Codeforces — платформа для создания, проведения и обсуждения соревнований по программированию с элементами соцсети.
- Сodewars — огромная подборка задач на более чем 20 языках программирования. На Сodewars можно обсудить задачи с другими игроками, а также посмотреть альтернативные решения.
Следите за новыми постами по любимым темам
Подпишитесь на интересующие вас теги, чтобы следить за новыми постами и быть в курсе событий.
Источник: tproger.ru
Можно ли чему-то обучиться в интернете? Заметки из личного опыта и список курсов

В этой статье я решила поделиться рассуждениями можно ли чему-то обучиться в интернете. Почему многие задаются сейчас таким вопросом? Все просто.
С апреля-мая 2020 года резко возрос спрос на удаленные профессии, которым еще не обучают ни в ВУЗах — нигде. А как найти работу, кем работать, если никогда не сталкивался с этим?
Вторая сторона — появление десятков тысяч онлайн-школ, каждая обещает заработки и лучшие знания. Как можно им доверять, действительно ли они что-то дадут, если довериться и начать изучение курса.
А вообще в интернете реально обучиться?
Мои знакомые когда услышали, что я прохожу какой-то курс в интернете, удивились. «Как можно учиться в интернете? У кого? Чему??»
Как? Самостоятельно, конечно. Когда появляется необходимость получить недостающую и структурированную информацию.
У кого? У профессионала. И у такого, который «зашел». Так вышло, что я начала слушать сначала психолога. Это еще в 2016-м. Затем я посетила мастер-классы по текстам и сайтам.
И по мере появления в сети курсов и спикеров — стало понятно, что можно выбирать того, который тебе понравится: как он (она) говорит, что говорит, о чем говорит.
Чему? Да вообще чему угодно. Начиная от поиска предназначения, заканчивая точечным навыкам: сделать сайт, отретушировать фото, составить правильный заголовок, рассчитать что-то по дате рождения…
«Это все и так есть в интернете» — махнет кто-то рукой и будет прав. В интернете есть все. При желании можно найти любую интересующую информацию. Миллионы страниц по искомому запросу. И если нет необходимости изучить вопрос глубже, то и поиском можно обойтись.
А вот прийти на вебинар и послушать эксперта или даже купить обучающий курс — это значит углубиться, получить структурированные знания. Быстро и в одном месте у профессионала. Важно проникнуться уважением и доверием к этому преподавателю.
Кстати, очень многие люди просто не понимают, что искать и на кого учиться. В интернете встречаются трудновыговариваемые и совсем не понятные названия профессий, а главное, они высокооплачиваемые и востребованные. А если человек вообще в тупике, не могут определиться с нишей, чем вообще заниматься.

В период карантина и закрытия компаний в офлайн бизнесе, большое количество людей вообще оказались в поиске новой деятельности для себя. Хоть иди и проходи тесты по профориентации. Если вы в поиске, рекомендую приобрести методичку по распаковке личности и поиска экспертности.
Это не тест, а комплексное интервью самому себе, с глубоким погружением в подсознание. Только если вы готовы к работе над собой — ссылка методичка «Кто ты» в которой собраны 70+ вопросов и заданий, с анализом и перечнем востребованных профессий.
Как искать онлайн школы?
Конечно, можно попробовать набрать в поиске. Что-то вроде:
- онлайн школы список
- лучшие онлайн школы
- курсы по заработку
- удаленные профессии
И так далее и тому подобное. Поиск даст свои результаты, и какая-то часть людей найдет что-то для себя. Но вот только по чьему мнению составлены такие списки? Кто их составил? Тот кто уже во всех этих школах поучился?

Вероятнее всего, в списки лучших школ попадают те, у кого больше денег на рекламу.
Но может они правда хорошие, зарекомендовали себя, набрали отзывов учеников. У них есть спрос, много трафика и количество участников.
Не нашлось подходящего
Ну вот бывает так, что список вы нашли: школ-то полно. Но куда не зайди — сразу заплати, а потом учись.
Я сама лично против такой тактики: я не хочу покупать кота в мешке.
Мне эти фамилии спикеров ничего не говорят, хоть и у них миллионы подписчиков в соц.сетях. Так же как и многим людям, впервые оказавшись в океане информации и поиска.
Кто ищет — тот найдет
Выход есть, главное — не отступать. Благодаря все той же рекламе — вам будут попадаться на глаза какие-то интересные варианты. Вы только обращайте внимание: лента новостей в социальных сетях.
Если вы набирали в поиске запрос по обучению в интернете — то вам и Яндекс и Google поможет, показывая на глаза нужную рекламную запись. Реклама подберет вам рекомендации даже по вашей выбранной нише.
В рекламу попадают анонсы вебинаров тех же онлайн-школ. Которые частенько проводят бесплатные вебинары или мастер-классы. На них спикеры тоже дают полезную информацию, и ее, как правило, достаточно, чтобы понять:
- ваша ли эта тема для более углубленного изучения
- ваш ли спикер (по способу подачи)
- чему в этой школе могут научить
- будет ли поддержка
- найдете ли вы себя после прохождения курса
Продолжать можно бесконечно. Самое главное — на бесплатных вебинарах вы можете познакомиться со своей будущей профессией.

Личный опыт и знакомство с курсами
Жизненные ситуации привели меня намного раньше к работе в интернете
Об этом я писала в статье «Об авторе». Поработав в интернет-магазине у меня не было недоверия к тому, что в интернете есть что-то стоящее.
Но вот занятие себе я искала долго. Мое первое образование филологическое и плюс для интернет-магазина я практиковала написание статей в категорию «блог». Поэтому я решила попробовать копирайтинг. Затем я прошла бесплатные мастер-классы по рисованию в фотошопе, чтобы расширить свой набор навыков.
По большей части мне хватало бесплатных вебинаров, чтобы пополнить свои скилы, но и платный курс есть в моей копилке. Блог, который читаете вы, был создан благодаря прохождению курса: Ударная раскрутка сайтов. Автор Дмитрий Новоселов.
Там я научилась с нуля:
- создавать сайт на платформе WordPress (статья в блоге)
- установила нужные плагины
- настроила хостинг
- училась подбирать ключевые запросы (статья в блоге)
- писать заголовки (статья в блоге)
- длинные статьи
- настраивать SEO
- правильно размещать статьи (статья в блоге)
А что касается бесплатных (или курсов до 500 руб)
Итого, в моем списке образовались несколько спикеров и школ, о которых я могу поделиться информацией, может кому-то будет полезно. Назвать плохими или хорошими их будет неправильно. Небольшой обзор некоторых названий и авторов. Не могу рекламировать и давать ссылки (из-за маркировки), поэтому ищите в интернете.
Копирайтинг:
Василий Блинов Копирайтинг с нуля
ШОК (Школа Отличного Копирайтинга) Дмитрия Новоселова
Андрей Власенко Getproff — обучение удаленной работе
Сайты и лендинги
Restart Academy (Тильда)
Тильдошная (Максим Ширко)
Фотошоп, ретушь
Личный помощник, администратор онлайн школ
GetProff (Андрей Власенко)
Ната Фортуна (группа ВК)
Создание блогов
Дмитрий Новоселов, Ударная раскрутка сайтов
В этой статье я написала о своем личном опыте, отвечая на вопрос: можно ли чему-то обучиться в интернете?
Список курсов и фамилий спикеров я буду пополнять по мере того, как вспомню кого-то еще.
Поделитесь в комментариях, проходили ли вы какие-то курсы или вебинары и кого могли бы посоветовать.
Скачать чек-лист по ЦА или методичку «Как и на чем зарабатывают в INSTAGRAM» вы можете по ссылке Полезные материалы.
Источник: goodtopic.ru
