I needed a suggestion regarding my future career choice. I have over eight years of experience in core Java. Now in my company I needed to switch to work on C based middleware application. I am very much interested in switching to C as it gives new insights into OS and computer science in general. But I am bit worried about future career options. If I decided to change company after some time, what should be my main skills as I will be pretty new to C ? Since lot of buzz is around big data, will I be left out of the race if I opt for C?
Please suggest me the ways in which I can balance my career and interests.
If you're interested in C and have the opportunity to work with C, why not take advantage of the opportunity and see where it takes you? As Jeanne says, you will acquire a new skill, and C is certainly a powerful tool in your toolbox, both in its own right and for the insights it will give you into how computers and other languages work.
As for big data, it's changing fast, but as you already have plenty of Java, I doubt if a bit more Java would make any difference to your prospects. A lot of big data work seems to be moving beyond Java e.g. looking at higher-level tools like Hadoop/Pig/Hive/Spark/NoSQL etc or functional programming languages like Scala or F#, while other people are using lower-level tools like C++ for high volume/velocity systems where performance is critical e.g. in scientific computing and some financial systems. If you spend a year working with C, then decide you want to get into big data, you may find that your experience of learning a new language and thinking about low-level performance issues might be more relevant than another year of core Java.
If anything how things work at the OS level will give you an advantage if you do get he chance to work on Big Data.
Big Data is basically done by using platforms that provide grid computing/storage services. And grid computing can be very generically described as multiple computers working in tandem to finish one task. If you have better understanding of how one computer works, you can use that to further your understanding of how multiple computers work. Although Big Data platforms try to abstract the hardware away from you, knowing how they interact with the hardware can be useful once you start thinking about performance.
No career especially in IT is sustainable without you evolving and responding to the changes and no career in IT will be successful if you just rely on one technology. It is a good thing that you are getting an opportunity to work in a programming language that you have never worked with. I would grab such opportunities if they come my way.
SCJP 1.4, SCWCD 1.4 - Hints for you, Certified Scrum Master
Did a rm -R / to find out that I lost my entire Linux installation!
When I was younger I felt like a man trapped inside a woman’s body. Then I was born. My twin is a tiny ad: