5 min read

My first one is: which book should I choose to start studying the profession?

At the beginning of your professional path, it is often difficult to identify the most necessary and useful book that you should read first. Marketing Specialist at EPAM, Oleksandra Nakonechna, together with her colleagues, compiled their list of the best (in their opinion) first books to immerse yourself in a specialty.

Marketing Specialist Oleksandra Nakonechna

The list of the useful books

Java

Head First Java, by Kathy Sierra and Bert Bates

Head First Java, by Kathy Sierra and Bert Bates

— This book is intended for beginners, so the basic concepts (including the principles of OOP) are boiled down into simple components. Numerous illustrations, practical exercises, and a lighthearted manner make this book an excellent introduction to Java development.

DevOps

The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win, by Gene Kim, Kevin Behr, and George Spafford

The Phoenix Project: A Novel about IT, DevOps, and Helping Your Business Win, by Gene Kim, Kevin Behr, and George Spafford

— In this educational novel, readers follow Bill, an IT manager at a technical company, who has 90 days to fix a project on which... nothing works. The project is over budget and failing to meet deadlines; nevertheless, the task must be completed. Using this project as an example, the book explains the fundamentals of DevOps work.

Business Analysis

Business Analysis for Dummies, by Paul Mulvey, Kate McGoey, and Kupe Kupersmith

Business Analysis for Dummies, by Paul Mulvey, Kate McGoey, and Kupe Kupersmith

— Don't be fooled by the title. This book explains, in a comprehensible way, the basics of business analysis, and prepares you for the more complex concepts and ideas that you will encounter in more advanced materials.

UI/UX

100 Things Every Designer Needs to Know About People, by Susan Weinschenk

100 Things Every Designer Needs to Know About People, by Susan Weinschenk

— This book is based on research into the human brain and information perception. It is an excellent starting point for understanding how to create designs that feel intuitive. Clear and concise writing, streamlined design, and a summary at the end of each chapter are additional advantages.

Project Management

Making Things Happen: Mastering Project Management, by Scott Berkun

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, and 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: Master the World’s Most-Used Programming Language, by David Flanagan

JavaScript: The Definitive Guide: Master the World’s Most-Used Programming Language, by David Flanagan

— This book’s main advantage is its relevance. The latest edition contains the basics of the language in their entirety. Although the author’s manner is quite dry, he includes a few jokes here and there and, most importantly, so thoroughly covers the material that he leaves you no questions.

If you want the most current information about JS, however, we suggest using the Free Code Camp site, where you can 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 

Why's (Poignant) Guide to Ruby

— This is, perhaps, the most unique book you'll find in technical literature. A word of caution, though. It is not your average textbook. It contains comics, the author’s witty remarks, and — of course — the theory of Ruby, presented in a way that is accessible for absolute newbies.

The Well-Grounded Rubyist, by David A. Black

The Well-Grounded Rubyist, by David A. Black

— 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 hidden potential of the language.

Quality Assurance

Beautiful Testing: Leading Professionals Reveal How They Improve Software, by Tim Riley and Adam Goucher

Beautiful Testing: Leading Professionals Reveal How They Improve Software, by Tim Riley and Adam Goucher

— Have you 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 QA specialists 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

Python Crash Course: A Hands-On, Project-Based Introduction to Programming, by Eric Matthes

— A great book. Readers who have read other Python materials and found them too confusing will appreciate this book. It is packed with loads of theory, but it will quickly have you putting your newly acquired knowledge into practice. The book is full of do-it-yourself problems (with step-by-step solutions) and recommendations for useful online resources.

Database design

Database Internals: A Deep Dive into How Distributed Data Systems Work, by Alex Petrov

Database Internals: A Deep Dive into How Distributed Data Systems Work, by Alex Petrov

— Database Internals is one of the most up-to-date books on the theory of database construction. You shouldn't expect a deep dive here, though, 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.

SQL Antipatterns: Avoiding the Pitfalls of Database Programming, by Bill Karwin

SQL Antipatterns: Avoiding the Pitfalls of Database Programming, by Bill Karwin

— 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 an antipattern can be identified, and offers solutions for how to correct the error. Don't let the description scare you — the book is light, concise, and written in a semi-entertaining style.

For all developers

Clean Code — A Handbook of Agile Software Craftsmanship, by Robert C. Martin

Clean Code — A Handbook of Agile Software Craftsmanship, by Robert C. Martin

— This 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 principles described in the book 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, by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

Design Patterns: Elements of Reusable Object-Oriented Software, by Erich Gamma, Richard Helm, Ralph Johnson, and John Vlissides

— Even though the book has been in existence 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.

Our thanks to our partner site training.epam.com.

Other articles with useful sources in the following areas: