Saturday, July 11, 2015

Starting Your Linux Career: 10 Steps

I cannot lie: learning Linux took a lot of time.  I spent approximately 3 years as a daily linux user before landing my first full-time Linux-based position.  However, my time was not as well spent as it could have been.  Knowing then what I know now (and what I’m attempting to share with you), I could have been in a Linux position within 6 months.
Like many, my first experiences with Linux were of my own curiosity.  I was a Microsoft Windows Vista user at the time, and overall, very happy with the experience.  I had previously tried Ubuntu with marginal success; drivers in those days were much less readily available for hardware as they are today.  One of my work friends turned me onto Ultimate Edition, an Ubuntu based distro, which was essentially a DVD jam packed with some of the better software and all of the non-free drivers my system needed out of the box.  I was dazzled by the desktop effects that I was able to use, and I quickly found the platform suitable for web development.

Step 1: Use Linux Every Day

Install Linux on your primary computing device, be it laptop or desktop.  Dual booting with the current operating system is fine, but you should be booting into Linux 90% of the time or more.  I’m sure there will be things that you cannot do on Linux.  If you play PC games, that will be the biggest barrier to your entry.  However, this article is not about gaming on Linux, it’s about getting a job.  Use some of that time you set aside for gaming for using Linux.  I suggest you start with Debian as your distribution.

Step 2: Do Practical Things on Linux

In addition to using Linux for every day computer tasks (web, email, etc), you should also be doing things that are practical from a job standpoint.  These are installing packages from the command line, learning iptables, editing system configurations from the command line, just to name a few.  I often assign friends “homework” when they ask me about Linux.  I suggest getting a WordPress site up and running on your machine using only the command line.  Wordpress is free blogging software used by this site and millions of others.  You will be learning many valuable skills deploying WordPress on Linux:  Apache Web Server, MySQL, and PHP.  You’ll also learn basic file permissions.

Step 3: Do Fun Things on Linux

You’re more likely to continue using Linux if you enjoy it.  Try following a few tutorials for GIMP or InkScape if you like making images.  There are also some free music composing and video editing software packages available for you to try as well.  Some of the simple games available in the package repositories are fun as well.

Step 4: Scripting, Cron Jobs, iptables

These may seem like daunting tasks to you.  They are not the easiest things to learn, but they are necessary.  You do not have to be the world’s best script writer to land a job, but you should at least be able to read and understand them, and to deploy simple automation scripts.

Step 5: Install CentOS or Fedora

Now that you’ve been using Debian for a while, switch over to CentOS (6 or 7) or Fedora (for more advanced users).  These are both excellent distributions, and are very close to Red Hat Linux, which as you may know, is the most widely used Linux distribution for business; in fact, both of these are now Red Hat projects.  If you have the money laying around, you could even purchase Red Hat Linux for your desktop, though this is probably not necessary.  Now, repeat steps 1 to 4.  Knowing two of the biggest distros, their similarities and differences, will help you better understand Linux.

Step 6: What to Learn Next

If you’ve completed steps 1-5, you are probably already employable in a major metro area (in the US, at least).  You should at this time be looking at job boards online (,, careerbuilder, monster, craigslist), and seeking out entry level positions in your location.  Look at some of the skills and knowledge they require.  Some common themes around my area:  KVM, Puppet, Chef, AWS (amazon web services), MySQL, Python, PHP, NoSQL, Hadoop.  Those are all associated primarily with Linux positions.  Knowing some of those technologies will improve your chances of success.  I really like Puppet, it’s easy to learn and deploy, though mastering Puppet is a specialty all it’s own.

Step 7: Perfecting Your Resume and Getting an Interview

Let’s get this out of the way:  No matter what a job listing says, a college degree is never required.  If you have a degree, or are working towards one, great!
Let’s look at the following job requirements I found online for a “System Administrator”:
Primary customer contact for incoming technical services issues / Responds to telephone, email, and fax requests for technical support / Monitor and follow up with customers on open issues / Escalate customer issues and request assistance as appropriate / Serve as primary contact for after-hours support coverage on a rotating basis / Ability to travel to customer sites installations, upgrades, product demonstrations and training as required / Ensure that customer interactions are professional and demonstrate the highest possible level of service
Let’s talk about a few things in this posting.  Notice that MOST of the job description revolves around skills that are not directly computer related.  These are using the phone and email, and interacting with customers.  If you have held previous positions in an unrelated field, I’m quite certain you have some of these skills.  Put those on your resume!  They are highly relevant to employers of all types.
Now, let’s look at the “qualifications” section of that same posting:
Previous Red Hat Enterprise Linux (RHEL) required / Unix shell scripting / Knowledge and experience with SQL query language, Oracle RMAN, import/export, and flashback recovery / Logical Volume Manager (LVM).
Certifications – Preferred not required.
• Red Hat Certified System Administrator (RHCSA)
• Red Hat Certified Engineer (RHCE)
• HP-UX Certified System Administrator (HPCSA)
• Dell Online Self Dispatch (DOSD)
• Comptia A+, Network+, Security +, Linux +
If you followed my advice up to this point, you have the first 3 requirements met.  You probably also have a general understanding of computer hardware (if you don’t, checkout an A+ study guide from you local library and give it a good read.  Very informative).  Notice, there is no college requested, and certifications are preferred (we’ll touch on this later), not required.

