Programming Language Coding is one of the most important skills for programmers and if you want to survive as a programmer you must improve your coding skill. Gone are the days, when you can get a software development job without having you to write a single line of code and then somehow survives in the job by doing support, coordination, and other non-coding activities. Companies, both big and small are increasingly testing coding skills of candidates before hiring. It's very common for programmers to pass a coding test before a telephonic round of interview. Some of the companies even hire websites like HackerRank
and others to check the coding skill of potential candidates, many others give candidates take home coding tests. In short, companies have a lot of focus on the coding skill of potential hires.
This may be the result of several criticisms about how programmers are interviews. For example, In past, people complain a lot that you can become a programmer without knowing programming and a non-programmer can also get a programming job because he just needs to remember theoretical questions like difference between an array and linked list
or some technical problems e.g. reverse a linked list
and all done.
The interviewer also focuses on production quality code
e.g. whether you are validating inputs or doing proper error handling or not.
In order to overcome this challenge and improve your coding skill, you also need to put a lot of effort from your side and there is no better way to do that reading some books which helps you to write better code.
In this article, I am going to share some of those titles which have helped in the past and I still read them whenever I get some time.
10 Books for Programming Language Coders of All Levels
Here is my list of some of the best books every coder should read. These books will help you to improve your coding skill and teach you how to write code which is easier to read and maintain. These books are independent of the programming language but you will learn more if you choose the book where examples are given in your favorite programming language.
For example, Clean Code
is great for Java programmers because examples are given in Java while Code Complete is best for C/C++ programmer because examples and advice follow C/C++ programming language.
One of the best book to learn the principles of object-oriented programming e.g. SOLID principles. This is the book which taught me how to write professional code i.e. code which can be read and maintained by a fellow programmer. One of the must-read books for coders of all level. If you haven't read it yet, this should be the first book you read in 2018.
Another classic book on coding by Steve McConnell. This book is similar to above book but it's mainly for C and C++ developer while Clean Code is for Java developer. There was a time when startups give this book on every new hire and that was probably the best thing I have seen in my career while working for startups.
There is a saying that if you learn from your own experience then you can only learn a few things and you have to pay a higher cost but if you learn from other's mistakes you can learn a lot without paying a heavy price. This book will teach you what it takes to become a professional programmer, basically, it will turn you from amateur coder to professional developer.
Another classic book on improving your coding skill. Refactoring is probably the single most important practice of improving the code quality of the existing project and Martin Fowler has given so many good techniques to make your existing code better without breaking it. Even though most of the practices are already adopted by major IDEs like Eclipse and IntelliJ IDEA, it's still a great book to learn Refactoring.
Every programmer has to work with legacy code at some point in their career and that would probably be the most difficult time as well. The legacy code is those which are running in production but you don't know much about them. There is no documentation and over-engineered code makes it hard to change the system. They have dependency all around and whenever you add a new feature or tweak a setting it breaks in production. This book gives you practical tips to deal with such code and find your way around.
This is a great book to learn simple and practical techniques for writing better code. Some of you might ask me what is the better code mean here?
Well, a better code is something which is easy to change and understand i.e. its much more readable than some cryptic code which does the same job.
Remember, you don't just write code for the compiler you write it for a fellow programmer or teammate which has to maintain it, hence readability is utmost important.
One of the popular principles of software development is KISS, yup Keep it Simple Stupid. Why? because something which is simple is easier to understand and change and there is only one constant in the software development, change.
A code which is not simple is hard to understand and change and much more error-prone.
This book teaches you practical techniques to keep your code simple.
Another great book on coding style and process. This books explains what goes on programmer's mind while writing code and gives you some tips and tricks to keep your mind in right shape while writing code e.g. Don't write code at 3 AM in the morning, Don't write code on Saturday or Christmas week. These are the code you end up fixing whole year.
The journey of good code starts with unit testing, which is also a primary trait of a good programmer. A code with unit tests is much better than the code without it because you can always refactor and change the code with confidence. Those unit test will ensure that existing functionality doesn't break, but unit testing is hard. Just knowing JUnit is not enough, this is where Test Driven help. It teaches you practical techniques of unit testing your code.
The full title of this book is "Dreaming in Code: Two Dozen Programmers, Three Years, 4,732 Bugs, and One Quest for Transcendent Software". The title itself says about this book. If you want to learn from other coders experience than this is the book to read.
That's all about some of the best book covers of all levels should read. These books will not only help you to improve your coding skill but also help you to develop that coding sense which tells you something is wrong when you are writing code. Books are good but if you need more help I suggest you check out the Clean Code: Writing Code for Humans course by Cory House from Pluralsight. It's free for 10-days as Pluarlsight offer 10-day free trial and effectively compliments whatever you learn from reading this book. Btw, the most important advice to improve coding is to code, just code every day.