Advice to an Aspiring Sysadmin
I get a *lot* of e-mails and YouTube messages asking me how to become a system administrator. Usually I just point people at the blog or YouTube channel, but yesterday I decided to write up something a bit more complete. Here’s a slightly modified version for easy reading.
Asking Questions, doing Research, and getting Help
This is worth its virtual weight in gold: http://www.catb.org/esr/faqs/smart-questions.html
Subreddits are great. Check out /r/linux, /r/sysadmin, /r/networking, /r/programming, and others. Long story short, find communities that are doing things you’re interested in.
No one will sign up to mentor you, but if you show interest and effort, work on practical projects, and ask well-prepared questions, people will generally treat you well and help you out.
It depends on where you are on your skill tree, and what you’re interested in. If you’re still working on basic sysadmin skills, I can recommend a few:
I’d also add:
Beginner Sysadmins (less than 1 year of *work* experience)
- CompTIA Network+
- Michael Lucas’ Networking for Sysadmins
- The practice of Cloud system administration
- Automation tools — chef, puppet, ansible — pick one
- Python, Go, Ruby, know some of the tooling around PHP, Java, C
- Know how web applications work (try writing a few small ones)
Experienced (‘senior’) Sysadmins
At this point, you’ll know what you enjoy doing, and what direction you’d like to go in. System Architecture? Performance engineering? Infrastructure Automation? Cloud infra? Security? Compliance? You’ve got lots of choices, and there’s no way to intelligently make these choices without experience.
I’ll be revamping my System Administration Resources page to include some of this new stuff…soon!
Signs this may be the wrong Career
The person who wrote to me yesterday also asked a few interesting questions, namely:
- How can I work as a freelance Linux/Unix system administrator?
- How can I start my own business as a sysadmin?
This was someone with little or no professional experience.
Being self-employed as a Unix or Linux sysadmin is very unusual for the industry, at least in my experience. Remote work is just starting to make a real appearance, so that’s something to aim for, but you would almost always be an employee.
I’d definitely recommend getting some experience and working your way up for a while. After something like 5 years of experience in the industry, you’ll have a fair amount of contacts and experience, which is a big help when trying to freelance. Freelancing is something that most people don’t really do until they are a senior engineer. Even then, it’s often in a niche field:
- PCI compliance
- AWS infrastructure overhaul for cost savings
- Performance engineering
Starting your own Business
Having worked as both as sysadmin and a software developer, I can say it’s *much* easier to start a business as a developer. I love what I do now (I’m on the sysadmin/infrastructure side again), but it was much easier to start side projects and businesses when I was a dev.
As an admin, you can start (at best) a *service* company. As a software developer, you can build actual *products.* This is where you want to be, if you’re trying to start a business.
That’s not to say that having sysadmin skills is worthless when building products. Having infrastructure skills is like a superpower when you’re writing code. You’ll be able to design a product intelligently; thinking of how it will be operated (the admin side) as well as which features it will have (the dev side) and what market it will provide value to (the business side).
For what it’s worth, sysadmin and infrastructure skills also happen to be weak spots for many software developers today.
Don’t Put The Cart Before The Horse
Many people I talk to are constantly putting the cart before the horse: they’re trying to predict details 5 or 10 years ahead even before they have a plan for the next 12 months. This will generally result in a lot of pain.
If you really enjoy system administration (running your own servers and services) and programming (writing scripts, building software, automating things), you can do very well for yourself in this career.
You need strong fundamentals to do well in a tech career. Let me put this in job-advertisement terms:
- Excellent written communication skills.
- Excellent research skills (asking intelligent questions cannot be done without research).
- A solid understanding of your chosen platform (Linux, in our case).
- A passion for automation, simplification, and good engineering practices.
- A burning curiosity about this stuff. Otherwise the thousands of hours of staying up late and learning new things will be a horrific struggle. Seriously, if you don’t do this for fun already, you may want to seek another career.
- A drive to build things, fix things, or automate things.