My concerns. It generally does not seem to pay nearly as much as developer positions without prior experience. It also seems there are a lot of people who do not advance to decent paying jobs. Whats a good route to take and is it worth it?
My concerns. It generally does not seem to pay nearly as much as developer positions without prior experience. It also seems there are a lot of people who do not advance to decent paying jobs. Whats a good route to take and is it worth it?
One way to gain the requisite experience while still pulling in a decent wage is to get a developer position with a small development shop or small firm. When I was in college, I got a programming internship with a small development shop and witihn the first couple of weeks I was building and running cable, doing server management, and ensuring the backups kicked off and ran. I also became first level hardware/workstation support. Now I previously had some experience working on PCs, but nothing at the level of a company that requires. I know others who were professional programmers who went a similar path.
But one caution: if you really like development, this may not be a switch you want to make. You may find yourself longing for days when you can sit down and code heads down. As a system administrator, those days will be rare and subject to interruption with the latest real world problem.
My career path went from the operations side into the business side. It looked like this:
IT Support --> Network Admin --> System Admin --> Developer --> ETL/Data Warehouse
You will have to content with crappy hours and carrying a pager with the first three positions. I really love this stuff, but I don't live being woken up at 3 AM for some idiot manager wanting help because they have deleted some system files in a server (true story!).
I've spent my career in the US SouthWest region, away from the coasts. Things may be different in other regions. Here are some of the things in the operations side of computing:
This type of work is fulfilling, if you like working with your hands, and hate sitting at one place all the time. Otherwise, you will hate it with a passion. I'm one of those people that need 8 hours of uninterrupted sleep, so getting out was a good move for me. :)
I started out my professional career as a programmer. My degree is in Computer Information Systems, and I was all set to be an application programmer. In my first job out of college, I was doing the standard junior level development - QA, testing, scripting, converting projects between languages, programming web sites, etc. Then it turned out the guy the company hired to be the sysadmin fit the programming/development needs better than I did (they really needed a higher level person), and I was well suited to system administration. After all, I'd been doing that for years as a hobby anyway, and I preferred it to code.
Over the years, I've been primarily a system administrator ever since, though in the last year, I've seen my job role change back to programming. Lots of QA and acceptance testing with automation tools, because of configuration management. Every book I've read on system adminstration harps on automation. You have to automate any task you do more than once, they say. It's true. Automation of course requires ... programming.
So, I think you might find yourself coming full circle.
The system administration field really is leaning toward programming as a required discipline with the increasing number of API and frameworks used to configure and manage servers, instances, and tools.
For example, Puppet really broke the sysadmin space by bringing an excellent automation tool to mainstream usage. Sure, cfengine has been around for awhile, but even in 10 years of system administration, I never touched it. Instead, like many other system administrators, I cobbled together my own tools from various glue scripts and components. A new tool, Chef, is an even bigger breakthrough because it offers not only a declarative configuration language, but a RESTful API with which to program nodes and resources.
These practices bring performance and scalability to the forefront of the system administrators task list. Instead of spending hours (or weeks, or more) figuring out how to glue your monitoring tool with your system management webui, you can focus on analyzing the data the monitoring tool presents, so you can improve performance and business metrics.
Plus I find it a lot more fun than installing and configuring Nagios ;).
Your best bet is to get some kind of technical support role, ideally with a computer shop that looks after small businesses. Working in a single role won't give you very much exposure to the kind of real-world challenges that the high-paid system administrators face.
You need to pick a career that you enjoy, if you're not going to enjoy 5+ years of underpaid sysadmin work being on call 24/7 then you'll never get to the cushy end where you'll only do a few all nighters a month, and have a lot of spare time the rest.
You might be able to do both at the same time, that is work mainly as a developer and start doing administration of the development environment as well as SCM. You will start to gain knowledge about installing and configuriong software tools and machines related to your environment. Build up experience that way and then move slowly but steady into more mature sys admin work.
I have travelled the developer to sys admin road like this.