14 KiB
Pre-Junior C++
Кто это?
Это человек, который освоил базовый синтаксис языка и способен написать несложную программу, только при помощи базового синтаксиса языка C++ и стандартной библиотеки STL. Программа способна выполнять различные несложные действия, например:
- выполняет арифметические вычисления;
- работа с файлом: чтение и запись;
- ввод данных с клавиатуры;
- вывод данных в консольное окно;
- и т.д.
Какие навыки ожидаются?
- Может создать рабочий проект на C++;
- Способен Арифметические операции;
- Логические операторы и операторы цикла;
- Стандартные потоки вводы/вывода;
- Работа с файлами;
- Работа с указателями и ссылками;
- ООП в рамках C++: Наследование, полиформизм, инкапсуляция;
- Понимает процесса компиляции и сборки программы на C++.
Что ожидается по умению написания кода?
- Способность создать и собрать небольшой проект при помощи одной из популярных IDE, например Visual Studio или Qt Creator;
- Умение пользоваться отладчиком в рамках IDE.
Что ожидается по общим знаниям?
- Работа с Git;
- Умение составлять несложные алгоритмы: логические или арифметические;
- Умение работать с одной из популярных IDE (Integrated Development Environement) или текстовым редактором: MS Visual Studio, Qt Creator, Visual Studio Code.
Что ожидается по коммуникативным навыкам?
- Желание учиться
- Умение составить запрос на русском языке, чтобы найти ответ на проблему в поисковике
- Умение составлять и задавать вопросы коллегам, если не получается найти решение самостоятельно
- Желание работать в команде
С чего же мне начать?
-
Прежде чем изучать язык C++, рекомендуется начать свое погружение со следующей книги: Чарльз Петцольд - Код. Тайный язык информатики (https://www.ozon.ru/context/detail/id/125884/)
Данная книга расскажет вам об устройстве компьютера на простом языке. Здесь отсутствуют какие-либо сложные технические или академические детали. Книга актуальна и по сей день, т.к. содержит в себе основы основ, которые вряд ли потеряют свою актуальность в ближайшие десятилетия. Она познакомит вас с миром компьютеров, а также объяснит их устройство, что поможет вам лучше понять фундаментальные идеи языка C++.
-
Если вы начинаете изучать язык самостоятельно, то порекомендую вам выполнять разработку своих первых программ или упражнений в ОС Windows в IDE Microsoft Visual Studio (Community Edition). На сегодняшний день, это наиболее дружелюбная IDE для новичков, как в установке, так и при ее использовании. Это позволит вам сконцентрироваться непосредственно на изучении языка, а не на борьбе с рабочим окружением. На сайте компании Майкрософт вы найдете небольшой учебник, который вам расскажет, как установить Visual Studio, создать свой первый консольный проект и написать первое полноценное приложение (консольный калькулятор: https://docs.microsoft.com/ru-ru/cpp/build/vscpp-step-0-installation?view=msvc-160
-
Есть большое количество книг, по которым можно начать свое изучение языка C++. К сожалению, многие из них безвозвратно устарели, либо написаны слишком сложно. К счастью, есть наиболее актуальная и дружелюбная книга, с которой стоит начать свой путь изучения C++: Стивен Прата - Язык программирования C++. Лекции и упражнения (шестое издание) (https://www.ozon.ru/product/yazyk-programmirovaniya-c-lektsii-i-uprazhneniya-147417584/?utm_source=google&utm_medium=cpc&utm_campaign=RF_Product_Shopping_Books_super&gclid=CjwKCAjw7diEBhB-EiwAskVi11zEQ2QeqLjT8AEBCYC5IWzgpdgLIErY3c7eLfgnPSFic9M8Eh2pPRoCSHIQAvD_BwE)
Книга максимально дружелюбна к новичкам, не требует наличия каких-то специфичных знаний перед началом изучения языка, а также имеет набор упражнений к каждой главе. Они помогут вам отработать и понять базовые и фундаментальные возможности языка.
-
В дополнение к учебнику, стоит порекомендовать следущие видеолекции:
- Илья Мещерин
- Тимофей Хирьянов
Рекомендации и советы
- На сегдняшний день не существует "серебряной пули", которая поможет вам выучить C++ за день/неделю/месяц при помощи курсов, роликов на YouTube т.д. Будьте готовы к самостоятельной работе и изучению материала из всевозможных источников на протяжении нескольких месяцев, прежде чем вы сможете пройти собеседование и получить свой первый оффер на работу.
- Изучайте язык в своем ритме и темпе, а также в любом возрасте 🙂. Не ведитесь на подобные истории: "я программирую с пеленок", "паяльником владею с яслей", "вывожу из запоя/снимаю порчу при помощи ассемблерного кода", "не служил - не мужик" и т.д. Большинство подобных историй - это систематическая ошибка выжившего, или попытка "потешить свое самолюбие" за ваш счет. У всех вас достаточно способностей, чтобы научиться программированию, в том числе с нуля, в том числе и изучить C++. Также полно молодых ребят, которые сами хотели бы видеть меньше духоты в C++ сообществе. Они повсюду и готовы прийти вам на помощь! 🙂
- Практика, и только практика даст вам возможность освоить C++! Без регулярного написания кода, большая часть того, что вы прочитаете или услышите - забудется.
- Не пытайтесь писать идеальный код. Ваша основная задача - написание РАБОЧЕГО кода, который делает ровно то, что от вас требуется. Вы должны научиться "общаться" с компьютером, пусть и неэлегантно. Это сродни изучению иностранных языков. Сначала вы говорите много и небрежно, но со временем, ваш навык оттачивается, т.к. вы лучше чувствуете грамматику, увеличиваете свой словарный запас и т.д.
- Помните, что многие из опытных разработчиков, тоже испытывали проблемы и застревали в "очевидных" местах. Просто возььмите паузу, позанимайтесь чем-то другим, а через какое-то время возврщайтесь к проблеме.
- На первых порах не стоит концентрироваться на таких ресурсах, как Leetcode или CodeWars. Цель этих порталов - отработать навыки использования классических алгоритмов и структур данных. Эти площадки спроектированы таким образом, чтобы максимально отгородить вас от нюансов языков программирования. На первых порах, это не принесет вам особой пользы, лучше сконцентрируйтесь на самом языке и его возможностях.
- Большинство проблем, с которыми вы столкнетесь, скорее всего уже были решены до вас. Если вы не можете найти ответ в интернете, попробуйте переформулировать запрос иным образом. Рано или поздно вы придете к правильному ответу. Если после этого ответа так и нет, то попробуйте переписать свой код более простым путем/пересоздать проект и т.д. Помните, вы должны изучать язык, а не бороться с рабочим окружением на первых пораъ. Борьба с коружением может вас привести к полному разочарованию.
- Если чувствуете, что не понимаете какую-то из тем, поищите альтернативные источники, которые объясняют эту же тему. Сегодня можно найти полно материала, и в виде статей, и виде роликов на youtube. Выберете и используйте наиболее комфортный формат для вас.
- Найдите единомышленников, которые также начинают свой путь и объедините усилия в изучении. Так вам будет интереснее погружаться в изучение языка, а также делиться знаниями и опытом друг с другом. Это вам также поможет выработать в себе навык командной работы. Времена "вольных художников" подошли к концу. Практически везде, вам придется работать в режиме командной игры.
- Большинство проблем проще искать на английском языке, но если ваш текущий уровень владения им не очень высокий - не мучайте себя. Так вы можете слишком быстро потерять веру в себя и разочароваться. Большинство проблем, с которыми вы столкнетесь, спокойно можно отыскать на русском языке.
- Если чувствуете, что ваш английский слабоват - то лучше начните его изучение с более простых и приятных вещей: сериалы, видеоигры, художественные книги, новостные сайты или статьи на интересующие вас темы. За несколько месяцев можно значительно улучшить навыки восприятия информации на английском языке.