Live data from Hacker News

Books I recommend to my software engineering students

web.eecs.utk.edu

31–40 of 119 posts

Re: Books I recommend to my software engineering students

#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 throw 404 or 5xx occasionally. We're not building airplanes that either fly or crash (although even the software running airplanes is now increasingly fault tolerant). We are effectively getting from point A to B through a variety of logical operators, increasing the set of valid A through trial and error. We find an input that throws error, our theorem was faulty and we update our proof. A seemingly valid input can't produce the results we want, we double check to make sure our proof is still valid. Dilettante engineers will begin to introduce unbound complexity at this point for making fixes without understanding root causes.

For the above reasons, we should abandon any attempt at comprehensive software engineering curriculum or canons. We are not architecting a skyscraper to be delegated to a construction company to be built one and done for all of time. We are continually exploring and staking out a specific problem space. Our greatest compass in these new journeys will always be foundational computer science. We must take the specific and make it general. Careful application of elementary data structures, algorithms and discrete analysis will move and has moved us continents further than any convention to "best practices" ever will.

Re: Books I recommend to my software engineering students

#32

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…

'Becoming A Technical Leader', Gerald Weinberg

I probably ought to read this one. I got on a Weinberg reading kick after reading some recommendations here a few months before his death. The one I particularly liked was The Psychology of Computer Programming. While dated in many ways (like MMM), it has a lot of interesting ideas and discussion about the structure and behavior of people and teams (regardless of discipline, though he was writing about programmers). I actually have a quote that I've kept in my office IM for a while that is a paraphrasing of Fisher's Fundamental Theorem [0]:

  Fisher's Fundamental Theorem states—in terms appropriate to
  the present context—that the better adapted a system is to a
  particular environment, the less adaptable it is to new
  environments.
The theme of that quote kept coming up, I presume deliberately, in many of the later chapters.

[0] https://en.wikipedia.org/wiki/Fisher%27s_fundamental_theorem...

Re: Books I recommend to my software engineering students

#34

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…

Definitely needs DeMarco and Lister's "Peopleware".

Re: Books I recommend to my software engineering students

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

Re: Books I recommend to my software engineering students

#36
post #28

I would swap out Outliers for Dark Pools, which better highlights how a revolution driven by Software Engineering in its purest form looks like, and is still ongoing to this day. Outliers is kind of entrepreneurship junk food and 10,000 hours has already been debunked.

I'm not sure it's debunked and I don't understand the rabid hatred of it (like bringing it up where it isn't mentioned at all).

Re: Books I recommend to my software engineering students

#37

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.

Re: Books I recommend to my software engineering students

#38
post #36
post #28

I would swap out Outliers for Dark Pools, which better highlights how a revolution driven by Software Engineering in its purest form looks like, and is still ongoing to this day. Outliers is kind of entrepreneurship junk food and 10,000 hours has already been debunked.

I'm not sure it's debunked and I don't understand the rabid hatred of it (like bringing it up where it isn't mentioned at all).

Outliers is debunked. The authors of the primary sources that he quoted disavowed it as an inaccurate representation, and when you look outside of kind learning environments like sports its becomes even less correct.

Re: Books I recommend to my software engineering students

#39

These books will tell them nothing. I legit think that there is only one way of engineering complicated software and that is Entity-Component-System ( https://en.wikipedia.org/wiki/Entity_component_system ).

Can someone explain to me what separates ECS from relational modeling in databases?

Re: Books I recommend to my software engineering students

#40
post #6

Earlier quoted context omitted.

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…

From what I recall, it talks about 3 somewhat related things. First is that adding people slows things down in the short term. The second is that due to overhead, adding people won't give linear speed up in completion time. And third, adding people won't help a project that is linear in nature. The common example is using 9 women to get a baby in 1 month.

That's a good summary.

My years suggest that he wasn't nearly pessimistic enough.

Post reply on HN