Let’s look at how to handle the high pace of change that happens in the software industry. You might be expecting some zen advice like don’t worry so much or fear isn’t real. I say if you’re concerned there must be a reason.
Work in a bigger organization
So I’ve never freelanced – seems great though – however having a job should protected you from having to learn too many languages. Seems weird right. But it makes total sense. If you have a job that’s kinda the point. They – the company – need you to do a particular task. Most likely those tasks aren’t changing every week. So you get to develop yourself and get comfortable with a particular skill set. So the world could be changing but as long as the particular task you were required to do is still relevant to the company you’ll still be doing it. Cause hey, why break something that works. Right?
To be honest the pace of software growth is absolutely unnecessary and stable companies will try to avoid it as much they can, as maybe you should. They would prefer something that works than something brand new and shiny that apparently adheres to ‘code standards’ and is ‘modular’ and allows you to ‘continuously integrate’. All that good stuff is awesome for B2C software where customers are picky and you have to change and adapt to keep their attention like a TV shows. Businesses that sell to other business or uses software internally can’t afford to operate like that, makes no sense for them to really. So find one where you can get some form of stability – if that’s what you’re looking for – and you should squelch your fear.
But shouldn’t you be learning more skills?
You should always be learning and so you could always add new languages to your skills set. Working in bigger organizations however you could focus your attention on the skills required for the job at hand. Since bigger organizations tend to abhor change you wouldn’t be constantly worried about what you need to learn next to accomplish some grandiose task.
What happens if I lose my job?
What happens if you lose your job and you don’t have the skills for a next one. That’s a good question. Its a problem you will have to solve. It’s a big possibility. Deal with it when it comes. Plus remember I said you should always be learning. Having a job in bigger organizations however allows you to have focus on specialized skills.
Learn Core programming Skills
After learning your first programming language you should have a strong foundation to deal with the others languages. The hardest part is usually understanding how another language works. But the core principles almost always remain the same. Make sure you learn core programming skills. This is the harder thing to do. You will be less worried with the pace of change once you have master the art of programming. You will be confident that you should be able to pick up quickly on any new shiny language, framework or API that comes your way. Nothing a little documentation and blog post reading can’t fix.
What is this core programming skills stuff?
Good questions. I’ll make a list of some of the things you should have a general idea on.
Well those were pretty simple. We could add some services to the list. Services in the sense that we work with them to achieve goals.
- Databases ( SQL and stuff)
- Web Design (HTML & CSS)
- Servers and Cloud Services ( Linux, Apache, Nginx, AWS)
- Web services (JSON, SOAP)
Is that all or is there more?
Well the list can get really long. But you do it once in one language you should have an idea of how to do it again.
How does having core skills help you?
Basically its like this. Say you wanted to count to ten. You know how to do it in JAVA. Why? Because you know for loops or other stuff. But you don’t know have to do it in PYTHON. What do you do. Do you learn all of python. No. You just learn how to create a loop in PYTHON and you are on your way. Of course PYTHON has other ways to count to ten but guess what – did you solve the problem. If the answer is yes then you’re half where there. Solve the problem first. make it work. Then you could find a better way to do it. So having core skills allows you to solve the problem first quickly in any other language you desire because you’re only asking how.
Learn how to learn quickly
You will worry less about the other programming languages if you know you can learn quickly. I know a more acceptable approach is to not worry about what is going on but I say forget that. Instead learn how to learn quicker. That way you could keep up to date with all the ebbs and flows of the software industry. It is possible. It takes time. But it is possible. Once you know how to learn things quickly you will be more comfortable with change because you can adapt better.
How do I learn quickly?
I actually can’t speak for you. You will have to find your own solution. For me its usually a mixture of videos, blogs and trying stuff. I have issues with each of them and so a combination is usually best for me. I list the negatives of the various methods I used to learn. It will vary for everyone. The negatives are what slows you down which is why I’m listing it. The positives are basically that you’re learning.
Videos take too long, the presenters usually talk to much and don’t provide me with the information I need quickly. Remember I already know core skills so I’m usually looking for how to do something. I could get the nitty gritty after. Blogging is great for getting the information you need right away. You’ll have to skip a few words to get to the code but that’s a small price to pay. Of course when it doesn’t work as expected you will now have to return and actually read the entire blog to understand what you did wrong.
Reading blogs is great but you usually don’t have context. Blogs are really great for answering specific questions and getting great code snippets to get you started. But they don’t give you the full picture. Its actually pretty hard to blog about a whole project step by step. I’ve tried it and I imagine a beginner might scream when trying to implement it.Videos and courses are great for the full picture. You tend to see the application being built from start of finish. You could skip sections of the video to get to the part you want if you need to.
Reading books is horrible when learning a new language for me. But great to solidify your knowledge of a language you know already. Reading books to me is all about details. You really get in depth into the language you working with and learn things you never learnt before. Reading books about languages and frameworks can teach you a world of things but the down side is that you kinda have to read the book to get there. Not a very FOMO negating strategy. For the most part even if you can read how to ride a bike you still have to do it. So I never read books to learn new languages. If it is your first language you will need a book definitely to understand it more. But we are working with quicker wins here. No books allowed unless it works for you of course.
Whats the aim in trying out these different ways?
What you’re aiming for is to get to a point where it actually becomes fun or not hard. You want to be comfortable and have a routine you go to when learning something new. You will have to go through a trial and error phase but once you get it right you will be learning new languages faster that you ever expect.
To summarize you need to figure out what learning method suits you best. Do you like to watch videos. I tend to fall asleep after a while but I do use videos. Do you prefer to read blogs or documentation. Do you search stack overflow and google for examples. Do you prefer a whole course or a simple snippet. Do you need to physically do something like start a small project or just review someones code. However you do it find a method that suites you and work on perfecting that method.
Reading and Research more
Reading about blogs that reviews different technologies will help you get up to date quickly. Getting insights into different fields of the software industry can help you with perspective. Also joining blogs and communities to understand what is working in other areas is helpful. Blogs are really great way to learn if you don’t want to do unnecessary socializing.
Wouldn’t doing more reading make me more afraid?
Well this solution is about confronting your fear. If you are worried about missing out take the time to find out what you’re missing out. That means going to meet ups. Making new friends in different industries. Read more, watch more, learn more.
Build small applications and projects
One great way I’ve found is to create very small projects. You basically want to understand how something will work in real life. You don’t need to go too in-depth but you want to gain a basic understanding of the technology. Creating small applications is great for this although it does take a bit of effort. Why I’ve found it to be so useful is that you generally aren’t comfortable with book knowledge until you can actually do what you want to do. So having a small project gives you the confidence in the back of your head to say yes I can do this. You will just be building on what you already know.
What kind of projects can I build?
Anything really, the skies the limit. I will list some examples of the kinda of projects you can build. Its more web development focused but you could use the ideas for other kinds of programming.
- Note Taking App – A classic really
- A blog
- A task manager – Kinda of like the note taking app.
- A events manager – You get to work with dates etc.
Well you could do more than this. Its just and idea. An even better solution might be to mimic already created apps. Building minimal viable mock apps of already created applications should really force whatever you trying to learn in.
What am I really afraid of?
Well the robots are coming. Maybe not today or in ten years but they are coming. And programmers are going to program themselves out of jobs while working in jobs that do the programing to create the machines that render them null and void.
This seems unrelated to anything you just wrote?