JavaRush /Java Blog /Random EN /Top 10 Programming Books for Beginners
Max Stern
Level 35
Нижний Новгород

Top 10 Programming Books for Beginners

Published in the Random EN group
I have a colleague who has done a lot of technical interviews for future Javiers. I once asked him what influences the decision to hire a job applicant with no real experience when choosing among people with approximately equal language skills. Considering the situation on the market, I think this question is relevant for many of you. Top 10 Programming Books for Beginners - 1“Passion for technology, ability to choose the best solution to a problem, general IT erudition, understanding of what awaits him at work,” was his answer. I once described in an articleprogramming books for beginners that helped me learn Java. In this article, I will focus on publications that will help a novice programmer gain that same IT erudition, understanding of future work, and also simplify the task of choosing the best solution. That is, getting a job and doing your best in it from the very beginning. This list has been compiled according to my own preferences, so it may be somewhat subjective. There are also classic programming textbooks for students and handbooks for programmers of all generations.

Improving Code and Productivity

Just writing code is not enough. It is important to write it well, to be able to improve it, and also to understand how it is developed in general. The following books for novice programmers and not only helped more than one generation of specialists to cope with the difficult technological process of software development.

Pragmatic programmer. Journeyman to Master (Andrew Hunt, David Thomas)

Título original: The Programmatic Programmer from From Journeyman to Master by Andrew Hunt and David Thomas Top 10 Programming Books for Beginners - 2If you have not read this book, most likely you have repeatedly met quotes from it on forums and specialized resources. The image of a pragmatic programmer in this book is so clear and idealized that ... it is just right to call him a romantic, no matter how paradoxical it may sound. Nevertheless, the advice from the book is practical and relevant despite her advanced age. I don't know what to compare "The Pragmatic Programmer" to in the world of programming books. The closest out-of-this-world counterparts are The Old Testament or some super-cool cookbook. In “Pragmatics” everything is very specific and maximally applicable in practice. Sometimes it comes to platitudes (for example, the section on effective communication contains elementary rules of business etiquette), but sometimes the advice from the book is indispensable, especially if a novice developer does not have a patient and attentive mentor. These are hints about code repetition, prototyping, evaluation. Or a reminder of the impossibility of creating a perfect program. There are also useful technical points, concerning, for example, code debugging, unit testing or the speed of algorithms ... in a word, everything you need to prepare for a career as a programmer.

Refactoring Improving existing code (Martin Fowler)

Original title Refactoring: Improving the Design of Existing Code by Martin Fowler, with Kent Beck Top 10 Programming Books for Beginners - 3If you ask someone to list the best programming books of all time that helped build a career, someone is sure to mention “Refactoring”. Someone may say that this book is outdated, and in some way they will be right. It was written at a time when refactoring was not yet a ubiquitous rule, and some of the truth in it is obvious to novice programmers of today. Nevertheless, the refactoring techniques are described in it so well and in detail (in places, I would even say verbose) that every beginner will find something useful in it. A few years ago, an updated edition of the book came out, and new techniques were added, which is just great. In addition, the examples in this book are written in Java. Of the shortcomings, I note only verbosity. However, I recommend the book.

Clean Code (Robert Martin)

Original title Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin Top 10 Programming Books for Beginners - 4This book, although newer than the previous one, has also become a classic of programming books. “Uncle Bob”, as Robert Martin is sometimes called in the worldwide programmer community, is one of the authors of the Agile manifesto, as well as some of the principles of modern “pure” programming, for example, SOLID. One of the main leitmotifs of the book can be considered ... empathy or just a good attitude towards everyone who will have to work with your code (including yourself in the future). This simple principle and common sense underpins most of the Clean Code rules. Most of the rules and advice seem to be very correct, of those that are intuitively spinning in the head, but it is not easy to articulate them clearly. However, one can argue with some of the author's thoughts: he is sometimes extremely categorical. For example, he writes that good code does not need comments.

