4 ms·
I loved reading Steve McConnell's books when I was starting out, especially Code Complete and I feel that book made me a better programmer. Having read it a fe
by chollida1 6y ago
I loved reading Steve McConnell's books when I was starting out, especially Code Complete and I feel that book made me a better programmer.
Having read it a few times since I think it falls into the same group of books as Mythical Man Month, Peopleware, and the Pragmatic Programmer where the earlier in your career you read it, the more you'll get from it.
Reading these books after 20 years of programming I found that I really struggled to find anything useful to take away from them.
It's not that these books are bad, or out of date. It's more that they exposed some new ideas at the time that, to the books credit, have been picked up and made mainstream or basic/required knowledge for the working programmer
- layer8 6y ago> It's not that these books are bad, or out of date. It's more that they exposed some new ideas at the time that, to the books credit, have been picked up and made mainstream or basic/required knowledge for the working programmer What books do you recommend though to get novice (or not so novice) programmers up to speed? IMO there is a lack of modern literature and general introductory material to the kind of wisdom you otherwise only get after decade(s) of software development (if at all, for quite a number of people). A recent one I liked is “A Philosophy of Software Design”, but it only covers so much ground, and some of its advice requires further qualification.
- alfiedotwtf 6y agoPragmatic Programmer, Art of Unix Programming, and Code Complete (in that order because of page count) are the books that I recommend these days to junior devs
- SloopJon 6y agoI totally agree. Code Complete was my road map to a new field, full of recommendations for other books to read. I gave away my first two copies of the first edition, and eventually bought the second edition. It didn't have the same magic. I've looked for it in other books, like The Pragmatic Programmer, The Practice of Programming, and others, but it's like The Sixth Sense (or The Crying Game or The Usual Suspects): you can only see it for the first time once.
- raverbashing 6y agoCode Complete is a great book It is not overly opinionated, it is direct, it tries to support the statements it makes. It does not tell you a great story or tries to play you. It is what it is. And still it's a great reference. It's the anti-Uncle Bob, which tries to manipulate you and convince you of his way being the best way.
- cpeterso 6y ago> It is not overly opinionated, it is direct, it tries to support the statements it makes. Totally. I appreciated that he actually cited actual studies of commercial software projects, such comparisons of defects found in code reviews vs tests or defects vs function length.
- jamestimmins 6y agoWhat books of Bob's do you think manipulate you? Specifically the books, rather than blog posts or tweets.
- specialist 6y agoFWIW, one useful tidbit from Uncle Bob that I keep thinking about is how the number of working programmers has doubled every five years. http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html http://blog.cleancoder.com/uncle-bob/2014/06/20/MyLawn.html That insight helped me calm down quite a bit. Because noobs are being produced faster than best practices can percolate. Per Mark Twain's quip about lies racing half-way around the world before truth can get its pants on, every generation thinking they invented sex, and how people are generally emotionally attached to their first notions (no matter how wrong). (So if your introduction to computing is thru Python, PHP, JavaScript or whatever, it's super hard to see their flaws, or to appreciate what their precedents were trying to achieve.)
- trentnix 6y agoI appreciate Uncle Bob's opinionated approach. The easy path would be to remain agnostic on which way is best. But that often, at least for me, results in design paralysis as I try to figure out that magic best way to organize a project or accomplish some task. Instead, if I start with an opinion, I'm able to make immediate progress even if I end up refactoring down the road for some reason or another. Of course there's no single write way to organize projects and write software. But one mediocre way that makes sense to me right now is often preferable to 10 better ways that I don't yet understand.
- tclancy 6y agoSame. Once I started as a back-end dev, a mentor gave me his copy. I still have it, but have passed on v2 copies a couple of times.
- jjtheblunt 6y agoTotally agree, and had the thought this somehow is what happened to Sun Microsystems : what was special about their unixes was so successful, and reincarnated largely with updates in Linux, that it's the current norm. Similarly for NeXT.
- x87678r 6y agoI loved code complete and it made me a better programmer and for a while everything was great. Then along came complicated frameworks, multiple languages, the chaotic HTML/JS/CSS world, k8s, yaml, dependency injection, functional and OO mixed together and it feels like Code Complete is too naive in this crazy new world. Most of the normal world seems terrible to me. I wonder what Steve would think of it. I didnt even know about "More Effective Agile", maybe it'll tell me.
- mgkimsal 6y agoSimilar thoughts. I have worked with some folks who basically just do 'java' all day. It's a web app, but there's a team who gets to pretty much do just 'java' - little to no web stuff, little SQL (that's another team), and... There have been times over the years when I've been envious of that type of situation, but then I think I'd hate it. But I sort of hate the current state working across all things web. You forgot 'SQL' (or broad 'data management and access'), as well as security and performance stuff in your list above. I don't want to be a 'stick in the mud' but.. I also resist some of the newer/shinier things, precisely because they don't always stick around (and I've been burned). But also, I don't really have time/bandwidth to be an expert. Doing server mgt, security, etc half-assed, by just following a couple of readmes... that can lead to lots of trouble.
- bennysonething 6y agoFor me code complete helped me write decent code around these things. No framework will write your business logic. As an asidev there's a really stand out section called Table Driven Methods, he shows how to go from nested if hell to so simple it's mind boggling. Also on the way he detours into the OO approach which doesn't help simplify things at all. I've never seen anything like this advice anywhere else. Also for beginners just explaining how to name functions and variables is great. In fact I worked with a so called senior dev who was naming things terribly.
- jqcoffey 6y ago> Reading these books after 20 years of programming I found that I really struggled to find anything useful to take away from them. This seems a fairly common refrain in the comments. Am I the only one who forgets things? I have to reread things to keep the ideas crisp in my head. Oh well!
- munificent 6y ago> Reading these books after 20 years of programming I found that I really struggled to find anything useful to take away from them. I believe this is the highest compliment a book can receive. When reading it the first time makes a big difference and the second time doesn't, it means it was so well written that you internalized it completely.
- RickJWagner 6y agoI still have my copy of Code Complete 2, and considered it a huge boost as well. I've got to remember to revisit it soon.