From e2fe31476230725e3f45b508581a34005085f1c7 Mon Sep 17 00:00:00 2001 From: Evgeny Melnikov Date: Sun, 10 Oct 2021 19:48:34 +0300 Subject: [PATCH] Split Books for dedicated Grades --- Books.md | 136 ++------------------------------------------- Books/Junior.md | 41 ++++++++++++++ Books/Middle.md | 37 ++++++++++++ Books/PreJunior.md | 43 ++++++++++++++ Books/Senior.md | 3 + 5 files changed, 129 insertions(+), 131 deletions(-) create mode 100644 Books/Junior.md create mode 100644 Books/Middle.md create mode 100644 Books/PreJunior.md create mode 100644 Books/Senior.md diff --git a/Books.md b/Books.md index 77ab252..e251893 100644 --- a/Books.md +++ b/Books.md @@ -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) \ No newline at end of file diff --git a/Books/Junior.md b/Books/Junior.md new file mode 100644 index 0000000..3524691 --- /dev/null +++ b/Books/Junior.md @@ -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) + + Прекрасный курс видеолекций по компьютерным сетям. За основу взяты книги Таненбаума и других классиков по теме. В большинстве проектов этих знаний будет достаточно, чтобы не совершать очевидных ошибок при работе с сетями. Для более глубокого погружения в тему вы можете ознакомиться с книгами Таненбаума или других авторов, или же посмотреть другие курсы на канале Андрея. \ No newline at end of file diff --git a/Books/Middle.md b/Books/Middle.md new file mode 100644 index 0000000..975ea9b --- /dev/null +++ b/Books/Middle.md @@ -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) + + Хорошая обзорная статья, дающая представление о том, как устроена память компьютера и зачем она так устроена. Даёт как высокоуровневое представление, так и набрасывает низкоуровневых деталей, если есть желание в них углубляться. \ No newline at end of file diff --git a/Books/PreJunior.md b/Books/PreJunior.md new file mode 100644 index 0000000..aa0015d --- /dev/null +++ b/Books/PreJunior.md @@ -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, создать первый консольный проект и написать первое приложение: \ No newline at end of file diff --git a/Books/Senior.md b/Books/Senior.md new file mode 100644 index 0000000..1703947 --- /dev/null +++ b/Books/Senior.md @@ -0,0 +1,3 @@ +# Senior + +- Преисполняться в познании индустрии