Live data from Hacker News

Books I recommend to my software engineering students

web.eecs.utk.edu

111–119 of 119 posts

Re: Books I recommend to my software engineering students

#111

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…

> I think books on software management and process are mostly lost on someone who hasn't been involved in the process.

I think that's true and fair. However, once some experience has been acquired, I believe it's helpful to evaluate whether it's good experience or bad experience. Comparisons against the literature can be helpful at that point. Case in point: I tried reading 'The Psychology of Computer Programming' in college, but it didn't make much sense to me. Coming to it 15 years later, I realize it'd have been the perfect companion to my first five years in industry, naming and describing problems I'd faced and solutions that only came through experience more painful than reading.

Re: Books I recommend to my software engineering students

#112
post #97

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.

I personally don't like philosophy books. I think there's more to be learned about philosophy by reading about specific topics, rather than actually reading about philosophy. Some exceptions like Plato, etc. Absolutely agree with history being useful, though. Any particular periods of history you think are essential to know about, and any particular great books on them?

At the risk of sounding pretentious, I very much enjoyed Herodotus' "The Histories" (Sélincourt translation). It reads like a Game of Thrones season with all its twists and turns.

(Side-note: I usually multitask a number of books and many months can pass until reading resumes. Yes, it's weird, and yes, if someone has a nice trick for this, please help, I'm running out of bookmarks)

Re: Books I recommend to my software engineering students

#113

Earlier quoted context omitted.

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…

Any books to recommend for the topics you mentioned? Especially sql or mongo.

Mongo has a series of online courses

Re: Books I recommend to my software engineering students

#114
post #59

Earlier quoted context omitted.

You mean if you add 9 women you get a baby in 81 months?

I mean that in the limit, adding the n+c'th person isn't just useless, it's devastating. If the optimal (in terms of calendar date of completion) size for a project is (say) three people, it is entirely possible, if not almost certain, that putting 30 people on the project will push the expected completion date to infinity. In other words, the project will fail. Now, you might say, "I will just bench those other 27 p…

100% feel you.

Last time I worked at a big company, there was lots of dead wood, but one guy in particular was just a massive liability. Nice guy, tried hard, but utterly incompetent, and (I think there is a term for this?) he was unaware / ignorant of how incompetent he was. He would often check in code that would break the build (team of 300 engineers, large telecom system), he would write and run scripts that would bring computing clusters to their knees (this was late 90s, there are probably ways to mitigate that now), he would consume lots of high-quality talent's time with basic questions, etc.

I literally asked my manager if we could pay Leo to sit home and play video games. OF course, as you said, everyone's gotta look busy.

Here's the punchline: I learned a new term (to me, at the time... not sure I've heard it again) from a greybeard/wizard there -- this guy was a genius. He had a very appropriate term for Leo: negative producer.

Bingo!

Re: Books I recommend to my software engineering students

#115

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'd add the "Elegance is not Optional" essay from the preface to The Art of Prolog.

You probably meant The Craft of Prolog by Richard O'Keefe. The preface of the Art of Prolog is about David H. D. Warren's recollections of his first encounters with Prolog.

Re: Books I recommend to my software engineering students

#116

Earlier quoted context omitted.

I'd add the "Elegance is not Optional" essay from the preface to The Art of Prolog.

You probably meant The Craft of Prolog by Richard O'Keefe. The preface of the Art of Prolog is about David H. D. Warren's recollections of his first encounters with Prolog.

Good catch! Thanks for pointing that out!

Re: Books I recommend to my software engineering students

#117
post #47

Earlier quoted context omitted.

The book didn't introduce people to design patterns, it invented the concept within the discipline of software programming. Perhaps one needs to have been in industry before and after this book to appreciate how it introduced a common vocabulary, a mechanism for documenting and sharing experience, and a framework for thinking about common problems.

>The book didn't introduce people to design patterns, it invented the concept within the discipline of software programming. By introduced I mean, introduced to the world for the first time. Invented is debatable concept as in was math invented or discovered ? I avoid that debate by using the word "introduced." >Perhaps one needs to have been in industry before and after this book to appreciate how it introduced a co…

Currying is a bad example, as that was a concept in mathematics before it was a software engineering concept. Also defining a vocabulary is no trivial feat. Most of software engineering is deciding what definitions for architectures, modules, and interfaces should be used to make software systems most efficient and maintainable (in a way creating a vocabulary upon a specific domain)

Re: Books I recommend to my software engineering students

#118

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…

'Code Complete', Steve McConnell

I would recommend Clean Code over this one. Code Complete isn’t bad, but I feel like it’s filled with things most junior programmers already know

Re: Books I recommend to my software engineering students

#119

Earlier quoted context omitted.

>The book didn't introduce people to design patterns, it invented the concept within the discipline of software programming. By introduced I mean, introduced to the world for the first time. Invented is debatable concept as in was math invented or discovered ? I avoid that debate by using the word "introduced." >Perhaps one needs to have been in industry before and after this book to appreciate how it introduced a co…

Currying is a bad example, as that was a concept in mathematics before it was a software engineering concept. Also defining a vocabulary is no trivial feat. Most of software engineering is deciding what definitions for architectures, modules, and interfaces should be used to make software systems most efficient and maintainable (in a way creating a vocabulary upon a specific domain)

Why does that make it bad? I could call it Mathematical Lambda Patterns. MLP for short and put currying under it.

Or I could just call it english vocabulary within the field of mathematics.

Every single thing you said could be done without the usage of the word "design patterns" and is already done without meta awareness of itself in all fields of engineering, science and anything.

If I were to build a house is there not a language for "architectures, modules, and interfaces" used to make houses more efficient and maintainable? Also it would be (in a way creating vocabulary upon a specific domain)

The difference is for physical architecture it's missing the pompous self importance. It does not need a name for itself. Imagine if it was called "Structural Language Patterns," and every concepts was suffixed with the word "Structual pattern."

You will note "design patterns" is actually derived from physical architecture but physical architecture does not go overboard and give itself a name other than "English Vocabulary" and attempt to communicate with big words where English will make more sense.

Post reply on HN