I am 26 and I have worked at a software consultancy company for four years. My time is mixed 50% between doing development, and I guess simple sysadmin tasks. Tasks would include things like: setting up Apache, MySQL, changes to DNS zone configuration, babysitting 200 devices with Nagios, updating Debian/BSD systems, running backups and so on. I could do firefighting as a full time job there.

Out of the development work (mostly python) and sysadmin work, I prefer the sysadmin work because the requirements are more easily defined. I think I like stitching together external software and playing with hardware more than developing software. At where I work, new software doesn't have specifications (due to ineptitude) and the rest of the work is endless tweaks to business logic.

So, on the basis of what I've seen, I think I'd like to err towards the sysadmin side and eventually get a full time job at it. I enthusiastically read "Practice of System and Network Administration" and it seems like fun. However, my lovely female manager doesn't want me doing anything but software development.

I feel that before I apply for a full time sysadmin job, becoming more rounded (i.e. learning more of the linux sysadmin space) is a good idea. For example, I was planning to expand my knowledge of mail systems (which is about limited to configuring postfix) and LDAP. I know little about networking (other than CIDR, subnet masks and so on), so I was considering learning the CCNA material and possibly taking the exam.

Is this idea of becoming more rounded generally a good idea? Does anyone have opinions on which topics to learn or how to learn them?

  • 3
    To be a great SysAd work comes down to three things. --solid troubleshooting skills --Checklists/organization --Personal Network (so you can reach out for help when needed) All the rest is about Google and Caffeine. Good luck! Nov 30 '09 at 2:34
  • And a beer when done!
    – user26147
    Nov 30 '09 at 14:41

Getting experience in a variety of systems is a good idea; not because you'll actually end up using them all day-to-day, but rather:

  • They're buzzwords on the resume (if you have the misfortune of going for a job with a company whose job advertisements are a long list of "required" and "desired" technologies, and they actually filter resumes based on that list); and
  • It gets you in the habit of picking up, evaluating, and deploying technologies quickly, which when all is said and done is Required Skill #1 for a sysadmin.

There is nothing specific that I'd recommend learning; far more important is to get a good feel for learning and doing lots of stuff. I don't think you need to spend much time learning before taking the leap into a new job, though; you should be able to fall into a junior sysadmin role at any decently clueful company with your existing experience, which should then put you in a position to do all that extra technology learning you want to do, on company time.


The sysadmin I'd want to hire for my team must know:

  • Boolean logic down pat;
  • TCP/IP/Ethernet stack on the level that would allow him to operate Wireshark as easily as a TV remote;
  • OS of choice: boot sequence (what, when, why), FS layout, standard daemons/services, resource management;
  • Elaborating on standard daemons/services, for each of them that can be found in most environments, understand the protocols they use and be able to configure them.

This is the foundation, which is the same regardless of the details of the position.

It looks like you have much of this already. Catch up on what you don't have yet, especially networking. From there, I'd recommend choosing several technologies that interest you and are valuable on the market and learning them well. Look at job postings, try to understand what's in demand, decide which of those sound like fun to you personally.

In my world, you'd do well if you knew vSphere, storage technologies, Red Hat/CentOS, clusters of various kinds. But that's just my world.

I would recommend against following womble's advice on picking up buzzwords: if buzzwords are necessary for your resume to be selected for a specific position, it's best to skip that kind of employer altogether. (Of course, I wouldn't be saying this if you weren't gainfully employed at the moment.) And don't go for CCNA: much of that stuff is irrelevant for sysadmins (you won't care for WAN technologies or dynamic routing protocols). CCSP track would be a much better choice.


I'd add a third bullet point to womble's list of reasons for variety:

  • It will help you learn the commonalities between systems - even ones as disparate as Unix/Linux and Windows. Once you've got the fundamentals down, you can operate in exception mode. "I need to do A. I know how to do it on System X. I know how to do B on both System X and System Y. What do I need to know about the differences between A and B and those between X and Y?" Real productivity can come from knowing how to trim the decision tree for problem solving.

It also depends on the country you are living/working in. It is always good to know other fields that are related with your field, but if I would live in USA, I would want to specialize in clustered systems. If the industry is big enough, you have that freedom. However, if you are in other countries, you have to be more rounded. For instance, I am building more than 10 servers for a scalable project currently. Some of the servers are for a cloud storage so I am doing that one as well, load balancing systems for web servers, installing, optimizing web db servers, scalable backend servers to processing files etc. Plus, developing software for processing files (which consist of more than 5-10 thousand lines of code etc) So, I can easily say that it is 3-4 man job from different fields, but I have to make them by alone, because if you think business wise, it would not cover the revenue etc. Plus, if you hire more people, it would only save some time (not very much because doing everything by yourself also save some time), and it would not add more value to the business and project. Also there are not so many specialist in these fields in my country as well, because there is no need to them. Most of them rounded :) There is a side effect of that of course, it becomes very hard to be good at everything. That's the main point of specializing. However, you can still say I have specialized in web systems, but I would want to be more specific as I said.

Learning, playing with other systems for a general knowledge is always good, but specializing in more specific fields is better if you ask me. So, I am suggesting that one to you as well. Just my two cents.


I started as a developer and became a systems administrator. I found that - admittedly a while back now, 1999ish - getting a Microsoft Certified Systems Engineer Certificate worked wonders. Prior to the certificate, two weeks of job hunting got nowhere. With the certificate, walked into an agency, and 4 hours later had a job.

Maybe the certifications have changed now, it's possible, but I put a lot of effort into learning the different exams, and learned lots of things which were quite useful at interview and fairly useful to me on the job. Sure, there were a bunch of things that weren't in the exams, like what order to apply service packs, and products, and the exams don't cover all the bug-fixes you have to know about, which take a surprising amount of time to figure out, but I felt that I was familiar with a lot of concepts that people around me took much longer to figure out I felt.

A certificate in something relevant doesn't make you an expert in that field, but it does help differentiate you perhaps from the other candidates who put on their cv 'I know lots about systems administration'.