Discussion in 'Business, Careers & Education' started by Cool The Kid, May 10, 2013.
That is not necessarily true.
Definitely. I know tons of PMs who can't write a lick of code. They might not be the best choice to manage a dev project, but they can manage an implementation or whatever just fine.
DBA is very technical. You're not going to be able to do that without training and experience, starting at the bottom. System administration is not as technical, but still very much requires experience--and also is somewhat of a dead end in most places. Most places view their sysadmins as nothing more than commodities that keep the lights on. It's not a good attitude to have, but it is what it is. Given that more and more places are outsourcing that type of work (or most of their hardware) I would not recommend that line if work.
Sys admin is cool with me. Id be glad to be a commodity for 60, 70, 80K/yr while I either get a masters or pick up my certifications + time to transition into a specialization. They may be offshoring stuff bit by bit but there is still a lot of work here. Hell, where I am moving to even 60K is a lot of money. So I'm OK with that.
What would you recommend over system admin though?
I'm no expert on sysadmin salaries, but I'd guess 60k is high for someone with no experience. And given the trend towards infrastructure as a service, I'd be surprised if just about anyone was hiring as they are all laying off sysadmins, so there are a lot of experienced people out there looking.
You need to figure out what you want to do in IT. Do you want to write code? If so, what kind? Manage databases? Manage systems (sysadmin)? Project management?
Of all of these, project management requires the least technical ability and has the highest likelihood of being able to lateral into. All of the others require at least some basic skills--you have to be able to write production code, or tune a database, or manage hundreds of unix servers and write management code. This also means that once you get this, you're going to be starting at the bottom.
If writing code is what you want, pretty much all engineering uses programming at some point now for modeling. You could try to get involved there (eg matlab, python, etc) as a way to get some experience before moving into something more pure IT.
True, but during layoffs, those with non-technical backgrounds are usually the first to go. Technical expertise provides some some job security, of sorts.
Honestly, I don't think it's very related. Layoffs are a factor of where you are in the organization in my experience. Dumb luck most of the time. If your group is getting the axe, that's it.
Project management itself is a broad category. You could be managing product development or an integration. The first would require at least understanding the SDLC, the second less so--but you could honestly do either without being a programmer.
Most PMs never touch code. That's not what they are for. Sure, it's definitely helpful to know what your guys are doing and what kind of roadblocks they are facing, but at the low levels, it's mostly just issue tracking and status reporting anyways.
Now, some very technical programming disciplines definitely require lots of technical knowledge in PMs--security work, telecoms, etc. And again, if you're managing the creation of code vs the implementation of that code, that does require more programming knowledge for sure.
$60k might be a bit high but not out of line. DBAs will typically take some certifications or additional training. Same with network or storage.
You might be able to do project management or incident management which requires no particular training or skills.
$60K is unrealistic for me to start with where I am and what I bring to the table. Project management might be a better in, and looking at the PMP certification looks pretty basic.
As far as what I want to do in IT, my dream would be to do DBA. But I will need a couple of years to learn that. Maybe even a masters. I don't want to go into software development or anything like that though I know I have to learn how to do basic code. So my focus now is just on getting in the best way possible and actually getting exposure to the different avenues. I am thinking if I can get in, either through desktop support (worst case scenario) or project management (best case scenario), starting between $40K-50K I will be golden. While I'm doing this stuff I will be practicing shit like virtualization and general network stuff in a home lab and getting certifications. I think if I really go at it aggressively I can position myself nicely in the next 2-3 years to figure out my next move.
This is very true. Every successful manage or project manager I've had in IT had some sort of technical background. At the last consulting firm I worked for even the sales team had a technical background, which in turn gave them a better success rate.
Sounds like a plan. Keep in mind that a DBA is a lot more than just writing SQL statements--just about any random developer can do that. It's understanding how databases work so that you can use them efficiently, and helping the developers to write code that does that. Honestly, it's much more of a technical job than a developer in many ways--an developer can still be effective by just knowing how to write code, but a DBA needs to know the computer science theory behind the database as well.
No matter what, learn how to code just because it will force you to learn more about the various parts of what make IT systems tick. Python is a great first language.
The thing to keep in mind is that IT is about so, so much more than writing code. On a typical IT project, there will be requirements gathering, spec writing, coding, testing, and implementation/integration. Only one of these involves writing code and requires a technical background. Coding is typically only 15-25% of a typical IT project.
What languages do you recommend I learn? C#, VB, SQL, Python seem like the obvious ones. To what level do I need to learn them? What would I be using them for in a System Admin role?
It really depends on what you want to do--there are hundreds of languages out there and they are each used for different things.
If you want to write web apps, learn PHP, Python or Ruby. If you want to write scientific code, learn Matlab or Python. If you want to do general purpose back end programming, learn Java, C#, or C++. If you want to do sysadmin, learn bash, Perl, and Python (in addition to all the sysadmin stuff you need to know). Pretty much no matter what, you will need to know SQL, but a working knowledge of SQL can be learned in a couple of days.
Programming in a sysadmin role is generally limited to scripting administration events (deployments, updates, moving files around, etc). It's scripting really, not programming.
Note that the lower level the language, the more computer science knowledge you will need--e.g. you need to know about memory management, pointers, and garbage collection to write effective C++ code, whereas in a scripting language like Python, Ruby, or Perl, this is handled for you.
You keep jumping back and forth between DBA, sysadmin, and development, all of which are different things. Why don't you start tinkering around to figure out what you want? You could, say, write a small webapp in PHP, Python, or Ruby. This would teach you some programming (from writing the code), some rudimentary DBA work (from writing queries in your code and deploying and managing the database), and a bit of sysadmin (provisioning, deploying, and maintaining the server hosting your code). It wont be enough to get you a job, but at least it will give you some idea of what goes into a small IT project and you'll know more about what you like.
Hence the need for DBAs.
It sounds like you want to be a DBA, so I would shoot for that. At the risk of being obvious (and naive, I know little about DBA), I would at the minimum look into the formal education required to become a DBA: look into the institutions that offer it, the tuition costs, whether you can do it part time, and weigh it against the starting salaries. It may be an option for you, it may not, but at least look into it.
The first thing I would recommend is reading the book Code: The Hidden Language of Computer Hardware and Software by Charles Petzold.
If you're doing system admin: before programming languages, learn the command line. Learn UNIX. In terms of languages, start with Python, I say. The MIT OCW Intro to CS for non-majors class was really useful for me, challenging and a lot of fun. VB and C# are only (or mostly) relevant for Microsoft; if that applies, choose C# over VB. But that should be a while from now.
And I found this pretty helpful... you could just skip to the section about system admin:
This guy actually knows what he's talking about, unlike me.
This is exactly my point... Just learning SQL isn't going to qualify you as a DBA. It's a very technical, very rigorous profession, and honestly, a lot of what a good DBA does is seen as a black art by a lot of developers.
Separate names with a comma.