Top 12 all time technical books for every Software Developer & Engineer
By Vishal Sharma
I have been asked by lot of people over the years from the days of my teaching at RMIT and at Ericsson now, what books a programmer or a Software developer must have in his/her bookshelf. I have been thinking of this for a while and this what i have compiled. These books must be read by every developer or software engineer before writing a piece of code. I have categorized them under
1. Software Engineering, Design and Philosophy
2. Programming Skills
3. Operating Systems
4. Network (Protocol)
5. Database
Software Engineering, Design and Philosophy
1. Design Patterns: Elements of Reusable Object-Oriented Software by Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides
This book is known as (GoF = Gang of Four). It is a must book for anyone to learn Object Oriented Programming.
The material in this book is highly self-referential to get to know particular design pattern. It's a bible fore learning designs patterns and to solve the day to day programming design issues.
Though this book is great, the source code coverage to explain its concepts are bit light, so its hard to grasp in real terms. So to
understand this book I will advise to read the Head First Design Patterns by Elisabeth Freeman, Eric Freeman, Bert Bates, Kathy Sierra.
This covers the most of the patterns in GOF book with class diagrams, hand diagrams, scenarios and source code in Java, which works. So first read this and then read GOF book.
After reading both of these books you will get a good handle on design philosophy and Object Oriented programming.
2.Code Complete, Second Edition by Steve McConnell
One of the aspects of software development is its life cycle. This is not taught well in coaching courses or Universities. This book tries to cover most part of the software development life cycle, from planning to code reviews to testing. There are pretty good discussions, but the best coverage is on how to write a piece of code. Most of the examples are in Visual Basic or Java. It's a well-written book with some good humor.
3.
The Mythical Man-Month: Essays on Software Engineering,
20th Anniversary Edition by Frederick P. Brooks
A classic book for every Project Manager, Architect and a Developer. It covers software development and management of large scale software projects. The writer who is a veteran shares his experience and his views gathered mainly during the development process of the IBM OS/360 operating system. The book is more than 20+ years old which makes it even more interesting, because humans are still making same mistakes again and again. So all managers and developers should read this book. Although the book does have some code examples, but they are few. It's main focus lies on the coordination, resourcing, estimation, tracking and management aspects of software development.
The book is must for people who are in Waterfall model software development. There are lessons for Agile development model.
4. The Art of Computer Programming, Volumes 1-3 Boxed Set by Donald E. Knuth
I have put this book in Software Engineering category, but strictly it's not a Software Engineering book. This book comes before that. It will be appropriate to say it describes how a computer and its internal works at machine level (assembler code and pure maths) from ground up. This is more of a manual like. It is for serious computing!
I havent read this book at all, but when iIwas writing this post I was advised by fellow friends in same profession to list this book.
5.The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt, David Thomas
This book is for programmers from junior to senior level. It outlines principals and practices that are common sense, but reality is most of these principals and practices are overlooked. The book emphasises to avoid these common mistakes. It has lots of great tips, which are applicable to any environment, even though the code examples are in Java and C++.
Programming Skills
6. Unix Network Programming, Vol. 1 and II: The Sockets Networking API, Third Edition by W. Richard Stevens, Bill Fenner, Andrew M. Rudoff, Richard W. Stevens
When it comes to network and low level application programming than their is no better book than UNIX Network Programming Vol-I and II. Before designing and building an application it is vital to learn the basic building blocks of an application. It covers how TCP/UDP works, how common building blocks (IPC, Threads, Logging) of an application works and designed. It will make you learn UNIX programming from scratch. All the examples are in C and are well explained.
7. Advanced Programming in the UNIX(R) Environment (2nd Edition) by W. Richard Stevens, Stephen A. Rago
To learn about how internals of Operating system, consoles, shells, I/O, IPC and other necessary stuff works, this book is a must. It should be read first than Unix network programming book. Network programming book complements this book.
So in a nutshell if you have these three books on Unix programming By Richard, then you have covered all the basic stuff of programming, Operating System and how network communication works.
8. Algorithms in C, Parts 1-5 : Fundamentals, Data Structures, Sorting, Searching, and Graph Algorithms (3rd Edition)
This book is for beginners to learn how how data structures and algorithms work, what are the best options to do certain tasks. The book explains the concept very well with the help of source code. One of the good aspects this book is if you copy and paste the code it will work. That helps a lot! in understanding.
Operating System
9. Modern Operating Systems (2nd Edition) by Andrew Tanenbaum
Operating system concepts are must for any developer to learn.
This book provides a good overview of these concepts. It gives a quit a good understanding of how operating system internal works. Other books which should be read is Operating Systems: Design and Implementation by Andrew S. Tanenbaum, Albert S. Woodhull. In addition to these books a "UNIX Essentials" DVD will complement the books.
Network (Protocol)
10. The Protocols (TCP/IP Illustrated, Volume 1 by W. Richard Stevens
This book is targeted to learn how TCP/IP based networks work. Its not a bible on this subject, but covers enough to help you in understanding TCP/IP from top to boo tom. All examples are covered in C.
Database
11. Fundamentals of Database Systems (5th Edition)
by Ramez Elmasri, Shamkant B. Navathe
This book is for beginners to learn the basic philosophy, motivation and design for database and SQL. Most of the people start learning database by learning SQL, but don't learn how SQL comes into picture, how database are designed. The book might be theoretical in most areas but tries to remove black holes in your knowledge.
12. The Guru's Guide to Transact-SQL by Ken Henderson.
This book is for strictly for advanced developers (who wants be a guru). It helps in solving some pretty intricate problems in elegant ways through SQL, rather than through program code.
If you are a database developer and designer you need to have this book .
This is my top 12 list of books which every developer and a programmer should read. Yes there are other books which missed out. I will cover them in my next post. What do you guys think of this list, any other book which should have been in this must read list.
PS : If you find this post useful then please digg it, so that it gets visible to others and they can read it.
6 Responses to Top 12 all time technical books for every Software Developer & Engineer
This is my list of books for programmers.
Cheers
Hey just stopping by to say I liked your blog.
Check out my site Spacebankers which tells you how to make money on MySpace.
Hey I really liked your blog. You should check out an article I wrote on how to Make Big Money On MySpace .
Hope you like it, talk to you later.
Greg
Backend Cash Manuscript Revealed Before you buy Backend Cash Manuscript, learn the truth. Everyone else is saying how great the product is, but how many of them actually bought it? Well I have, and I have used it. This E-book is being highly touted by alot of the "Gurus', but does it really deliver? Will it work for the regular little guy? Read my Free report "Backend Cash Manuscript Revealed" befor you buy. Don't be suckered in by all the hype. TheCrazyAffiliate reveals all. Backend Cash Manuscript Revealed
The Internet Marketing Genius, Carael Knight
Information powers our world. The more information you have, the more money you make. It used to be you had to go to an expensive business school or spend years becoming a doctor or lawyer to have valuable information people would pay big money for.
Not anymore. Today ANYONE can use FREE classified ads to sell information demanded daily by MILLIONS of people. Think about it. These days when somebody wants to know how to do something, they GO ONLINE and look for INFORMATION to tell them how to do it.
My name is Carael Knight. I started Major Enterprise about seven years ago with a vision and a plan.
The vision was to show people how to start, run, and operate their own profitable online business. Now that led me to create the plan, which was the process of carrying out the vision!
Click Here for more information:
The Internet Marketing Genius, Carael Knight
Nice Blog. I will keep reading. Please take the time and visit my blog about: Internet Marketing and Making Money Online
MajorEnterprise
Something to say?