# 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.

# Wide

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.

# Situational

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
