3 ms·
I think this should be: 7 books of a highly academic programmer. A highly effective programmer probably should be reading other topics as to be honest, most o
by meaty 14y ago
I think this should be:
7 books of a highly academic programmer.
A highly effective programmer probably should be reading other topics as to be honest, most of programming is laborious non comp Sci stuff.
- Toshio 14y agoAnd what books would you recommend instead?
- meaty 14y agoNone at all. Id recommend reading other people's code and thinking about it for a while.
- minikomi 14y agoJust out of curiosity: if you (or anyone else!) had to make a "must read code" list, what would be on it?
- meaty 14y agoGcc,gnome,openoffice - how not to do something. FreeBSD,llvm,trac,vim - how to use sound engineering.
- dragonquest 14y agoAnything written by Peter Norvig or D Richard Hipp.
- fogus 14y agoReading code is a great exercise and I've nursed a half-baked post on the topic for years now. However, I'm not sure that code reading is all that's needed.
- thomaslangston 14y agoCode Complete 2 Seven Languages in Seven Weeks The Art of Unix Programming
- afhof 14y agoBefore I interviewed at Google, I read the book "Effective Java" Never before have I read something and had an epiphany that not only is someone else is way, way smarter than me, but the advice incredibly powerful and useable. I regularly consult that book, even for non Java stuff.
- savethejets 14y agoClean Code
- tikhonj 14y agoEven laborious non-CS stuff can be improved by basic knowledge from his listed topics. For example, functional programming may have a slightly academic vibe, but it's also great for boring things--you still get all the benefits like simplicity, safety and conciseness, which makes your boring program easier to write and more maintainable. Another great topic is language development. This one probably sounds even more academic than functional programming! But this is not the case. In virtually every space, even the boring ones, you can make your code simpler and more maintainable by factoring it into a DSL. And this is exactly the skill you gain by looking at language design in general. More generally, boring stuff is actually a great place to experiment with new techniques. Having a core problem that isn't terribly difficult can actually be an advantage: the problem itself does not distract you from trying new techniques. For example, if all you're doing is writing a bunch of GUI forms, you could consider trying FRP; it can make your code shorter and more maintainable and you almost definitely won't run into any of the current problems with FRP because all you're doing are simple forms. Of course, if you're working on something boring and yet still interested enough in improving that you're willing to read a bunch of essays and books, you should really consider getting a more interesting job. And right now is the best time for it--the job market is crazy, so you have a decent chance of landing work that is both more interesting and better-paid. And if you're content as is and not yearning for self-improvement--which is completely reasonable: not everybody can or should prioritize programming very highly--then you're probably not going to follow this blog's advice even with different books.
- davidhollander 14y agoNotably missing: any topic covering networked applications, servers, or version control.
- mcguire 14y ago"A Note On Distributed Computing", Jim Waldo, Geoff Wyant, Ann Wollrath, Sam Kendall. That would indeed be on my list of networking papers.
- fogus 14y agoDefinitely true. The original goal was to have such topics mixed throughout, but a strong case can be made for devoting an "edition" to these topics alone. It's something for me to think about for sure.