Staying competitive for programmers

Keeping up technology programmer

How to keep up with technology and stay competitive as a programmer?

Keeping up with technology can be a difficult and is a skill all programmers should have. It is especially difficult due to the rate technology is evolving and new frameworks, programming languages choosing what to learn and how to learn it skill on its own.

I remember starting out with web development in this year and how overwhelming it can be; especially in the JavaScript world. A simple programming a few years ago is now the most popular, quickly evolving one. Along with all its thousands of frameworks that go with it.

 

Keeping up with technology

Programming trends are a hype of what to learn because it’s hot and new on the market. Have you ever seen video on YouTube about “Top 10 programming languages to learn in 2017“? Well that’s what it is. Ohh you should really learn TypeScript, I think it’s make a come in this year -an maybe it does. Newbies will (I did too) which programming language should I learn to create web apps? People would say Python, Erlang, Elixir, JavaScript, etc, etc. Just pick one! I know it can be tempting to jump from Java to Python and then to JavaScript because it’s whats hot at the moment, but you aren’t going to learn as much as you could or achieve you full potential.

So you can amend this approach to JIT-learning to understand the scope of a language. Because in the future you’ll need to know a handful of languages throughout your career. Be saying that, you have you’ll whole career to learn them. So just pick on that you like, it maybe Python -I personally prefer Java.

To finish up here, don’t let the temptation of jumping around programming languages fool you. I have tried it and it’s just so much easier to specialize in one – my case Java – than the others.

 

Why should you do it?

Keeping up with technology and knowing what to learn -the good and the bad – is an important skill every programmer should know. Having this ability to learn quickly and effectively is vital for your career.

Not know how to keep up and not willing to keep up can be very damaging to your skills and career. I have asked people – for example JavaScript –  and we’ll have nerd fights over our favorite languages. Them I would throw in JavaScript into the ring, and my response would be “No, it’s just a fad”. Yes, it may be a fad but again it will to bite you if you don’t learn it.

Yes you may be the best Java programmer under the sun, but if you don’t know Node.js that most startups are using now

 

 

The process of a knowledge worker

A knowledge worker is someone who is able to quickly process and understand information.

A more practically approach is somebody who can quickly find the latest trends, choose a framework and quickly learn to mash this new technology together into an app and make it look like something within a matter of days or weeks.

So how do you really keep up with the latest and greatest of which, how do you figure out whats going to stay and what will eventually die out before you make the decision of investing your hours into learn it?

It is very challenging for especially new developers like myself to learn and keep up with the rapid growth. Man, you know when you just discover new framework that been around for 4 years already and there are some guys who started from the get-go? Practically learning it from day 1! Well I did some findings and with my experience of learning, I put together this guide.

 

Step 1: Discover

So you want to learn something new so you can add it to your coder-man utility belt. How should you go about finding out about these fabulous technologies anyways? Well you need to have sources that cover the latest and greatest and talk about what going on in your preferred world.

Say you are a Java guy, man you know the ins and outs of this language like you like your car. You know that you need to let it run in the morning for 3-4 minutes before you drive it, you know that you have a bit of rust on your left door that you should probably check out and most certainly of all you know none of the windows roll down. That may not be your case, but for me it does ring a bell.

Anyways, so you’re the Java guy and you probably use Spring, and one or two other web frameworks. You probably subscribe to javaworld.com, infoQ, and some of your followers blogs. They do talk about some new stuff that’s happening… “Uhg, this is becoming so long-winded, show me how to discover!”, OK!

What if you’re a JavaScript guy? Well, you’re in luck and some bad luck. There are some very popular portals for JavaScript and good YouTube channels you should subscribe to. medium.com, JS Jabber to name two.

 

Step 2: Picking a technology

At the rate JavaScript is evolving, it’s easy to believe that a new JavaScript framework is being written right now and when you finish this article, a new one is up on npmjs.com. Well that’s likely true, but in that case how should you pick one that’s right for you? Well ask yourself these questions,

  1. How could I use this in my own projects?
  2. How popular is the technology?
  3. Will it revolutionize the industry

So you have found a certain technology and you have had your eye on it for a while now. When you go to the gym, it’s what you think about, before you go to sleep it’s all you think about too. Ahh you are so happy now that you found out about this technology and how many problems it will solve that the previous one couldn’t. The only thing to do is go up to it and say “Hey, I want to learn you”. You start by visiting the homepage, looking at all the documentation, the formatting and the CSS that was transpiled from LESS, but you don’t care. It’s now deep into the night and things get a bit uncontrollable, you hit up tutorials and watch them endlessly until the next morning. By the next day you look hung over, eyes bloodshot complemented with dark rings. But the framework you chose looks as good as before, bright colours of red, white and silver… “Angular2! No!!!!”

That’s how it usually goes, right?

When you do decide on choosing a technology and you are sure you want to work with this particular one, the first actual step is to understand what its scope. Look at the homepage a bit and read the docs to understand how big this project, framework or technology actually is.

 

Step 3: Your goal

Alright, so you are a man with focus, determination and you walk up straight up to you mama and kiss her on the cheek before you leave for work -all the good stuff you put on your CV. But now how do you actually do that stuff you learned, well except for kissing your mama -we all have seen that!

Defining your success is important! You should know when the job is done and how you got there. Well really, what do you want to achieve. For example, one of my goals was:

I want to build a simple login application with Spring MVC

When I was new to the Spring framework. Okay? That’s what you should strive for! By setting a specific goal to narrow down the scope of what to learn and understand what you have to learn.

 

