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.
They are doomed because they are so far behind, it would be impossible to to catch up.
Curiosity Killed the Cat
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 of 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 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 Make 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.
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.
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
Other post in Opinion
- Object Oriented Programming has Failed Us - May 13th, 2008
- Why Programmers Can’t Program - March 11th, 2010
- CMS vs Code It Yourself - August 14th, 2013
- Do Programmers even NEED a degree? - September 11th, 2013
- Why Start A Blog? - February 19th, 2015
- Are You Average or Awesome? 9 Ways to Improve. - May 12th, 2016
- How to be a Lucky Programmer - January 24th, 2017
- The Psychology of Programming - February 7th, 2017
- Confident Programmer Secrets, Revealed - March 7th, 2017
- Coasting, Curiosity, Diversification and Being Awesome - March 21st, 2017