Step 8:  Getting an Interview, part two

Okay, we’ve look at a job posting I found on, and we’ve talked a little about it.  This posting looks like it was posted by the company actually doing the hiring.  In the computer field, more often than not, you will be contacted by recruiters from staffing companies, aka ‘head hunters.’  These guys are great.  They may be complete scams in other fields which lead to no job and a big waste of your time, but if you have Linux skills, you’re going to get phone calls and emails.
I’m going to share a secret with you: most jobs are not posted online.  That’s right, many jobs are not posted to the public.  Just like taking out an ad in a newspaper costs money, so does posting a job online.  What’s more, it requires a lot of time and skill to sort through the endless resume submissions and job applications that employers receive after posting a position online.  Unfortunately, the economy is not what it once was, and there are countless people submitting resumes and emails to positions that they are in no way qualified for.
I’m going to share another secret with you: putting your resume online is how you will be found.  You need to upload your resume and cover letter to careerbuilder and dice.  These resumes better say something about Linux on them.  I don’t care if you need to create a section called “Personal Experience” and document what you know there, you need to have something about your Linux skills on that resume.
Recruiting companies subscribe to these job sites and receive resumes.  They put these resumes into their database and match them to open positions with their clients.  They are not going to waste their time and contact you if you are not a good fit in their eyes.  Their salaries and reputation ride on finding good candidates for positions, and successfully getting them hired.  These recruiters will often have jobs that are not posted to online sites for the aforementioned reasons.

Step 9:  Getting an Interview, part three

In this part, I’m going to touch on a couple topics dealing with IT recruiters.  4 of my last 5 positions has been the result of placement by recruiting/staffing companies.  Here are some tips when dealing with recruiters.
Tip 1:  Don’t be fooled.  Some recruiters don’t have an actual position for you.  These operate more like temp agencies in other fields.  Some tell-tale signs: “We want you to come in and take a personality/aptitude test.”  Don’t waste your time taking useless tests, this is a huge sign there isn’t a job for you here.
Tip 2:  Don’t let them tell you that you are a good fit for “multiple positions that we have with clients” without explaining the positions.  This is another BS tactic by recruiters IF they cannot/will not elaborate via telephone on a specific position.  Typically, a recruiter will call you to get a brief work history (how many years experience, questions about working with specific technologies, scripting, etc).  After that phase, they will either say you are not a good fit for what they have, or they will start to describe the position in more detail.  If they jump straight to the “why don’t you come in and we can discuss future opportunities” or something along those lines, it’s probably not going to lead to a job.  Inform them you are only available to interview for a specific position, and you do not want to play round robin with their clients.
Tip 3 (Salary!):  You can be firm with recruiters from staffing/recruiting companies.  They only get paid if you get paid.  If they have called or emailed you with position details, you should review the position.  If it’s to your liking, your next email/remark should be “What is the salary range for this position.”  If they say something like “Market rates” or “competitive”, don’t let them stop there (about 10% of the time have I found the salary to be ‘competive’, it usually means 10-20% below market).  Ask them again, like “Okay, but can you give me a specific range?”  It’s very, very difficult for them to dodge the question twice; they immediately get the hint: tell them the range, or I’m not going to move forward with the candidate.  Sometimes, they will beat you to the punch and ask you how much you are presently making.  A line I have been really successful with is “I’m not comfortable discussing that at this time.”  90% of the time, the recruiter will follow up with “Can you tell me how much you would be looking for to make a move?”  Now, the ball is in your court.  An entry level System Administrator position should be paying no less than $16/hr in a small town, to around $22/hr in a bigger city, or more.  This might not seem like a lot of money to you (or maybe it does), but your salary will be doubling or tripling in a few years if you continue to grow as an administrator.  In any case, you should be comfortable with the number you throw out there, and add a couple bucks an hour to it just to be on the safe side.  Typically, the recruiter will say something along the lines of: A) “I think we can do that”, B) “Oh, the range only goes up to X.  Are you flexible on compensation at all?” and C)  ”Yeah, we’re just too far off.”
For scenario A, hopefully you gave them a number you are comfortable with.  Nothing makes a company happier than hiring a motivated person below market rate.  Nothing makes a job seeker happier than making more money.  When these two align, it’s a great thing for both parties.  Don’t worry if you sold yourself a little short as long as you are happy with your position and compensation, that’s all that matters.
For scenario B, I’m a little on the fence.  On one hand, if it’s only $2/hr lower, and the position offers good experience and work life balance, maybe you should take it.  On the other hand, why can’t the company come up $2/hr for the right candidate.  Also, don’t forget, the recruiter is making a cut off your salary, so there might be some wiggle room, but typically not much.  If I asked for $20/hr and they countered with $18, I would be coy with them, but accept it conditionally, such as “If the position is a good fit and benefits are what I expect, I am a little flexible on the amount.”  This tells them that a) the salary is acceptable, b) you are not desperate.
For scenario C, this is a learning experience.  This is valuable market research.  You should try to figure out what that position is paying.  This will tell you one of two things:  The company hiring is a waste of your time, and you should not entertain offers from them in the future, or that your salary expectations are far above market rate in your area.
Honestly, I’ve encountered scenario C almost as often as the other two.  You would be surprised to learn the amounts of money I have asked for that seem completely ridiculous, and the recruiter has said “we can do that.”  I do this especially for jobs I’m not really interested in, just to gauge where the market is at.