Step 4: Get the resources

This is a particularly important part of learning a new technology, finding the resources. So, you went ahead and looked up the homepage, inspected the docs and maybe got a few tutorials. Put them somewhere, under a bookmark folder or in your todo list app.

The next important part is choose the one resource to get you started. This often is the homepage, it usually shows a Getting Started Guide and you will do some sort of tutorial there too. But try not go for that at first. Get a good video tutorial of your technology that shows how to build a basic Hello World app. A good video tutorial often includes environment setup of your IDE, SDK and such.

Filter out the best learning resources into a todo list queue, the first being the easiest and the last being the reference manual and or the docs.

By now you should know I use KanbanFlow for everything! I usually set the description to contain the resources I want to use -I call this the Start-working-queue. It’s everything you need to get up and going. I know I have three items here and in the wrong order, well that’s because I already watched a video tutorial series and this another. I want to have many perspectives. Evernote is where I usually write some key points.

KanBanFlow Resource Queue Task

 

 

 

 

Step 5: The plan!

Having a plan is one of the most important steps, of all time. It describes what you are going to do and steps you will take to learn this new technology in order to achieve your goal defined in Step 3.

Define your chapters/modules. Defining your modules that you are going to learn. Once you have gone through your getting started guide or introduction, take note of the topics/components discussed in that getting started. Define those into mini-tasks and chapters that you are going to revise in practice. The is going to be your curriculum for learning.

Once you understand the scope of the technology, framework you can understand the steps involved in learning it. Like I said I use KanbanFlow to create steps in learning. You can see I started with a Getting Started (setting up the environment) and then creating a Hello World program, and so on…

KanBanFlow Step plan Task

 

 

 

 

 

 

 

 

 

Consider the best time of day you are most productive. Often at times it’s in the morning where you can be most productive and then shortly in the evening, or late afternoon too. You’ll need to wake up a bit earlier to do so to squeeze in the extra hour or two.

 

Step 6: Implement a routine

Getting started can be difficult. It’s an actionable task, and often you can feel the water is to cold for your little toe – I know this feeling to well. But getting started can be the most fun, yet frustrating part!

Set your a routine. Say every second day you want to spend an hour learning this technology. Using the pomodoro technique can help you keep track of time and keeps you in line with time management.

As you can see I have a JavaScript day, which is every second day. It’s broken into three parts, One is learning React, Two is learning Node.js and Three is learning JavaScript (ES6). Yeah-yeah! I’m on a gap year, so I have a full day! So in this case I’m talking about the React (first part), which is 3 pomodoros. I will focus on the Learn React.js task and it’s subtasks (which is another KanbanFlow task) until I complete my goal.

KanBanFlow routine plan task

 

 

 

 

 

 

 

 

 

It’s very important to define your goal (Step 3) so you know that it’s more achievable when there is a plan in action. If you are wondering about the other subtasks in JavaScript Day, the checked ones are the things I am currently focused on until completion, the unchecked items are in the queue for things to learn next.

 

Step 7: Start by playing

So after you have done getting started and you understand how this technology or framework works, how do you retain that information? So now you understand what React Components are, maybe Props, but you don’t really know how to make something out of it. Well what do you do?

You can learn about all the details about how most things work, maybe you have studied the source code. But that’s not going to help, you still don’t know how to implement that into a working example. Well, just play around. Play with each thing from the tutorial. Like I do, I would hide the React Docs and try make Components by hand, tie them together into a parent component and into a working app. You won’t believe how easy it is to remember how things work when you start playing!

Once you are comfortable -in my case React Components- move onto the next step. Which is React Props. Only move one when you are competent and confident with a particular task.

Each subtask/module you are learning should be repeated with Playing. So repeat, repeat and repeat!

Once you are confident with most aspects of the technology/framework it’s time to build something. Traditionally people would build Todo lists with React.js, but maybe you just want to create a login system with some chat functionality -it’s a stretch but you could do that.

 

Step 8: Build something to your liking

Building an application is yet another fun part and yet most challenging too of learning. But you should have a clear idea what you want to build. Keep it simple-ish, yet throw some challenge in there. Don’t try build a mini-facebook with React.js. An example for me would be a login system to a person todo list, like a simple Evernote (Evernote also uses React).

A side project. You could perhaps develop a side project with this framework/technology as something you are passionate about .

Whatever you choose to do make sure is challenging but achievable. Have the idea from the get-go and stick with it.

Building something is learning and playing squished into something you create and you’ll learn even more when doing so.

 

Summary

So all-in-all that’s how I learn a technology quickly, well at least I try. Feel free to adjust the settings and time spent to your liking. Heck you could learn React in a week!

Step 1: Discover something to learn

Step 2: Picking the technology and understanding the scope.

Step 3: Set your goal and define success.

Step 4: Getting quality resources.

Step 5: Developing a learning plan

Step 6: Implement a routine

Step 7: Start by playing

Step 8: Build something to your liking

My routine isn’t original, I have adapted a lot of the process from How to learn new tech on Medium.com and 10 steps to learn anything quickly by John Sonmez, adapted in his book Soft Skills.

Resources

Oh yes! If you are learning React and your eye was on the YouTube playlist, well there are a couple pretty good ones; thenewboston and LearnCode.academy‘s one.

 

Adrian van den Houten

I'm Adrian van Houten, founder of ScholarCoder and a passionate software developer for full-stack web development. Read more about me here.