# :yum: Junior

## :innocent: Motivation and experience

- [Robert Martin - The clean coder](https://www.amazon.com/Clean-Coder-Conduct-Professional-Programmers/dp/0137081073)

    Uncle Bob shares his recommendations on how to "survive" and be successful in the IT industry. This book isn't just about technical skills. It also presents psychological challenges and struggles with them.

- [Robert Martin - Clean Code: A Handbook of Agile Software Craftsmanship](https://www.amazon.com/Clean-Code-Handbook-Software-Craftsmanship/dp/0132350882)

    Despite criticism that you might encounter regarding this book, we still believe that it can be a valuable resource for new developers in the short term. The book features a collection of effective techniques that can help you write well-structured, readable, and maintainable code. However, it's important to not view this book as a gospel and avoid turning it into a "cargo-cult." Instead, use this knowledge wisely and select the techniques that best suit your needs and improve your coding style.

- [Steve McConnell - Code Complete: A Practical Handbook of Software Construction](https://www.amazon.com/Code-Complete-Practical-Handbook-Construction/dp/0735619670)

    Despite its age, this book can still be considered a developer's "bible" as it provides a comprehensive overview of the IT industry. It offers a wealth of practical advice on how to grow and develop as a top-tier professional.


## :bar_chart: Computer Science

- [Thomas H. Cormen - Introduction to Algorithms](https://www.amazon.com/Introduction-Algorithms-3rd-MIT-Press/dp/0262033844)

    This book serves as a great follow-up to "Grokking Algorithms". It delves into common sorting algorithms and working with lists, providing more in-depth information. The writing style is approachable and friendly. Reading this book will be helpful in preparing yourself for a deep dive into the field of algorithms.

## :pencil: C++

- [Scott Meyers  - Effective C++: 55 Specific Ways to Improve Your Programs and Designs](https://www.amazon.com/Effective-Specific-Improve-Programs-Designs/dp/0321334876)

    This book is the ultimate cookbook for C++ foundations. Although it covers C++03 features, the information it provides is still valuable and relevant. The recommendations outlined in the book are perfectly suitable for the latest standards.

- [Jason Turner - C++ Best Practices: 45ish Simple Rules with Specific Action Items for Better C++](https://www.amazon.com/Best-Practices-Simple-Specific-Action/dp/B08SJSZKJ5)

    This is a compilation of tips for inexperienced C++ developers, focusing on the most common mistakes. The explanations are brief and to the point. Most of the tips include links to additional resources. Since the book doesn't offer a thorough examination of each piece of advice, it's recommended to delve into each one further in the future to truly understand the reasoning behind them.

- [Herb Sutter, Andrei Alexandrescu - C++ Coding Standards: 101 Rules, Guidelines, and Best Practices](https://www.amazon.com/Coding-Standards-Rules-Guidelines-Practices/dp/0321113586)

    This small book outlines common best practices for writing code in commercial projects. It's a compilation of experiences gathered from various companies. This book was also a foundation for the [C++ Core Guidelines](https://isocpp.github.io/CppCoreGuidelines/CppCoreGuidelines). It is recommended to start with this book first before visiting the C++ Core Guidelines. It will give you a first impression of code guidelines used in projects. After you have read the book, you can then visit the C++ Core Guidelines website to get the latest approved approaches.


## :electric_plug: Hard skills

- [Eric Freeman, Elisabeth Robson - Head First Design Patterns: A Brain-Friendly Guide](https://www.amazon.com/Head-First-Design-Patterns-Brain-Friendly/dp/0596007124)

    This book is a perfect start to studying design patterns. As another alternative, you can also visit [refactoring.guru](https://refactoring.guru/design-patterns), but in case of using this book, you will be able to have a lot of practice on-the-fly which help you to better understand ideas of common design patterns.

- [Sanjay Madhav, Josh Glazer - Multiplayer Game Programming: Architecting Networked Games](https://www.amazon.com/Multiplayer-Game-Programming-Architecting-Networked/dp/0134034309)

    This book is an excellent introduction to networking theory, explaining network foundations through video game examples. It will help you write your first application that works over a network, and you will gain practical experience in working with networking in C++. All of the examples in the book are written using C++11/14.

---

[**Go back**](Overview.md) | [**To main page**](../../README.md)