mirror of
https://github.com/salmer/CppDeveloperRoadmap.git
synced 2025-12-17 12:34:37 +03:00
Added "go back buttons" in russian articles
This commit is contained in:
@@ -8,3 +8,6 @@
|
|||||||
- [Олимпиадное программирование](https://academy.yandex.ru/posts/sport-dlya-razrabotchikov-kak-ustroeno-olimpiadnoe-programmirovanie)
|
- [Олимпиадное программирование](https://academy.yandex.ru/posts/sport-dlya-razrabotchikov-kak-ustroeno-olimpiadnoe-programmirovanie)
|
||||||
- [What Can You Do With C++?](https://www.ko2.co.uk/what-can-you-do-with-c-plus-plus/)
|
- [What Can You Do With C++?](https://www.ko2.co.uk/what-can-you-do-with-c-plus-plus/)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На главную страницу**](README.md)
|
||||||
|
|||||||
@@ -47,3 +47,7 @@
|
|||||||
- [Андрей Созыкин - Компьютерные сети. Базовый курс](https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiNMvYbOzCmWy6cRzYAh9B1)
|
- [Андрей Созыкин - Компьютерные сети. Базовый курс](https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiNMvYbOzCmWy6cRzYAh9B1)
|
||||||
|
|
||||||
Прекрасный курс видеолекций по компьютерным сетям. За основу взяты книги Таненбаума и других классиков по теме. В большинстве проектов этих знаний будет достаточно, чтобы не совершать очевидных ошибок при работе с сетями. Для более глубокого погружения в тему вы можете ознакомиться с книгами Таненбаума или других авторов, или же посмотреть другие курсы на канале Андрея.
|
Прекрасный курс видеолекций по компьютерным сетям. За основу взяты книги Таненбаума и других классиков по теме. В большинстве проектов этих знаний будет достаточно, чтобы не совершать очевидных ошибок при работе с сетями. Для более глубокого погружения в тему вы можете ознакомиться с книгами Таненбаума или других авторов, или же посмотреть другие курсы на канале Андрея.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На предыдущую страницу**](Overview.md) | [**На главную страницу**](../README.md)
|
||||||
@@ -77,3 +77,7 @@
|
|||||||
- [Олифер Виктор - Компьютерные сети. Принципы, технологии, протоколы](https://www.ozon.ru/product/kompyuternye-seti-printsipy-tehnologii-protokoly-olifer-viktor-grigorevich-olifer-211432410)
|
- [Олифер Виктор - Компьютерные сети. Принципы, технологии, протоколы](https://www.ozon.ru/product/kompyuternye-seti-printsipy-tehnologii-protokoly-olifer-viktor-grigorevich-olifer-211432410)
|
||||||
|
|
||||||
Ещё одна замечательная книга по основам компьютерных сетей. В каких-то моментах подача информации может показаться чуть сложнее, по сравнению с работой Таненбаума. Потому рекомендуем выбрать ту книгу, повествование которой больше подходит именно для вас.
|
Ещё одна замечательная книга по основам компьютерных сетей. В каких-то моментах подача информации может показаться чуть сложнее, по сравнению с работой Таненбаума. Потому рекомендуем выбрать ту книгу, повествование которой больше подходит именно для вас.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На предыдущую страницу**](Overview.md) | [**На главную страницу**](../README.md)
|
||||||
@@ -6,3 +6,7 @@
|
|||||||
- [Junior](Junior.md)
|
- [Junior](Junior.md)
|
||||||
- [Middle](Middle.md)
|
- [Middle](Middle.md)
|
||||||
- [Senior](Senior.md)
|
- [Senior](Senior.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На главную страницу**](../README.md)
|
||||||
|
|||||||
@@ -44,4 +44,8 @@
|
|||||||
|
|
||||||
- [MSDN](https://docs.microsoft.com/ru-ru/cpp/build/vscpp-step-0-installation?view=msvc-160)
|
- [MSDN](https://docs.microsoft.com/ru-ru/cpp/build/vscpp-step-0-installation?view=msvc-160)
|
||||||
|
|
||||||
Если вы начинаете изучать язык самостоятельно, то рекомендуем вести разработку первых программ или выполнять упражнения в IDE: Microsoft Visual Studio (Community Edition). На сегодняшний день, это маскимально дружелюбная IDE к новичкам, как в установке, так и в использовании (и при этом абсолютно бесплатно!). Это позволит максимально сконцентрироваться на изучении языка, а не на борьбе с рабочим окружением. На сайте вы найдете небольшой учебник, который расскажет: как установить Visual Studio, создать первый консольный проект и написать первое приложение:
|
Если вы начинаете изучать язык самостоятельно, то рекомендуем вести разработку первых программ или выполнять упражнения в IDE: Microsoft Visual Studio (Community Edition). На сегодняшний день, это маскимально дружелюбная IDE к новичкам, как в установке, так и в использовании (и при этом абсолютно бесплатно!). Это позволит максимально сконцентрироваться на изучении языка, а не на борьбе с рабочим окружением. На сайте вы найдете небольшой учебник, который расскажет: как установить Visual Studio, создать первый консольный проект и написать первое приложение.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На предыдущую страницу**](Overview.md) | [**На главную страницу**](../README.md)
|
||||||
@@ -53,3 +53,7 @@
|
|||||||
- [Крис Ричардсон - Микросервисы. Паттерны разработки и рефакторинга](https://www.ozon.ru/product/mikroservisy-patterny-razrabotki-i-refaktoringa-211432697)
|
- [Крис Ричардсон - Микросервисы. Паттерны разработки и рефакторинга](https://www.ozon.ru/product/mikroservisy-patterny-razrabotki-i-refaktoringa-211432697)
|
||||||
|
|
||||||
Книга концентрируется на современном архитектурном подходе проектирования систем - микросервисы. Это работа повествует о том, как произвести последовательную трансформацию приложения из "монолитного" состояния в набор микросервисов. Содержит в себе набор паттернов, а также советы по рефакторингу существующего кода, чтобы наиболее эффективно произвести данную процедуру.
|
Книга концентрируется на современном архитектурном подходе проектирования систем - микросервисы. Это работа повествует о том, как произвести последовательную трансформацию приложения из "монолитного" состояния в набор микросервисов. Содержит в себе набор паттернов, а также советы по рефакторингу существующего кода, чтобы наиболее эффективно произвести данную процедуру.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На предыдущую страницу**](Overview.md) | [**На главную страницу**](../README.md)
|
||||||
@@ -36,3 +36,7 @@
|
|||||||
- [Путеводитель C++ программиста по неопределенному поведению](https://github.com/Nekrolm/ubbook)
|
- [Путеводитель C++ программиста по неопределенному поведению](https://github.com/Nekrolm/ubbook)
|
||||||
- [Коллекция библиотек и фреймворков для C++](https://github.com/fffaraz/awesome-cpp)
|
- [Коллекция библиотек и фреймворков для C++](https://github.com/fffaraz/awesome-cpp)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На главную страницу**](README.md)
|
||||||
|
|
||||||
|
|||||||
@@ -17,3 +17,7 @@
|
|||||||
Потому не бойтесь изучать его!
|
Потому не бойтесь изучать его!
|
||||||
|
|
||||||
Удачи!
|
Удачи!
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На главную страницу**](README.md)
|
||||||
@@ -27,3 +27,7 @@
|
|||||||
- Не закапывайтесь в задачу слишком долго. Если после нескольких вариантов нет сдвига, тут же обращайтесь к коллегам за помощью. Они рассчитывают, что задача будет вами решена в разумные сроки. Ваша основная цель - решать проблемы, а не создавать их для команды.
|
- Не закапывайтесь в задачу слишком долго. Если после нескольких вариантов нет сдвига, тут же обращайтесь к коллегам за помощью. Они рассчитывают, что задача будет вами решена в разумные сроки. Ваша основная цель - решать проблемы, а не создавать их для команды.
|
||||||
- При возникновении сложностей старайтесь попробовать найти парочку возможных решений самостоятельно, а затем подходите к своему наставнику. Ваш наставник подкорректирует ваши варианты решения или дополнит их.
|
- При возникновении сложностей старайтесь попробовать найти парочку возможных решений самостоятельно, а затем подходите к своему наставнику. Ваш наставник подкорректирует ваши варианты решения или дополнит их.
|
||||||
- Многие джуны попадают в распространенную ловушку: чем больше строк кода написано, тем они круче как разработчики. Не попадайтесь в неё! Помните, что чем больше кода написано, тем выше вероятность ошибки. В идеале код должен быть написан так, чтобы при возвращении к нему через полгода, вы быстро могли вспомнить что он делает. Хороший разработчик не тот, кто пишет много кода. Хороший разработчик ведет себя как самурай: наносит один точный и смертельный удар, а не бессмысленно машет мечом, чтобы попасть по врагу.
|
- Многие джуны попадают в распространенную ловушку: чем больше строк кода написано, тем они круче как разработчики. Не попадайтесь в неё! Помните, что чем больше кода написано, тем выше вероятность ошибки. В идеале код должен быть написан так, чтобы при возвращении к нему через полгода, вы быстро могли вспомнить что он делает. Хороший разработчик не тот, кто пишет много кода. Хороший разработчик ведет себя как самурай: наносит один точный и смертельный удар, а не бессмысленно машет мечом, чтобы попасть по врагу.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На предыдущую страницу**](Overview.md) | [**На главную страницу**](../README.md)
|
||||||
|
|||||||
@@ -41,3 +41,7 @@
|
|||||||
### Про опыт
|
### Про опыт
|
||||||
- Основная ловушка для многих мидлов: фанбойство по технологиям, фреймворкам, внедрением паттернов или подходам к разработке. Постарайтесь прагматично подходить к выполнению задач на проекте. Не нужно пытаться затянуть все последние новинки, только чтобы поиграться с ними или ради строчки в резюме. На этом этапе очень велик соблазн проявить свое мастерство через обилие технологий или оверинжиниринг.
|
- Основная ловушка для многих мидлов: фанбойство по технологиям, фреймворкам, внедрением паттернов или подходам к разработке. Постарайтесь прагматично подходить к выполнению задач на проекте. Не нужно пытаться затянуть все последние новинки, только чтобы поиграться с ними или ради строчки в резюме. На этом этапе очень велик соблазн проявить свое мастерство через обилие технологий или оверинжиниринг.
|
||||||
- Если вы действительно считаете, что проекту нужна новая библиотека или фреймворк - обсудите это с синьором/тимлидом. Предложите им попробовать создать прототип, где сможете проверить их в действии прежде чем втягивать в проект. Пожалуйста, никогда не втягивайте их в обход всей команды или втихаря! Для вас - это развлечение, но для проекта/тимлида это станет головной болью в будущем, т.к. это повысит стоимость поддержки проекта и принесёт неожиданные проблемы.
|
- Если вы действительно считаете, что проекту нужна новая библиотека или фреймворк - обсудите это с синьором/тимлидом. Предложите им попробовать создать прототип, где сможете проверить их в действии прежде чем втягивать в проект. Пожалуйста, никогда не втягивайте их в обход всей команды или втихаря! Для вас - это развлечение, но для проекта/тимлида это станет головной болью в будущем, т.к. это повысит стоимость поддержки проекта и принесёт неожиданные проблемы.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На предыдущую страницу**](Overview.md) | [**На главную страницу**](../README.md)
|
||||||
|
|||||||
@@ -25,3 +25,7 @@
|
|||||||
|
|
||||||
- [Senior C++](Senior.md)
|
- [Senior C++](Senior.md)
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На главную страницу**](../README.md)
|
||||||
|
|
||||||
|
|||||||
@@ -41,3 +41,7 @@
|
|||||||
### Про английский язык
|
### Про английский язык
|
||||||
- Большинство проблем проще искать на английском языке, но если текущий уровень владения не очень высокий - не мучайте себя. Так вы можете быстро потерять мотивацию и разочароваться. Большая часть проблем в начале пути, с которыми вы столкнетесь, спокойно можно отыскать и на русском языке.
|
- Большинство проблем проще искать на английском языке, но если текущий уровень владения не очень высокий - не мучайте себя. Так вы можете быстро потерять мотивацию и разочароваться. Большая часть проблем в начале пути, с которыми вы столкнетесь, спокойно можно отыскать и на русском языке.
|
||||||
- Если чувствуете, что ваш английский слабоват, то лучше начните его изучение с более простых и приятных вещей: сериалы, видеоигры, художественные книги, новостные сайты или статьи на интересующие темы. За несколько месяцев можно значительно улучшить навыки восприятия информации на английском языке.
|
- Если чувствуете, что ваш английский слабоват, то лучше начните его изучение с более простых и приятных вещей: сериалы, видеоигры, художественные книги, новостные сайты или статьи на интересующие темы. За несколько месяцев можно значительно улучшить навыки восприятия информации на английском языке.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На предыдущую страницу**](Overview.md) | [**На главную страницу**](../README.md)
|
||||||
|
|||||||
@@ -20,3 +20,7 @@
|
|||||||
## Рекомендации и советы
|
## Рекомендации и советы
|
||||||
|
|
||||||
В зависимости от специфики компании и от ваших желаний путь дальнейшего развития лежит либо в освоении новых технологий и технических навыков, требующихся в выбранной вами области знаний (например, специальные разделы математики, физика и т.д. - путь технического эксперта), либо в область управления и взаимодействия с людьми (техлид, тимлид, ПМ и т.д.). Choose wisely. 🙂
|
В зависимости от специфики компании и от ваших желаний путь дальнейшего развития лежит либо в освоении новых технологий и технических навыков, требующихся в выбранной вами области знаний (например, специальные разделы математики, физика и т.д. - путь технического эксперта), либо в область управления и взаимодействия с людьми (техлид, тимлид, ПМ и т.д.). Choose wisely. 🙂
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На предыдущую страницу**](Overview.md) | [**На главную страницу**](../README.md)
|
||||||
|
|||||||
@@ -33,3 +33,7 @@ C++ развивается ровно так же, как и все осталь
|
|||||||
- Помните, что многие опытные разработчики тоже встречают проблемы и застревают в "очевидных" местах. Просто возьмите паузу, позанимайтесь чем-нибудь другим, а через какое-то время возвращайтесь к задаче.
|
- Помните, что многие опытные разработчики тоже встречают проблемы и застревают в "очевидных" местах. Просто возьмите паузу, позанимайтесь чем-нибудь другим, а через какое-то время возвращайтесь к задаче.
|
||||||
- Найдите единомышленников, которые тоже начинают свой путь обучения. Так вам будет интереснее погружаться в изучение языка вместе, а также делиться знаниями и опытом друг с другом. Это также поможет выработать навык командной работы. Времена "вольных художников" подошли к концу. Практически везде вам придется работать в команде.
|
- Найдите единомышленников, которые тоже начинают свой путь обучения. Так вам будет интереснее погружаться в изучение языка вместе, а также делиться знаниями и опытом друг с другом. Это также поможет выработать навык командной работы. Времена "вольных художников" подошли к концу. Практически везде вам придется работать в команде.
|
||||||
- Попробуйте найти себе опытного ментора. Под его руководством вы сможете избежать различные типовые ловушки и потерю времени на них.
|
- Попробуйте найти себе опытного ментора. Под его руководством вы сможете избежать различные типовые ловушки и потерю времени на них.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На главную страницу**](README.md)
|
||||||
|
|||||||
@@ -50,3 +50,7 @@
|
|||||||
## C++ - это сплошной легаси-код
|
## C++ - это сплошной легаси-код
|
||||||
|
|
||||||
Отчасти правдивый миф, но стоит отметить, что это применимо и к другим языкам. На самом современном стеке может производиться жуткое "легаси" руками разработчиков. Качество кода зависит от технической культуры команды и её визионеров, т.к. в большей степени легаcи-код порождается человеческим фактором: уровень разработчика и компетенций, отношение к работе, горящие сроки и т.п. На текущий момент на C++ разработано огромное количество систем, которые не первый год работают в режиме 24/7. Такие системы могли быть написаны в прошлом без соблюдения всевозможных практик разработки. Они часто являются основой бизнеса, которые приносят значительную часть прибыли. Потому проводить в таких системах масштабные изменения довольно рискованно. Разработчики работают с таким кодом предельно осторожно. Но не стоит думать, что с этим ничего не сделать. Постепенно такие системы переписываются с использованием современных практик и технологий. Такого рода задачи могут стать для вас не менее интересным вызовом, т.к. предоставляют отличную возможность освоить широкий спектр компетенций: чтение кода, реверс-инженеринг, написание тестов, проектирование архитектуры ПО, автоматизация, сбор требований и т.д.
|
Отчасти правдивый миф, но стоит отметить, что это применимо и к другим языкам. На самом современном стеке может производиться жуткое "легаси" руками разработчиков. Качество кода зависит от технической культуры команды и её визионеров, т.к. в большей степени легаcи-код порождается человеческим фактором: уровень разработчика и компетенций, отношение к работе, горящие сроки и т.п. На текущий момент на C++ разработано огромное количество систем, которые не первый год работают в режиме 24/7. Такие системы могли быть написаны в прошлом без соблюдения всевозможных практик разработки. Они часто являются основой бизнеса, которые приносят значительную часть прибыли. Потому проводить в таких системах масштабные изменения довольно рискованно. Разработчики работают с таким кодом предельно осторожно. Но не стоит думать, что с этим ничего не сделать. Постепенно такие системы переписываются с использованием современных практик и технологий. Такого рода задачи могут стать для вас не менее интересным вызовом, т.к. предоставляют отличную возможность освоить широкий спектр компетенций: чтение кода, реверс-инженеринг, написание тестов, проектирование архитектуры ПО, автоматизация, сбор требований и т.д.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На главную страницу**](README.md)
|
||||||
@@ -66,3 +66,7 @@
|
|||||||
* Библиотека линейной алгебры: матрицы, вектора, действия с ними
|
* Библиотека линейной алгебры: матрицы, вектора, действия с ними
|
||||||
* Моделирование различных процессов: физика, теоретическая механика и т.д.
|
* Моделирование различных процессов: физика, теоретическая механика и т.д.
|
||||||
* Применение численных методов: интегрирование, дифференцирование, аппроксимация, интерполяция и т.д.
|
* Применение численных методов: интегрирование, дифференцирование, аппроксимация, интерполяция и т.д.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На главную страницу**](README.md)
|
||||||
@@ -9,3 +9,7 @@ C++ активно используется во многих коммерчес
|
|||||||
Данная дорожная карта пытается заполнить образовавшуюся пустоту. Идея создания возникла после большого количества интервью с неопытными кандидатами, на позицию разработчика C++. Их объединяли общие черты: пробелы в базовых знаниях и непонимание каким образом изучать язык, откуда черпать знания.
|
Данная дорожная карта пытается заполнить образовавшуюся пустоту. Идея создания возникла после большого количества интервью с неопытными кандидатами, на позицию разработчика C++. Их объединяли общие черты: пробелы в базовых знаниях и непонимание каким образом изучать язык, откуда черпать знания.
|
||||||
|
|
||||||
Также карта может пригодиться и тем, кто уже практикует какое-то время использование C++ в личных и рабочих проектах. Она может помочь вам понять каких знаний не хватает для того, чтобы углубить уровень владения языком, а также стать высококлассным специалистом.
|
Также карта может пригодиться и тем, кто уже практикует какое-то время использование C++ в личных и рабочих проектах. Она может помочь вам понять каких знаний не хватает для того, чтобы углубить уровень владения языком, а также стать высококлассным специалистом.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На главную страницу**](README.md)
|
||||||
@@ -16,3 +16,7 @@
|
|||||||
Вам помогут фундаментальные знания, такие как: понимание процедурной/ООП/иных парадигм или других знаний общего характера. Но полностью на них полагаться не стоит. Наиболее распространенный случай в котором часто оказываются новички: попытка писать на C++ в парадигмах другого языка. Пример подобной ловушки у разработчиков на Си: писать на C++ в процедурном стиле или "Си с классами".
|
Вам помогут фундаментальные знания, такие как: понимание процедурной/ООП/иных парадигм или других знаний общего характера. Но полностью на них полагаться не стоит. Наиболее распространенный случай в котором часто оказываются новички: попытка писать на C++ в парадигмах другого языка. Пример подобной ловушки у разработчиков на Си: писать на C++ в процедурном стиле или "Си с классами".
|
||||||
|
|
||||||
C++ очень богат на идеи и подходы написания кода. Потому рекомендуется начать языка изучение с чистой головой. Подойдите к изучению языка основательно и разберитесь в его идеях. Это поможет вам эффективно использовать язык в рабочих задачах. Знание других языков поможет сравнивать их друг с другом и обнаруживать сильные/слабые стороны.
|
C++ очень богат на идеи и подходы написания кода. Потому рекомендуется начать языка изучение с чистой головой. Подойдите к изучению языка основательно и разберитесь в его идеях. Это поможет вам эффективно использовать язык в рабочих задачах. Знание других языков поможет сравнивать их друг с другом и обнаруживать сильные/слабые стороны.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На главную страницу**](README.md)
|
||||||
@@ -167,3 +167,6 @@
|
|||||||
|
|
||||||
Кроссплатформенный и высокоэффективный клиент для Windows, Linux, MacOS. Поддерживает интеграцию с GitHub, Bitbucket и Gitlab, а также весь необходимый функционал для повседневной работы: изучение истории изменений, прием/отправка изменений, переключение между ветками, встроенный редактор разрешения конфликтов и т.д.
|
Кроссплатформенный и высокоэффективный клиент для Windows, Linux, MacOS. Поддерживает интеграцию с GitHub, Bitbucket и Gitlab, а также весь необходимый функционал для повседневной работы: изучение истории изменений, прием/отправка изменений, переключение между ветками, встроенный редактор разрешения конфликтов и т.д.
|
||||||
|
|
||||||
|
---
|
||||||
|
|
||||||
|
[**На главную страницу**](README.md)
|
||||||
Reference in New Issue
Block a user