Call for Comments: Help Advise an Aspiring SysAdmin
One of the things I love about blogging, and about the Internet in general, is that it makes the world much smaller. I've met so many people via my blog, it makes all the work pay off.
A good example of a blog introducing two people just happened the other day. Andrew is an aspiring sysadmin who is moving soon, and wanted to ask me some questions regarding how to "break in" to a career in systems/network administration. In my response, I asked if he would mind if I quote our conversation and post it up on my blog, so that he could ask many of us the same questions at once. He agreed emphatically. So, click through, read Andrew's questions, and comment away -- what else are you doing on a Friday???
Andrew first sent me this email:
I've only newly discovered www.planetsysadmin.com and came across your blog. I just read your About section and I loved it, as well as the other posts I've read from SAJ. I thought you'd be a good person to talk to about this.
The purpose of this email is to ask for a bit of advice from someone having traveled down the same road I hope to. I first discovered Linux about late 2005 and played around with it, but never got around to seriously using it until about mid 2006. I've been a Debian (and Ubuntu) Linux user ever since (as well as casually seeing what's new with OpenSolaris). Around the same time, I discovered a love for networking, despite not knowing much about it. Long story short, I've been wanting to start a career as a Linux/UNIX Network Administrator since then. I've come a long way since then, but I've still got a long way to go I'm sure.
My girlfriend and I are moving out of Michigan to either Gainesville Florida, or Santa Rosa California. No matter where we move, I'm looking to break into the IT sector and actually starting my career. Thanks to an unfortunate niche I fall into with the US's student Financial Aid system, I can't really start attending college until next fall '10, so I've no college under my belt, and the bulk of my tech knowledge is self-taught. I'll be taking my Network+ before we move, so that's the only real credential I'll have to put on my resume.
My real question is, what advice would you give someone looking to get into this type of position? I've done my homework, and I've read a few books on both the technical and non-technical side of the job. I feel I know enough about what a SysAdmin actually does, and I haven't been scared off by any of it. In fact, it sounds absolutely awesome. I figured I could get more by asking someone who does this for a living as opposed to some books and a ton of web-sites. I can't seem to get my fill of learning and hearing about the job, so if you have anything to share, I encourage you to ramble.
I responded with this:
...
Unfortunately, like many careers, "breaking in" to the market is often the hardest step. I might suggest trying to get a helpdesk/support job to start out with. Often times, finding a local ISP is a good place to start - that's where I started. Since they are usually small, you can often get promoted quickly if you show potential. Most often, they are *nix shops, and have a heavy focus on TCP/IP network troubleshooting. Unfortunately, the smaller mom and pop ISP's are a dying breed since the cable and phone companies tend to buy them out. Usually, if you can find them, they are operating wireless ISP's now. If you can't find a suitable job there, look for anything as a junior sysadmin.
In my opinion, the most important skill a sysadmin has is his ability to solve problems. Memorization can only get you so far - there's too much information out there to memorize it all. Having the ability to troubleshoot a problem and quickly isolate it down to a specific subsystem is of the utmost importance.
In my experience, something that often sets apart *nix sysadmins from Windows sysadmins is their ability to build scripts to automate their jobs. If you haven't already, pick up a book on shell scripting, and start learning how to write shell scripts if you haven't already.
To me, the most important personality traits are: 1) An insatiable thirst for knowledge, and 2) Patience. It sounds like you already have the first covered. Patience is required because computers are stubborn, and if you don't want to burn out, you have to keep your cool.
...
Andrew then wrote back:
...
I really liked the tip about looking for smaller ISPs. When I was working for PC Club computers (not sure if you heard of them or not), the tech I replaced took a job for Sonic.net, a local ISP for the northern California area. Checking the Bay Area's Craigslist, I see two job postings from Sonic looking for what seem to be basic Network tech skills (I should be a shoe-in if I pass my Network+). The Bay Area is also the only place out of Metro Detroit and Central Florida that have job offers looking for OSX server skills. A few are asking for ACSA certs. In either area, Helpdesk jobs are relatively easy to find and hopefully even easier to hire into. Actually now that I think about it, I remember all this buzz on CL about a MySQL developer job paying $11/hr in the Greater Detroit area.
As far as skills go, purely for learning, I've been trying to setup an overkill home network to hone my skills using services like Apache, BIND, Postfix, MySQL, monitoring, etc. However, right now, my network consists of one machine; mine. A VirtualBox VM is my server, handling LDAP, DHCP, and DNS services. I'm trying to figure out ways to incorporate other popular services like MySQL, Postfix, and Apache, as well as monitoring. I know that shell scripting is a desired skill by many, but is there really a difference between knowing BASH scripts vs Python or Perl? I've never had much of an aptitude for programming. I tried reading a beginner's type guide to C++, but I got lost after the introductory paragraph. I've always had an interest in Python and Java, but not for any particular reason.
For a few years now, I've been checking out job listings and seeing what a lot of these employers are looking for. It seems that a lot of them want very specialized people, while some are looking for generalists. Generally, what I've seen is that you pretty much can't go wrong with Microsoft, Cisco, and VMWare knowledge, as well as Blackberry Enterprise server experience. Not to mention Linux knowledge. I was studying for the CCNA exam, but too much material and not enough time before we move to really take it all in. The Network+ is much more general and easier.
One of the ways I've been trying to hone my skills aside from making my own network to test things out on is writing. I've always been fairly good at writing reports and such for school, so this comes pretty easily to me. Over the last few years, I've found lots of great sources for Linux info, from what Linux is to how to more advanced topics. I have a blog on Wordpress that needs more attention from me, but I've basically gone back to square one and started writing how-to articles teaching people in my shoes (future SysAdmins looking for easy to read learning material) things like what UNIX is, Open Source licensing, what Linux is, and I'm currently going through a series of articles teaching people how to use the shell. After going through shell basics, I'm working on a series of networking tutorials that sit around the Network+ level. I've actually had my blog linked to on sites like lxer.com and LinuxToday.com. It's not near where you guys on PlanetSysAdmin are at, but I hope to make it that grade of material some day. The site is thatLinuxguy.wordpress.com
...
There you have it! What was the wisest career choice you made? Conversely, what would you have done differently? Share your experiences by taking the time to write up a comment!

