Continued Learning

I have written here before about the concept of learning. It seems to me that developers seem to be bad at learning. This is concerning given the pace at which our industry changes.

Learning Curves

Some of this learning reluctance could be chalked up simply to how daunting the task can be. Many tools have steep learning curves. Docker is hard to learn. Splunk is hard to learn. Linux is hard to learn. To become proficient in these technologies can take a long time (at least a month of lunches). To become an expert in these things can mean choosing to focus on it as a specific career path, and devoting your professional life to it.

Developers like to be thought of as experts. Just like everybody wants to be thought of as an expert in something; something that makes us special, or significant. The typical mental make-up of a software engineer just amplifies this desire. As a result of that desire, we will tend to avoid things that we are not experts in.

In order to become experts in a new tool, developers want to have a large block of time carved off to devote to learning. While this does work well, such as in cases like technology boot camps, it is rarely practical. Our day jobs rarely just take a pause for a week or two in order for us to go out and learn something new. Instead of carving out this large time-block, it may be more practical to spend some small time with the new thing every day. Such as the month of lunches. This takes longer time overall, but ends up being much more achievable.

Passion

One of the largest factors in learning something new is how passionate we are about it. If you don’t care about something, you aren’t going to go out and learn about it. There has to be a spark there, a drive to learn. Many factors can go into determining passion, including popularity, usefulness, coolness, novelty, etc.

If a tool is not going to be useful to you, why learn about it? Even if a tool may be useful, if it is not very popular, you may be hesitant to devote time to it.

I personally think this is the biggest reason our developers are reluctant to dig into and learn Docker. They can see that it is popular, and cool to some degree, and that we use it in production, but they don’t see it very useful in their day-to-day lives. I did see this as extremely useful, even in day-to-day development, so I pursued the steep learning curve of this tool. High passion will overcome a steep learning curve. Low passion will not.

Forced Learning

Sometimes you just won’t have a choice. The “business” will force things on you, things that you must learn. You do have a choice for these things, but the choice is “learn this, or there’s the door.” Some will become experts in these tools, and some will know just enough to barely get by. Think about Git. Even though this is a fairly ubiquitous tool, and extremely useful, I bet you know people in your org that always have to look up the commands to run. There are also probably people in your org that know Git extensively, and are masters in it.

When people are forced to learn something, a great many responses will ensue. Some will just fake it. Some will dive right in and consume everything they can on the subject. Anything in between.

So What?

What’s the point of all this?

We know our industry moves at an astounding rate. Updates happen all the time. Changes happen all the time. Disruptions are common. If you do not adapt a healthy attitude towards learning, you will stagnate and lose effectiveness. On the other hand, if you only spend your time learning and playing with the newest shiny thing, you will also not be effective. You need to learn the appropriate balance between learning the new stuff, and maintaining the old stuff. Budget your time wisely.

Leave a Comment

This site uses Akismet to reduce spam. Learn how your comment data is processed.