There is a lot of great skills you get from school/university lectures, no doubt. But on the other hand, for some specific and practical "super powers" you want to acquire or enhance, you have no other choice but teach yourself. The potential reasons are legion. That could happen by mere interest or if you want to deepen your knowledge in one of your subjects. Or maybe for the sake of personal projects, say learning some essential life skill they don't teach you in class. So yes, when college doesn't prepare you for life battles, you have to coach yourself.
Anyway, I am not here to complain about any education system. I am writing this post because I would like to share the best and most useful books I went through, as I have been reading a lot lately. I read on a variety of fields and for each of them I am suggesting the top books (according to my humble opinion).
Here we go:
Productivity and Organisation
Being productive implies being effective, deliver what you promise, go from talk to action : in short, being real. It's not always straightforward to be so concrete. It takes some will power and some organisation. It's a vital skill to have so that your dreams don't remain just dreams. So that your dreams come true:
Getting Things Done (by David Allen): Probably the best book on organisation. It teaches you how to free your mind, how to manage all your "stuff" and how to make efficient choices about your projects.
How to Make a Complete Map of Every Thought You Think (by Lion kimbro): As the title suggests, this book is about how to make a complete map of everything you think for as long as you like. If you do the things described in this book, your thoughts will be clearer to you than they have ever been before. You will see things you have never seen before. It may feel like, for the first time in your life, you really have a clear idea of what kind of thoughts are going through your mind.
Marketing and Business
Learning about marketing is important, even for software developers. Actually, it's important no matter what you want to do in life, whether you want to run a business or work for an existing company. It helps you understand people and deal with them.
Foundations of Marketing (By Jobber and Fahy): That book would be a great way to start off, assuming you don't know anything about marketing. It's easy to understand and it teaches the basic concepts through concrete examples.
Influence : The Psychology of Persuasion (by Robert Cialdini): This book discusses the weapons of influence from a psychological point of view. Among other things, it explains the main factors that cause one person to say yes to another person, as well as real life examples.
Breakthrough Advertising (by Eugene Schwartz): Basically about copywriting (or how to sell with a few written words). What makes this one excellent is, it teaches how to identify the desires of the customers and write headlines and ads that trigger a reaction, as they present solutions to their needs.
I Will Teach You To Be Rich (by Ramit Sethi): Not just another boring finance book. Not only is this book informative, it is fun and includes practical tips that would help you master your finances and possibly make more money.
UX is basically the way users feel about your product or service. It highlights valuable aspects of human-computer interaction. Whatever you build, UX is not a choice. This stuff matters, it affects the success (or failure) of your product. Bad design and bad experience happen.
Mobile Interaction Design (by Matt Jones): this book reveals how mobiles have the potential to be key building blocks in this new digitally augmented world, and how careful innovations in that field could change the world, bringing pleasure and helping businesses.
Press On (by Harold Thimbleby): Provides many ways of thinking clearly about the design of interactive devices and about interaction programming. The emphasis throughout is on making better interfaces.
Simply put, digital arts are computer-aided artistic works. For this selection, I focus on visual arts.
How To Cheat In Photoshop (by Steve Caplin): A goldmine of practical and useful tips, tricks and step-by-step walkthroughs introducing you to the art of creating photo-realistic montages.
Digital Character Painting Using Photoshop (by Don Seegmiller): a complete book on digital illustration and painting. It covers such theoretical topics as how to get ideas and how to get them out so that others may see them. Then it deals with artistic fundamentals that will help you take your ideas to the next step, drawing and painting. Finally, it provides a series of tutorials that show how to handle different issues when you draw and paint.
Yes, as a virtual worlds enthusiast, I had to come up with that selection too :-)
Networking and Online Games : Understanding and Engineering Multiplayer Internet Games / Multiplayer Game Programming: those 2 books would teach you the history of online gaming as well as the basic concepts and some technical aspects to be considered.
Developing online games, an insider's guide (by Mulligan and Patrovsky): This one provides insight into designing, developing and managing online games. This is where you learn from the top two online game developers through the real-world successes and mistakes not known to others. There are Case studies from 10+ industry leaders.
Designing Virtual Worlds (by Richard Bartle): while the previous book discusses broadly online games development, this one focus on virtual worlds. This is a book for people who design virtual worlds. Because of this, it's also a book for people who implement, operate, study, or play virtual worlds. Because of this, it's also a book for people interested in entertainment, education, creativity, art, society, culture, philosophy, space, architecture, psychology, identity, language, economics, government, theology, drama, literature, or cognition. Virtual worlds are of the future. If you want to create or understand that future, this is the book for you.
C# Web Programming
We are getting very specific here. There are lots of technology/programming books out there, but I am going to focus here on what I know best : C#.NET Web development.
ASP.NET 3.5 For Dummies (by Ken Cox): if you want to start off quickly and just begin to create your own websites/web apps within days, this is the book to pick. For an immediate immersion in ASP.NET and the Visual Web Developer environment.
Pro C# 2008 and the .NET 3.5 Platform (by Andrew Troelsen): Well, now that you have made a few apps, as you move forward and it gets confusing at times, you realise that this .NET Framework is really wide. This is the book that give you an overall view on the technology from the philosophy of .NET through the core C# programming constructs, the advanced C# programming constructs and web and desktop user interfaces, among other things. It even goes through more obscure concepts such as shared assemblies, delegates, late binding, workflow foundation, COM interoperability, etc. In short, a very complete book.
ASP.NET 3.5 Social Network (by Andrew Siemers): after you grab the key concepts and play around with the technology through a few projects, maybe you would want to launch an actual product, something that people could use. The way to go about that is probably to see how experts do it, for instance, how they build discussion boards, membership systems or blogs. Better yet, this book will teach you how to build a complete ASP.NET social network from start to finish.
Building a Web 2.0 Portal with ASP.NET 3.5 (by Omar Zabir): This one is definitely the pièce de résistance. This book not only teaches how to build a State-of-the-Art Ajax website using ASP.NET, LINQ, advanced ajax concepts, Windows WorkFlow and other cutting-edge Microsoft technologies; it also shows how to solve real life production challenges such as deployment, hosting, performance optimisation, scalability, caching, security, monitoring, etc.
That's it for now...