9 ms·
Ask HN: What's the best programming book you've read recently?
- myko 12y agoEffective Objective-C 2.0: https://play.google.com/store/books/details/Matt_Galloway_Effective_Objective_C_2_0?id=qp4ZXAmGaoQC https://play.google.com/store/books/details/Matt_Galloway_Ef... In the style of other "Effective Foo" books. Excellent overview of best practices for ObjC, it's the first book I hand new developers on my team.
- nwhitehead 12y ago"Programming in Lua", by Roberto Ierusalimschy. This is a gem of a programming book. Some of my favorite chapters: coroutines, metamethods, weak tables, threads and states. Similar in tone and clarity to K&R "The C Programming Language". I learn something new every time I flip through this book.
- kevinskii 12y ago"Mining of Massive Datasets", by Jure Leskovec, Anand Rajaraman, and Jeffrey D. Ullman. You can get the PDF here: http://infolab.stanford.edu/~ullman/mmds/book.pdf http://infolab.stanford.edu/~ullman/mmds/book.pdf
- jeremyis 12y agoNot programming per say, but love Downey's ThinkOs (free): http://greenteapress.com/thinkos/ http://greenteapress.com/thinkos/. Am currently reading Think Complexity (also free): http://greenteapress.com/complexity/index.html http://greenteapress.com/complexity/index.html
- tathastu 12y agoComputer Systems: A programmer's perspective Great look at under-the-hood of what happens when a program runs.
- eiji 12y agoC++ Concurrency in Action, Practical Multithreading, by Anthony Williams http://www.manning.com/williams/ http://www.manning.com/williams/
- robgering 12y agoI've really been enjoying The Joy of Clojure (http://joyofclojure.com/ http://joyofclojure.com/) -- note that there's a nearly-finished 2ed in PDF form if you buy the early access version. I've also been reading Clojure Programming (http://www.clojurebook.com/ http://www.clojurebook.com/) to reinforce concepts from the above.
- lgunsch 12y agoClean Code: A Handbook of Agile Software Craftsmanship, by Robert C. Martin.
- espinchi 12y agoIt depends heavily on what stage of your career as a programmer you are. I strongly suggest most junior programmers I work with to read Effective Java and Head First Design Patterns. To me, it's a great combination to help you write code that's easy to understand and maintain.
- tdicola 12y agoStroustrup's "A Tour of C++" is a great overview of C++11 and modern C++. It's not very long and worth a read to see what's new in the C++ world. The audience is aimed at people who already know C++ but want to know what's new with the latest version. I've been doing a lot more with C++11 recently and am really impressed with the language--dare I say C++ is actually fun to use.
- pagade 12y agoI thoroughly enjoyed it. Would recommend to anyone interested in quick overview of C++.
- Jake232 12y agoJust purchased this. I'm hoping it can make up for a year of not attending my c++ lectures, to learn enough for my exam in 1.5weeks.
- tdicola 12y agoI don't think it's going to help that much if you're new to the language. You probably want to cram something more beginner friendly like Thinking in C++: http://mindview.net/Books/TICPP/ThinkingInCPP2e.html http://mindview.net/Books/TICPP/ThinkingInCPP2e.html It's a great book that helped me really start to grok C++ long ago when I was new to the language.
- Jake232 12y agoI'm pretty proficient in a ton of other languages, so I'm hoping I have a pretty good head start and will be able to follow the book, but I'll read Thinking in C++ in the meantime until my order arrives. Thanks for the suggestion!
- sanderjd 12y agoCame here to mention this. I've also found it to be a great resource for understanding a lot of the design decisions in Rust (if you're into that sort of thing), which are often informed by similar decisions in recent versions of C++ that "Tour of C++" discusses in detail.
- franze 12y agoPeopleware pretty much the most important programming book a programmer who works with / in teams can / should / must read.
- julian25 12y agoI've been reading Real World Haskell recently and loving it. It does a fantastic job of blowing your mind while simultaneously showing you how to apply Haskell to real-world problems.
- elwell 12y agoThe authors put the book online; though they prefer you purchase a copy if you like it: http://book.realworldhaskell.org/read/index.html http://book.realworldhaskell.org/read/index.html
- wink 12y agoActually I didn't like it at all. It's been a few years, but it totally put me off learning Haskell. Doing some small steps again now, but although I'm usually all for real world applications first (instead of doing the millionth factorial function) - but it did not make much sense to me didactically.
- playing_colours 12y ago"Peopleware" http://www.amazon.com/Peopleware-Productive-Projects-Second-Edition/dp/0932633439 http://www.amazon.com/Peopleware-Productive-Projects-Second-... , a lot of insights and ideas how to build great teams. Great to read for developers, team leads and managers. "The art of multiprocessor programming", excellent book on parallel programming theory with code explanations: http://www.amazon.com/gp/product/0123705916?ie=UTF8&tag=nirshavitshom-20&linkCode=as2&camp=1789&creative=390957&creativeASIN=0123705916 http://www.amazon.com/gp/product/0123705916?ie=UTF8&tag=nirs...
- dkersten 12y agoI read (not all of it, maybe 50% of it) "The art of multiprocessor programming" a couple of years ago and I agree, its an excellent book. I have a handful of books on the topic and I find this to be my favourite.
- playing_colours 12y agoIf you have the list of books to read on the topic I would be happy if you share it. My next book on the topic will be http://mitpress.mit.edu/books/programming-distributed-computing-systems http://mitpress.mit.edu/books/programming-distributed-comput...
- dkersten 12y agoThe only ones I can think of off-hand are these two. The second one isn't really about parallel/concurrent/distributed programming per se, but rather about using Intels Threading Building Blocks - good book if that's what you want to do, but not very useful if not. The first book is interesting and covers a lot of ground (covering general techniques and algorithms as well as specific implementations with OpenMP, MPI and Java's facilities), but I liked Art of multiprocessor programming more, probably because it has a more beginner friendly teach everything from the very beginning approach. http://www.amazon.com/Patterns-Parallel-Programming-Timothy-Mattson/dp/0321228111/ref=sr_1_1?ie=UTF8&qid=1400477708&sr=8-1&keywords=patterns+of+parallel+programming http://www.amazon.com/Patterns-Parallel-Programming-Timothy-... http://www.amazon.com/Intel-Threading-Building-Blocks-Parallelism/dp/0596514808/ref=sr_1_1?s=books&ie=UTF8&qid=1400477796&sr=1-1&keywords=intel+threading+building+blocks http://www.amazon.com/Intel-Threading-Building-Blocks-Parall...
- tshaddox 12y agoI recently went through the later chapters of The Little Schemer again. I still find it incredibly challenging and awesome. As many have said, this is a great book to teach you to think recursively. http://www.ccs.neu.edu/home/matthias/BTLS/ http://www.ccs.neu.edu/home/matthias/BTLS/ http://www.amazon.com/The-Little-Schemer-4th-Edition/dp/0262560992 http://www.amazon.com/The-Little-Schemer-4th-Edition/dp/0262...
- walexander 12y agoNot trying to sound cute, but The Elements of Programming Style by Kernighan and Plaugher (1974). Just read this last week during a day of plane travel. It's all PLI and Fortran, with lots of GOTO being harmful examples, but surprisingly much of it is still relevant. It's a quick read and interesting look at some of the problems they had back then (and some that we still create plenty of today).
- isuraed 12y agoRefactoring by Martin Fowler. Extremely practical if you work with old and large code bases.
- npsimons 12y ago"Refactoring" is next on my list, but I started with "UML Distilled", and am currently working on "Design Patterns", partly in preparation for "Refactoring" (and "UML Distilled" was partly in preparation for "Design Patterns").
- enterx 12y agoSuggestion : Invert the order. :) Read Refactoring first than read Design Patterns(GoF).
- loumf 12y agoThere's a great book called Refactoring to Patterns which I would suggest after GoF (and just overviewing the Refactoring book) http://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/dp/0321213351 http://www.amazon.com/Refactoring-Patterns-Joshua-Kerievsky/...
- truncate 12y agoCurrently reading Programming Pearls by Jon Bentley. Interesting small case studies that gives insight on how to tackle problems and think about programming.
- NicoJuicy 12y agoFirst time i see this one. Could be interesting ;-)
- zwieback 12y ago"C# In Depth, 3rd edition" by Jon Skeet. I had been falling behind on the new stuff added to .NET and C# and this is a good way to get back on the curve.
- tonyedgecombe 12y agoI'm half way through this and slightly disappointed with it. I thought there was too much material on upgrading from early versions that have been obsolete for a long time. Hopefully the second half is better.
- lukasm 12y agoCode Complete has pretty good bang per page, especially if you are beginner. http://www.amazon.co.uk/Code-Complete-Practical-Handbook-Construction/dp/0735619670 http://www.amazon.co.uk/Code-Complete-Practical-Handbook-Con...
- abcd_f 12y agoThis is the most disappointing programming book I have ever had a misfortune to buy. If you ever read any UML / Rational Software books - this is right up there in terms of sucking all joy out of programming, putting a blue collar and tie on you and then strangling you to death with soul-less trivialization of the software creation process. Horrible, horrible book. If you like K&R books, stay the hell away from Code Complete. But make sure to read it though if you think programming is a career.
- killnine 12y agoI've recently read The Passionate Programmer and was rather disappointed. The book has a few very valuable insights. For the most part it reads like a series of blog posts from a slightly experienced developer.
- sunkencity 12y agoIt's like a fish to water nowadays, basically assimilated into the programming culture by now.
- michaelchum 12y agoJavaScript: The Good Parts. Made me see JS in a much more elegant way. Coding JS is not trivial. I did use JS in webdev in general, and APIs. But really, I would have never known the mysteries behind it such as prototypal inheritance.
- deathtrader666 12y agoI've recently started my way through SICP and Algorithms in a Nutshell.
- DanielBMarkham 12y agoClean Code, by Robert Martin. Excellent book that dives in deep on how to write solid code. It's like having the ultimate code review in book form. Shameless plug: I just finished writing the first in a series of books about Backlogs. Good backlogs can make programming a lot easier. Conversely, horribly formed backlogs can turn coding into a death march. http://bit.ly/1fJd5Gg http://bit.ly/1fJd5Gg
- stopachka 12y agoEffective Javascript.
- will_work4tears 12y agoBeen reading this one on my Kindle app, but it seems very "entry level" so far. You know of any good Intermediate to Advanced JS books out there? I have Test Driven JavaScript Development by Christian Johansen that I've dug into a bit, but have yet to finish (it's got some more "advanced" stuff I guess, currying, etc).
- draker 12y agoThose two books are recommended in this blog post; there are a few other resources mentioned you may want to look into. http://javascriptissexy.com/learn-intermediate-and-advanced-javascript/ http://javascriptissexy.com/learn-intermediate-and-advanced-...
- OWaz 12y agoCheck out JavaScript Allonge[1] or JavaScript Enlightenment[2] [1]: https://leanpub.com/javascript-allonge/read https://leanpub.com/javascript-allonge/read [2]: http://shop.oreilly.com/product/0636920027713.do http://shop.oreilly.com/product/0636920027713.do
- kachhalimbu 12y agoI highly recommend "Secrets of JavaScript Ninja by John Resig and Bear Bibeault. It tremendously help me level up my JS skills. http://www.manning.com/resig/ http://www.manning.com/resig/
- thrush 12y agoA little more than just programming, but just finished Ilya Grigorik's new book, "High Performance Browser Networking" (available free online). I learned a lot about Javascript/HTML loading and execution that I had never even thought about.
- why-el 12y agoEffective Java. A very succinct collection of wonderful practices and ideas on how to code great software that you can finish in a couple of days, even if you are on a working schedule. Don't mind the "Java" in the title; I read the book regularly and it applies to pretty much any language capable of some OO. Check the table of contents, it will give you an idea of what to expect from the book.
- will_work4tears 12y agoI've got this right at the top of my wish list. Got a list of other books I gotta finish first though, lol: Code Complete 2, The Web Application Hacker's Handbook, Algorithms in a Nutshell, and Code. Not to mention an Arduino book - but I'll probably get Effective Java and read it first.
- Serow225 12y agoC Primer Plus and Expert C Programming. I wish there was a book similar to the latter that covered C99/11.
- stusmall 12y agoHave you tried C Programming: A Modern Approach? It is very good with C99 but there is no C11. My only problem is that it spends too much time for people who are new to C.
- Serow225 12y agoNot yet, I'll take a look - thanks!
- actf 12y agoI haven't read the book you mention, but regarding a book that does cover c99/11, I really enjoyed: 21st Century C: C Tips from the New School If you are an experienced C programmer you may end up skipping large portions of it. In my opinion the book is mostly targeted at people that have had some C experience in the past (probably long ago in school) and have since moved on to newer languages. FWIW I read (and enjoyed) the book cover-to-cover, and I mostly do C# in my day to day work.
- mtalantikite 12y ago"Concepts, Techniques, and Models of Computer Programming" by Peter Van Roy and Seif Haridi. Also "The Reasoned Schemer", which has the same pedagogical style as the other Schemer books, but works around logic programming. Both of those books are mind benders and I've gotten a lot out of them recently.
- AlexanderDhoore 12y ago"Programming Erlang: Software for a Concurrent World", by Joe Armstrong himself. I have not read it completely, because the first chapters inspired me to start programming (in Erlang) and I haven't gotten back to the book yet.
- dmunoz 12y agoI also read this earlier in the year. I used Erlang in a few projects at university, but never formally learned much about it beyond what I needed. I invite you you to hop back into the book. I found it to be a fairly quick read for a technical book. The chapters are well motivated, and the code samples were well placed. Since you have some additional experience with Erlang now, you might want to skip directly to the later chapters on libraries and frameworks, or on building real applications.
- Skoofoo 12y agoI thought I knew how to write good Ruby code, but then I read "Practical Object-Oriented Design in Ruby". http://www.poodr.com/ http://www.poodr.com/
- yarou 12y agoTAOCP by Knuth (if you can get past the maths).
- mystral 12y agoLast one was probably Let Over Lambda. One of the few programming books I've read cover to cover.
- jbeja 12y ago"Practical Object-Oriented Design in Ruby. A Agile Primer" By Sandi Metz. I am not so much a ruby fan, but don't let the title decive you, ruby is just the tool (since it could use any other OOP language) to show what the book is realy about (OOP Design shown in the best way possible).
- jimeuxx 12y agoI think this book is a little too basic for anyone who's already studied any OOP. I'm no expert, but what I learnt from this could've been condensed into a blog post. I think it'd make a great introduction (a word that should be included in the title) to OOP though.
- pcmccull 12y agoWorking Effectively with Legacy Code, by Michael Feathers
- tonyedgecombe 12y agoWhat do you think of it? I've been considering buying this for a while.
- gfodor 12y agoPhysically Based Rendering by Pharr and Humphreys. Excellent book on modern ray tracing that is a literate program. It's an amazing piece of work (even won an oscar!)
- sunny1304 12y agoLinux Device Drivers, 3rd Edition still not finished, but this is best book i have encountered for linux driver programming.
- warfangle 12y agoThe Soul of a New Machine. Fascinating documentation of Data General's development of the 32-bit Eclipse machine. Sorta programming, sorta hardware... back when the two were more tightly integrated.
- felixgallo 12y agoI had the good fortune to work for Tom West after that book was written. He was, quite simply, the best.
- recursive 12y agoSql Antipatterns by Bill Karwin
- antocv 12y agoBeginning Java EE7 is good, a refresher.
- jason_slack 12y agoI have a few coming from Amazon OpenGL Insights - Cozzi and Riccio Game Engine Architecture (2nd Edition) - Jason Gregory Programming: Principles and Practice Using C++ (2nd Edition) - Stroustrup
- arcadeparade 12y agohttp://en.wikipedia.org/wiki/Code:_The_Hidden_Language_of_Computer_Hardware_and_Software http://en.wikipedia.org/wiki/Code:_The_Hidden_Language_of_Co... Really good introduction to computers from relays up.
- taylodl 12y agoThe Little Schemer. Fun to read, solidify knowledge of Scheme.
- john0 12y agoSecrets of the JavaScript Ninja http://www.manning.com/resig/ http://www.manning.com/resig/ has helped me understand some of the more interesting parts of the language (such as functions being first class objects) better.
- danielrpa 12y agoStructure and Interpretation of Computer Programs (SICP)
- dusandusan 12y ago"More Effective C++" by Scott Meyers While directed at the C++ crowd, I would recommend this book to any programmer, as it explains many interesting concepts and idioms that are not C++ specific.
- enterx 12y agoApprenticeship Patterns: Guidance for the Aspiring Software Craftsman - Dave Hoover , Adewale Oshineye
- wink 12y agoModern Operating Systems by Tanenbaum, although it's more basics, still relevant for low-level stuff.
- brudgers 12y agoThe books on and around my nightstand: + Joy of Clojure. A recent gift[card]. I put off learning Clojure because of it's more complex syntax. I'm both glad I did, and that I have this book now that that's the no longer the case. + ANSI Common Lisp. Lisp was out of reach at the time when my younger self might have pursued computer programming, and realizing around two years ago how accessible it had become got me to download Lisp in a Box and then buy the used copy. Currently visiting, this book orbits in and out of the rotation with a cometary periodicity. + Art of Computer Programming: Volume 3, Sorting and Searching Twenty-five years ago or so I bought volume I and about 15 years I donated it to the community radio station's books sale [WMNF 88.5]. I spent about $25 dollars including shipping for used copies of the first three volumes from Amazon last year. Right now each is on a different floor. The proximate reason Sorting and Searching is by the bed: I'm taking Algorithms I on Coursera and it is the first one that really dives into algorithms. A deeper reason is that Knuth always reminds me how much more there is to know - I'm getting better at the maths, but haven't learned MIX. Maybe one of these nights. + Structure and Interpretation of Computer Programs I bought a "used" copy from MIT via Amazon last year. It's staggering how much is really in it that I glossed over 'reading' the free online version. It's much better than I thought, and I find myself constantly referring to it or just reading a section. It's also a reference for the other Coursera course I am taking: Funtional Programming in Scala with Martin Ordersky. The non-programming books are from the public library: + How Literature Works: 50 Key Concepts. The sections are four to six pages and lightweight. Makes for something brief to read. It's the sort of book that I feel no obligation to finish. + Poetry of the First World War: An Anthology This book is actually why I mention the non-programming books. I don't read poetry, but I'd always seen people make a big deal about it, and there this was on the new book shelf. I see why the English make a big deal about Siegried Sassoon. I see why they make an even bigger deal about Wilfred Owen. It's potent and powerful and the bench of poets runs much deeper. It makes that war the last ancient one.
- rdc12 12y agoNot strictly programming, but been reading Information, a history, a theory , aflood. Been strugling to userstand what life would have been like before various aspects of storage/transmision would have been like. Looking forward to when it hits Claude Shannon
- cenazoic 12y agoI'm attempting some self-taught coding (my degree is in history), and after much dithering, have started with How to Design Programs (htdp.org). SICP is beyond me at this point, and I wanted to get a good grounding in general concepts and good design before jumping into some other more (theoretically lucrative)language. HtDP is wonderful at what it does, and while perhaps a tad dry in writing style, it is, for me, a page turner in terms of engagement and presentation of new ideas.
- runT1ME 12y agoFunctional Programming in Scala. It's not a book about scala, it just so happens to use scala as the language to teach you how to program functionally. I've read other books that purport to do the same, they end up showing a light sprinkling of functional concepts. This book goes much deeper, and is ultimately much more rewarding.
- sytelus 12y agoDoing Bayesian Data Analysis Interesting topics: MCMC, Gibbs Sampling F# for C# Developers This book seems to leave lot out in order to simplify but good starting book nonetheless TCP/IP Illustrated, Volume 1: The Protocols, Second Edition I wanted to know what really "connection" means. This book has answer. An Introduction to R I guess everyone dealing with data should know R, right? Here's my Amazon list with quite a few very interesting books collected over time: http://www.amazon.com/gp/registry/wishlist/RXLC4WK1ZOJR http://www.amazon.com/gp/registry/wishlist/RXLC4WK1ZOJR
- sateesh 12y agoAs part of the MOOC course Paradigms of Computer Programming (https://www.edx.org/course/louvainx/louvainx-louv1-01x-paradigms-computer-1203 https://www.edx.org/course/louvainx/louvainx-louv1-01x-parad...) I read the initial parts of the book: "Concepts, Techniques, and Models of Computer Programming" (mitpress.mit.edu/books/concepts-techniques-and-models-computer-programming). The initial chapters provide a good approachable way to get started with functional programming. Though working with Oz (the programming language used in the book) gets some time to get used to, this is an excellent book. I am bit surprised that this book is not as well known, and probably I wouldn't have known about this book if not for the MOOC course.
- malandrew 12y agoThe Little Schemer
- kirang1989 12y agoComputer Systems: A Programmer's Perspective and NAND2Tetris: Elements of Computing Systems are the best books to learn the internals of computer hardware and solidify your understanding of how a computer works. The Pragmatic Programmer - My all time favorite. Awesome book to learn best practices of various aspects in programming. The Code Book: The Evolution Of Secrecy From Mary, Queen Of Scots To Quantum Cryptography, if you have a thing for cryptography.
- fredyr 12y agoRichard Bird, Philip Wadler - Introduction to Functional Programming http://www.amazon.com/Introduction-Functional-Programming-International-Computing/dp/0134841891 http://www.amazon.com/Introduction-Functional-Programming-In... Richard Bird - Pearls of Functional Algorithm Design http://www.amazon.com/Pearls-Functional-Algorithm-Design-Richard/dp/0521513383 http://www.amazon.com/Pearls-Functional-Algorithm-Design-Ric... Christian Queinnec - Lisp in Small Pieces http://www.amazon.com/Lisp-Small-Pieces-Christian-Queinnec/dp/0521545668 http://www.amazon.com/Lisp-Small-Pieces-Christian-Queinnec/d...
- digita88 12y agoNon-technical but some great concepts which can be adapted to programming: Thinking in Systems by Donella Meadows The Checklist Manifesto by Athul Gawande
- joerich 12y agoI recently got "Hackers and painters" by Paul Graham. I'm still reading but pretty cool so far.
- iceman_xiii 12y agoHave read over half of Learning Python by Mark Lutz (O'Reilly). A good read.