Хочу научиться программировать на C++: с чего начать?
04.07.2014, 14:28. Показов 209183. Ответов 0
- Спросите себя "Зачем?"
Зачем? - это самый первый и самый главный вопрос, который следует себе задать. И задать его следует в самом начале, что называется, "на берегу".
Зачем мне это? Почему я делаю то, что делаю? Почему именно программирование? Почему именно C++?
Честное размышление над этими вопросами и попытка найти ответы, осознание собственных мотивов, помогут Вам понять, Ваш ли это путь, или Вы пытаетесь воплотить в жизнь чужие желания и мечты, или, даже хуже того, поддались влиянию рекламы или веяниям моды.
.
- Научитесь учиться (1, 2, 3, 4, 5, 6, 7, 8). Используйте эффективные методы обучения - мнемонические приёмы (дворцы памяти, ассоциации, дидактические карточки), интерливинг (вариативное обучение), интервальное обучение, припоминание, осмысление, изложение пройденного материала, выделение ключевых моментов (базовых принципов) в пройденном материале, коллегиальное обучение (парное, например) и т.д.
.
- Составьте план обучения. Отслеживайте свой прогресс (1, 2, 3).
.
- Найдите одну из этих книг:
- Ivor Horton, Peter Van Weert "Beginning - C++20: From Novice to Professional" (2020, 6th edition)
- Стивен Прата "Язык программирования С++. Лекции и упражнения" (2012, 6-е издание)
- Стенли Липпман, Жози Лажойе, Барбара Му "Язык программирования C++. Базовый курс" (2014, 5-е издание)
- Бьярне Страуструп "Программирование. Принципы и практика с использованием C++" (2016, 2-е издание).
.
- Скачайте и установите какую-нибудь удобную бесплатную IDE с современным компилятором на борту, поддерживающим текущий стандарт.
.
- Выполняйте упражнения, которые есть в конце каждой главы (в каждой книге, из предложенных мной, они есть).
.
- Научитесь правильно задавать вопросы. Что непонятно, спрашивайте на форуме. Не стесняйтесь показаться глупым неумёхой. Все были начинающими. Как говорится, мы все когда-то учились ходить. Если покажете искренний интерес, и окажетесь вежливым и благодарным собеседником, Вам всегда с радостью помогут.
.
- Пользуйтесь поиском. Научитесь формулировать поисковые запросы (1, 2, 3, 4).
.
- Лучше если Ваши сообщения на форуме будут наполнены конкретикой. Десять строк своего кода весомее тысячи самых правильных слов - "Talk is cheap. Show me the code!" (c) Linus Torvalds. Пишите код. Подробно его комментируйте, буквально пошагово. На первых порах такой подход позволяет самому лучше разобраться в нюансах использования конструкций языка С++ и в дебрях его поначалу весьма нетривиального синтаксиса (пройдёт две-три недели и Вы увидите, как он станет Вам казаться простым и понятным).
.
- Занимайтесь регулярно. Не менее часа каждый день.
.
- Если чувствуете, что информация уже не воспринимается, отдохните, не насилуйте себя. Мозгам как и мышцам требуются не только тренировки, но и отдых. Всё хорошо в меру.
.
- Старайтесь писать аккуратный код, соблюдайте везде одинаковую величину отступов - код должен быть легко читаемым, в идеале - самодокументируемым, иначе никто не станет в нём разбираться. Выберите один из наиболее популярных стилей оформления кода и придерживайтесь его. Посмотрите, как оформляют код в крупных компаниях - на эту тему есть специальные гайдлайны (как их называют coding conventions, или coding standards).
.
- Научитесь пользоваться отладчиком, например, GDB (1, 2) или отладчиком студии.
.
- Пишите unit-тесты. Есть несколько популярных фреймворков для unit-тестирования: Google Test, Catch2, QtTest, Boost Test. Используйте один из них для тестирования Вашего кода.
.
- Через три-четыре недели, став немного увереннее, пытайтесь помогать новичкам на форуме в тех задачах, которые для Вас уже не представляют большой сложности. Объясняя какие-то вещи другим, сам лучше начинаешь их понимать.
.
- Начните осваивать системы контроля версий. Например, Git (раз и два).
.
- Найдите достаточно динамично развивающийся open-source проект и присоединитесь к команде разработчиков. Для начала, попробуйте пофиксить какой-нибудь баг, сделайте pull request (запрос на добавление вашей заплатки в проект).
.
- Читайте профильную литературу. Выработайте свой план чтения.
.
- Учите английский язык (1, 2, 3, 4). Придумайте свой способ быстрого изучения английского или подсмотрите у кого-нибудь. Не важно как Вы это сделаете, главное, сделайте. Вариантов масса. Вот только некоторые из них:
- общайтесь с носителями языка
- пойдите на платные курсы английского или запишитесь на серию платных вебинаров
- играйте в онлайн игры с англоговорящими игроками
- слушайте лекции по программированию на английском
- смотрите фильмы, сериалы с двумя звуковыми дорожками - русской и английской, и двумя видами субтитров - русскими и английскими
- подпишитесь на профильные youtube-каналы (1, 2, 3, 4, 5)
- читайте книги (вслух) по программированию на английском
- переводите английский текст на русский
- посещайте Speaking Club
- выписывайте себе фразовые глаголы, идиомы, collocations (устойчивые словосочетания)
- слушайте подкасты
- учитесь мыслить фразами, а не отдельными словами
Помните, Ваш английский должен быть не просто сферическим конём английским в вакууме, а английским в выбранной Вами предметной области (программирование). Кроме того, важно понимать, что приобретение заветного "fluent English" строится на прокачке целого ряда навыков:- говорение (speaking)
- аудирование (listening)
- чтение (reading)
- письмо (writing)
- грамматика (grammar)
- словарный запас (vocabulary)
- понимание культурных особенностей (culture)
Всё это отдельные навыки, каждому из которых необходимо уделять внимание.
.
- Попробуйте себя в качестве фрилансера. Опыт реальной разработки за реальные деньги в строго ограниченные сроки не заменишь ничем. Опыт моего первого фриланс-проекта (1.5 месяца жёсткого кодинг-марафона) дал лично мне больше, чем всё моё книжное обучение программированию (три увесистых тома по 1000-1200 страниц, три книжки страниц по 400-500, плюс "по диагонали" ещё три-четыре книги) и решение задачек на форуме за предыдущие два года вместе взятые.
.
- Подготовьте своё резюме (CV). Хорошее резюме - половина успеха. Проконсультируйтесь с кем-нибудь знающим, как его лучше оформить. Попытайтесь пройти собеседование в реальной компании разработки программного обеспечения. Не огорчайтесь, если с первого раза ничего не получится. Проанализируйте полученный опыт. Постарайтесь выяснить, что Вы сделали правильно, а что нет. Обсудите вопросы из собеседования на форуме с более опытными коллегами. Подтяните те навыки, по которым у Вас идёт просадка. Попытайтесь пройти собеседование ещё раз. Повторять, пока не достигнете успеха.
.
- Верьте в себя. Не Боги горшки обжигают. У Вас всё получится. Не сдавайтесь. Даже если всё плохо, не смейте опускать руки. Берите пример с таких людей, как Tuukka Ojala, Джейсон Беккер или Стивен Хокинг. Если могут бороться они, то можете и Вы. Перестаньте оправдывать свою лень и жалеть себя.
"Не позволяйте своим мечтам остаться просто мечтами!" (с) Shia LaBeouf.
.
- Никогда не прекращайте учиться. Всё время ищите новые возможности, новое знание, новый опыт, интересные задачи. Будьте на острие прогресса. Интересуйтесь новыми веяниями в выбранной Вами области. Будьте любопытным, любознательным, открытым для новых знаний. Старайтесь периодически выходить за пределы своей зоны комфорта, исследуйте "новые территории". Пусть Вашим девизом станет "Что там, за холмом?"
"Предела нет, Джонатан!" (с) Ричард Бах.
Удивите себя.
216
|