Split Books for dedicated Grades

This commit is contained in:
Evgeny Melnikov
2021-10-10 19:48:34 +03:00
parent 6584d0ea0a
commit e2fe314762
5 changed files with 129 additions and 131 deletions

136
Books.md
View File

@@ -1,134 +1,8 @@
# Книги и материалы
Здесь собраны книги, которые помогут вам сориентироваться, и задать свой вектор обучения. Все книги поделены на несколько разделов, которые касаются различных навыков. Рекомендуем вам обзорно посмотреть каждый раздел, согласно желаемому грейду, и подобрать набор литературы под себя.
В данных статьях обраны книги, которые помогут вам сориентироваться, и задать свой вектор обучения. Все книги поделены на несколько разделов, которые касаются различных навыков. Рекомендуем вам обзорно посмотреть каждый раздел, согласно желаемому грейду, и подобрать набор литературы под свои нужды.
## Pre-Junior
### Мотивация и опыт
- [Фаулер Чед - Программист-фанатик](https://www.ozon.ru/product/programmist-fanatik-32218784/?asb=ccybIdrVOtKbfO3XYxD6qZu%252BqA4iy4P%252BHkGUikETAiA%253D&asb2=cy4OBlq-08U5_VqkoPsv0ezJyaKuhUMmccxNvr2bH8A&keywords=%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82+%D1%84%D0%B0%D0%BD%D0%B0%D1%82%D0%B8%D0%BA&sh=etF_rKzq)
Эту книгу можно считать признанной классикой в мире разработки, в которой Чед Фаулер пытается поделиться своим видением: как стать высококлассным, востребованным специалистом и оставаться на гребне волны.
### Computer Science
- [Фило Владстон Феррейра - Теоретический минимум по Computer Science](https://www.ozon.ru/product/teoreticheskiy-minimum-po-computer-science-vse-chto-nuzhno-programmistu-i-razrabotchiku-144946027/?sh=1zjF0Mqn)
Обзорная книга, которая рассказывает о различных направлениях Computer Science: математический аппарат, обзор алгоритмом, базы данных, устройство компьютера и т.д. Она может стать хорошей отправной точкой, чтобы подыскать интересующие направления и расставить приоритеты для себя.
- [Чарльз Петцольд - Код. Тайный язык информатики](https://www.ozon.ru/context/detail/id/125884/)
Прежде чем начать изучение языка, рекомендуем почитать данную книгу. Она расскажет простым языком о том как устроен компьютер, как он работает на физическом уровне. Здесь отсутствуют какие-либо сложные технические или академические детали. Книга содержит в себе основы основ, которые вряд ли в скором времени потеряют свою актуальность. Это поможет вам лучше понять фундаментальные идеи языка C++ позднее. Является отличным дополнением к предыдущей книге, т.к. глубже раскрывает устройство компьютера.
- [Адитья Бхаргава - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих](https://www.ozon.ru/product/grokaem-algoritmy-illyustrirovannoe-posobie-dlya-programmistov-i-lyubopytstvuyushchih-139296295/?sh=MERnHW_O)
Отличное вводное пособие в мир алгоритмов. Написано легким языком, который поймет большинство новичков. Также есть немного практических задач, чтобы попробовать написать свои первые алгоритмы.
### C++
- [Липпман Стенли - Язык программирования C++. Базовый курс](https://www.ozon.ru/product/yazyk-programmirovaniya-c-bazovyy-kurs-147417585/?sh=QOX3qGug)
Отличное дополнение к книге Стивена Праты. К ней хорошо обращаться параллельно с предыдущей. Рекомендуем вам сами найти баланс между двумя книгами, т.к. информация подается по-разному, и шанс понять ту или иную тему у вас повысится.
- [Стивен Прата - Язык программирования 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++. Не требует наличия каких-то специфичных знаний, а также имеет набор упражнений к каждой главе. Они помогут вам отработать и понять фундаментальные возможности языка.
- В дополнение к учебнику можно порекомендовать следующие видео от лекторов МФТИ:
- Илья Мещерин: [Курс лекций по C++](https://www.youtube.com/playlist?list=PL4_hYwCyhAvY2dY_tnTv3-TJThzcloCvM)
- Тимофей Хирьянов:
- [Лекции C++](https://www.youtube.com/playlist?list=PLRDzFCPr95fItmofHO4KuGjfGtbQtEj-x)
- [Алгоритмы и структуры данных на C++](https://www.youtube.com/playlist?list=PLRDzFCPr95fL_5Xvnufpwj2uYZnZBBnsr)
### Технические навыки
- [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, создать первый консольный проект и написать первое приложение:
## Junior
### Мотивация и опыт
- [Роберт Мартин - Идеальный программист](https://www.ozon.ru/product/idealnyy-programmist-kak-stat-professionalom-razrabotki-po-martin-robert-k-211433126/?asb=z4%252BBD7UDRGAKgK5PMnilay5QBkwvjGXgnMhfF1fAOWM%253D&asb2=Gvhxd5LT0NA_AobRO1muUz0icHnQ6j-JL2zxEOH1wzQ&keywords=%D0%B8%D0%B4%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82&sh=6BDpuJeM)
Дядюшка Боб вывел набор советов и рекомендаций, которые помогут вам выжить в индустрии. Эта книга не только про технические навыки, но и про психологические аспекты работы, и как справляться с ними.
- [Роберт Мартин - Чистый код. Создание, анализ и рефакторинг](https://www.ozon.ru/product/chistyy-kod-sozdanie-analiz-i-refaktoring-chistyy-kod-sozdanie-analiz-i-refaktoring-142429922/?sh=awbarJsR)
Сегодня вокруг этой книги витает все больше и больше критики. Тем не менее мы считаем, что она принесет новичкам больше пользы, нежели чем вреда, в краткосрочной перспективе. Эта книга даст набор рабочих рекомендаций, которые помогут писать более структурированный, читаемый и поддерживаемый код. Как и с любым другим знанием, его не нужно слепо превращать в карго-культ. Используйте знания с умом. Подберите для себя те техники и приемы из книги, которые считаете разумными.
- [Стив Макконнелл - Совершенный код. Мастер-класс](https://www.ozon.ru/product/sovershennyy-kod-master-klass-138437220/?sh=dxL38m9c)
Не смотря на почтенный возраст книги, её можно считать библией разработчика. Она системно описывает устройство индустрии, а также дает массу советов: каким образом расти и развиваться, чтобы стать эффективным специалистом.
### Computer Science
- [Томас Кормен - Алгоритмы. Вводный курс](https://www.ozon.ru/product/algoritmy-vvodnyy-kurs-24903185/?sh=oABFs2sD)
Хорошее продолжение после "Грокаем алгоритмы". Книга знакомит с базовыми распространенными алгоритмами сортировок, работы со списками и т.д., но на более глубоком уровне. Все ещё написана довольно простым языком, потому она может помочь подготовиться к глубокому погружению в алгоритмы.
### C++
- [Скотт Мейерс - Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ](https://www.ozon.ru/product/effektivnoe-ispolzovanie-c-55-vernyh-sovetov-uluchshit-strukturu-i-kod-vashih-programm-2610625/?sh=VdYASWTH)
Отличный сборник практических рекомендаций по использованию различных языковых средств C++. Данная книга написана во времена стандарта C++03, но ценность информации по-прежнему остается актуальной. Все рекомендации, техники и советы, описанные в книге, масштабируются и активно переиспользуются в новых стандартах языка.
- [Александреску Андрей, Саттер Герб - Стандарты программирования на С++](https://www.ozon.ru/product/standarty-programmirovaniya-na-s-2381848/?sh=SUs05K52)
Небольшая книга, которая описывает общепринятые практики и правила написания кода в коммерческих проектах. Данная книга - это агрегация правил из многих компаний. Данная работа стала прообразом сайта: [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines). Тем не менее рекомендуем прочитать данную книгу, т.к. она довольно короткая и даст вам общее представление, какие правила написания кода распространены во многих проектах.
### Технические навыки
- [Фримен Эрик, Робсон Элизабет - Head First. Паттерны проектирования](https://www.ozon.ru/product/head-first-patterny-proektirovaniya-obnovlennoe-yubileynoe-izdanie-144233005/?sh=VWSHgt2E)
Отличная книга для начала изучения паттернов проектирования. В качестве неплохой альтернативы можем также предложить сайт [refactoring.guru](https://refactoring.guru/design-patterns), но в данной книге также имеется масса практических заданий, которые помогут вам лучше усвоить идеи паттернов и в каких случаях их применять.
- [Андрей Созыкин - Компьютерные сети. Базовый курс](https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiNMvYbOzCmWy6cRzYAh9B1)
Прекрасный курс видеолекций по компьютерным сетям. За основу взяты книги Таненбаума и других классиков по теме. В большинстве проектов этих знаний будет достаточно, чтобы не совершать очевидных ошибок при работе с сетями. Для более глубокого погружения в тему вы можете ознакомиться с книгами Таненбаума или других авторов, или же посмотреть другие курсы на канале Андрея.
## Middle
### C++
- [Скотт Мейерс - Эффективный и современный С++. 42 рекомендации по использованию C++11 и C++14](https://www.ozon.ru/product/effektivnyy-i-sovremennyy-s-42-rekomendatsii-po-ispolzovaniyu-c11-i-c14-effektivnyy-i-sovremennyy-34747131/?sh=CHL5ECEP)
Продолжение предыдущей книги Скотта Мейерса. Сборник советов для работы с новыми стандартами C++11 и C++14.
- [Параллельное программирование на С++ в действии. Практика разработки многопоточных программ](https://www.ozon.ru/product/parallelnoe-programmirovanie-na-s-v-deystvii-praktika-razrabotki-mnogopotochnyh-programm-217051361/?asb=uff2kmWPtH7totJyGfGyYsPFkTR%252BIxeTdrNvGvZlqzc%253D&asb2=L78tfqOpsfrZsUEmgaZ9kZgbmpv4Jyn9UhBcKxIEO3Q&keywords=%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5+%D0%BD%D0%B0+C%2B%2B&sh=nq_ppy1R)
Отличное руководство по многопоточному программированию в составе стандартной библиотеки C++. Представлено подробное описание ко всем примитивам библиотеки. Также даются объяснения работы этих примитивов, скрытыми под абстракциями.
- [Герб Саттер - Решение сложных задач на С++](https://www.ozon.ru/product/reshenie-slozhnyh-zadach-na-s-1273200/?sh=gy2qlNpv) и [Герб Саттер - Новые сложные задачи на C++](https://www.ozon.ru/product/novye-slozhnye-zadachi-na-c-2342923/?sh=PpLM-a9C)
Сборники, которые описывают разнообразные задачи с точки зрения проектирования и написания кода. Предлагают коллекцию эффективных решений, многие из которых считаются уже классическими идиомами языка. Многие идиомы, представленные в книге, встречаются на проектах практически повсеместно.
- [Курт Гантерог - Оптимизация программ на C++](https://www.ozon.ru/product/optimizatsiya-programm-na-c-proverennye-metody-povysheniya-proizvoditelnosti-140145932/?sh=OlHzzZHG)
Хороший сборник советов и рекомендаций по улучшению производительности приложений на языке C++. Некоторые советы основаны на идиомах и конструкциях языка, описанных Гербом Саттером в предложенных книгах выше или Скоттом Майерсом. Потому рекомендуется её прочтение после знакомства с предыдущими книгами.
### Технические навыки
- [Джонсон Ральф, Хелм Ричард - Приемы объектно-ориентированного проектирования. Паттерны проектирования](https://www.ozon.ru/product/priemy-obektno-orientirovannogo-proektirovaniya-patterny-proektirovaniya-2457392/?sh=U_1tfTeu)
Классический справочник по паттернам проектирования. Каждый паттерн детально разбирается и предлагаются случаи, где они могут быть применены. Это книга будет отличным продолжением после "Паттернов проектирования" от Эрика Фримена. Будьте готовы, что читается она тяжелее, чем предыдущая.
- [Гэри Маклин Холл - Адаптивный код: гибкое кодирование с помощью паттернов проектирования и принципов SOLID](https://www.ozon.ru/product/adaptivnyy-kod-gibkoe-kodirovanie-s-pomoshchyu-patternov-proektirovaniya-i-printsipov-solid-142089791/?sh=yQeAC0en)
Одна из достойнейших книг, которая простым языком объясняет принципы SOLID. Примеры написаны на языке C#, но это не должно вызвать сложностей при их чтении, т.к. используется минималистичный набор инструкций языка.
- [Надежда Поликарпова, Анатолий Шалыто - Автоматное программирование](https://www.ozon.ru/product/avtomatnoe-programmirovanie-28260411/?sh=KMISCILZ)
Отличное описание того, как подходить к написанию программ посредством конечных автоматов. Наверно более простого и элегантного описания теории конечных автоматов и её практического применения сложно будет отыскать. Рекомендуем вам поизучать пару коммерческих работ, выполненных в описанной парадигме. Ссылки к исходному коду вы найдете в конце книги.
- [Ulrich Drepper - What Every Programmer Should Know About Memory](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf)
Хорошая обзорная статья, дающая представление о том, как устроена память компьютера и зачем она так устроена. Даёт как высокоуровневое представление, так и набрасывает низкоуровневых деталей, если есть желание в них углубляться.
## Senior
- Преисполняться в познании индустрии
- [PreJunior](Books/PreJuinor.md)
- [Junior](Books/Junior.md)
- [Middle](Books/Middle.md)
- [Senior](Books/Senior.md)

41
Books/Junior.md Normal file
View File

@@ -0,0 +1,41 @@
# Junior
## Мотивация и опыт
- [Роберт Мартин - Идеальный программист](https://www.ozon.ru/product/idealnyy-programmist-kak-stat-professionalom-razrabotki-po-martin-robert-k-211433126/?asb=z4%252BBD7UDRGAKgK5PMnilay5QBkwvjGXgnMhfF1fAOWM%253D&asb2=Gvhxd5LT0NA_AobRO1muUz0icHnQ6j-JL2zxEOH1wzQ&keywords=%D0%B8%D0%B4%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D1%8B%D0%B9+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82&sh=6BDpuJeM)
Дядюшка Боб вывел набор советов и рекомендаций, которые помогут вам выжить в индустрии. Эта книга не только про технические навыки, но и про психологические аспекты работы, и как справляться с ними.
- [Роберт Мартин - Чистый код. Создание, анализ и рефакторинг](https://www.ozon.ru/product/chistyy-kod-sozdanie-analiz-i-refaktoring-chistyy-kod-sozdanie-analiz-i-refaktoring-142429922/?sh=awbarJsR)
Сегодня вокруг этой книги витает все больше и больше критики. Тем не менее мы считаем, что она принесет новичкам больше пользы, нежели чем вреда, в краткосрочной перспективе. Эта книга даст набор рабочих рекомендаций, которые помогут писать более структурированный, читаемый и поддерживаемый код. Как и с любым другим знанием, его не нужно слепо превращать в карго-культ. Используйте знания с умом. Подберите для себя те техники и приемы из книги, которые считаете разумными.
- [Стив Макконнелл - Совершенный код. Мастер-класс](https://www.ozon.ru/product/sovershennyy-kod-master-klass-138437220/?sh=dxL38m9c)
Не смотря на почтенный возраст книги, её можно считать библией разработчика. Она системно описывает устройство индустрии, а также дает массу советов: каким образом расти и развиваться, чтобы стать эффективным специалистом.
## Computer Science
- [Томас Кормен - Алгоритмы. Вводный курс](https://www.ozon.ru/product/algoritmy-vvodnyy-kurs-24903185/?sh=oABFs2sD)
Хорошее продолжение после "Грокаем алгоритмы". Книга знакомит с базовыми распространенными алгоритмами сортировок, работы со списками и т.д., но на более глубоком уровне. Все ещё написана довольно простым языком, потому она может помочь подготовиться к глубокому погружению в алгоритмы.
## C++
- [Скотт Мейерс - Эффективное использование C++. 55 верных советов улучшить структуру и код ваших программ](https://www.ozon.ru/product/effektivnoe-ispolzovanie-c-55-vernyh-sovetov-uluchshit-strukturu-i-kod-vashih-programm-2610625/?sh=VdYASWTH)
Отличный сборник практических рекомендаций по использованию различных языковых средств C++. Данная книга написана во времена стандарта C++03, но ценность информации по-прежнему остается актуальной. Все рекомендации, техники и советы, описанные в книге, масштабируются и активно переиспользуются в новых стандартах языка.
- [Александреску Андрей, Саттер Герб - Стандарты программирования на С++](https://www.ozon.ru/product/standarty-programmirovaniya-na-s-2381848/?sh=SUs05K52)
Небольшая книга, которая описывает общепринятые практики и правила написания кода в коммерческих проектах. Данная книга - это агрегация правил из многих компаний. Данная работа стала прообразом сайта: [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines). Тем не менее рекомендуем прочитать данную книгу, т.к. она довольно короткая и даст вам общее представление, какие правила написания кода распространены во многих проектах.
## Технические навыки
- [Фримен Эрик, Робсон Элизабет - Head First. Паттерны проектирования](https://www.ozon.ru/product/head-first-patterny-proektirovaniya-obnovlennoe-yubileynoe-izdanie-144233005/?sh=VWSHgt2E)
Отличная книга для начала изучения паттернов проектирования. В качестве неплохой альтернативы можем также предложить сайт [refactoring.guru](https://refactoring.guru/design-patterns), но в данной книге также имеется масса практических заданий, которые помогут вам лучше усвоить идеи паттернов и в каких случаях их применять.
- [Андрей Созыкин - Компьютерные сети. Базовый курс](https://www.youtube.com/playlist?list=PLtPJ9lKvJ4oiNMvYbOzCmWy6cRzYAh9B1)
Прекрасный курс видеолекций по компьютерным сетям. За основу взяты книги Таненбаума и других классиков по теме. В большинстве проектов этих знаний будет достаточно, чтобы не совершать очевидных ошибок при работе с сетями. Для более глубокого погружения в тему вы можете ознакомиться с книгами Таненбаума или других авторов, или же посмотреть другие курсы на канале Андрея.

37
Books/Middle.md Normal file
View File

@@ -0,0 +1,37 @@
# Middle
## C++
- [Скотт Мейерс - Эффективный и современный С++. 42 рекомендации по использованию C++11 и C++14](https://www.ozon.ru/product/effektivnyy-i-sovremennyy-s-42-rekomendatsii-po-ispolzovaniyu-c11-i-c14-effektivnyy-i-sovremennyy-34747131/?sh=CHL5ECEP)
Продолжение предыдущей книги Скотта Мейерса. Сборник советов для работы с новыми стандартами C++11 и C++14.
- [Параллельное программирование на С++ в действии. Практика разработки многопоточных программ](https://www.ozon.ru/product/parallelnoe-programmirovanie-na-s-v-deystvii-praktika-razrabotki-mnogopotochnyh-programm-217051361/?asb=uff2kmWPtH7totJyGfGyYsPFkTR%252BIxeTdrNvGvZlqzc%253D&asb2=L78tfqOpsfrZsUEmgaZ9kZgbmpv4Jyn9UhBcKxIEO3Q&keywords=%D0%9F%D0%B0%D1%80%D0%B0%D0%BB%D0%BB%D0%B5%D0%BB%D1%8C%D0%BD%D0%BE%D0%B5+%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%80%D0%BE%D0%B2%D0%B0%D0%BD%D0%B8%D0%B5+%D0%BD%D0%B0+C%2B%2B&sh=nq_ppy1R)
Отличное руководство по многопоточному программированию в составе стандартной библиотеки C++. Представлено подробное описание ко всем примитивам библиотеки. Также даются объяснения работы этих примитивов, скрытыми под абстракциями.
- [Герб Саттер - Решение сложных задач на С++](https://www.ozon.ru/product/reshenie-slozhnyh-zadach-na-s-1273200/?sh=gy2qlNpv) и [Герб Саттер - Новые сложные задачи на C++](https://www.ozon.ru/product/novye-slozhnye-zadachi-na-c-2342923/?sh=PpLM-a9C)
Сборники, которые описывают разнообразные задачи с точки зрения проектирования и написания кода. Предлагают коллекцию эффективных решений, многие из которых считаются уже классическими идиомами языка. Многие идиомы, представленные в книге, встречаются на проектах практически повсеместно.
- [Курт Гантерог - Оптимизация программ на C++](https://www.ozon.ru/product/optimizatsiya-programm-na-c-proverennye-metody-povysheniya-proizvoditelnosti-140145932/?sh=OlHzzZHG)
Хороший сборник советов и рекомендаций по улучшению производительности приложений на языке C++. Некоторые советы основаны на идиомах и конструкциях языка, описанных Гербом Саттером в предложенных книгах выше или Скоттом Майерсом. Потому рекомендуется её прочтение после знакомства с предыдущими книгами.
## Технические навыки
- [Джонсон Ральф, Хелм Ричард - Приемы объектно-ориентированного проектирования. Паттерны проектирования](https://www.ozon.ru/product/priemy-obektno-orientirovannogo-proektirovaniya-patterny-proektirovaniya-2457392/?sh=U_1tfTeu)
Классический справочник по паттернам проектирования. Каждый паттерн детально разбирается и предлагаются случаи, где они могут быть применены. Это книга будет отличным продолжением после "Паттернов проектирования" от Эрика Фримена. Будьте готовы, что читается она тяжелее, чем предыдущая.
- [Гэри Маклин Холл - Адаптивный код: гибкое кодирование с помощью паттернов проектирования и принципов SOLID](https://www.ozon.ru/product/adaptivnyy-kod-gibkoe-kodirovanie-s-pomoshchyu-patternov-proektirovaniya-i-printsipov-solid-142089791/?sh=yQeAC0en)
Одна из достойнейших книг, которая простым языком объясняет принципы SOLID. Примеры написаны на языке C#, но это не должно вызвать сложностей при их чтении, т.к. используется минималистичный набор инструкций языка.
- [Надежда Поликарпова, Анатолий Шалыто - Автоматное программирование](https://www.ozon.ru/product/avtomatnoe-programmirovanie-28260411/?sh=KMISCILZ)
Отличное описание того, как подходить к написанию программ посредством конечных автоматов. Наверно более простого и элегантного описания теории конечных автоматов и её практического применения сложно будет отыскать. Рекомендуем вам поизучать пару коммерческих работ, выполненных в описанной парадигме. Ссылки к исходному коду вы найдете в конце книги.
- [Ulrich Drepper - What Every Programmer Should Know About Memory](https://people.freebsd.org/~lstewart/articles/cpumemory.pdf)
Хорошая обзорная статья, дающая представление о том, как устроена память компьютера и зачем она так устроена. Даёт как высокоуровневое представление, так и набрасывает низкоуровневых деталей, если есть желание в них углубляться.

43
Books/PreJunior.md Normal file
View File

@@ -0,0 +1,43 @@
# Pre-Junior
## Мотивация и опыт
- [Фаулер Чед - Программист-фанатик](https://www.ozon.ru/product/programmist-fanatik-32218784/?asb=ccybIdrVOtKbfO3XYxD6qZu%252BqA4iy4P%252BHkGUikETAiA%253D&asb2=cy4OBlq-08U5_VqkoPsv0ezJyaKuhUMmccxNvr2bH8A&keywords=%D0%BF%D1%80%D0%BE%D0%B3%D1%80%D0%B0%D0%BC%D0%BC%D0%B8%D1%81%D1%82+%D1%84%D0%B0%D0%BD%D0%B0%D1%82%D0%B8%D0%BA&sh=etF_rKzq)
Эту книгу можно считать признанной классикой в мире разработки, в которой Чед Фаулер пытается поделиться своим видением: как стать высококлассным, востребованным специалистом и оставаться на гребне волны.
## Computer Science
- [Фило Владстон Феррейра - Теоретический минимум по Computer Science](https://www.ozon.ru/product/teoreticheskiy-minimum-po-computer-science-vse-chto-nuzhno-programmistu-i-razrabotchiku-144946027/?sh=1zjF0Mqn)
Обзорная книга, которая рассказывает о различных направлениях Computer Science: математический аппарат, обзор алгоритмом, базы данных, устройство компьютера и т.д. Она может стать хорошей отправной точкой, чтобы подыскать интересующие направления и расставить приоритеты для себя.
- [Чарльз Петцольд - Код. Тайный язык информатики](https://www.ozon.ru/context/detail/id/125884/)
Прежде чем начать изучение языка, рекомендуем почитать данную книгу. Она расскажет простым языком о том как устроен компьютер, как он работает на физическом уровне. Здесь отсутствуют какие-либо сложные технические или академические детали. Книга содержит в себе основы основ, которые вряд ли в скором времени потеряют свою актуальность. Это поможет вам лучше понять фундаментальные идеи языка C++ позднее. Является отличным дополнением к предыдущей книге, т.к. глубже раскрывает устройство компьютера.
- [Адитья Бхаргава - Грокаем алгоритмы. Иллюстрированное пособие для программистов и любопытствующих](https://www.ozon.ru/product/grokaem-algoritmy-illyustrirovannoe-posobie-dlya-programmistov-i-lyubopytstvuyushchih-139296295/?sh=MERnHW_O)
Отличное вводное пособие в мир алгоритмов. Написано легким языком, который поймет большинство новичков. Также есть немного практических задач, чтобы попробовать написать свои первые алгоритмы.
## C++
- [Липпман Стенли - Язык программирования C++. Базовый курс](https://www.ozon.ru/product/yazyk-programmirovaniya-c-bazovyy-kurs-147417585/?sh=QOX3qGug)
Отличное дополнение к книге Стивена Праты. К ней хорошо обращаться параллельно с предыдущей. Рекомендуем вам сами найти баланс между двумя книгами, т.к. информация подается по-разному, и шанс понять ту или иную тему у вас повысится.
- [Стивен Прата - Язык программирования 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++. Не требует наличия каких-то специфичных знаний, а также имеет набор упражнений к каждой главе. Они помогут вам отработать и понять фундаментальные возможности языка.
- В дополнение к учебнику можно порекомендовать следующие видео от лекторов МФТИ:
- Илья Мещерин: [Курс лекций по C++](https://www.youtube.com/playlist?list=PL4_hYwCyhAvY2dY_tnTv3-TJThzcloCvM)
- Тимофей Хирьянов:
- [Лекции C++](https://www.youtube.com/playlist?list=PLRDzFCPr95fItmofHO4KuGjfGtbQtEj-x)
- [Алгоритмы и структуры данных на C++](https://www.youtube.com/playlist?list=PLRDzFCPr95fL_5Xvnufpwj2uYZnZBBnsr)
## Технические навыки
- [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, создать первый консольный проект и написать первое приложение:

3
Books/Senior.md Normal file
View File

@@ -0,0 +1,3 @@
# Senior
- Преисполняться в познании индустрии