views:

1015

answers:

9

I have been a system administrator for about 8 years. Have worked on various technologies including various linux/unix flavours as well as MS technologies.

I have also dabbled in perl and bash programming purely for sysad jobs.

I am planning to switch to programming.

Is it advisable for a sysad to shift to programming. If no, why? If yes, what path should I follow?

Update: Also would like to mention that i am more inclined towards Linux technologies and have started learning python as I almost got convinced by the python community ;) . Is that going to help?

+2  A: 

I'd say that your background as a sysadmin can only help with moving into programming. Too many developers I've worked with (including myself earlier on in my career) have very little understanding of critical areas such as security and maintainable software.

Most sys. admins generally find themselves on the receiveing end of poor developers practices in these areas, so at the least you're going to know how things shouldn't be done..

On the Microsoft side, the first step would be to attend a decent introductory .NET programmer training course (Readify provide some good courses). The certifications (MCAD, MCP) are not as valuable to a new programmer as getting some good hands on training.

Ash
+3  A: 

If you like programming, it certainly could be the right change. The background in system administration may be helpful when you're working on certain type of projects (e.g. setting up web development platforms, understanding concepts in systems programming, etc). All too often programmers have no idea how to setup the environment that their software runs in, which can cause problems for developing sensible user interfaces.

The path to take depends on your learning style. You need to both learn to program, and find ways to prove you're ready to a future employer.

The are any number of ways that you can do the learning. Personally I'd suggest spending some time in a classroom, both because it can be helpful to interact with other people while learning, and because it gives you something to highlight on a resume or in an interview.

Both the Linux and Windows environments have lots of opportunities for programmers. My sense is that the Windows world opportunities are biased toward desktop applications where the Linux jobs are more around server-software (at least that's what I've seen posted around me).

acrosman
+8  A: 

Is it advisable in a general sense? Who cares? You're only getting one shot at this life so you need to do whatever makes you happy. If that's programming, then it certainly is advisable in your case.

As to the path you follow, it depends on who you work for. Large companies (and some small ones) should allow you to train up at their expense - I would opt for that as a first attempt.

If they're not willing or able, then you can look around at either self-training or going to another company which will allow you to do it.

If you've done perl and bash stuff to make your sysadmin life easier, then you've already learnt programming. Everything else will just be different sytles or languages - the concepts mostly remain the same, unless you're using very esoteric languages.

paxdiablo
A: 

If you think this is a move you'd like to make, then definitely go for it. My personal path has taken me from many years programming to four years of (mostly-Linux) sysadminning and then back into programming, with a bit of sysadmin as needed. Maybe I'll get tired of programming again and return to the sysadmin side one day, maybe I won't, but having both in my background definitely makes me a more well-rounded geek and allows me to better serve my clients.

Dave Sherohman
+1  A: 

If you're going for Linux, python is definitely a good choice. You might consider contributing to some open source projects. Most linux distros use a lot of python and there's a python library available to do just about any task you could want to do in Linux. My advice would be to choose something that will help you out in your current job (so that if you decide against programming, you won't have lost anything).

I was mentored by someone who was a sysadmin for a long time and I will tell you that that kind of programmer definitely brings something different to the table, especially in the context of FOSS. It's always nice to have somebody who is knowledgeable in that field.

Jason Baker
+1  A: 

Is it advisable for a sysad to shift to programming. If no, why? If yes, what path should I follow?

Who cares? If you want to switch to programming then do it. It's more like a personal choice. The real question is... Are you going to have to study more? Is it going to take more of your personal free time? It all depends on the job and the project as well as the people you work with.

Python is a nice language that can be learnt in just a couple of weeks. You'll fall in love with it ;). But beware, because once you enter the python world, all other languages will seems to be more or less ugly.

miya
+2  A: 

I had always wanted to be a programmer, but the first few jobs I was able to get were sys admin jobs, which then were issues in my desired career path. When I'd approach a new job that was development based, I'd be shuffled to the back of the pile and told it looked like my previous experience was more admin work. I kept focused on my goal, on every project I was involved, I tried to get involved in some development projects. I continuously tweaked my resume focusing on whatever development I did. I then started working for my own company for a couple years, doing custom application development and web based enterprise services and applications. In addition to this, working for some smaller companies where I got to wear a few extra "hats" helped a bunch. Eventually, I was able to get a few big name contracts working on some heavy development projects, and now I'm working as a Senior .NET Analyst at a huge multi-billion dollar global corporation, doing what I love, doing it well, and making a more than adequate salary.

What I guess I hope to convey from this story, is that you have to know what you want to do. You have to know what kind of work makes you happy. Don't let anyone try and steer your career path in a direction you don't want to go. Keep focused, and work toward your ultimate goals, through education, experience and perserverence, and you can make it happen.

stephenbayer
A: 

a background in development, database design and admin, and making Solaris, linux or BSD scalable/reliable / buzzword compliant is definitely a potent resume combination. Lately, devs have been writing lots of "What language should i learn next" blogs, here's a roundup, probably you'll need to learn a handful of languages well. Since it's hard to avoid webifying apps now, you'll probably want to be at least conversant in javascript, HTML and CSS.

http://ola-bini.blogspot.com/2008/01/language-explorations.html

http://it.slashdot.org/article.pl?sid=08/03/18/1633229

http://khigia.wordpress.com/2006/11/02/what-is-my-next-programming-language/

http://mvanier.livejournal.com/998.html

Gene T
A: 

You can learn better programming in Perl. Perl has progressed much from Perl that was used 10 years ago (on which most tutorials are written), Currently recommended OO system is Moose/Mouse and it is much better than old system that was copied from Python. Learn how to use Perl::Critic and perltidy. For webs apps look at CGI::Application and Catalyst frameworks. Read "Perl Best Practices" book.

Alexandr Ciornii