Self Directed Learning

As developers we often have to take our education into our own hands. In this episode we discuss reading the source, going it alone, and learning from books.

Reading the Source is Unnecessary

Process cannot be inferred from product no more than a pig can be inferred from sausage.

When starting out, being able to capture the wisdom of the ages from github may not be terribly helpful.

You can’t really write good, idiomatic code unless you read good code. (Go read Rake.)

You won’t necessarily be looking at good code when you read the source.

There is a difference between learning how to work on a new team vs learning how to write good code.

You need to know what good code is before you can identify if code is good.

If you need to know what code is worth reading, you have to ask someone more experienced.

Look at code from the same person and get their understanding.

Be careful about trying to get in the head of an expert. In the Dreyfus model, more experienced people intuit the next steps. It may not be a conscious decision. Individual experts have different skills at breaking down their thought processes.

Think about the values the people who make or suggest the projects have and that will help you understand the code.

If you’re new to programming, popping open the code for a library may be VERY difficult.

If you’re an old hand, it’s often the most efficient way to absorb a new language.

You Don’t Have to Go it Alone

While you do have to put in a lot of individual time, you can reach out to mentors

Mentors are good at reducing the unknown-unknowns.

You have to self educate or you’ll be stuck forever, but you can only learn so much on your own. Find someone to work with to fill in the spaces you don’t know exist.

When you reach out, some people may not know how to respond in a caring/fostering way, which can be extremely discouraging.

Going it alone often means only looking at the books. You can get past things, but it’s harder.

You choose when to reach out for help. If you get stuck and you can’t admit you don’t know something you will not improve.

Training tends to have curriculum, and are structured in a reasonable way to really get you into something.

Books Are the Best Teacher

Books, if you skip around, can leave you with gaps in your knowledge.

You can’t passively read a programming book. Do exercises as you go.

A good book has tons of examples.

When I treat a portion of a book like a kata and continuously review it that’s when I see major changes.

Try reading books that aren’t specifically about a programming language. Read POODR or Functional Programming for OOP, books that teach concepts with the language, but not a language directly.

Read books that are ancillary to programming.

Take Aways