Introduction
Technology comes and goes, so as the ways people do things. How often you learn that the certificates or experience you built up over years becomes less in demand if not obsoleted? It was disheartened when I learnt that mobile browser was not able to run flash while I bet a lot on Flex. Or EJB didn't sound so good as I thought while I had spent years to master with. Actually, I am happy to see technology advanced for good as it eventually makes our lives easier. But I might not feel the same when I see tons of similar javascript frameworks out there all claimed to do the job while there are still quite a bit of cross-browser issues out there in production.
To avoid getting drowned in the tech ocean, I started examining technical areas that could stay relatively longer and created my own plan to master them. Over the course of years, my plan turned out working very well and I got paid off in various ways. After few of my friends asking me for advice, I decide to share it out and see if it can benefit others. If you are interested in finding out my logic behind my plan, continue to read.
Disclaimer: My plan is for sure not going to fit everyone and some of the points are quite subjective. However, the key here is to get you start writing your own plan and keep you focused to build up.
Get the high level direction right
- Pick an area to focus - Data is king and it will only continue to get higher in demand. To stay competitive, companies have start collecting tons of data from devices or website and attempt to extract business intelligence out from it. So, big data and machine learning skills are in high demands and will continue to trend up in the future.
- Pick a business domain - Internet marketing has powered many start-ups and mobile apps. Without it, you may not even see Google such big or sites like Youtube continues providing you great services for free. No matter you like to see ad or not, this domain will gain you insight of how the money flows in the market. If you are good, you can make your fortune from the Net without the need of anyone.
- Pick a programming language - Don't go back and forth with many programming languages. Pick one and go deep. The key is your problem solving skill not syntax sugar.
- Find a company with tons of traffics - So, you will learn things that others cannot easily pick up from books and articles. High volume traffic site will come along with big data. Having hand-on experience with TBs of data per month is different from picking it up from a coursea course on Net. If you cannot get into a company with tons of traffics, consider to set up your playground via crawling the web or tapping into social feeds.
- Math and logical thinking stay around.
- Keep up your coding skills through sites like TopCoder.com.
- Get down to the hood and pay attention on technologies that get the most out from CPU, IO & Memory. Less on studying APIs as you always can reference that.
- Get familiar with some tools that help you to boost up the bar of your code quality before it goes out in the wild. Tools like profiling, stress testing, CI, virtualization and etc.
Areas I am betting my time on right now
- Actor-based model (avoid concurrency management headache)
- Data processing through distributed nodes - Akka, Storm, Vertx
- Search technology - ElasticSearch/ Lucene
- Data intelligence - Machine learning & NLP
- DevOps skills - gain better knowledge of how your machine works under the hood to squeeze out extreme performance like Martin Thompson behind the LMAX architecture.
- Monetization through Internet Marketing