Working effectively with legacy code (Michael Feathers)

Original title Working Effectively with Legacy Code by Michael Feathers Top 10 Programming Books for Beginners - 5Life didn't prepare you for this... No, really: if you're just learning, you have no idea what a pain it is to work with legacy code bases, which was probably written by Bill Gates' grandfather. This code is often written quite differently from what you are used to, and documented so badly that sometimes you want to find its author and... Alas: the life of a Java programmer on large projects is very often associated with legacy support. This book can help you with the technical aspects of working with ancient code, as well as help you come to terms with your fate. And yes, I'm serious. This book will come in handy if you are firmly targeting an outsourcing or product company with large projects.

head first. Design Patterns (Eric Freeman, Bert Bates, Cathy Sierra, Elizabeth Robson)

Original title Head First Design Patterns: A Brain-Friendly Guide by Eric Freeman, Bert Bates, Kathy Sierra, Elisabeth Robson Top 10 Programming Books for Beginners - 6Design patterns, these logical rules of good taste, which, if not studied over time, will come to mind (or not ...) and which literally turn into a superpower for a novice programmer, if you start looking closely at them as early as possible. Yes, at first it is useful to twist a relatively complex personal project and try to break it into subtasks on your own ... and in the end find the same pattern. However, when it comes to work, there is not always enough time for experiments. When I got the internship, I knew very little about patterns: while studying CodeGym, I simply skipped all these dependency-injection-factories-singletons, believing that I would figure it out when I needed to. However, it was necessary to figure it out very quickly, and it was the book “Head First. Design Patterns” helped me with this. It is lightly written filled with illustrations and humor… I think that the presentation for the topic “design patterns” is very important: it can be presented sooooo boringly, or it can be presented in the same way as in Head First. Great addition to Clean Code and/or Refactoring!

Computer architecture and general computer science

How important is it for a future programmer to understand computer architecture, to know how operating systems are arranged, and how databases work? Not the fact that this knowledge will be useful to you in your work directly. But they will definitely help you demonstrate your passion for the IT field and IT erudition. And most importantly, if you know how things work, it will help you solve problems better. Infa 100%. So here are two more books to help you.

Code (Charles Petzold)

Original title Code: The Hidden Language of Computer Hardware and Software by Charles Petzold Top 10 Programming Books for Beginners - 7The first edition of "Code" saw the world at the beginning of the 2000s, but in fact it could have appeared earlier or later - and would still be relevant. The fact is that in this book the operation of a computer is explained at a very, very low level, starting with how those very zeros and ones work, and the very first technical example is a flashlight circuit, which can be considered the simplest one-bit computer ... No, you do not think that everything in the book is very primitive. In fact, exactly the opposite ... It describes the schemes of computers, with commands, the operation of memory and operating systems in essence. Perhaps it was after reading it that I understood how computers work. Let the architecture and instruction set of the processor change, and the memory bandwidth increases, in fact, computers work in exactly the same way. Is this knowledge necessary for a Java programmer? Very few of them will be useful directly in their work. But indirectly, what often helped me in my work was that I understood how it all really works.

Introduction to Computer Science (Glenn Brookshire, Dennis Brilov)

Original title Computer Science: An Overview by Glen Brookshear and Dennis Brylow Top 10 Programming Books for Beginners - 8This book came to me at the university when I was studying the basics of computer science. Only I got the translation of the sixth edition, and now the 13th edition is relevant. The book is a basic computer science course that has been taught at universities in the United States and other countries for many years. The coverage of the material in it is very wide: machine architecture, number systems, data processing, operating systems, database principles, data structures, file structures, and so on. Not all sections of the book are equally well written. For example, I was once very confused by the sections on design methods and databases, but the sections on number systems, bitwise calculations, PC architecture and data structures really hit me. The coolest part of the book is the sheer number of key exercises. Such a book, in addition to students, perhaps,

