Truth is, I have stopped learning a technology dead in my tracks just to jump to the next latest and greatest thing. I stopped working on Angular to learn React. I stopped learning ASP.NET 5 to learn ASP.NET Core. These are all examples of me ruining what I have learned in the past just to jump on the “latest and greatest technology stack” just because I though companies would be using that stack. I also thought I needed to learn it to be successful. Truth is, that shit was just hype…
Today, things are innovating faster than we can learn them. So, if you are wanting to learn how to program, don’t keep jumping to the next release of a technology or one that you think is “in demand” just to start learning it because you think it is the latest and greatest.
Most things you see online about a technology being better than another technology is usually from people that have worked with multiple frameworks, have spent time with multiple frameworks, and have taken the time to use them. Those people are most likely not learning to program, they have an informed opinion about the technology in use.
When you see them say that they left Angular to go to React, it is mostly because they had a very rare use case that needed to be solved that the other could not. Most of those use cases are deep and something that you are not going to run into for a while.
Just Sit Down and Learn It
Find a technology that you would like to learn and commit to it without jumping around. If you want to learn Angular, pick a version, set a start date on your calendar, and then commit a set amount of time every week to learn it until you are close to mastering the technology.
While you are learning the technology, you are going to see post online about React releasing a new version and it is better than Angular, you will see post about how Vue released a new version and it is better than react. Fight the urge to not jump on the hype train… stick with your calendar and the framework/technology that you committed to learn.
If you learn Angular for 6 months and then drop it and jump to another tech, then you are losing the value in mastering Angular and you are dropping months of hard work and dedication.
Then When Do I Learn A New One?
You will know when it is time to drop the current technology that you have been learning to learn another one. The reason you want to master your chosen tech before jumping on board to learn another is because most of the tech works in the same way. So, when you master Angular (or whichever you choose ) then learning React, Vue, or other frameworks will be easier because like I said, they all solve the same problems just in a different way.
Mastering one piece of technology is all about understanding the big picture. Its understanding the placement of a compiler, how are the components created, how does the parser work, etc. Knowing all of these things will help you become a better programmer with the stack you have chosen. When you understand how syntax is compiled, and what the compiler is doing, then you will have complete control over the framework and how to manipulate it to get the result that you want.
But No One Will Hire Me If I Am Not Using The Latest and Greatest
People who are just learning to program have a huge misconception about what it is that companies are looking for. This makes sense because you are learning to program, you are not trying to get a job at a fortune 500 company as the lead software engineer.
The misconception is within the technology stacks that companies use. Just because you see a Stack Overflow survey saying that Angular is the most popular programming language at the moment, does not mean that all the successful companies are using it. Those surveys can come from many different places. They could have ran a survey to see what language is most popular on GitHub, but that is irrelevant to you getting a job at a company. To be honest, open source software and private software is completely different. Open source software seems to use a lot of the latest and “greatest” technologies because of its target audience.
But, when you have money on the line, customers, investors, etc, you cant just rewrite your entire application just to stay up to date to the latest hype. Than can cause obvious major issues and it is expensive to the organization.
Then what do I learn?
Like I said in the beginning, pick a technology and try to master it. It can be any technology, it doesn’t matter, there will be a place for you in the exciting industry of computer science.
I see job openings all the time that are paying high salaries for Ruby programmers, C++, and even COBOL; those technologies are years old but are still in demand.
So go, pick a technology to learn and master it. I promise you will learn so much and moving to another technology after mastering the first one will be easier than trying to learn one without closely mastering one previously.
I mostly write about programming and technology. If you follow me on Twitter I won’t waste your time. 👍