34 Useful Programming Books Recommended for New Developers
Tips & Tutorials

34 Useful Programming Books Recommended for New Developers

January 8, 2017, 6 Mins Read.

It’s no surprise that poorly written code can lead to the failure of a project, whether large or small. So writing clean and manageable code is extremely important for the overall success of a software development project.

There are various methods by which to learn how to code properly. Obviously, practical experience is extremely valuable, but having a sound theoretical knowledge is hugely beneficial as well.

Part of this knowledge is developed during the years of study, but keeping up-to-date on important books and articles can be very helpful.

Nowadays, programmers approach problems from a quick-fix method. If trial and error don’t work, you can Google the issue and try to find a fix there.

However, if you want to become an accomplished programmer rather than a ‘code monkey’ reading the literature is a must. Reading and learning other people’s code will allow you to look at problems in a new way and solve them more easily.

If you’re not sure where to start, read on. We’ve collected a comprehensive list of books that are highly reviewed and respected in the developer community.

To help you jump into the booklist of your favourite language quickly, we have categorised the book titles according to the programming language they are concerned with, as well as a brief description of each language.

What’s your favourite programming language?

  1. Javascript
  2. C
  3. C#
  4. C++
  5. Java
  6. PHP
  7. Python
  8. Ruby


JavaScript is language that is going through something of a revival in recent times. While formerly it was used exclusively for client-side functionality that runs in users’ web browsers, it is presently used as a server-side language, in some cases with the use of Node.js.

It is often wrongly considered a “toy” language by some, but still, it is mostly used for practical browser-side functionality. JavaScript tends to teach bad habits in code structure and architecture due to its forgiving nature. If you have an interest in JavaScript, the following titles will be well worth your time:

A Smarter Way to Learn JavaScript

  1. A Smarter Way to Learn JavaScript: The new approach that uses technology to cut your effort in half

Effective JavaScript

2. Effective JavaScript: 68 Specific Ways to Harness the Power of JavaScript (Effective Software Development Series)


3. Eloquent JavaScript: A Modern Introduction to Programming


Generally, C language is best used for lower-level system requirements, but it is also used in operating systems and device drivers and is important in game development too. Programs written in C language tend to have extremely fast run-time performance.

On the flip side, this language is not ideal for developing standard applications and is rarely used in web development. The language is also prone and susceptible to various security flaws. Quite interestingly, almost all web security exploits can be backtracked to the incorrect use of C.

Read up on the following:

Practical C Programming

11. Practical C Programming: Why Does 2+2 = 5986? (Nutshell Handbooks)


Unsurprisingly, C# language is based on the C language and consequently, the language structure learning is transferable to other languages like Java, Objective-C, PHP, and C++.

C#, along with the ever-popular Java, is one of the top in-demand programming languages for employers. C# based Visual Studio is globally regarded as the best IDE, while other C# based tools like Xamarin Studio and the Mono framework are widely used by programmers to write C# apps for mobile, Mac, Linux, etc.

C# is an object-oriented language which enables the use of intuitive object models. While some programmers suggest that this a something of a con, many programmers actually prefer it.

In addition, C# is a well-managed language, so the programmer doesn’t need to worry about memory management.

Further reading that we’d recommend:


C++ effectively combines the low-level power of C with several layers of abstraction, thus making it a more multi-dimensional and dynamic language.

If a feature doesn’t exist in the language, it can often be written into it if you are enough of a guru. With this language, you can perform imperative, functional, declarative and OO-style programming.

Nonetheless, C++ is extremely robust and the ways its diverse features interact is very complex. No developer can use the entire set of building blocks C++ provides, but it takes great effort and wisdom to choose the correct subset for a program.

These books may help you understand this language more:

55 Specific Ways to Improve Your Programs and Designs

17.  Effective C++: 55 Specific Ways to Improve Your Programs and Designs (3rd Edition)


Java is the most popular language in enterprise applications. First of all, it is backed by Oracle and has a lot of extension/platforms written on top of it, including newer things like NoSQL and functional style languages like Scala.

Java is the language of Android and thus, is also highly relevant to the mobile development and is backed by Google. However, the tooling of Java can be challenging to work with.

Essential reading for Java enthusiasts include:


For some reason, PHP is a language that people tend to either love or hate, sometimes both. PHP is widely ubiquitous but, at the same time, is considered by many to be a terrible (i.e., poorly designed) language. That said, PHP is used on a huge number of successful websites, including Facebook and WordPress. The language is used exclusively for web applications.

Contrastingly, PHP language showcases some of the low quality work that is generated within the industry, with lots of bad code examples online.

Check out these books to get started:

PHP and MySQL Novice to Ninja

27. PHP & MySQL: Novice to Ninja: The Easy Way to Build Your Own Database Driven Website


Python is a popular interpreted language famous for automating repetitive tasks quickly. It saves a lot of development time for professional programmers. According to TIOBE, a well-known programming language index, Python is the 4th most popular programming language as of December 2016.

Python is considered a bit slow when it comes to compilation time comparing with other modern-day programming languages. There are also some security issues because it is dynamically typed.

Python is not widely used for mobile app development. But it’s possible to write Android, iOS or Windows apps in Python by implementing the Kivy framework.

Find out more by seeing these titles:

Python Crash Course

31. Python Crash Course: A Hands-On, Project-Based Introduction to Programming


Ruby is a very popular and “cool” esp. in the startup community. Many are of the view that it is a superior alternative to Java when it comes to creating web applications quickly.

Potential cons include the fact that it is a fast-evolving language, with lots of out-of-date online documentation. It is not really useful for developing GUI applications and is only really relevant to web applications.

Improve your Ruby on Rails knowledge by reading:

Practical Object-Oriented Design in Ruby

33. Ruby on Rails Tutorial: Learn Web Development with Rails (3rd Edition) (Addison-Wesley Professional Ruby)

Ruby on Rails Tutorial

34. Practical Object-Oriented Design in Ruby: An Agile Primer (Addison-Wesley Professional Ruby)

If you’ve made it this far into the article you’ll notice that we’ve covered every major programming language and the relevant material we feel enthusiastic programmer should read.

Good luck and happy learning!

You read a lot. We like that