12 KiB
Pre-Junior C++
Кто это?
Это человек, который освоил синтаксис языка и способен написать несложную программу без использования сторонних библиотек. Программа способна выполнять различные действия, например:
- выполняет арифметические вычисления;
- взаимодействует с файлами: чтение и запись;
- ожидает ввод данных с клавиатуры;
- выводит результаты работы и иные данные данные в консольное окно;
- и т.д.
Что ожидается по умению написания кода?
- Способность создать и собрать небольшой рабочий проект на C++ при помощи одной из IDE: Visual Studio, Qt Creator и т.д.;
- Умение пользоваться отладчиком при помощи IDE;
- Понимание процесса компиляции и сборки программы на C++;
- Способность написать приложение, содержащее арифметические или логические операции и алгоритмы, условия и циклы;
- Умение написать приложение по работе со стандартным потоком ввода/вывода;
- Умение работать с указателями и ссылками;
- Знание из какого вида памяти состоит приложение;
- Базовое понимание ООП в рамках C++: Наследование, полиморфизм, инкапсуляция.
Что ожидается по общим навыкам?
- Желание учиться и впитывать новые знания;
- Желание разбираться в возникающих проблемах;
- Умение составить запрос на русском языке, чтобы найти ответ на проблему в поисковике или в соответствующей литературе;
С чего же начать?
-
Прежде чем начать изучения языка, рекомендуется начать свое погружение со следующей книги: Чарльз Петцольд - Код. Тайный язык информатики: Ozon Books
Данная книга расскажет вам об устройстве компьютера простым языком. Здесь отсутствуют какие-либо сложные технические или академические детали. Книга содержит в себе основы основ, которые вряд ли потеряют свою актуальность. Она познакомит вас с миром компьютеров, а также объяснит их устройство, что поможет вам лучше понять фундаментальные идеи языка C++.
-
Если вы начинаете изучать язык самостоятельно, то порекомендую вам выполнять разработку первых программ или упражнений в IDE: Microsoft Visual Studio (Community Edition). На сегодняшний день, это наиболее дружелюбная IDE к новичкам, как в установке, так и в использовании (и бесплатна!). Это позволит сконцентрироваться непосредственно на изучении языка, а не на борьбе с рабочим окружением. На сайте компании вы найдете небольшой учебник, который расскажет, как установить Visual Studio, создать консольный проект и написать первое приложение: MSDN
-
Есть много книг, по которым можно начать изучение языка. К сожалению, многие из них безвозвратно устарели, либо написаны слишком сложно. Но все-таки есть наиболее актуальная и дружелюбная книга, с которой стоит начать свой путь изучения C++: Стивен Прата - Язык программирования C++. Лекции и упражнения (шестое издание): Ozon Books
Книга максимально дружелюбна к новичкам, не требует наличия каких-то специфичных знаний, а также имеет набор упражнений к каждой главе. Они помогут вам отработать и понять фундаментальные возможности языка.
-
В дополнение к учебнику, стоит порекомендовать следующие видео лекции:
- Илья Мещерин
- Тимофей Хирьянов
Рекомендации и советы
Про обучение
- Не существует "серебряной пули", которая поможет вам выучить C++ за день/неделю/месяц. Будьте готовы к самостоятельной работе и изучению материала из различных источников в течение продолжительного времени, прежде чем вы сможете пройти собеседование, и получить свой первый оффер.
- Если чувствуете, что не понимаете какую-то тему, поищите альтернативные источники.
- Практика и только практика даст вам возможность освоить C++! Без регулярного написания кода, большая часть того, что вы прочитаете или услышите - забудется.
- Не пытайтесь писать идеальный код. Ваша основная задача - написание РАБОЧЕГО кода, который делает ровно то, что от вас требуется. Вы должны научиться "общаться" с компьютером. Это сродни изучению иностранных языков. Сначала вы говорите много и небрежно, но со временем, ваш навык оттачивается, начинаете лучше чувствовать грамматику, увеличиваете свой словарный запас и т.д.
- На первых порах не стоит концентрироваться на таких ресурсах, как Leetcode или CodeWars. Цель этих порталов - отработать навыки использования классических алгоритмов и структур данных. Эти площадки спроектированы таким образом, чтобы максимально отгородить вас от нюансов языков программирования. На первых порах, это не принесет вам особой пользы, лучше сконцентрируйтесь на самом языке и его возможностях.
Про мотивацию
- Учитесь в своем ритме, а также в любом возрасте! Не ведитесь на истории: "я программирую с пеленок", "паяльником владею с яслей", "вывожу из запоя/снимаю порчу при помощи ассемблера". Большинство подобных историй - это систематическая ошибка выжившего, или попытка потешить свое самолюбие за ваш счет. У вас достаточно способностей, чтобы научиться программированию, в том числе с нуля, в том числе и на C++!
- Большинство проблем, с которыми вы столкнетесь, скорее всего уже решены до вас. Если вы не можете найти ответ в интернете, попробуйте переформулировать запрос иным образом. Рано или поздно вы придете к правильному ответу. Если после этого ответа так и нет, то попробуйте переписать свой код более простым путем/пересоздать проект и т.д. Помните, вы должны изучать язык, а не бороться с рабочим окружением на первых порах. Борьба с окружением может вас привести к полному разочарованию и потере мотивации.
- Помните, что многие опытные разработчики тоже встречают проблемы и застревают в "очевидных" местах. Просто возьмите паузу, позанимайтесь чем-то другим, а через какое-то время возвращайтесь к проблеме.
- Найдите единомышленников, которые также начинают свой путь. Так вам будет интереснее погружаться в изучение языка, а также делиться знаниями и опытом друг с другом. Это также поможет выработать в себе навык командной работы. Времена "вольных художников" подошли к концу. Практически везде, вам придется работать в команде.
Про английский язык
- Большинство проблем проще искать на английском языке, но если ваш текущий уровень владения им не очень высокий - не мучайте себя. Так вы можете слишком быстро потерять мотивацию и разочароваться. Большинство проблем на первых порах, с которыми вы столкнетесь, спокойно можно отыскать и на русском языке.
- Если чувствуете, что ваш английский слабоват - то лучше начните его изучение с более простых и приятных вещей: сериалы, видеоигры, художественные книги, новостные сайты или статьи на интересующие вас темы. За несколько месяцев можно значительно улучшить навыки восприятия информации на английском языке.