Some subjects are inherently better to learn

Some subjects are inherently better to learn

Me - to a group of friends

Allow me to explain what might seem like a hot take:

2 things make a subject 'inherently' better, one is deeply personal, the other is a matter of applicability :

Deeply personal

If the subject matter holds no interest to you, be it for personal or professional reasons, that subject matter is inherently worse (for you)

A matter of applicability

I like to see subjects (I mostly read, but I believe it applies to subjects, not books) as having a "wideness" of applicability.

Very narrow

Very narrow subjects (think "Eloquent JavaScript" or "Practical Go Lessons") have a very narrow applicability, close to 100% of what you'll learn will apply only in situations where you use that language.

It's ok to investigate a bit to hone your skills, but won't be very transferable. They deal in very "short term" tactics.

Averagely narrow

If we expand the scope a bit and go for wider books, we have subjects that deal with a "universal topic", think subjects you could learn in a language you don't master, things like: TDD, Encapsulation, Refactoring, Patterns, Algorithms

These subjects still deal mostly with "tactics", but their scope is a bit expanded, the tactics are more long term, some get close to being strategic. You start to be able to use these lessons in almost any language.


Then you have more "holistic" subjects, in books I think of: "Pragmatic Programmer", "The software craftsman", "Modern Software Engineering", any book about Architecture, DDD

These will give you very transferable knowledge.


To finish the list, you have more situational books (think eXtreme Programming) where the knowledge is highly transferable technologically, but very team-context dependent.

What type of topic should I go for?

I believe the inherent worth of each of them might change over time and situation, but I believe that the marginal-gain curve flattens out faster the "narrower" the subject is. The 100th hour learning Ruby has less beneficial impact than the 100th hour learning testing strategies for example