Database Administration/Development Career
October 28, 2013 3:07 PM Subscribe
What can I do to become a database administrator or developer if I'm starting basically from zero?
Kind of on a whim I just did a short on-line SQL course (something very basic) and I really enjoyed it. I’ve worked with databases at previous jobs and I liked that too although I’ve never had any formal training. I’m looking to change careers and I’m wondering if I should try to become a database administrator or something similar. I have an unrelated degree (liberal arts) so what would I need to do to get into this field? I’m smart and I learn fast and I have some (very limited) experience managing and updating databases. I would like a job that involves a lot of problem-solving and, ideally, would pay a solid amount of money in the long term (it doesn’t have to pay a lot right away).
1. What do I need to know to make this happen in terms of programming/languages?
2. What’s the best way to learn it?
3. What’s the best way to prove that I’ve learned it? A certification? How would I get that?
4. Are there any jobs I could get where I would learn this stuff on the job? What kinds of job titles should I look for?
I have a lot of debt so I can’t afford to go back to school full-time or pay a lot of money for a degree but I could probably manage a few courses if it were really necessary/worth it. Basically I'm looking for a road map so that I can do this thoroughly (I want to be good at it. I don't want to take a job I'm not qualified to handle) but as quickly and cost-efficiently as possible. What course of action has the highest ratio of reward to investment of time and money?
Kind of on a whim I just did a short on-line SQL course (something very basic) and I really enjoyed it. I’ve worked with databases at previous jobs and I liked that too although I’ve never had any formal training. I’m looking to change careers and I’m wondering if I should try to become a database administrator or something similar. I have an unrelated degree (liberal arts) so what would I need to do to get into this field? I’m smart and I learn fast and I have some (very limited) experience managing and updating databases. I would like a job that involves a lot of problem-solving and, ideally, would pay a solid amount of money in the long term (it doesn’t have to pay a lot right away).
1. What do I need to know to make this happen in terms of programming/languages?
2. What’s the best way to learn it?
3. What’s the best way to prove that I’ve learned it? A certification? How would I get that?
4. Are there any jobs I could get where I would learn this stuff on the job? What kinds of job titles should I look for?
I have a lot of debt so I can’t afford to go back to school full-time or pay a lot of money for a degree but I could probably manage a few courses if it were really necessary/worth it. Basically I'm looking for a road map so that I can do this thoroughly (I want to be good at it. I don't want to take a job I'm not qualified to handle) but as quickly and cost-efficiently as possible. What course of action has the highest ratio of reward to investment of time and money?
1. Programming Languages: More SQL, more SQL and the stock languages for writing stored procedures on at least two of the following: Postgres, mySQL, Oracle, MS-SQL Server. Also useful, Python, Ruby or some other highly productive language for munging data. It is probably also useful to know a framework that makes it easy to create basic CRUD apps (create, retrieve, update, delete) and do basic web based reports.
This is really the least of it though. Being a DBA is as much about understanding good data management practices and policies; the relational model; transactions & ACID compliance, and how they are achieved; how to index and tune the DB... as it is about programming.
2. By learning it, whatever works for you. Sorry, I don't mean to be flip, but a lot depends on your background, your learning style, and the particulars of your situation and the opportunities open to you.
If it helps though, most self-styled database experts, aren't. If you can manage to correctly do joins and subqueries you are probably in the top 50% of people who do reporting. If you get constraints, transactions and understand why normalized data is a good thing, you are probably ahead of 50% of web programmers who use databases.
3. Successful projects. References from people you've worked with on successful projects. Start small, work your way up.
4. Yes, lots. Pretty much anyplace they use databases (which is a lot of places) they will need someone who knows more about them than anyone else in the department/office. The more they rely on a database or a database backed-application, the more true this is, particularly/especially if someone else (ie IT) is responsible for administering the database/application. This is true, even if no one in the department knows it yet.
You shouldn't have to spend much/any money to learn what you need to know to start getting paid, but I don't know what path is going to give you the highest ratio of reward to investment, other than suggesting that you talk to a lot of people who might possibly be doing something you might possibly want to be doing. What do they do day to day, and week to week? What do they like about it? What are the challenges? How did they get to where they are today? Etc. Start by talking to 5 different people for 60-90 minutes, but plan on adjusting as you go until you've talked to 20-30.
posted by Good Brain at 3:49 PM on October 28, 2013 [3 favorites]
This is really the least of it though. Being a DBA is as much about understanding good data management practices and policies; the relational model; transactions & ACID compliance, and how they are achieved; how to index and tune the DB... as it is about programming.
2. By learning it, whatever works for you. Sorry, I don't mean to be flip, but a lot depends on your background, your learning style, and the particulars of your situation and the opportunities open to you.
If it helps though, most self-styled database experts, aren't. If you can manage to correctly do joins and subqueries you are probably in the top 50% of people who do reporting. If you get constraints, transactions and understand why normalized data is a good thing, you are probably ahead of 50% of web programmers who use databases.
3. Successful projects. References from people you've worked with on successful projects. Start small, work your way up.
4. Yes, lots. Pretty much anyplace they use databases (which is a lot of places) they will need someone who knows more about them than anyone else in the department/office. The more they rely on a database or a database backed-application, the more true this is, particularly/especially if someone else (ie IT) is responsible for administering the database/application. This is true, even if no one in the department knows it yet.
You shouldn't have to spend much/any money to learn what you need to know to start getting paid, but I don't know what path is going to give you the highest ratio of reward to investment, other than suggesting that you talk to a lot of people who might possibly be doing something you might possibly want to be doing. What do they do day to day, and week to week? What do they like about it? What are the challenges? How did they get to where they are today? Etc. Start by talking to 5 different people for 60-90 minutes, but plan on adjusting as you go until you've talked to 20-30.
posted by Good Brain at 3:49 PM on October 28, 2013 [3 favorites]
Read up on relational databases. Understand 1st, 2nd, 3rd normal form. Read up on BigTable and other NoSQL stuff. All for free on the internet.
Learn some basic HTML / HTTP and try and build some apps that make your life easy / you would enjoy to build using a LAMP / WAMP / AWS / AppEngine framework. It will really help you put the pieces together and put you on the road to being a good DBA. As well, it may incline you to pursue another specialty ( front end / full stack dev / devops ) You can learn how to do any of this on the internet for free. You really just need to think of an app / utility and try and build it. For you, I would just focus on building some barebones forms and write some code to do CRUD transactions to your database. Expand the types of data your app contains and modify your database / SQL / NoSQL accordingly.
In the meanwhile, try and land an entry level position at any company where technology is an competitive differentiator. I don't care if its as a cleaner. Just get in there. From there, continue learning and network your ass off to find someone who can take you onto the next level. I am sure others may have a different take, but it's my opinion that most specialty tech jobs ( DBA ) require experience, and breaking in usually comes circuitously through networking / self-promotion / luck / academia.
posted by jasondigitized at 8:19 PM on October 28, 2013 [1 favorite]
Learn some basic HTML / HTTP and try and build some apps that make your life easy / you would enjoy to build using a LAMP / WAMP / AWS / AppEngine framework. It will really help you put the pieces together and put you on the road to being a good DBA. As well, it may incline you to pursue another specialty ( front end / full stack dev / devops ) You can learn how to do any of this on the internet for free. You really just need to think of an app / utility and try and build it. For you, I would just focus on building some barebones forms and write some code to do CRUD transactions to your database. Expand the types of data your app contains and modify your database / SQL / NoSQL accordingly.
In the meanwhile, try and land an entry level position at any company where technology is an competitive differentiator. I don't care if its as a cleaner. Just get in there. From there, continue learning and network your ass off to find someone who can take you onto the next level. I am sure others may have a different take, but it's my opinion that most specialty tech jobs ( DBA ) require experience, and breaking in usually comes circuitously through networking / self-promotion / luck / academia.
posted by jasondigitized at 8:19 PM on October 28, 2013 [1 favorite]
This landing page at Microsoft Learning has a good list of steps to access training resources for DB/server roles. Definitely check out the free training and personalized learning paths at Microsoft Virtual Academy.
posted by prinado at 10:49 AM on October 29, 2013
posted by prinado at 10:49 AM on October 29, 2013
Can't speak for other vendors, but Microsoft offers all sorts of technical presentations for free (over 700 on SQL Server right now). You can also install SQL Express on a Windows system for free.
MySQL is also free, though I'm less familiar with the technical resources for that one.
The database administrators Stack Exchange can be helpful.
Start small - with very easy, very basic courses. You're going to be overwhelmed trying to eat the whole pie at once.
posted by cnc at 10:50 AM on October 29, 2013 [1 favorite]
MySQL is also free, though I'm less familiar with the technical resources for that one.
The database administrators Stack Exchange can be helpful.
Start small - with very easy, very basic courses. You're going to be overwhelmed trying to eat the whole pie at once.
posted by cnc at 10:50 AM on October 29, 2013 [1 favorite]
« Older How can I get my preteen son out of his head? | Why is there so much controversy surrounding the... Newer »
This thread is closed to new comments.
2) You can learn through doing or you could take a class that ends with/is designed for a certification test. It depends on how you learn best
3) All of the major players in the DB area have certification- Oracle, Microsoft, IBM. I think they all have classes but am not super familiar with anything but the MS process.
4) Definitely- look for data analyst or data programmer titles, or even just junior database developer positions.
It's probably best to go with option 4 and learn on the job. When you feel more comfortable choosing a path (developer or administrator), then you can start to think about specialization or certification.
posted by thewumpusisdead at 3:26 PM on October 28, 2013 [2 favorites]