Comments
Regarding scripting and certications
Andrew,
Regarding your question about bash vs perl, python, etc -- first of all, C++ is fine, but C++ is a bit rich for what you would need as a sysadmin. It's also a lot steeper learning curve. Metaphorically, you're jumping into the deep end when you should be starting out a little more shallow ;-)
For me, shell scripting is the easiest, quickest to learn, and most often used form of scripting. I use perl for more complex tasks, but if I had it to do over again, I would probably learn python instead of perl.
The bottom line: you will eventually need a scripting language to automate the tasks you do often. Before you can write a script to do it for you, you need to know all the steps and possible pitfalls of the process. So, don't sweat it. Know that eventually you will need to probably write scripts, but it's not a necessity right away.
Regarding certifications - everyone has their opinion on them. They never do harm, but many (including myself) question their validity. I have my A+ from 1998, but I can honestly say it never really helped me. My SCSA, however, helped me tremendously both in my knowledge and in my employers perception of my knowledge.
I wish I would have done what he's doing
When I started out as a sysadmin, the thought of being social, and joining the community of systems administrators never really occurred to me. I didn't know about LOPSA, SAGE, USENIX, or anything else, and what's worse, I might not even have cared that I did.
I started out very amateurish, really. I knew Linux from my personal computer, my work ran Linux, I fixed Apache for them one day, and I'm an assistant admin the next. It was me and two other non-trained admins who just sort of groped our way through admining in the darkness. I wish I would have searched for information on becoming a better admin back then, so I could be farther ahead than I am now.
Andrew, you're doing it right. I wish more admins concentrated on learning and being better.
When I started learning *nix
When I started learning *nix about 12 years ago, I would install a machine. I think I was mostly using redhat and suse then. Once installed, I logged in and hit tab a bunch of times, and then I read the man page for everything that listed, and tried out everything. And then I moved onto writing scripts that chained this stuff together. These days, I'm a huge fan of python, but shell is something that I always fall back on.
Career-wise, I started on windows and remained there for some time. I eventually took a really low-paid job at a broke start-up web hosting company and worked there for 18 months til I burned out. The pay was crap, the hours were insane, but the experience was utterly invaluable.
Welcome to the club Andrew. I
Welcome to the club Andrew.
I would agree a mom and pops isp would be a great place. If you cant find that helpdesk or repair technician seems to be a common starting place. Thats where I had to start. As long as you are passionate about what you do and continue working on it at home you will slowly be able to show your skills to your employer and start making advancements.
Another option is to find one or more small business that needs support. Doing this evenings and weekends will expose you to a much wider range of problems to deal with and give you opportunities to work with new systems.
For example you could work with Asterisk to provide small businesses with a full featured pbx at a fraction of the cost. Build a file server with samba using linux md raid or zfs. If it makes sense move their website to a dedicated server and help them run web and email in-house. Not only would you be exposed to many different situations and issue you would be helping small businesses grow and making some extra cash on the side.
Post new comment