I’ve been a bit weary about approaching learning databases. I’ve dabbled into them before, and “DATA” in itself appeals to me a lot. Maintaining/searching/moving, everything about it in the abstract sense I love. (This isn’t a career question, this is a learning question.)
But as RDBMS’s begin to be easier to maintain, and with tools that “anyone” can use to manage data I feared for the database admin jobs. (Yet I see jobs for SQL everywhere!). I know “No-SQL” was a big deal but it kinda has its niche.
But that leaves me here… unsure of really “what” to study. What tools should I have in my tool belt?
I’m sure RDBMS’s will be around in both use and maintaining legacy code. But what else? Obviously data will always be around, but is this a secure field or a dying one? And what should I be concentrating on?
4
People always worry about “is my favorite technology dead,” but don’t consider the advantages of learning it anyway.
Learning SQL will serve you well; it will teach you set theory, which will help you tremendously in your programming career even if SQL databases disappear tomorrow, which they won’t.
NoSql is not a replacement; it is an alternative. See also:
http://www.it-career-coach.net/2009/07/11/what-is-the-demand-for-sql-skills/
I’ve focussed myself on MS SQL Server a few years ago (read: 2006). You’ve already pointed out the tooling is a lot easier these days, so it’s rather easy to learn to maintain a (small) database.
When you are serious about creating databases, there’s still a ton of stuff to learn. You can look into replication, mirroring, fall-back scenario’s, point-in-place restores, sharding, performance, indices, BI, Analysis, Big Data, etc.
I’ve also done a SQL Server training of 5 days, which helped me understand the enterprisy features of the product. That’s because most of us haven’t got multiple servers in place with the requirement of mirroring, performance, etc. In such a training you can exercise these things and maybe specialize in it.
For MS SQL Server, you can try out the certification path. The trainings are quite good and you’ll cover a lot of the product.
I assume Oracle also has some training set up for their product.
When you’re familiar with one of these commercial products, you can always decide to look into one of the smaller products (PostgreSQL, MySQL, SQLLite or any other). They probably work about the same, just with less features.
In our country there’s also something called a ‘SQL Saturday’. Which means you’ll meet up with other SQL people (on a saturday) and have sessions about the product. It’s quite fun and you can also learn a lot.
Honestly, I hear all the buzz about object-oriented databases, how well-known Web 2.0 and 3.0 sites are using NoSQL, Raven, Mongo, (insert non-SQL DMBS of the day here), etc for data persistence. All that goes in one ear, and in the other, the boss of my day job is asking for a new table, column, index, stored proc, view, SSRS report, etc etc. to go behind the brand-new never-existed-before C# web or Windows app we’re developing.
SQL’s not going anywhere. I just got a headhunter e-mail not half an hour ago asking for 2 full-time SSRS developers; the company wants two people whose only job will be to design queries and report forms against a SQL database, and apparently they’ll pay pretty handsomely. I know my own company will not hire a developer without at least a basic knowledge of SQL DDL/DML, because if you don’t know SQL, you don’t know how to make your application save its users’ work, and frankly the rest of us don’t have time to implement your DAL in addition to our own.
As such, there remains great practical value in learning it, and you should not be hesitant to do so.