1
vote

I've been just graduated and now having a hard choice: continue to be a (average) software developer or switch to system administrator. I have some background coding experiences, but it's not enough for me to become a good developer.

A little more about me: I think I'm good in find problems and fix them. I learn fast, but just main ideas, I usually forget details. I'm also excited with optimization.

Is there anybody here had switched from software developer to system administrator? Are you satisfied? What are your advises for me?

Thank you so much.

2
  • 4
    Which one do you enjoy more? Jun 23, 2010 at 14:34
  • @Stephen: it's really hard to say. In my country, most of developers end up their jobs before they're 30 years old, cause of pressure and low-salary. I'm 23 years old now, and that troubles me much :)
    – Deltax76
    Jun 23, 2010 at 14:43

4 Answers 4

6
votes

What do you like doing better: Writing code or managing systems?

These jobs aren't completely orthogonal. A good Sysadmin will spend time writing tools to help automate their job. A good developer will understand how a system runs and write code to suit.

Personally, I find that writing /good/ code takes a level of focus and concentration that I can't easily disconnect from. I was rarely fully happy with the code I wrote, and would constantly try to improve it. This ate in to my personal life in a negative way.

I find being a sysadmin less obsessive. (something is always broken, and that's OK) But being a sysadmin can also eat in to your personal life through lovely things like oncall duty.

Fundamentally, you need to do what makes you happy. Good luck finding that.

5
votes

I had these as comments, but thinking about it, they're more like my answers, I think.

If you just graduated, you're going to be an average (or below average, probably) developer. You'll also be a below average sysadmin. Becoming average and better comes with experience and screwups.

Just because someone else here made the switch and likes it (or hates it) doesn't mean it's a fit for you. It entirely depends on how much you will enjoy the pitfalls. And the field isn't just about solving problems or tech...it's very political. I can't count how many solutions would fix the problem perfectly if not for users balking because it isn't what they like or prefer, so we have to work to what users want (how dare they!)

Changing now also doesn't preclude you doing both. You can continue to code on the side, or switch careers later (these days it's not exactly uncommon).

Sit down and weigh the pros and cons as they apply to you and the business you're applying to or getting the offer from; it's also VERY possible to be an admin at Acme Widgets and love it and love the people you work for and work with, while working as an admin at Willy Widget Works is pure hell.

Comes down to doing what you can get up in the morning and not hate having to spend 10+ hours a day doing...

4
votes

I made that choice myself just after college, and after doing this gig for quite some time I have a better feeling for why that's a good fit for me. When I spend days pounding on some complex script for a large upgrade, the closest I get to true programming these days, the hours fly and I come home aggravated because the problem isn't done yet or is vexing me somehow. I find the prolonged stress hard to take.

Contrast this with SysAdmin work, where the stress is more, shall we say, peaky in that the stress lasts for a few hours and goes away once the problem is resolved. We do have some cases of continual stress (upgrades that take a week, enduring failing hardware in your backup environment causing backups/DR to be unreliable), but generally they are exceptions rather than the rule. Its easier to keep an even keel for me.

As Joel K put it:

These jobs aren't completely orthogonal. A good Sysadmin will spend time writing tools to help automate their job. A good developer will understand how a system runs and write code to suit.

I find that knowing how a system runs is actually highly beneficial to me as a SysAdmin. It's just that the systems I need to know how to run are commercial off-the-shelf software for the most part. I routinely blame my Computer Science degree for that, since I have a good understanding of how software works it makes it easier for me to figure out where it breaks. This is also what makes me a good QA/Beta-tester, by the way.

In my opinion a programming background gives you a pretty sound foundation for the software troubleshooting aspect of SysAdmin work. The parts you'll have to work on are hardware troubleshooting, operating system troubleshooting (unless your dev work involves OS or drivers, at which point you're golden), and just plain best-practices. Best-practices are for the most part on-the-job-training, though you can get some of that through certifications.

1
  • "Best-practices are for the most part on-the-job-training" - - this is very true, as long as you're working at a place that is already well-run. You can learn a lot of bad practices from people who don't know any better. Limoncelli's "The Practice of System and Network Administration" is an amazing resource for anyone who's doing sysadmin work.
    – mfinni
    Jun 23, 2010 at 17:01
1
vote

Everyone has to make their own evaluation of what they want to do. My degree is in Computer Science (Software Development), but most of my career has focused upon System Administration (although, I do now manage employees in both disciplines). For me, the decision came down to personality, and people. When I looked at the coders I knew, they spent the bulk of their time in their cubical, with headphones on, with multiple cans of the soda of choice, for hours upon hours. While the Admin guys, spent more time interacting with users, and solving problems; although SysAdmin can be VERY STRESSFUL, when something breaks it needs to be fixed NOW, and it doesn't matter if the issue is on something you control or not. For me, the admin side seemed more rewarding. Note that as you advance in either field, you'll become more of a manager, meaning more time in meetings, more time on the phone, more time developing personnel, and less coding/SysAdmin.

Not the answer you're looking for? Browse other questions tagged .