Ask Slashdot: How Did You Become a Linux Professional?
First time accepted submitter ternarybit writes "By 'Linux professional,' I mean anyone in a paid IT position who uses or administers Linux systems on a daily basis. Over the past five years, I've developed an affection for Linux, and use it every day as a freelance IT consultant. I've built a breadth of somewhat intermediate skills, using several distros for everything from everyday desktop use, to building servers from scratch, to performing data recovery. I'm interested in taking my skills to the next level — and making a career out of it — but I'm not sure how best to appeal to prospective employers, or even what to specialize in (I refuse to believe the only option is 'sysadmin,' though I'm certainly not opposed to that). Specifically, I'm interested in what practical steps I can take to build meaningful skills that an employer can verify, and will find valuable. So, what do you do, and how did you get there? How did you conquer the catch-22 of needing experience to get the position that gives you the experience to get the position? Did you get certified, devour books and manpages, apprentice under an expert, some combination of the above, or something else entirely?"
Practice, practice, practice... learn by failure, otherwise you are just a common user
Being a "Linux Professional" in most fields of IT is like being a "Knife Professional" working in a kitchen.
It's a useful set of skills, and it gives you the ability to use a suite of tools that are very useful - and essential for some career paths - in that field.
But it's not how you should define your career, or even your desired job. (That you're thinking of it that way might be why you keep seeing sysadmin in a Linux environment as the only obvious role.)
Okay seriously:
* Started to play w/ Solaris on a sparc station at uni while learning C programming which got me interested in *nix.
* Installed Slackware Linux at home and really liked what I saw during my uni days.
* Spent time modifying hardcode on MU** servers and doing basic administration.
* Started working at another college where a bunch of us decided that Redhat Linux was the choice for some services we wanted to host.
* Started supporting a Linux based installation that acted as the firewall for the college I worked at.
* Started setting up Apache web servers and SMB shares for a few local companies.
* Did some side programming projects that involved dealing with some real time application needs under Linux.
While I was never a dedicated Linux admin or coder I keep those skills in my skillset arsenal. That is how I got in to Linux and I run a couple Gentoo boxes at home to support some of the stuff I am doing. I found during the Sysadmin part of my career keeping multi-OS skillsets honed was useful and during the programming part of my career (current part of my career) I spend most of my development in the .NET/MSSQL environment (it pays the bills really well) with the odd side project in Linux here and there.
So it all comes down to what you want to do when you grow-up; I scope my career based on what interests me - I have gone in to job interviews lacking a skillset they were wanting but ended up getting the job because I told them how I would learn it and I also gave an eager competent professional impression that I treat my job seriously and will learn whatever needs learned. I would conclude that while an impressive resume is always nice, the short comings can be made up by the soft skills.
I know not the exact answer you wanted...
Tes
I spent a few years running slackware servers and hosting my own services. Then I studied and got both my LPIC1 and LPIC2. Then I did a bunch of contracting.
That's when I discovered that companies won't hire Linux admins unless their business deals with Linux. Linux administration is more of a hit and run contract profession for 90% of the companies out there. I've contracted for very large companies, including fortune 500 all the way down to rinky dink fly by night operations that reincorporate when the investment capital runs out.
Linux servers have a tendency to just work when setup properly. I know this because I made a small unsuccessful business of migrating small business customers away from Microsoft servers towards Linux servers to handle most of their services. Once everything was setup, the service calls stopped coming so often. In IT, you'll never convince a customer to switch to Linux for the desktop. The best you could hope for is a Linux home media server or similar.
If you're serious, work towards your LPIC2 to start and learn bash scripting and perl. I currently don't know perl because I've never needed it, but 90% of the permanent jobs are looking for admin scripting skills.
They're using their grammar skills there.
That's pretty reassuring, thankyou. I've worked in the same job since I left Uni, and any time I've looked at job listings each job seems to require experience in some random framework that I'm not likely to use at my current job, and it feels like working with it at home won't really "count" on a resume. Especially when they often want years of experience with said framework..
I've always refused to use MS languages/.NET , but I guess it is the easiest route to getting a job.. it just would make me feel so dirty..
Let me clarify my statement: It depends on what they are asking for; if you are applying for a Sr .NET Developer position and you have zero experience, then yes they will most likely not get the job. But if you are applying for a position that requires JQuery experience and you only have used MS AJAX toolkit but can demonstrate an understanding of JavaScript you have a shot.
The current job I just accepted a few weeks ago they were hoping I had MVC experience, but alas my previous gigs were all ASP.NET Webform, WinForm and Web Service development. But I was able to turn up to the interview, tell them I had no experience about MVC but discuss some of the aspects of the design approach and ask them some pointed questions about it. That peaked their interest, along with being able to answer the gambit of other technical questions they had correctly and they shrugged, “You’re a pretty decent .NET developer and SQL developer from looking at your resume, the code samples we asked you to write and questions you answered learning MVC while will take some time we know you are capable of it.”
And that is exactly it – it is not about impressing them with bullshit answers and responses, it is about demonstrating that you have technical skills, you have the ability to learn quickly and that you very least are familiar with a major design pattern out there. The fact of the matter is, in our field we will learn so many new technologies, frameworks etc throughout our career and we have to be willing to do so. That to me is the key, I have interviewed candidates that basically are: “I have always done it this way” attitude. Guess what? I have never offered them the job.
Do not feel dirty about doing .NET/MS SQL Server development; we were all young an idealistic and while you can still build a decent career without using the Microsoft stack why limit your options? In the end to me programming is programming, if I like what I am be tasked to do I don’t care what platform it is under and ultimately I am looking to pay the bills :)
Tes
I have been hiring nearly constantly for about 10 years. 6 years hiring Solaris guys, and the last 4 hiring Linux guys. I will be the first to say that around Philadelphia anyway, the market is full of dog shit I wouldn't pay $40k. So if you want a job, figure out a way to shine brighter than everyone else. Some ideas:
-Intelligence cannot be faked, but also cannot be earned, unfortunately.
-Use spell check on your resume, have someone else read it, ugh! If you've been around the block 20 times, limit resume to 2-3 pages or it gets trashed.
-Groom yourself, even for a startup interview. Nobody likes smelly, sweaty, people in grungy clothes.
-Do whatever you have to do to NOT be/appear nervous in the interview. Relax--we're trying to get to know you, the real you!
-Do NOT put stuff on your resume that you do not know!!!! Or at least qualify your knowledge (e.g. "I am vaguely familiar with VMware")
-Learn how to shake a hand and hold eye contact (yeah yeah, tricky for some IT folks)
-For a Linux admin, you'd better have the basics down pat (resolve.conf, named.conf, ntp.conf, httpd,conf, how to change a system IP/hostname, how to add a new filesystem, how to rescue a system that won't boot, or you forgot root pass, etc etc etc)
I will say, I have learned my lesson about hiring young people without a degree. A degree shows you can think 4+ years ahead to a goal, and work hard to get there. If you don't have a degree, have a good reason why, and let them know why you can follow through on things.
A year spent in artificial intelligence is enough to make one believe in God.