Have you only recently begun your professional education, and are you already swamped by the sheer number of books, lectures, and videos? Many novices are familiar with the challenge since too much information can be confusing and distracting. With the help of EPAM experts, we have chosen at least one book which could be your starting point in learning about the direction.
Java
Head First Java by Kathy Sierra & Bert Bates
The book is intended for beginners, so the basic concepts (including the principles of OOP) are boiled down to simple components. Numerous illustrations, practical exercises, and a lighthearted manner make this book an excellent introduction to Java development.
DevOps
The Phoenix Project by Gene Kim, Kevin Behr, and George Spafford
In this educational novel, readers follow Bill, an IT manager of a technical company, who has 90 days to fix a project where... nothing works. The project is over budget and deadlines; nevertheless, the task must be completed. By using this by no means flawless project as an example, the book explains the fundamentals of DevOps work.
Business Analysis
Business Analysis for Dummies by Kate McGoey, Kupe Kupersmith
Don't be fooled by the title; this book comprehensibly explains the basics of business analysis and mentally prepares you for more complex concepts and ideas that you will meet in more advanced materials. There is not much more we can say about the “… for Dummies” series: few are not familiar with these books and the accessible and entertaining way they present theory.
UI/UX
100 Things Every Designer Needs to Know About People by Susan Weinschenk
The book is based on research into the human brain and information perception. This is an excellent starting point for understanding how to create designs that feel intuitive. Additional advantages include clear and concise writing, streamlined design, and a summary at the end of each chapter.
Project Management
Making Things Happen: Mastering Project Management by Scott Berkun
The author, a former manager at Microsoft, does not discuss popular theories or provide step-by-step instructions. Instead, he talks about his years at Microsoft, the structure and specifics of IT projects, including planning, strategy, conflict resolution, and other relevant topics for a novice PM.
JavaScript
JavaScript: The Definitive Guide by David Flanagan
The book’s main advantage is its relevance: the latest edition contains the basics of the language in its entirety. Although the author’s manner is quite dry, he puts in a few jokes here and there and, most importantly, so thoroughly covers the material that he leaves you no questions.
However, if you want the most recent information about JS, we suggest using the Free Code Camp site, where you may learn the theory and practice writing code. The best way to learn JS is to read the book and practice on the website simultaneously.
Ruby
Why's (Poignant) Guide to Ruby +
The Well-Grounded Rubyist by David A. Black
Why's (Poignant) Guide to Ruby is perhaps the most unique book you'll find in technical literature. A word of caution, though. It is not your average textbook: there are comics, the author’s witty remarks, and of course, the theory of Ruby, presented in a way that is accessible for absolute dummies.
If you feel ready for a deep dive into the language, or don't want to figure out the subtleties of English slang, The Well-Grounded Rubyist will probably become your go-to handbook. People who read it admit that the book opened their eyes to the fact that they’ve been writing code randomly and helped them see the language’s hidden potential.
Quality Assurance
Beautiful Testing: Leading Professionals Reveal How They Improve Software by Tim Riley, Adam Goucher
Have you ever heard the saying, "You have to think like a tester to become a tester"? This book will provide you with a glimpse into the thoughts, experiences, and aspirations of a QA specialist while introducing you to the fundamentals of the profession. The book is written in simple language, and each concept is explained using an example from the author’s professional experience.
Python
Python Crash Course: A Hands-On, Project-Based Introduction to Programming by Eric Matthes
A great book that readers who have read other Python materials and found them too confusing will appreciate. It is packed with loads of theory, but it is served with a Junior sauce; moreover, this textbook allows you immediately put your newly gained knowledge into practice. The book is full of do-it-yourself problems (with a step-by-step solution, by the way) and recommendations of useful online resources.
Database design
Database Internals: A Deep Dive into How Distributed Data Systems Work +
SQL Antipatterns: Avoiding the Pitfalls of Database Programming
We couldn't help it and added two books on databases at once (after all, it is an extraordinary direction). Database Internals is one of the most up-to-date books on the theory of database construction, but you shouldn't expect a deep dive here, even if that is what it says on the cover. Instead, it is more of a broad sweep over a range of theoretical topics, which will benefit beginners.
When you're ready to practice, proceed to SQL Antipatterns. The author analyzes the most frequent errors in the database structure, lists the signs by which such an antipattern can be identified, and recommends how to correct the error. Don't let the description scare you - the book is light, concise, and written in a semi-entertaining style.
Bonus: For all developers
Clean Code – A Handbook of Agile Software Craftsmanship by Robert Cecil Martin
The book is a must-read for all aspiring developers who don't want to fall into the same trap as thousands of Juniors before them. The described principles are easily adapted to any programming language, so we advise everyone to have Clean Code at hand for successful first steps in development.
Design Patterns: Elements of Reusable Object-Oriented Software
Even though the book has been out for about 30 years, it is considered one of the best guides, especially if you do not want to reinvent the wheel. It contains 23 programming patterns that are easily adaptable to any object-oriented programming language (Java, C#, Python, etc.). You'll need some theoretical background to fully understand this book, but once you do, your coding abilities will advance to a whole new level.