Live data from Hacker News

Programming books you might want to consider reading

danluu.com

31–40 of 137 posts

Re: Programming books you might want to consider reading

#31
Upvoted for recommendation of "Dasgupta, Papadimitriou, and Vazirani; Algorithms".

Unlike TAOCP and CLRS it's actually readable in realistic amount of time.

This book is also very good at explaining theoretical computer science. In particular - NP completeness.

Official copy is available at home page of Umesh Vazirani at berkeley.edu:

0: Prologue - https://people.eecs.berkeley.edu/~vazirani/algorithms/chap0....

1: Algorithms with numbers - https://people.eecs.berkeley.edu/~vazirani/algorithms/chap1....

2: Divide-and-conquer algorithms - https://people.eecs.berkeley.edu/~vazirani/algorithms/chap2....

3: Decompositions of graphs - https://people.eecs.berkeley.edu/~vazirani/algorithms/chap3....

4: Paths in graphs - https://people.eecs.berkeley.edu/~vazirani/algorithms/chap4....

5: Greedy algorithms - https://people.eecs.berkeley.edu/~vazirani/algorithms/chap5....

6: Dynamic programming - https://people.eecs.berkeley.edu/~vazirani/algorithms/chap6....

7: Linear programming and reductions - https://people.eecs.berkeley.edu/~vazirani/algorithms/chap7....

8: NP-complete problems - https://people.eecs.berkeley.edu/~vazirani/algorithms/chap8....

9: Coping with NP-completeness - https://people.eecs.berkeley.edu/~vazirani/algorithms/chap9....

10: Quantum algorithms - https://people.eecs.berkeley.edu/~vazirani/algorithms/chap10...

Re: Programming books you might want to consider reading

#34
post #21

Earlier quoted context omitted.

I think such books are pointless if you aren't going to use them in your day-to-day work.

You don't believe in knowledge for the sake of enjoying the perspective that more knowledge gives you?

I do, but with a kid my time is now limited. Unused knowledge has this habit of being forgotten. It turns out to be a terrible waste, at least from my POV.

Re: Programming books you might want to consider reading

#35
post #34
post #21

Earlier quoted context omitted.

You don't believe in knowledge for the sake of enjoying the perspective that more knowledge gives you?

I do, but with a kid my time is now limited. Unused knowledge has this habit of being forgotten. It turns out to be a terrible waste, at least from my POV.

Baseball players waste 9 of every 10 swings on misses. It's a terrible waste.

Re: Programming books you might want to consider reading

#36

I often here comments about finishing a mathematical/technical book over the course of a "few" weekends. But I don't see how thats possible if it includes completing all (or even most of) the given exercises. Especially when you have a full-time job.

It probably isn't if you're coming at the material for the first time, or after a long break. I took a 15-week course in Linear Algebra a few months ago, and we only covered about half the book in that time. I spent just about every weekend and evening doing those exercises. It's very time consuming.

However, if you gave me my old College Algebra book, I might be able to skim through it in a month of weekends and refresh myself on most of it, because I've used that stuff a lot in various jobs. Same goes for a lot of (but by no means all) programming books. I'm immersed in that stuff daily, so I can get through it pretty quickly.

Re: Programming books you might want to consider reading

#38
post #35
post #34

Earlier quoted context omitted.

I do, but with a kid my time is now limited. Unused knowledge has this habit of being forgotten. It turns out to be a terrible waste, at least from my POV.

Baseball players waste 9 of every 10 swings on misses. It's a terrible waste.

>Baseball players waste 9 of every 10 swings on misses.

And swinging a bat is one of the skills baseball players need to use for their job. The comment you replied to was talking about skills that are not going to be used every day. So I don't think your analogy is very useful.

Re: Programming books you might want to consider reading

#40
Luu says regarding the Little Book of Semaphores:

"If I’m writing grungy low-level threading code today, I’m overwhelmingly like to be using c++11 threading primitives, so I’d like something that uses those instead of semaphores,"

But as someone whose lowest-level experience of concurrency is with APIs similar to the C++ primitives (which are not that different from pthreads), I disagree. I found it a real eye-opener to see how all this can be broken down to semaphores.

I am starting to think that a semaphore-only set of primtives would be easier to reason about. I've seen better coders than me make over-complicated mutex based solutions when sempahores gave a simple answer. And I bet I've done it too.

Post reply on HN