Step 10:  The interview

You are almost there!  There are a lot of scenarios here, but I’ll touch on a few common ones.
Sometimes you’ll get a technical phone screen before a job interview.  Just be honest, listen to the questions, ask for clarification, and don’t sweat it if you miss one or two.  I don’t do in person interviews without a phone screen anymore, but that doesn’t really apply to entry level jobs.
The company is interviewing a lot of people in a few days.  This means that there are a lot of candidates for the job, but the hiring department has done a poor job narrowing down the selection process.  This is more like an audition than a hiring process.  These are not usually IT companies, these are companies that specialize in some other sector of the economy and have an IT department.  You will be second fiddle here, but it may provide good experience for your career.
The company is interviewing few people in 1-3 days.  This means they have carefully selected candidates (or there just weren’t that many), and you fit the bill on paper.  You will probably answer some technical questions during the interview, as well as the standard interview questions like “Why do you want to work here?”
Here are a few Q and A’s to help you out:
Q: Tell us about yourself
A:  I’m a daily linux user and enthusiast.  I’ve always been the IT guy in my family, and I enjoy helping people solve problems.  I started using Linux 6 months ago, and I love it!  I’m always trying to learn more, and I realized that the IT field is a good fit for me.
Q:  Why do you want to work here?
A:  This position looks like a good fit for me.  I have a lot to learn, but I think I would enjoy working here with your team.  I really enjoy solving problems and I think I Linux is the career path for me.
If you are asked if you have any questions, I like to (if not already covered), ask some variation of the following:
Is there any on call rotation (if it’s covered in the job description, ask specifics, like days and times)?  What will my primary shift be (you’d be surprised how often this is not covered up until this point.)?    And my personal favorite: Can you give me an example of a typical day that I would have while working here?
I feel that last question will give you a really good idea about the position and the culture of the company.  The responsibilities of the position and the day to day operation of the job can often be two completely different things.
You should not discuss compensation or other benefits such as time off during the interview process.  That should have been discussed with the recruiter or hiring staff before the interview, or after the interview in some situations.  Most of the time, the people in the interview have no idea what your compensation will be.

Thanks for Reading

These statements reflect my personal experience and opinions.  I hope I have been helpful in your job search; there is a lot of opportunity in the Linux field right now, but you do have to put forth considerable time and effort.  However, that time and effort will pay big dividends if you follow through.
I’m often asked what certification, if any, should a person obtain for Linux.  Hands down, I 100% Recommend Red Hat Linux certifications.  I have two myself, and they have been immensely helpful in my career.  Not only are they preferred by many employers (which has opened countless doors to me), I really did learn quite a bit while studying for them.  In addition, having a concrete goal, such as obtaining a certification, provided me with the discipline I needed to be proficient in many different skills.
I recommend Red Hat Certified System Administrator for anyone wishing to get a Linux certification.  There are others, and I’m sure they are useful, but most businesses use Red Hat, and therefor you will have a more marketable certification if you choose Red Hat.  I am in no way affiliated with Red Hat, though a friend of mine works for them and loves it, and I have worked with some of there recruiters for positions I did not elect to pursue at the time.
To study for a Red Hat Exam, you can attend one of their courses online or in person, or you can study on your own.  I chose to study on my own for the RHCSA, and with a Red Hat online course for the second (Open Stack).  I enjoyed both methods, but studying on my own took a lot of time and discipline.  I chose to purchase a study guide by Michael Jang.  It’s an excellent book, hopefully he has an edition out for RHEL 7 by now.

No comments:

Post a Comment