mirror of
https://github.com/salmer/CppDeveloperRoadmap.git
synced 2025-12-17 04:24:39 +03:00
52 lines
9.3 KiB
Markdown
52 lines
9.3 KiB
Markdown
# Pre-Junior C++
|
||
|
||
## Кто это?
|
||
|
||
Это человек, который освоил синтаксис языка и способен написать несложную программу без использования сторонних библиотек. Программа способна выполнять различные действия, например:
|
||
- выполняет арифметические вычисления
|
||
- взаимодействует с файлами: чтение и запись
|
||
- ожидает ввод данных с клавиатуры
|
||
- выводит результаты работы и иные данные данные в консольное окно
|
||
- и т.д.
|
||
|
||
|
||
## Что ожидается по умению написания кода?
|
||
|
||
- Способность создать и собрать небольшой рабочий проект на C++ при помощи одной из IDE: Visual Studio, Qt Creator и т.д.
|
||
- Умение пользоваться отладчиком при помощи IDE
|
||
- Понимание процесса компиляции и сборки программы на C++
|
||
- Способность написать приложение, содержащее арифметические или логические операции и алгоритмы, условия и циклы
|
||
- Умение написать приложение по работе со стандартным потоком ввода/вывода;
|
||
- Умение работать с указателями и ссылками
|
||
- Знание из какого вида памяти состоит приложение
|
||
- Базовое понимание ООП в рамках C++: наследование, полиморфизм, инкапсуляция
|
||
|
||
|
||
## Что ожидается по общим навыкам?
|
||
|
||
- Желание учиться и впитывать новые знания
|
||
- Желание разбираться в возникающих проблемах
|
||
- Умение составить запрос на русском языке, чтобы найти ответ на проблему в поисковике или соответствующей литературе
|
||
|
||
## Рекомендации и советы
|
||
|
||
### Про обучение
|
||
- Не существует "серебряной пули", которая поможет вам выучить C++ за день/неделю/месяц. Будьте готовы к продолжительной самостоятельной работе по изучению материала из различных источников, прежде чем вы сможете пройти собеседование, и получить свой первый оффер.
|
||
- Если чувствуете, что не понимаете какую-то тему, поищите альтернативные источники.
|
||
- Практика и только практика даст вам возможность освоить C++! Без регулярного написания кода, большая часть того, что вы прочитаете или услышите - забудется.
|
||
- Не пытайтесь писать идеальный код. Ваша основная задача - написание много РАБОЧЕГО кода, который делает ровно то, что от вас требуется. Вы должны научиться "общаться" с компьютером. Это сродни изучению иностранных языков. Сначала вы говорите много и небрежно, но со временем ваш навык оттачивается, начинаете лучше чувствовать грамматику, увеличиваете свой словарный запас и т.д.
|
||
- Не хватайтесь сразу за большую задачу, например: "написать свою игру". Скорее всего вам не хватит знаний и опыта на первых порах, чтобы осилить задачу в одиночку. Такого рода путь быстро демотивирует, что в итоге может привести к разочарованию в себе и своих спосбностях. В итоге вы забросите свое обучение. Идите по пути "от простого к сложному", постепенно придумывая себе все более сложные задачки.
|
||
- На первых порах не стоит концентрироваться на таких ресурсах, как Leetcode или CodeWars. Цель этих порталов - отработать навыки применения классических алгоритмов и структур данных. Эти площадки спроектированы таким образом, чтобы максимально огородить вас от нюансов языков программирования. На первых порах это не принесет вам особой пользы, лучше сконцентрируйтесь на самом языке и его возможностях.
|
||
|
||
### Про мотивацию
|
||
- Учитесь в своем ритме, а также в любом возрасте! Не ведитесь на истории: "я программирую с пеленок", "паяльником владею с яслей", "вывожу из запоя/снимаю порчу при помощи ассемблера". Большинство подобных историй - это [систематическая ошибка выжившего](https://ru.wikipedia.org/wiki/Систематическая_ошибка_выжившего) или попытка потешить свое самолюбие за ваш счет. У вас достаточно способностей, чтобы научиться программированию, в том числе с нуля, в том числе и на C++!
|
||
- Большинство проблем, с которыми вы столкнетесь, скорее всего уже решены до вас. Если вы не можете найти ответ в интернете, попробуйте переформулировать запрос иным образом. Рано или поздно вы придете к правильному ответу. Если после этого ответа так и нет, то попробуйте решить задачу более простым путем.
|
||
- Помните, вы должны изучать язык, а не бороться с рабочим окружением на первых порах. Борьба с окружением может вас привести к полному разочарованию и потере мотивации.
|
||
- Помните, что многие опытные разработчики тоже встречают проблемы и застревают в "очевидных" местах. Просто возьмите паузу, позанимайтесь чем-то другим, а через какое-то время возвращайтесь к задаче.
|
||
- Найдите единомышленников, которые также начинают свой путь. Так вам будет интереснее погружаться в изучение языка, а также делиться знаниями и опытом друг с другом. Это также поможет выработать в себе навык командной работы. Времена "вольных художников" подошли к концу. Практически везде вам придется работать в команде.
|
||
- Попробуйте также найти себе опытного ментора. Под его руководством вы сможете избежать различные ловушки и потерю времени на них.
|
||
|
||
### Про английский язык
|
||
- Большинство проблем проще искать на английском языке, но если текущий уровень владения не очень высокий - не мучайте себя. Так вы можете быстро потерять мотивацию и разочароваться. Большая часть проблем в начале пути, с которыми вы столкнетесь, спокойно можно отыскать и на русском языке.
|
||
- Если чувствуете, что ваш английский слабоват, то лучше начните его изучение с более простых и приятных вещей: сериалы, видеоигры, художественные книги, новостные сайты или статьи на интересующие темы. За несколько месяцев можно значительно улучшить навыки восприятия информации на английском языке.
|