1. Learn you some erlang (http://learnyousomeerlang.com/)
Because it is written in a style in which technical books are rarely written. It has cartoons, jokes, references to pop culture but still it conveys the core subject exceedingly well. I understand that this is written in style of learn you some haskell so I am going to read that as well at some point. The best part is you can read the book second or third time and still have fun.
2. Joe Armstrong's thesis(http://www.erlang.org/download/armstrong_thesis_2003.pdf)
Yes it is another erlang book but it is written so well! I don't read thesis (or to be perfectly honest I try reading them but I can't understand most of them and lose interest after some time) but somehow I Joe's thesis made sense to me. It might be because of his clear writing style I can't say. But every time I read this book I find a certain phrase that sticks with me while I am writing programmes. Joe is a quote machine :)
3. Essays in the art of writing by R.L stevenson (http://www.gutenberg.org/files/492/492-h/492-h.htm)
Just read the opening paragraph and see for yourself if you don't want to read any more :)
Petzold's style is narrative, but make no mistake: every sentence is carefully chosen. I recommend resisting the urge to skim, lest you have to backtrack later...
I had completely forgot I owned this book, thanks for reminding me! My friend has since given up on programming so I'll definitely get it back :)
Imho, the first chapter is a must-read for anyone in the industry, even and maybe especially if not a developer.
"When a program works, it is beautiful. The art of programming is the skill of controlling complexity. The great program is subdued, made simple in its complexity."
High-Performance Browser Networking by Ilya Grigorik
I'm going through it now, on my own, and it's an awesome course.
...It started in late June and the Final is in August.
The book had some nice typesetting which I believe was done in the mystery language also used for man pages.
"Real Unix books are written using troff and this book follows that time-honored tradition. Camera-ready copy of the book was produced by the author using the groff package written by James Clark. Many thanks to James Clark for providing this excellent system and for his rapid response to bug fixes. Perhaps someday I will really understand troff footer traps."
You were bit ahead of your time if you were reading ebooks back then.
Generally, there are plenty of good books, you get some ideas usually by combining knowledge from different books...
Even though this may sound a bit old-fashioned, simply in terms of quality and self-containedness, "The C Programming Language" by K&R is by far the best technical book I've read. You can certainly download it as PDF somewhere.
The book is really accessible and helpful. SaneDB helped me survive a development project when I was new to many things and beat some sense into me about what databases (and DBAs) are for that still comes in handy every week.
Some of the examples are a bit dated now, and this type of immersive learning at intermediate/advanced levels is increasingly common (e.g. the Head First series, Codecademy, etc) but when this book came out it was rare to have this learning method presented for anything other than the most beginning levels of a language.
I think it is one of the best books written on any topic ever period.
It is kinda advanced but also brilliant, and was a turning point in my decision to master hacking.
> Now I am reading "Two Scoops of Django" and enjoying it A LOT.
It's closer to a beginner/intermediate level, and it brings me a lot of joy and excitement about programming.
> Another one is "Hackers & Painters", of course. PG is brilliant, nuff said.
His book "ANSI Common Lisp" is definitely on the top of my reading list, I've already started and it is great.
> Just to mention, a little less technical book is "Ghost In The Wires" by Kevin Mitnick, a famous hacker.
I'm listening the audiobook now and it is really inspiring, entertaining and fantastic.
I disagree. It's used as an introductory book on AI classes and it's a very broad book covering enough surface on different AI topics. But if you want to go deep, you have to dig into academic papers
Available free in HTML form:
Not very technical, but there's some interesting stuff in there, for example about working on the atomic bomb in WWII.
Multi-Format: epub/pdf/html, great use of Middleman, being internationalised, interesting & useful videos (but more might perhaps be made of the premium end)
Content: really well matched to target audience. Ongoing updates.
Design: Very attractive countenance
If you are an experienced programmer coming to Ruby this is definitely the place to start. Especially if you are a Java or .NET EE-indoctrinated programmer. The people who maintain your code after you will be thankful that you read this and wrote idiomatic Ruby.
If you just want to learn Ruby or read an excellent technical book as mind food this book is also a great choice.
(Code by Petzold is actually my favorite technical book, but its already been picked.)
There's some overlap in contents, but I feel they complement each other very well.
For a Software Engineering book, it's hard to beat The Pragmatic Programmer.
A good working-with-other-people book is Extreme Programming Explained 2nd ed.
Refactoring: improving the design of existing code
Database design for mere mortals
MIT books (SICP, Algorithms)
Oh, and of course... Human Interface Guidelines by Apple. One of the best UX books on app design.
All books are ebooks for me, so this list is impossibly long.
Super hands-on book. Since reading it, I'm writing better programs faster.
General topic: « The Pragmatic Programmer: From Journeyman to Master »
Java and more: « Effective Java » 2nd edition
About unit testing with Java tools: « Practical Unit Testing with Mockito and JUnit »
Because even the best technology has people behind it.
Implementing SSL/TLS Using Cryptography and PKI - Written by Joshua Davies
"How to think like a computer scientist"
Reading this book led to many "Aha" moments where I really started to understand the benefits of OOP. Great read.
for plain books:
Windows Internals by Solomon and Russinovich
AI: A modern Approach by Russell and Norvig