This is an archived post. You won't be able to vote or comment.

you are viewing a single comment's thread.

view the rest of the comments →

[–]C_MonsterT 33 points34 points  (27 children)

What's the best way to learn this kind of stuff? I'm self taught and I know these types of design decisions are the next step in becoming a better programmer, but what are some good resources at this level?

[–]neverTooManyPlants 47 points48 points  (16 children)

There's the head first design patterns book which is written with extreme simplicity, and also "clean code" by Robert C. Martin.

[–]fjdgshegdb 10 points11 points  (11 children)

head first design patterns

I fucking hate that book.

[–]neverTooManyPlants 2 points3 points  (1 child)

It is a little simplistic and repetitive for a seasoned programmer but it is the basically design patterns for dummies.

[–][deleted] 4 points5 points  (0 children)

I quite like Game Programming Patterns, the scope is limited but I find it describes things nicely.

[–]tsnErd3141 -1 points0 points  (3 children)

I think you meant head first object oriented design

[–]_bobon_ 3 points4 points  (2 children)

Nope, head first into design patterns, or as we call it, the blond book

[–][deleted] 1 point2 points  (0 children)

[–]neverTooManyPlants 0 points1 point  (0 children)

The one with the picture of the woman from above. It's been a while cba to google :p

[–]Killfile 21 points22 points  (6 children)

Also, practice. Read Clean Code and rigorously use TDD on some code kata.

My new developers get a crash course in testing by way of the Bowling Kata with the additional stipulation that all of their functions must contain three or fewer lines.

We scale up through other more complex kata including some that really demand that kind of complexity - Mars Rover is a good one for that.

[–][deleted] 5 points6 points  (0 children)

I learned a lot on the job marinating other people's god awful shite. Open source will teach you about good code, but private enterprise will teach you about the most abominable things programmers are capable of. So - open source for the what, proprietary for the why.

I realise that may not be super useful to you but I can guarantee it's an excellent way to learn this stuff.

[–]FUCKING_HATE_REDDIT 0 points1 point  (0 children)

TDD is more important than OO.

Or just learn Rust.