Live data from Hacker News

Ask HN: How best to learn software design principles?

news.ycombinator.com

31–40 of 100 posts

Re: Ask HN: How best to learn software design principles?

#31

Bob Nystrom's Game Programming Patterns is an engaging, informative book about design patterns that are commonly used in games but are relevant to non-game software too. http://gameprogrammingpatterns.com/

I love this book. It's a good introduction to design patterns. Very well-written and entertaining, and filled with real code examples. It's certainly not boring, I was able to read it in about a weekend (and I read slowly). For a free book, that's such a quick read, it has a surprising amount of knowledge in it.

Re: Ask HN: How best to learn software design principles?

#32
post #2

http://cleancoders.com/ See them all. The best investment you can make into yourself.

Geez! That guy on the thumbnail for the first video (Clean Code - The Last Programming Language) looks really angry. I don't think I want to learn anything from that.

Re: Ask HN: How best to learn software design principles?

#34

Earlier quoted context omitted.

While I don't disagree that Bob Martin presents useful information in those videos, his presentation style is... bizarre to say the least. You'll find as you watch them that the signal-to-noise ratio drops with each episode. In the last few, there's about ten minutes of useful information mixed in with about 50 minutes of cosmology lessons, tours of his house and neighbourhood, and babble amongst his various alter eg…

I asked elsewhere but perhaps I asked the wrong person. Which episodes would recommend in particular for the highest bang-for-my-buck?

My memory's a bit foggy about what's in each one and how much of an acid trip they all are, but I'd say episodes 6-14 are kind of the sweet spot you're looking for. The next several, from 15-19 cover some good stuff but are getting really wacky, and beyond that could be good if they weren't so damned weird.

Re: Ask HN: How best to learn software design principles?

#35
post #14

* The C++ Programming Language 3rd edition, Part IV of the book. * Large-Scale C++ Software Design * The Practice of Programming * Code Complete These are a good start but in the end it's experience. It takes a lot of practice to build a good intuition when making software design decisions.

Large Scale C++ Software Design is a real gem.

Yup. The author obviously have seen it all.

Re: Ask HN: How best to learn software design principles?

#38

http://www.aosabook.org/en/ "Architects look at thousands of buildings during their training, and study critiques of those buildings written by masters. In contrast, most software developers only ever get to know a handful of large programs well—usually programs they wrote themselves—and never study the great programs of history. As a result, they repeat one another's mistakes rather than building on one another's su…

These are really great books. I stumbled upon them while reading the great article about the Selenium WebDriver http://aosabook.org/en/selenium.html

Re: Ask HN: How best to learn software design principles?

#39

Learn a functional programming language. This has had the most impact on the way I think about systems by far. The biggest impact was realizing all of the time I've spent trying to master all of the OOP acronyms hasn't paid off. I've also realized that OOP might be meant for a type of programming that I don't do (video game logic? device drivers?), where as FP seems to fit great for Web applications that are just wra…

Would you say that FP itself (not the thought process it generates) would benefit me in mobile application devlopment. It's mostly gaining data and then setting it.

Are you developing for iOS? Swift seems to introduce a lot of FP concepts.

Re: Ask HN: How best to learn software design principles?

#40
post #2

http://cleancoders.com/ See them all. The best investment you can make into yourself.

I hate to sound stingy but at $445 is there a cheaper alternative? Like a book, or maybe shorter series? What videos would prioritize over the others?

His book Clean Code would be a good start to what he has to say. The SOLID principles are important.

Then I'd move on to Domain Driven Design and probably Refactoring and Growing Object Oriented Software, Guided By Tests.

Those four will give a good start to what enterprise/OO people are expecting in design.

Post reply on HN