Tuesday, December 1, 2015

Schooled

Learning is a process for me.

When I initially hear of a new concept, my reaction could be any of the following: surprise, awe, doubt, indifference, etc ... Regardless of the initial response, I typically don't have a real firm grasp of the concept just yet (even if I think I do). If I try to use the concept, it would be mostly hand-wavy, simplistic or clumsy.

That's where most new concepts mostly end for me. I am vaguely familiar but I don't really have a good grasp of it.

But sometimes, the concept is prevalent and it comes back to me. So I read about it or hear about it again, either actively or passively. I start to see some interesting subtlelties that I didn't initally realize. I come to appreciate the concept more and more. Because I have a better idea about it, I become comfortable and use it regularly. And befoe I know it, I begin telling others why I think this concept is interesting and useful.

In the world of programming, there are lots of concepts. Some of them have taken me a long while to learn. Here are a couple examples of things that have taken me a while to learn: Object Oriented Programming, Agile developement, and Unit Testing. For each of these, I thought I understood the concept pretty early on. But as I look back, I can see that I had a lot to learn about each and that I've slowly become better at each of them.

For me, learning is a process. It requires listening and reading, doing and teaching. It needs repeated attempts spaced out over time. Oddly, it often requires me to do other things for a while, so that I can see the concept in different lights.

So, learning can take some time. Lucky for me, I like learning. It's one of the best things about being a programmer. I'm always being schooled.

No comments:

Post a Comment