Nowadays, programmers are getting better. Or rather, we're finding better programmers. Better in quality, quantity and adaptability. You can see a constant trend of change in the programming software and the same reflects rather very quickly into these brains too. A constant fear therefore, appears in the minds of people who don't catch up to the fast-paced world.
And of course, there are a zillion start-ups appearing every now and then in the day. Every person is a start-up, putting his ideas to of some use. Lets keep money factor aside as this piece is more of a technical one. So, a small pattern detected in the recent company list crawls up. Here goes..
1. Data Mining: Data. Data. Data. The world's databases are filled with over a peta-byte of information. Storage devices have shrunk in size, processors are tinier but more powerful making data more portable to carry over. I myself have surprisingly, started working only with virtual machines stored on an external hard drive! The entire system being hosted on that little piece makes it easier to store more data. And that crude data is now being thought of as a gold mine in the recently watched presentations. A thing which needs to be searched for hidden information. And there pops in Data Mining. If you're good in Python/R and a bit of analytical modelling, you're set. All that matters is how you mine data and you have plenty of mining algorithms via Machine Learning and Artificial Intelligence. Sample courses on Coursera shouldn't be that difficult.
2. Product Scaling: You've a product er.. piece of software and you want it to be seen on every lame person on earth. The product might not be that robust to handle the traffic once it goes viral and hence, app scaling comes into picture. Most of the applications are web-based, so you always have centralized servers to provide the back-end support the app needs. Most of the initial product stages are on a single server which is simple enough to perform a request of up to 500 users but then the problems kick in once the user base exceeds this limit. You need to scale and quick! Many web servers have performance tuning tools that can scale this to an extent unimaginable. Oh yes, you also have clustering mechanisms that can be made to split up the traffic handling. Gearing up on web server deployment and core infrastructure performance mechanisms is one more field to look. And this comes plainly from experience sometimes.
3. Coding: Programming software is evolving at an exponential rate. You coded in C++ a year before and in 6 months, the world moved to Java and within 2 days, moved to Python. Why? Lazier to code many lines, language support on the web, API integrations and many more. That drills down to some core computing principles of Design Patterns, Algorithms and technical fundamentals. The concepts might not change, but that IDE you use and the language you talk to in that IDE do. Pick up these on either ProjectEuler or TopCoder. Don't care about what the world thinks about these sites. I'm getting benefited by them in a scale, unthinkable of myself.
Many more might be on that list. Enough for now. Until next post.