There are two twin evils that I see in the programming community. The first is the programmer who knows what he knows and has no desire to learn more. I call these, “coasters”. And then there are the programmers who are so curious that they try to learn every new thing that comes along, with no focus. The interesting thing is, both of these types of people end up at the same place. Out of work. The cure for both is the same. Being Awesome.
Coasting Is for Morons
If you are reading this blog, you are probably not in this category. In fact, it probably frustrates you to watch these types of programmers as much as it does me. But for completeness, let’s describe the coasting moron.
These are the programmers who learned how to program more than 5 years ago and got a job and have never moved since. They are still programming in the same language they learned originally. They are probably still at the same job they started at. And, if they had to get a new job, they probably would not be able to find one because their skills are SO out-of-date.
They are still using Web Forms or MVC in ASP.NET, have no idea how to use anything beyond .NET 2.0. Or worse, they learned how to program in Visual Basic back in the day and couldn’t write a proper .NET application to save their life.
They know HTML 3.2 and maybe xHTML, but have no idea what HTML5 is.
And if they had to use JavaScript, they are probably still stuck using ECMA Script 3. This is to say nothing of knowing the dangers of global variables or what prototypal inheritance is.
They are doomed because they are so far behind, it would be impossible to catch up.
Curiosity Killed the Cat
On the opposite end of the spectrum is the programmer who chases every new programming idea that comes out. These are the programmers who typically complain about things like JavaScript Fatigue. While they are slightly better off than the programmer who learns nothing, they problem they face is that because they are trying to learn too much at once, they learn nothing. You have to commend their curiosity though.
Fortunately, with a bit of structure, we can help the curious programmer. They are already motivated. And while I might be able to help the coaster in a one on one situation, I’m not going to spend a lot of time trying in this post. Why write to people who aren’t even likely to read?
But I can help you.
Diversification for Programmers
So, first, what should you learn next? Another language? A new operating system?
Well, the first thing you need to do is list out all the things you are interested in. Once you have that list, the next thing you want to try to figure out is which of those things is going to make you more valuable where you are today without causing you to learn more than one new thing.
For example, you may currently know how to program in C# or VB.NET but only have a rough idea of how to use SQL other than basic CRUD operations. Maybe a deep dive into learning SQL would be the next path.
Or maybe you are doing some web development and know a bit of JavaScript, but haven’t looked at any of the SPA frameworks that are currently available. Pick one and learn it. I recommend Angular2 at this point, but it doesn’t really matter. Find something on your list and learn it.
Anything you learn is good. Or maybe you are interested in a brand new language, but you can stay within the same basic framework. For example, I know C#, but I’m intrigued by functional programming. F# is on my short list of things I might learn next.
The idea is to move incrementally rather than leaping to something where everything is new again. If you can somehow work this all into your day job, even better. You can’t always, but it is the fastest way to learn new stuff.
Learn Outside of Programming
But it isn’t all about programming, is it? What can you learn that isn’t directly related to programming? There are all kinds of things. And the broader knowledge can help your programming as well. Maybe you have a side interest in business, finance, or marketing. Maybe you find yourself having trouble with interpersonal relationships. There are all kinds of other things you could be studying that really have nothing to do with programming directly, but have everything to do with making you more valuable both as a person and as an employee.
Find outside interest!
Focus Makes Awesome
Having said all of this. The real trick is focus. As I pointed out above, it is great to be curious. We can do something with that. But, if you try to learn more than 3 things at a time, you will end up learning nothing well.
One of the guys I work with has a Trello board with a list of possible things to learn. I have a stack of sample kindle books to read someday, maybe. They are things I was curious about at one point. If I’m still interested when I’m looking for something new to read, I’ll pull them down and read the sample.
But here’s the thing. I only focus on learning 2 or 3 new things at a time. Generally, one new programming thing and one new not programming thing.
Currently, I’m learning all things Angular2. My goal is to be THE Angular2/JavaScript expert in Connecticut. I’m well on my way.
I have two other interest that have nothing to do with programming. One is Options Trading. I’m at a point with that where it only takes a few minutes a day. So, I have room for something else.
That something else is everything brain science. Psychology, Sociology, Hypnosis, Memory, and more. It is a fascinating world.
Be Awesome
There is a story about two guys who were in the woods when they ran into a bear. Being smart hikers, they agreed to try standing still to see if the bear would just ignore them. This worked well.
But, after the bear left, one of the guys said to the other, “What would you have done if standing still didn’t work?” To which the second guy said, “I would have run as fast as I can.” The first guy responded, “But, do you really think you can outrun a bear?!” And then the second guy says, “I wouldn’t have to out run the bear. I only need to out run you.”
And that is the market we live in. The good news is, there are so many people that are coasting right now that “awesome” is a pretty easy level to achieve in life.
So, go out, do some focused learning and be awesome