Live data from Hacker News

Books I recommend to my software engineering students

web.eecs.utk.edu

81–90 of 119 posts

Re: Books I recommend to my software engineering students

#81
I had a professor make us read Death March by Yourdon and Peopleware. Both were great, especially Death March. It helped me notice bad patterns at an employer and gave me the motivation to quit. Its also very well written and funny, but a bit too real at times. You'd think all of it is fake or exaggerated, but then you're living it and it's so depressing.

Re: Books I recommend to my software engineering students

#82

I've advocated for a "canon" of books for software engineering and computer science that could be taught in school. The canon would accomplish several goals: it'd inform students about the less technical but profoundly important ideas within CS (Brooks' No Silver Bullet, The 10x cost incurred when moving from stage to stage in waterfall, how to treat and manage failure, etc.), it'd teach students how to think about p…

I'm kind of bothered by a lack of rigour and science in general software engineering disciplines. The vast majority of decisions seems to be made subjectively that any objective criteria. Also industry is very bad at documenting it's processes and experiences to the community, most documents if any are available to the company internally only. Also detailed histories of the devdlopment of large and complex software n…

At least for the written part there's the "Architecture of open source applications" series.

Re: Books I recommend to my software engineering students

#84

I've advocated for a "canon" of books for software engineering and computer science that could be taught in school. The canon would accomplish several goals: it'd inform students about the less technical but profoundly important ideas within CS (Brooks' No Silver Bullet, The 10x cost incurred when moving from stage to stage in waterfall, how to treat and manage failure, etc.), it'd teach students how to think about p…

> The 10x cost incurred when moving from stage to stage in waterfall

This seems to be a common falsehood propagated by Agile consultants and swallowed whole by an industry that doesn't know any better.

It doesn't look like the waterfall model was ever used on a significant scale; not as far as I remember, anyway.

https://softwareengineering.stackexchange.com/a/139107

Re: Books I recommend to my software engineering students

#85
I take it that the goal is to list books of general interest for the software engineering student. It is not clear what the author means by classic CS material, so it is hard to know what is excluded. Surely, Mythical Man Month and GoF qualify as classics of software engineering. Or does the author mean classics from the entirety of a CS program?

I've been teaching a software engineering class for a few years. Being conscious of the high cost of textbooks, I find that Applying UML and Patterns by Larman achieves the best balance of practice, design, and process.

For students who want to dig into agile methodologies I would recommend Extreme Programming Explained by Beck and the Poppendiecks on Lean.

In my opinion, a philosophical grounding is helpful for the programmer. Accordingly, I'd want to suggest something like Locke's Essay Concerning Human Understanding or a secondary source on Aristotelian categories. Moreover, a broad knowledge of different types of ethical systems will benefit a developer.

Lastly, as a kind of curve ball, I would recommend any STEM student to work through an LSAT preparation book. Technologies will come and go, but, throughout a career, the problems a developer encounters will likely have dimensions that require general critical thinking.

Re: Books I recommend to my software engineering students

#86

I've advocated for a "canon" of books for software engineering and computer science that could be taught in school. The canon would accomplish several goals: it'd inform students about the less technical but profoundly important ideas within CS (Brooks' No Silver Bullet, The 10x cost incurred when moving from stage to stage in waterfall, how to treat and manage failure, etc.), it'd teach students how to think about p…

I disagree.

I think books on software management and process are mostly lost on someone who hasn't been involved in the process. (Hell many of those books are lost on project managers)

I think the most important subjects to teach students are javascript, css, & sql (or mongo). Before you teach a beginner wood worker the "Zen of wood" you teach them how to cut a piece of wood without sawing off a finger.

The rest will come later.

Re: Books I recommend to my software engineering students

#87

> [ The Mythical Man-Month ] Key takeaway: You'll soon fall victim to the problems identified by this book, even after reading it. Yeah, that pretty much describes all of software development in one stroke. But you should read it anyway (if only to experience the feeling of someone predicting your future before (most of) you were born).

Reading this book AND trying to follow its key lessons makes a huge difference in productivity, which I can testify from my own experience. This book is often compared to the bible of software engineering, suggesting that everyone knows about the book (ex: 'no silver bullet'), some people read it, but only few people abide by it. So, its key lessons are hard to follow in the real world, but for a good reason.

We started a project 5 years ago, after a few months of failed attempts. From the very onset of the project, we tried to adhere to the key lessons of the book. Examples are: recognizing the importance of minimizing communication overhead (the most important assets are not people but time), following the surgical model (key decisions should be made by a single individual), practicing effect-free programming whenever possible, allocating enough time for testing, and so on. I would definitely attribute the success of our project to the teachings of the MMM.

Like many books on software engineering (and self-help books in general), just reading a book and learning its contents may not make any difference in practice. Only when you seriously make conscious efforts to practice its teachings do you realize what the book is really about. This is also the reason why many university courses on software engineering are boring.

Re: Books I recommend to my software engineering students

#88
post #84

I've advocated for a "canon" of books for software engineering and computer science that could be taught in school. The canon would accomplish several goals: it'd inform students about the less technical but profoundly important ideas within CS (Brooks' No Silver Bullet, The 10x cost incurred when moving from stage to stage in waterfall, how to treat and manage failure, etc.), it'd teach students how to think about p…

> The 10x cost incurred when moving from stage to stage in waterfall This seems to be a common falsehood propagated by Agile consultants and swallowed whole by an industry that doesn't know any better. It doesn't look like the waterfall model was ever used on a significant scale; not as far as I remember, anyway. https://softwareengineering.stackexchange.com/a/139107

Agreed. Pure waterfall has become a strawman for the Agile zealots. Realistically, Waterfall is used as one component of the overall design and implementation process.

Re: Books I recommend to my software engineering students

#89

I've advocated for a "canon" of books for software engineering and computer science that could be taught in school. The canon would accomplish several goals: it'd inform students about the less technical but profoundly important ideas within CS (Brooks' No Silver Bullet, The 10x cost incurred when moving from stage to stage in waterfall, how to treat and manage failure, etc.), it'd teach students how to think about p…

'The Mythical Man Month', Fred Brooks

its shown in the main photo at the top of the article?

Re: Books I recommend to my software engineering students

#90
post #51
post #42

I would also recommend two more good books. They are relevant to almost every aspect of life and creation process: - Antifragile: Things That Gain from Disorder by Nassim Nicholas Taleb[1] - Skunk Works: A Personal Memoir of My Years at Lockheed by Ben R. Rich[2] [1] https://www.goodreads.com/book/show/13530973-antifragile [2] https://www.goodreads.com/book/show/101438.Skunk_Works

Can I dive straight into Antifragile without having read the author's previous books?

I started from Antifragile and didn't regret it. If you feel like drawn toward the earlier ideas, read Antifragile -> Skin In the Game -> Fooled By Randomness -> Black Swan. This might also be related that I usually have more interest in starting with practical knowledge and then digging deeper into the theory/more basic knowledge.
Post reply on HN