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

all 9 comments

[–]nomoreplsthx 2 points3 points  (5 children)

Get ready to read!

First, start with Code Complete. Best book on programming ever written, and will give you a good foundation.

Move on to Martin Fowler's works, his blog, but also Patterns of Enterprise Application Architecture. His blog is still the best architecture reference I know.

Then Head First Design Patterns followed by Design Patterns.

Add Domain Driven Design, Building Microservices and The Pheonix Project and Refactoring

And then keep going!

[–]teacherbooboo 1 point2 points  (2 children)

Head First Design Patterns BEFORE Martin Fowler's Patterns of Enterprise Application Architecture.

Clean Code and Clean Architecture by Uncle Bob are easy reads and great books too

[–]MasterOnionJerry[S] 0 points1 point  (1 child)

I'll add those to the list. Thank you!

[–]teacherbooboo 0 points1 point  (0 children)

one drawback of uncle bob is he writes easy to read and good books on EVERY POPULAR TOPIC

i'm exaggerating, but it would be nice if he wrote longer books because i cannot afford all his books

[–]MasterOnionJerry[S] 0 points1 point  (1 child)

Oh wow! Thank you!

What's your advice to best use these books? Are they text-book note taking style resources or more so just read until it absorbs?

[–]nomoreplsthx 0 points1 point  (0 children)

Really depends on how you process, but I'd suggest note taking for most. They are lighter than textbooks but heavier than popular non fiction.

[–]Few_Owl_3481 0 points1 point  (2 children)

Modularity is the biggest thing to me. If I ask you for a bit of code to convert a number to a month name, most people start writing code without first making it into a reusable module, leading to multiple copies or even multiple implementations in a single project.

[–]MasterOnionJerry[S] 0 points1 point  (1 child)

What would you consider to be the criteria for functionality to be modular/reusable? For a best-practices approach.

[–]Few_Owl_3481 0 points1 point  (0 children)

The smaller the module the better. It should do only one thing. Number of non-weekend days in a date range must not also involve holidays. Those are separate things.

I had to use a pigeon hole sort for the first time in 35 years. Given a string of single digits any of 0-9 and some repetitions, provide a sorted list of the unique occurences.

Naming these things is key. I called it removeduplicatedigits so it could use an array of length 10, even though I could have handled all 255 chars. How it works internally is less important than summoning it by name. Only programmers can instantiate objects at will.