

Ask Slashdot: What Books Should An Aspiring Coder Read? 178
Earlier this month Bill Gates released his summer reading list, which included Seveneves, by Neal Stephenson and mathematician Jordan Ellenberg's book How Not to be Wrong. Now an anonymous Slashdot reader asks for your book recommendations.
I've been trying to learn more about coding, but I need a break sometimes from technical documentation and O'Reilly books. Are there any good books that can provide some good general context and maybe teach me about our place in the history of technology or the state of the programming profession today?
In the U.S., Memorial Day is considered the "unofficial" first weekend of summer -- so what should be on this geek's summer reading list? Cracking the Coding Interview? Godel, Escher, Bach? This year's Nebula award winners? George Takei's The Internet Strikes Back? Leave your suggestions in the comments. What books should an aspiring coder be reading?
In the U.S., Memorial Day is considered the "unofficial" first weekend of summer -- so what should be on this geek's summer reading list? Cracking the Coding Interview? Godel, Escher, Bach? This year's Nebula award winners? George Takei's The Internet Strikes Back? Leave your suggestions in the comments. What books should an aspiring coder be reading?
Read less, code more. (Score:1)
Coders code. It's what we do.
Write something. Anything.
Create a screensaver, a simple unity game, it doesn't matter. Just code something up.
Re: (Score:3)
Did you read more than the title of the article? He wasn't asking for programming how-to suggestions, he was asking for NON technical book suggestions that provide a different perspective on programming that he could read when he needs a break.
Still, my suggestion would be - when you need a *break*, make it a real BREAK. You are better off reading something totally unrelated to your work/study that stimulates your imagination than something directly related.
Personally in the (still somewhat limiting) area
Re: (Score:2)
An effective cheap solution would be to install https://addons.mozilla.org/en-... [mozilla.org] and set it to bring up random tech related sites. So random breaks of varying tech content, often when people need a break it's because they are stuck, so this activity can expose you to random new ideas, only problem is it might be to distracting, just one more click.
Re: (Score:2)
Coders code. It's what we do.
Write something. Anything.
Create a screensaver, a simple unity game, it doesn't matter. Just code something up.
No... The mind needs a complete break at times throughout the day. Personally, I would recommend going for a walk. You're body, eyes, etc. need a break from staring at the screen, sitting still (or standing still, if you have a standing desk), etc.
As for books, that comes down to taste. My thought is keep trying something new until you find something that you enjoy reading about. Maybe one week read about art, next week about history (pick a time period that interests you), etc.
Re: (Score:2)
> Coders code. It's what we do.
I'm afraid that "practice makes perfict" is the method you're describing. And the better metaphor is "perfect practice makes perfect". Poor practice ingrains horrible habits, and some good literature and especially good mentorship can be invaluable to learning _good_ coding, instead of simply publishing bad tools in public source repositories.
I'll personally recommend Kernighan and Richie's "The C Programming Language" as a critical tutorial in understanding how, and why, "
Re: (Score:2)
Re: (Score:2)
Don Quixote portrays the wisdom and sorrows of pursuing dreams
Don Quixote is satire, not some crappy self help manual. There is no wisdom in tilting at windmills.
Re: (Score:2)
Tilting at windmills, or at the right windmills, can inspire people to do more than they realized was possible. This includes yourself.
I was writing code, and then I read this book ... (Score:1)
The Mythical Man Month
It kinda changed me
YMMV
Re: (Score:2)
read more, code better (Score:2)
Re: (Score:2)
Sounds more like a mental illness.
Maybe. A lucrative one that develops your mental muscles.
Re: (Score:2)
Re: (Score:2)
So what? It's his first project. If he can't bring a toy project to 'completion', coding is not for him. The sooner he learns that, the better.
Re: (Score:2)
"Professional" coders who can't communicate write terrible code. It's not good enough to bring code the completion if no one else can read it afterwards.
I'll tell you what to read. Find a large open source project that interests you and subscribe to the developer mailing list. Watch the developers mailing list until you read enough patches and emails so that you recognize what a good patch looks like. Now find a bug and submit a patch. Next, get some feedback and correct your mistakes. Finally, an aspiring
Re: (Score:2)
An 'aspiring coder' isn't ready to work on real projects. I feel sorry for the developers of any project someone with so little experience tries to help. The best they can do is just drive him away.
He needs toy projects and he needs to live with his own mistakes.
Re: (Score:2)
Not enough coders read code. So many coders write bad code and keep writing it bad, because they think they are brilliant and never learn to be critical about code. You get better returns on your time investment by learning from others mistakes. It's like a English class in high school. How much of the time do you actually spend writing papers? Most of the time you're reading others work. In fact you're expected to cite a lot of other people work to write a strong paper. You really shouldn't write authorita
Re: (Score:2)
If you don't know anything, reading a bunch of code won't teach you to recognize bad code. You have to have some criterion upon which to measure the quality. Even reading a bunch of other people's ideas of what bad code is only goes so far. If you don't know how to write code, and if you have little experience doing so, you won't be able to place other people's ideas into context.
e.g. reading the statement that "GOTO is harmful" doesn't really help anyone get better at coding. On the other hand, if you'
Re: (Score:2)
In what way is VB not a full dialect? It supports everything the older BASICs supported, and then some. The last version I used (5 or 6) still supported the LET keyword.
Re: (Score:2)
'Completion' not completion. Lots of ways to be 'done' with something. But sooner or later, even 'aspiring coders' want something to show for their work.
Screensavers and Unity Games are (or can be) fairly simple and visual. Unity store lets you avoid the whole asset tar baby for simple stuff.
Re: (Score:2)
Yeah, tell that to my dumb colleague who reads NOTHING (including the code he needs to work on) and then starts deiscussion with "I know how it works!"
Re: (Score:2)
This kid has likely never written a sort before.
What books should an aspiring coder be reading? (Score:2)
Whatever he damn well pleases.
Re: (Score:2)
Why? People obsessing over soap opera relationship drama are too busy thinking of ways to manipulate the meat market to think about anything requiring rational thought.
Answered by another resource coders should know (Score:5, Informative)
Re: (Score:1)
The top of that list, Code Complete, was what I was going to say. I was flicking through it recently and realized it was where I learned all the things that now annoy me about my colleagues code :)
It says Microsoft on the front. If you are one of those friendly people that hate Microsoft for whatever valid reason, this is one thing you are allowed to like. Don't worry, it's OK.
Re: (Score:2)
Re: (Score:2)
While a novice might not get a lot of it, an advance skim through it might be useful.
One, they might avoid making some mistakes and two, their mind might make associations as they're working - a sort of "aha, I've heard of that" idea.
chem (Score:1)
Read your chemistry textbook, especially the chapter on thermodynamics. Knowledge of real things... an arcane skill these days.
Books? (Score:2)
Blast from the past? Today we read online docs and stackoverflow.
edX... (Score:1)
Unix Power Tools (Score:4, Informative)
Unix Power Tools is from O'Reilly but, it's not really a traditional book. It's more like 1000 pages of super useful Unix anecdotes. When I've worked at companies that had interns, I've always bought a copy for them and dropped it on their desk. I would consider it required reading for anyone working on Unix/Linux machines.
Re:Unix Power Tools (Score:4, Informative)
I'd add The C Programming language by Brian Kernighan and Dennis Ritchie. I know the OP asked for non-technical stuff, but that book offers some great historical context and is very readable. It's also really useful for programmers who are used to higher level languages like C# and Javascript, because it will help them understand what those languages developed from and what the core mechanisms without all the managed code stuff are.
Re: (Score:3)
The K&R book is definitely a classic. There was a time when it was on every developers bookshelf. If you want to go back that far, one of the most amusing programming books I've ever seen is A Fortran Coloring Book. I think you can still find copies of it and I don't think it's possible to read it without laughing.
Battlefield Earth (Score:2)
Coding sucks (Score:1)
Read a book about something else, and find a career that doesn't suck. Software sucks. It may take you a few years to realize it, but eventually you will discover the truth.
Survival Tactics (Score:2)
The Mythical Man Month - Frederick P. Brooks, Jr.
Death March (2nd Edition) - Edward Yourdon
Snowcrash (Score:3)
Snowcrash.
Re: (Score:1)
Seconded.
Nothing else is even close.
"There's only four things we do better than anyone else:
music
movies
microcode (software)
high-speed pizza delivery”
Neal Stephenson, Snow Crash
Fuck GEB (Score:1)
Fuck GEB. It's shite. If you see it placed prominently on a shelf it means the person is a pretentious tossbag and hasn't actually read it but is trying to appear intellectual to to other pretentious tossbags.
Zen and the Art of Motorcycle Maintenance. Lila is pretty good too.
Either User Interface Design for Programmers or Don't Make Me Think.
The Machine That Changed the World.
Any of the reengineering ones by Hammer and/or Champey.
Either Mein Kampf or Atlas Shrugged.
Accounts Demystified.
Philosophy Made Si
Re: (Score:1)
Re: (Score:2)
If daddy wasn't rich Atlas fucking Shrugged is telling you to be a good little serf and do what you are told by Rand's dreams of a lost Russian nobility. Read Conrad's "Under Western Eyes" and as an antidote to both Tsarist and Commie screeds.
Dreaming in Code (Score:1)
Amazon Link: http://www.amazon.com/Dreaming... [amazon.com]
It's an old book (first published in 2008 with mixed popularity), but 8 years later I remember it being a nice story on "what it's like to code" and accurately described the state of software engineering of its time. This was before Big Data was a thing, so you may find a lot of it out of date, but I think it fits what you're looking for.
Good luck!
Dianetics (Score:5, Funny)
"To Engineer is Human", and "Design of Design" (Score:2)
"To Engineer Is Human: The Role of Failure in Successful Design" by Henry Petrosky http://www.amazon.com/Engineer... [amazon.com]
We learn much more from failure.
"The Design of Design, Essays from a Computer Scientist" by Frederick Brooks http://www.amazon.com/Design-E... [amazon.com]
This isn't as well known or quite as easy to read as "Mythical Man-Month."
Both of these books should take you outside of 'pure coding' into thinking about the systems the code is part of, and how those systems interact with humans and with other system
Kick Ass (Score:3)
Donald Trump: 'Think Big and Kick Ass in Business and Life'. To understand the 'thinking' behind the nightmarish dystopia you might be coding in for the next five years.
Re: (Score:2)
Re: (Score:1)
"Cultural Marxism"? "Comrade Obama"? Hyperbole doesn't help your case.
Take off the wingnut-colored glasses and you'll see Obama's about as mainstream as presidents come.
Re: (Score:2)
"cultural Marxism with Comrade Obama "
IE, an economy that has recovered from the largest economic crash ever (larger than the great depression, but better sustained because we actually had saefty nets this time around), 74 consecutive months of economic growth, largest US economy of all time, wall street at record levels, unemployment at lowest rate in over a decade.
Simply put, the economy has rarely been better than it is right now.
By these metrics, Obama is the worst socialist ever.
and if you're trying to
UNIX Power Tools (Score:5, Informative)
Re: (Score:3)
Agreed. Unix Power Tools teaches the craftsman what his tools are capable of doing. When I was learning Unix many years ago, I integrated the book into my daily routine. I'd just open it up to a random page and read a couple articles each morning. Every day I knew something that I didn't know the day before with 10 minutes of effort. I think my love of Unix stems from Unix Power Tools.
Fiction? (Score:3)
If you include works of fiction, Cryptonomicon should be required reading.
The Prince (Score:3)
The Prince by Niccolo Machiavelli
Like it or not, you got to survive dick-head bosses, power struggles and office politics to have a decent career (more than your coding skills or knowledge)
Two fun books (Score:2)
Death March, and also the Unix-Hater's Handbook. Both are fairly educational, and the latter is a bit dated but a funny and mostly accurate roasting of Unix. You don't need to dislike Unix to enjoy it, and it's educational too.
Depends... (Score:2)
Hard to say, since it depends entirely on what sort of thing you like!
If you want technical stuff that isn't gory details, something like Fred Brooks' The Mythical Man-Month is probably worth a shot. A lot of stuff from this book has passed into common wisdom, but actually reading the first-hand accounts makes it far more real!
If you want lighter entertainment reading that's vaguely computer related, I can strongly recommend Charles Stross's "The Laundry Files" books. These are a mash-up of spy thriller and
Re: (Score:2)
I love those books, but one common criticism is some of it reads like incredibly crappy James Bond, which is entirely correct because some of it is a parody of incredibly crappy James B
Coders at work (Score:2)
Comment removed (Score:4, Informative)
Re: (Score:1)
The Cuckoo's Egg (Score:2)
I thoroughly enjoyed The Cuckoo's Egg by Cliff Stoll.
Read this (Score:2)
Read this seminal book on programming: 1984, by George Orwell. It'll help you spot future trends in software development.
A couple suggestions (Score:2)
A Pattern Language by Christopher Alexander. Really a book about architecture and urban planning, but sets out the idea of a pattern language that has been very influential in many fields, particularly software engineering.
The Mythical Man-Month by Frederick Brooks on a lot of the pitfalls of managing big software projects.
Why's Poignant Guide to Ruby (Score:3)
A few titles... (Score:2)
For non-fiction I'd suggest:
Mind Change: How digital technologies are leaving their mark on our brains - Susan Greenfield
The Knowledge: How to rebuild our world from scratch - Lewis Dartnell
For fiction, try:
The Circle - Dave Eggers
The Owner Series (The Departure, Zero Point and Jupiter War) - Neal Asher
Neptune's Brood - Charles Stross
Yup, not a single one of them has anything to do with code or coding, but a few of them certainly provide some context / insight into where we are today, and where we might be
some books. (Score:2)
https://en.wikipedia.org/wiki/... [wikipedia.org] - to understand the people that make computers
https://en.wikipedia.org/wiki/... [wikipedia.org] - to understand computers
https://en.wikipedia.org/wiki/... [wikipedia.org] - to understand users of computers.
Have fun!
Simple ... (Score:2)
I would read books about stuff that interests you.
Reading a book about a new technology just because it is hot makes only sense: if it interests you.
Reading about e.g. angular.js just because it is hot, but you never really want to use JavaScript ... pointless.
Perhaps you find this interesting: http://www.amazon.com/History-... [amazon.com]
I only have volume 2: http://www.amazon.com/History-... [amazon.com]
It is a good read. A collection of articles about a few dozen programming languages. You can read one in 30 mins before going to
Design Patterns (Score:2)
Skim some old books (Score:1)
Skim some old books of decades past, so you at least get a feel for the history of computer programming and know what was taught to undergraduates in different eras.
For the late-70s era, I recommend Roger Kaufman's A FORTRAN Coloring Book.
I also recommend skimming both the original (1978) and second (1988) editions of Kernighan and Ritchie's The C Programming Language.
While I don't have specific recommendations, it would be worth a trip to a university library to find early instructional books using the B
Natural Logic (Score:2)
Natural Logic by Neil Tennant - *before* learning to program.
GÃdel, Escher, Bach (Score:2)
Alice (Score:2)
A short list (Score:3)
Software development can be a grind. Perspective is valuable.
Geoffrey James, The Tao of Programming
http://www.mit.edu/~xela/tao.h... [mit.edu]
Neal Stephenson, In the Beginning Was the Command Line
http://cristal.inria.fr/~weis/... [inria.fr]
Vernor Vinge, True Names
Dale Carnegie, How to Win Friends and Influence People
https://en.wikipedia.org/wiki/... [wikipedia.org]
Re: (Score:2)
Oh, and as others have mentioned:
Tracy Kidder, The Soul of a New Machine
Abelson, Sussman, and Sussman, Structure and Interpretation of Computer Programs - maybe hold off on this one for a while, but do read it
https://mitpress.mit.edu/sicp/... [mit.edu]
A game rule book (Score:2)
Bonus points if it's not a game but a simulation of a real system, but games are normally more precisely described with possibly more motivation.
How to Win Friend and Influence People (Score:1)
If I could send every programmer, project manager, and product manager to one course/seminar, it would be the Dale Carnegie Human Relations course. Understanding customer requirements from the customer's point of view, diving deep into customer issues, and communicating back and forth amongst all of the stakeholders in a software project require human skills that, sadly, some coders lack. People skills, project management skills, and productivity skills (such as GTD and the Pomodoro Technique) are just as i
Here are my favorites... (Score:2)
"Startup: A Silicon Valley Adventure" by Jerry Kaplan.
http://www.amazon.com/Startup-Silicon-Adventure-Jerry-Kaplan/dp/0140257314/ [amazon.com]
"Showstopper!: The Breakneck Race to Create Windows NT and the Next Generation at Microsoft" by G. Pascal Zachary.
http://www.amazon.com/Showstopper-Breakneck-Windows-Generation-Microsoft/dp/1497638836/ [amazon.com]
Re: (Score:2)
Re: (Score:2)
If you were lead on a groundbreaking successful product and then asked to work on a pale imitation that only implemented a fraction of the first how would you feel about it?
If the powers to be at headquarters cancelled your project, reduced your staff to nothing, and threatening to bring you back to the East Coast, would you jump at the opportunity to start something new at a different company? That's what Dave Cutler did.
Re: (Score:2)
It's like hyping Ferdinand Porshe for the Volkswagen Beetle and pretending Porshe sportscars do not exist.
Re: (Score:2)
I wonder what the world would be like if they had kept going with Xenix and had licenced VMS. In several ways NT hasn't caught up with either of them.
First weekend of summer? (Score:2)
In the U.S., Memorial Day is considered the "unofficial" first weekend of summer
Assuming that the last "unofficial" weekend of summer is the labour day weekend, that would mean that Canada has a longer summer. Our first weekend of summer is the May Two-Four, the weekend before Memorial Day.
CODE by Charles Petzold (Score:1)
Code [google.com] takes you from the basics of how information and numbers are encoded electronically, to how they are stored and transmitted in modern computer systems.
This is the book I wish I had read 20 years ago!
RTFM (Score:2)
RTFM.
The Pragmatic Programmer (Score:1)
How to Lie With Statistics (Score:2)
This may be a bit out of left field as a suggestion, but How to Lie With Statistics by Darrell Huff [amazon.com] is short, funny, enlightening, and teaches a lot about the presentation of technical information. It's a painless introduction to the subjects that Edward Tufte goes into in far more depth.
Re: (Score:2)
This may be a bit out of left field as a suggestion, but How to Lie With Statistics by Darrell Huff [amazon.com] is short, funny, enlightening, and teaches a lot about the presentation of technical information. It's a painless introduction to the subjects that Edward Tufte goes into in far more depth.
It's worth keeping in mind that the original name for statistics was "Political Arithmetick". How to Lie With Statistics was a major part of the original purpose.
Of course we use if for a hell of a lot of other things now but have to take care that results are presented in meaningful ways.
Re: (Score:2)
A few years ago I did a few talks on this... (Score:2)
I gave some talks on different books that'll be interesting for technical people, and in the end compiled them in a list in goodreads:
https://www.goodreads.com/list... [goodreads.com]
A depressing... (Score:2)
A depressing but unsurprising litany of dull technical books, bad science fiction, and Any Rand. Don't read books with code in them, or books about coding, that's what the internet is for.
Read fiction, because it's good for you. Read things that seem a bit unlikely to entertain at first. Read The Inferno, Frankenstein, Pride and Prejudice, The French Lieutenant's Woman, Nineteen Eighty Four, Animal Farm, Wise Children, Ridley Walker. The only halfway technical book I ever enjoyed was Chaos by James Gleik, a
List of Sotware Engineering Books (Score:1)
Zen and the Art of Motorcycle Maintenance (Score:1)
The Cathedral and the Bazaar (Score:2)
I recommend "The Cathedral and the Bazaar" by Raymond
https://en.wikipedia.org/wiki/... [wikipedia.org]
meta technical (Score:1)
"The Sciences of the Artificial" by Herbert Simon. First edition is better than the later editions but you'll never find it so just read one of the later editions. Original focus was on the structural differences between natural sciences like chemistry or medicine and what Simon labels the artificial (from "artifice" - man made) sciences like engineering and economics. Simon won the Nobel Prize for Economics, the Turing Award, etc. Wiki him and then read the book. It's not very long and full of interesting
Summer Reading (Score:1)
Neuromancer by William Gibson (Score:1)
A little late to the party here, but if anyone is still reading this thread, Neuromancer is a great novel. Even after 30 odd years or so it still brings the mojo. And the anti-hero hero is a programmer.
read all these cover-to-cover (Score:1)
Re: Lots (Score:2)
Will Durant's Story of Civization, Ceaser and Christ (or how to die and influence the western world for millennia) , although The Age of Voltaire ("The incarnation of the Enlightenment") is good too. Mostly for his style for telling a story. Code tells a story, and if it looks like every keystroke resulted in an electric shock, it isn't maintainable (readable) and probably doesn't work well. Durant's eleven volumes in a summer can be hard, but reading a few pages every day at work so when your boss asks, sa