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.
Keeping up with technology
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.
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!
Step 2: Picking a technology
- How could I use this in my own projects?
- How popular is the technology?
- 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.
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…
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.
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.
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