From Linux Sys Admin to Programmer in 3 Easy Steps

C Programming

We got an email from a Dice user: “I’d like to move from Linux systems administration to programming. What’s the best way to make a smooth transition?”

He’s in a good place. His knowledge of Linux servers, the Linux command line, distribution and tools will serve as a solid foundation for a career in programming and development. Plus, learning how to program the Linux kernel will boost his market value and help him capitalize on the growth of DevOps, notes Amanda McPherson, vice president of developer programs for the Linux Foundation.

Click here to find Linux developer jobs.

Here are three steps our correspondent should take to maximize his experience as a Linux systems admin and enter the next phase of his career.

Step 1: Learn C

Since C is the base programming language for Linux, learning it is the first step in the journey. And because C has been around since the early 1970s, there are any number of ways to acquire the knowledge.

For instance, if you like interfacing directly with an instructor, a community college course might be your best bet. If you’d rather study in your spare time from the cozy confines of your home office, consider enrolling in a free online course. There are options available to fit almost any schedule, budget or learning style. Once you have a fundamental understating of C, you’re ready to take the next step.

Step 2: Learn the Linux Kernel

There are lots of ways to learn the Linux kernel. For instance, LinuxCommand offers courses for programmers as well as systems administrators. The Linux Foundation offers courses, as well. In addition, there are any number of books on the subject, and be sure to check out the resources in the Linux Zone of IBM’s developerWorks.

Of course, Linux is open source and you can learn a lot from reading the source code of different programs. Conferences and boot camps are yet another option.

“Consider sitting in on a few courses at a Linux conference,” suggests McPherson. “Your company may even pay your way if the conference provides education for systems admins as well as programmers.”

Step 3: Get Hands-On Experience

Once you’ve learned the Linux kernel, you’re ready to cut your teeth. Participating in an open source project is a great way to get hands-on experience, but be sure to select one where experienced developers will critique your code and help you improve.

Best of all, your code “lives” in the project, McPherson points out. That means when you’re ready to hit the market, technical managers can review your work and affirm your skills. Recruiters may even contact you, since they often search project sites to find candidates for programming positions.

If your boss is supportive, ask if you can participate in a project or apprentice under an experienced programmer at your company. As your skills improve, put yourself in contention when a DevOps position opens up.

Another option is to buy a Raspberry Pi. You can create an app or a program in Linux using this credit-card sized computer. Depending on the model and components you select, a Raspberry Pi will set you back between $50 and $100.

Because Linux has been around since 1991, there are any number of ways to hone your skills. Just bear in mind: The key to becoming a great programmer is practice, practice, practice.

Upload Your ResumeEmployers are looking for candidates like you. Upload your resume. Show them you’re awesome.

Related Stories

Image: e X p o s e/

4 Responses to “From Linux Sys Admin to Programmer in 3 Easy Steps”

  1. Cicuta

    I wonder what LESLIE STEVENS-HUFFMAN knows about the 3 Easy Steps she writes about. There is a saying: “It is easier said than done”. Kind of wonder also, what is her technical background if any.

    I ask her: What is the Kernel and what it consists of? What is the directory structure? What type of commands it has and if all commands are used and how? Are there different kinds of programmers and what differs from one another? What education the individual must have?
    Even systems administrators with 20 years’ experience do not know the Kernel efficiently.

    It is also easy to say: C language was invented in the early 1970s and you can learn it to be a programmer; however, it is easier said than done. What takes to be a good programmer? Experience for one thing and I am not talking about 5 years’ experience; it takes longer than that to be a good programmer in any language. Some time ago, a programmer wrote an article in Tech Republic blog explaining what it takes to be a good programmer and in a nut shell he said: “you need at least 3 different languages and the more you know the better” and I agree with him entirely. Very seldom, if not all the time, a computer program has a mix of different programs called subroutines and they are called within the program to run. Hence it is not as easy as Leslie Stevens-Huffman says.

    Lastly, the practice programming. Companies now days are not hiring people who do not have experience in the field; so, why a system administration with a secure job should do the transition blindly? Some systems administrators have done “scripting” and even “scripting” can become very complex and if the person does not do “scripting” on a daily basis, the skill is lost or kind of deteriorate. Scripting also may include subroutines some written in Perl, Python, or some of the many languages in existence and even in C. So, do you think that the transition is as easy as 1, 2, and 3?

  2. Fred Bosick

    To put it in a kinder way; system administration and programming attract people with different skills and temperaments.

    A sysadmin cares more about the machine itself and how it works with all users. A programmer cares about his program running correctly and not so much how it affects anything else.

    An admin may write scripts to perform common or tedious tasks. The work flow(compared to a typical compiled program) is simple and the algorithm may be naive, but it only has to process relatively few items and be ready quickly and without extensive debugging. The programmer writes code to be executed on many machines. It has one task and needs to be efficient. So he cares about garbage collection, polymorphism, inheritance, and other highly abstract concepts. The programmer is also working on a large project with other coders. Whereas, the sysadmin writes his scripts himself and for a particular machine.

    Either, with time and training can do the other job, but not as well.

    And your typical sysadmin is *not* fluent in C and is unlikely to ever be.

    It’s already a problem with job postings that demand disparate skills that do not accumulate in a normal career progression. This article can only lead HR and management to expect dual sysadmin/coder proficient people, and other unlikely combos.

    After all, it’s just “computers”, right?

  3. srikanth

    Hi John,

    I have basic knowledge on C language and i can write a small programs in C. as well as i can write a small program in shell

    I am working as LINUX system admin in infrastructure. Please let me know your suggestions whether i can proceed to learn kernel device driver programming as i have 7 years experience in linux .