# :alien: Pre-Junior

## :innocent: Motivation and experience

- [Chad Fowler - Passionate Programmer](https://www.amazon.com/Passionate-Programmer-Remarkable-Development-Pragmatic-ebook/dp/B00AYQNR5U)

    The book is a classic in the motivation genre for beginners. Chad Fowler shares his experience on how to become a professional programmer and navigate the IT industry.


## :bar_chart: Computer Science

- [Wladston Ferreira Filho - Computer Science Distilled: Learn the Art of Solving Computational Problems](https://www.amazon.com/Computer-Science-Distilled-Computational-Problems/dp/0997316020)

    The book provides a comprehensive overview of various basic concepts in Computer Science, including mathematics, algorithms, databases, and the hardware basics of computers. It serves as an ideal starting point to discover and prioritize areas of interest in the field.
    
- [Charles Petzold - Code: The Hidden Language of Computer Hardware and Software](https://www.amazon.com/Code-Language-Computer-Hardware-Software/dp/0735611319)

    Before starting your study of C++, it's recommended to read this book first. It provides a simple explanation of how a computer works, avoiding complex technical or theoretical aspects. The concepts presented in this book are fundamental and will remain relevant in the future. It will also aid in your understanding of the foundational ideas of C++ later on. This book serves as a complement to the previous one as it delves deeper into the workings of computers.

- [Aditya Bhargava  - Grokking Algorithms: An Illustrated Guide for Programmers and Other Curious People](https://www.amazon.com/Grokking-Algorithms-illustrated-programmers-curious/dp/1617292230)

    The book provides a brilliant introduction to the world of computer science algorithms and data structures for beginners. It also includes a list of tasks that will help you implement your first algorithms.


## :pencil: C++

- [Stephen Prata - C++ Primer Plus](https://www.amazon.com/Primer-Plus-6th-Developers-Library/dp/0321776402)

    The book is an excellent starting point for people who are just beginning their journey in the world of C++. No prior knowledge is required to get started. The book also includes a list of exercises that can help you gain hands-on experience and a deeper understanding of the basics of C++.

- [Stanley Lippman - C++ Primer](https://www.amazon.com/Primer-5th-Stanley-B-Lippman/dp/0321714113)

    This book is a great complement to the previous one. It's recommended to use it in parallel with Prata's book. Finding a balance between these books is advised, as the information is presented differently. Mixing information from both books will help to better understand various topics and aspects of the language.

- [Andrew Koenig - Accelerated C++: Practical Programming by Example](https://www.amazon.com/Accelerated-C-Practical-Programming-Example/dp/020170353X)

    This book is an excellent choice for beginners. Each chapter provides a comprehensive description of different foundational aspects of the language. Upon completion of each chapter, the reader is offered a set of exercises to practice and reinforce their understanding. The book covers the most fundamental topics that can be applied in future studies of new language mechanisms. It is recommended to read this book after studying Prata's or Lippman's books or alongside them.


## :electric_plug: Hard skills

- [MSDN](https://docs.microsoft.com/en-us/cpp/build/vscpp-step-0-installation?view=msvc-160)

    If you are just starting on your learning journey, it is recommended to begin practicing and doing exercises in the IDE Microsoft Visual Studio (Community Edition). It is currently one of the most user-friendly IDEs for beginners, both in terms of installation and usage, and it's completely free! This will allow you to focus on the language and not be burdened by the development environment. A helpful guidebook on MSDN explains the steps to install Visual Studio, create your first console project, and implement your first application.

---

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