I have got job in one of the fortune 500 company. Being a fresher, they have landed me in Teradata datawarehousing team but I am interested in Java (i am also a oracle certified professional java programmer) programming. Now I am getting confuse should I continue my career in Teradata datawarehousing or not?
I am passionate in making codes(in c,c++, java) and have been actively participating in online coding contests too.
Help me in detail ASAP
A "data warehouse" is simply a database which is used for analysis and reporting. Java EE are programming API, which are used to build data warehouse software in some situations. Whether one or the other will be a good technical fit depends mostly on the individual. It is certainly possible to leverage database design skills when building software applications.
I've been working on some JEE/DWH projects recently, and on those projects JEE is largely irrelevant to the core business processes: the heavy lifting is all done by the database, which is often the most powerful (and expensive!) piece of software in the orgainsation, while Java is simply providing a user interface.
The nature of many serious, heavy-duty database applications means that you can't put too much logic in the Java tiers, because you can't afford to keep passing huge volumes of data across the O/R divide, and in any case databases are designed for doing big stuff with data. Many such operations may be effectively batch processes, while others are based on analysing large volumes of data. Java (or C# etc) is not really relevant or useful for many of those jobs.
More generally, understanding data properly will deepen your understanding of what systems are doing. Many systems will be storing and re-using data in different ways for decades, while individual business applications and user interface technologies may come and go. That's why they call it "persistence" - because data persists. So understanding data will make you a better developer for the long term.
Of course there are lots of jobs for JEE developers, and lots of JEE developers around. But if you were also to acquire a deeper understanding of serious DWH applications, you'd have something far less common, and possibly far more useful, to offer potential employers.
For example, Oracle guru Tom Kyte has some fairly forthright views about the lack of serious DB understanding in many developers:
Perhaps the biggest issue is the black box approach of development. A developer will learn everything they can about the procedural language they're using. However, they don't learn about the database that they're using or other packages that might be involved. My premise is they’re not building an application so much as something that manipulates data and the data is going to outlive the application. The data might already exist; it might even pre-date the application. The data is important, so foregoing knowledge of what I view as the key, crucial, critical component of the application – the database storing the data, is short-sighted and the number one cause of performance issues. The typical mindset is we’ll just get a framework and say ‘oh the framework will hide all that nasty SQL, I don't have to know anything about it, I'll just push the transactional button and everything will be good.’
As a database developer, I've made a fair amount of money over the years by fixing problems created by people who did not understand what they were doing (wrong) with their JEE database applications!
In many situations, Java programs execute business and data processing logic which subsequently store data in databases and data warehouses. These programs can execute in batch mode on a schedule or can be run manually based on user needs. The ability to write data processing code is a strength and can be amplified by strong XML programming skills. If an individual can add the ability to write database stored procedures to these programming skills they get an A+.
Thanks for your suggestions
Now what I have planned is, I will keep doing coding in Java and C++ but now I will focus mainly on Darawarehouse as it is new to me(and job ). It will add something new in my Mind Database.
Any feedback on my decision is warmly welcomed.