Catch up on stories from the past week (and beyond) at the Slashdot story archive

 



Forgot your password?
typodupeerror
×
Books Sci-Fi

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?
This discussion has been archived. No new comments can be posted.

Ask Slashdot: What Books Should An Aspiring Coder Read?

Comments Filter:
  • 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.

    • by Dahamma ( 304068 )

      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

      • by rtb61 ( 674572 )

        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.

    • 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.

    • > 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, "

      • Why not both? The first two shou;ld be required reading in any case.
      • 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.

    • The Mythical Man Month

      It kinda changed me

      YMMV

      • It's kind of interesting. At this point, the Brooks book is taken as gospel, and yet, at the same time, management everywhere attempts to emulate all the worst parts,
    • Coding is not unlike trying to write, stringing symbols together into meaningful sentences. Writing prose would better than reading. But reading is helpful for improving writing.
    • by Anonymous Coward

      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.

    • Nice to see SICP on the list but HtDP seems to have been omitted.
  • by Anonymous Coward

    Read your chemistry textbook, especially the chapter on thermodynamics. Knowledge of real things... an arcane skill these days.

  • Blast from the past? Today we read online docs and stackoverflow.

  • by Anonymous Coward
    https://www.edx.org/ [edx.org] Not a book, but good resources for learning.
  • Unix Power Tools (Score:4, Informative)

    by somenickname ( 1270442 ) on Saturday May 28, 2016 @05:50PM (#52202633)

    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)

      by AmiMoJo ( 196126 ) on Sunday May 29, 2016 @05:50AM (#52204553) Homepage Journal

      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.

      • 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.

  • Jonnie Goodboy Tyler is the engineers hero. With his bare hands, ingenuity and scraps of knowledge, he takes down a power empire. Great read.
  • by Anonymous Coward

    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.

  • The Mythical Man Month - Frederick P. Brooks, Jr.

    Death March (2nd Edition) - Edward Yourdon

  • by myowntrueself ( 607117 ) on Saturday May 28, 2016 @05:59PM (#52202681)

    Snowcrash.

    • by j3p0 ( 16007 )

      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. 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

    • I tend to agree about GEB despite the praise it gets. I also found it pretentious as well as being pedantic and excessively verbose. I've made several attempts to read it, but just can't will myself past the first few chapters. That being said, there's clearly a large audience it appeals to. Maybe check it out from the library and save yourself some cash (I regret buying it).
    • by dbIII ( 701233 )
      Atlas fucking Shrugged? If you are going to get politics from SF I suggest trying something well written and consistent like the Heinlien stuff instead of that "bring back the Tsar" thing with it's jailbait nobility fucking her way into the group of "great men".

      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.
  • 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)

    by 110010001000 ( 697113 ) on Saturday May 28, 2016 @06:10PM (#52202707) Homepage Journal
    Dianetics by L Ron Hubbard is a great read. Especially if you like tragic comedies.
  • "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

  • by RDW ( 41497 ) on Saturday May 28, 2016 @06:23PM (#52202761)

    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.

    • by dbIII ( 701233 )
      "The Madness of King George" to understand that none of it is new, we already have the antidote and it's very strange that we are going back that way.
  • UNIX Power Tools (Score:5, Informative)

    by inode_buddha ( 576844 ) on Saturday May 28, 2016 @06:23PM (#52202763) Journal
    UNIX Power Tools [oreilly.com] by O'Reilly is a great treatise on programming in general because it does concepts such as loops, conditionals, environment, I/O, formatting, etc etc.... all via shell scripting, no "hardcore" compiled languages. Just 1056 pages of the concepts of programming, with examples and loads of documentation. You can take the concepts into oher languages easily enough later on. I've been re-reading it over and over for almost 20 yrs now, its that good.
    • 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.

  • by xbytor ( 215790 ) on Saturday May 28, 2016 @06:27PM (#52202775) Homepage

    If you include works of fiction, Cryptonomicon should be required reading.

  • by nerdyalien ( 1182659 ) on Saturday May 28, 2016 @06:34PM (#52202789)

    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)

  • 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.

  • 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

    • by dbIII ( 701233 )

      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 Lovecraftian horror with a hacker protagonist, in a world where computers are the ultimate key to summoning up tentacled creatures from beyond.

      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

  • http://www.amazon.com/Coders-W... [amazon.com] Read this one a while back. There's interviews with the (then) new kids on the block as well as some old unix greybeards, so there's a good amount of perspective in there. Another more historical book I can recommend is When Computers Were Human http://www.amazon.com/When-Com... [amazon.com]
  • Comment removed (Score:4, Informative)

    by account_deleted ( 4530225 ) on Saturday May 28, 2016 @07:01PM (#52202913)
    Comment removed based on user account deletion
  • I thoroughly enjoyed The Cuckoo's Egg by Cliff Stoll.

  • Read this seminal book on programming: 1984, by George Orwell. It'll help you spot future trends in software development.

  • 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.

  • by samriel ( 1456543 ) on Saturday May 28, 2016 @07:26PM (#52202967)
    Depending on the anonymous reader's level of experience and literacy, Why's Poignant Guide to Ruby ( http://www.rubyinside.com/medi... [rubyinside.com] ) may be a good introduction to the language, or to programming in general. It's a bit too whimsical to really teach you design patterns or anything, but as far as a first-time guide to the idea of variables and loops, it might be just what is needed.
  • 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

  • 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!

  • 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

  • Check out, "Design Patterns - Elements of Reusable Object-Oriented Software".
  • 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 by Neil Tennant - *before* learning to program.

  • A philosophical joy ride.
  • Someone said that Alice in Wonderland is the best book on programming. [yale.edu] "The Idea Factory" is about technology in the last century, and touches on computers, and is also quite readable. "The Art of Unix Programming" is worth a read, along with the jargon dictionary, and they're free. "Zero Bugs and Program Faster" has code examples from across half a century. This series was really great [amazon.com], but might be hard to find.
  • by Indigo ( 2453 ) on Saturday May 28, 2016 @11:48PM (#52203855)

    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]

    • by Indigo ( 2453 )

      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]

  • Read a game rule book and then implement all those constraints, conditions and dependencies into code. Then read a book about the programming language you used to work out how you could have done it better, then look at a DIFFERENT set of rules, doing it better from scratch instead of tinkering at the edges of the first.

    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.
  • by Anonymous Coward

    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

  • "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]

    • by dbIII ( 701233 )
      I'd probably find the second depressing since it was about making something "good enough" when surrounded by giants. 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? Next generation my arse, NT was no VMS but a step backwards.
      • 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.

        • by dbIII ( 701233 )
          Yes, but I wouldn't expect it to be hyped as if it was better than the other option.
          It's like hyping Ferdinand Porshe for the Volkswagen Beetle and pretending Porshe sportscars do not exist.
    • by dbIII ( 701233 )
      The "drive for originality and perfection" in the blurb nearly made me cough up drink all over my keyboard.
      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.
  • 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.

  • by Anonymous Coward

    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.

  • 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.

    • by dbIII ( 701233 )

      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.

    • Comment removed based on user account deletion
  • 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 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

  • Software engineering books to bring your technical skills to the next level:
    • The Pragmatic Programmer: From Journeyman to Master by Andrew Hunt and David Thomas
    • Clean Code: A Handbook of Agile Software Craftsmanship by Robert C. Martin
    • The Clean Coder: A Code of Conduct for Professional Programmers by Robert C. Martin
    • Code Complete: A Practical Handbook of Software Construction 2nd edition, by Steve McConnell
    • The Mythical Man-Month: Essays on Software Engineering, Anniversary Edition (2nd Edition) by Fred
  • I recommend "The Cathedral and the Bazaar" by Raymond

    https://en.wikipedia.org/wiki/... [wikipedia.org]

  • "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

  • Michael Arbib's "Brains, Machines, and Mathematics." Oldie but goodie.
  • 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.

  • nonfiction broad-interest: Steven Levy: Hackers Tracy Kidder: The Soul of a New Machine Cristopher Moore and Stephan Mertens: The Nature of Computation fiction/fun: Neal Stephenson: Reamde (note the spelling) Geoffrey James: The Tao of Programming nonfiction textbookish but worth reading through: Marc Rochkind: Advanced UNIX Programming W. Richard Stevens: Advanced Programming in the UNIX Environment Michael Kerrisk: The Linux Programming Interface Thompson and Ritchie: Bell System Technical Journal "The

He has not acquired a fortune; the fortune has acquired him. -- Bion

Working...