Live data from Hacker News

Books I recommend to my software engineering students

web.eecs.utk.edu

61–70 of 119 posts

Re: Books I recommend to my software engineering students

#61
post #6

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

I've always like the MMM but there is also an undercurrent of this being a re-telling of xeno's paradox, and its important to remember the rabbit actually does win. So, adding new bodies does incur cost, but the belief that always adding new bodies always adds more cost than adds impetus to the outcome is not always true. The classic example is "the hump" which was the cost in fuel terms to ship fuel to China, to be…

I should say that I mis-speak (write) characterising MMM this way, its how its casually talked about. The incremental benefit of adding people can be higher than zero, but less than enough to be worth the cost. It can also be negative which is the core point MMM was making. Can be, is not always. And of course there are problems where it simply cannot alter the trajectory at all (the baby problem)

Re: Books I recommend to my software engineering students

#62

Blech. Nothing here that's obscure or likely to alter the path of some one's knowledge. No philosophy, no history, and the list includes Gladwell. Actually, the inclusion of Gladwell probably distinctly colors my thinking on the subject. Maybe "How to read a book" or "The Alchemist" or I don't know, something that's not just so totally typical.

Yeah, I use Gladwell as a negative control on book lists as well, along with Jared Diamond.

Harari would be upset to be excluded from this list.

:)

Re: Books I recommend to my software engineering students

#63

Earlier quoted context omitted.

Design Patterns by Gamma, Helm, Johnson, and Vlissides (aka GoF)

I still don't understand why people worship this book. Contrary opinion here but I think this book is actually below average. I think it's good that it introduces the overall concept of Design patterns, but the book itself isn't really about the general concept of Design patterns. The book is focused on OOP techniques and tricks. It makes the assumption that OOP is the most general way to modularize things and think…

Design Patterns gave us the vocabulary and opportunity to argue about design for a previously ignored level of abstraction.

Source: started design patterns study group, still active today.

Re: Books I recommend to my software engineering students

#64
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?

Sure. Any references to concepts from earlier books can be easily googled and learnt. Most books nowadays are around 200/500 pages but the essence is contained in only 20/30 pages.

Re: Books I recommend to my software engineering students

#65

Blech. Nothing here that's obscure or likely to alter the path of some one's knowledge. No philosophy, no history, and the list includes Gladwell. Actually, the inclusion of Gladwell probably distinctly colors my thinking on the subject. Maybe "How to read a book" or "The Alchemist" or I don't know, something that's not just so totally typical.

You went too far with Coelho. Might as well throw some osho's books in there too.

Re: Books I recommend to my software engineering students

#66

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 needs to be written and studied, but I just don't see it happening.

Re: Books I recommend to my software engineering students

#67

Earlier quoted context omitted.

I still don't understand why people worship this book. Contrary opinion here but I think this book is actually below average. I think it's good that it introduces the overall concept of Design patterns, but the book itself isn't really about the general concept of Design patterns. The book is focused on OOP techniques and tricks. It makes the assumption that OOP is the most general way to modularize things and think…

Design Patterns gave us the vocabulary and opportunity to argue about design for a previously ignored level of abstraction. Source: started design patterns study group, still active today.

https://news.ycombinator.com/item?id=22964468

Re: Books I recommend to my software engineering students

#68

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…

Design Patterns by Gamma, Helm, Johnson, and Vlissides (aka GoF)

A very good pattern book that I've found to be incredibly well written is Robert Nystrom's Game Programming Patterns. I'm a huge pattern advocate, and have consulted the Gang of four pattern book many times, as well as Christopher Alexanders' A Pattern Language. Still, Nystrom presents some new patterns with very concrete examples. Even though they are presented within the domain of game development, with a little creativity their utility can be imagined elsewhere.

Re: Books I recommend to my software engineering students

#69
post #12

I bought my boss two copies of The Mythical Man-Month so he could read it twice as fast.

And he hired 4 people to read to him for each book. Now he could learn 8 times as fast.

Not if he outsourced the reading of said book to a foreign company. He would would have to check if their reading was the same as his every hour for 18 months that would have taken him 3 days to read it himself. Slowly.

Re: Books I recommend to my software engineering students

#70
post #31

I don't think you can teach software engineering. Writing software is more like writing proofs than building airplanes. Take a formally verifiable language like Agda for example. Proofs are indistinguishable from programs in that language. The Curry-Howard correspondence shows this is true for program-proofs in general. Large software systems fail continuously in countless ways all the time. Google search will still…

Although programs function in an ideal universe amenable to proof and theory and therefore perfect for calculation and theoretical approaches rather than engineering "best practices," what you describe has not been the case in the industry.

The irony is airplanes live in a unideal universe where no theory can predict anything to a perfect degree and testing must take precedence. However when building an airplane, aerospace engineers use far more theory than software engineers even when testing and engineering best practices is an absolute requirement for the unpredictable nature of real world physics acting on an airplane.

I feel the reason why the world is the way it is is due to necessity. A buggy program is (usually) an annoyance. A buggy airplane is (always) a disaster. It is necessary to prevent disasters but it is not necessary to eliminate an annoyance.

Post reply on HN