Algorithms and data structures. That still attack!

Given how high-level modern programming has become, knowledge of algorithms has lost its paramount importance. Now it is enough to apply the required library and not puzzle over how best to sort the array. However, you still have to rack your brains at work, and more than once. Remember the “ability to choose the best possible solution” item from the requirements for a novice programmer? So, no matter what anyone says, I consider good algorithmic training to be an excellent boost for finding optimal solutions. Therefore, the next two books are about them. About algorithms.

We rock algorithms. An illustrated guide for programmers and the curious by Aditya Bhargava

Original title: Grokking Algorithms: An illustrated guide for programmers and other curious people by Aditya Y. Bhargava Top 10 Programming Books for Beginners - 9The author himself at the beginning of the book writes that algorithms were not given to him immediately, and he tried to write “Grokay Algorithms” so that it was easy to read. It is designed for beginner programmers, that is, those who can write “hello, world” and know what int, string, loop, branch and array are. Well, it can display the array on the screen. The required knowledge of mathematics is approximately at the level of 6-7 grades of high school without frills. And this is the first serious plus of the book. It does not try to present the reader as a student of mathematics, as many publications on the topic do. That is, if you are afraid of mathematics, algorithms, have already tried to learn the latter and did not understand anything, this book is perfect for your rehabilitation in your own eyes. The second positive point is that the book discusses something that may well be useful in practice (understanding this is for sure). It begins with an explanation of the essence of binary search and efficiency - literally on the fingers and with many pictures. Third, there are many questions and exercises in the book (code examples are in Python, but this is not so important). A moment that can be positive for someone, but negative for someone: the book does not build itself into an all-encompassing reference book. Let's say that there are only two algorithms generally accepted for studying here - an inefficient insertion algorithm and an efficient quicksort algorithm. Why the author does not consider other algorithms, say, a bubble or a merge - I don’t know. In fact, the merge algorithm is mentioned in the book, but briefly, indiscriminately, and only in comparison with quicksort. The rest of the topics are exactly the same. There are basics that are very well covered, but sometimes you really want a more in-depth continuation, but it simply does not exist. In a word, we have a very basic book, after which, most likely, you will want to find a book in which everything is painted more seriously. For example, next.

Algorithms in Java (Robert Sedgwick, Kevin Wayne)

Título original: Algorithms by Robert Sedgewick and Kevin Wayne Top 10 Programming Books for Beginners - 10In fact, this book can both charm and scare. To scare away at least with its volume of ... a lot of pages and a certain academic character. Therefore, if you are not inclined towards it, academicism, or do not feel confident in mathematics (high school, the simplest elements of higher mathematics for engineers), then it is better not to start with this book. There are not so many mathematical terms, but the approach itself suggests such thinking. But after the previous book - why not. She will give you a guide. The first chapter in some places is a summary of Java knowledge and the definition of some data structures. It is better to read it selectively, but it does not hurt to study the second and third chapters in sufficient detail. The rest are also full of interesting and solid information about graphs and strings. I would say that these things are VERY helpful in shaping the programmer's mindset. Regarding the presentation, it is felt that the author is a teacher, but he is used to working with people who are mostly interested and prepared. So be patient and read on. And also solve problems, there are enough of them. By the way, on Coursera you can find a course on algorithms created by the authors of the book.

Know your framework

And finally, one more book. And again, useful.

Spring in action (Craig Walls)

Original Title: Spring in Action by Craig Walls Top 10 Programming Books for Beginners - 11A very famous book with an equally famous "man in a skirt" cover that isn't really wearing a skirt. Frankly, learning Spring from just one book is a very difficult task, even if you try to try everything in practice at once. By the way, it can be extremely difficult to understand how to do this after reading a particular chapter. I worked with this book when I got an internship at a company, and in this way it helps a lot. Moreover, even today, already working as a programmer, I constantly return to it. In short, you can get a general idea of ​​​​the main Java framework with its help.