Slashdot Mirror


From System Administrator to Developer?

ma11achy asks: "Recently, I have been looking at making a career change from Unix Systems Administrator to programming/software development. I have a CS degree recently obtained through distance education and have been working in the field of Unix Systems Admin for roughly seven years now (in my early thirties). I have reasonable knowledge of C, good knowledge of Perl and excellent knowledge of shell scripting. Is, is there anyone out there that has made the change and could they provide any insights into what it was like for them? Am I just barking up the wrong source tree?"

81 comments

  1. It's no big deal by puckhead · · Score: 5, Insightful

    I went from programming to system administration and back again several times. If you know how computers work, it's not much of a leap to programming them.

    --
    Watching Cowboy Bebop in my jammies, eating a bowl of Shreddies.
    1. Re:It's no big deal by Sentry21 · · Score: 2, Insightful

      If you know how computers work, it's not much of a leap to programming them.

      Ah, but there's more to programming than 'know[ing] how computers work'. There are the fundamental design philosophies, object-orientation, project management, team development, debugging, releases - the whole gamut of Software Engineering courses. Not to say that it's some exclusive field, but just because you're a good systems admin doesn't mean you're a good programmer automatically, or vice-versa.

      --Dan

    2. Re:It's no big deal by puckhead · · Score: 1

      I'll grant that there are a different set of tools. I've not had much trouble adapting to them. I know several people who work both sides of the fence effectively.

      As for courses, When I went to college computer still meant mainframe and I studied beer.

      --
      Watching Cowboy Bebop in my jammies, eating a bowl of Shreddies.
    3. Re:It's no big deal by sql*kitten · · Score: 2, Insightful

      I went from programming to system administration and back again several times. If you know how computers work, it's not much of a leap to programming them.

      Some of the skills transfer, but I have noticed in myself and others sometimes the personality does not. System administration involves a wide variety of small tasks, each of which has "closure". There is a beginning and an end to system administration tasks, even if they're routine, like starting a rollout of a patch, then it being complete. You need to have lots of knowledge, but you need to maintain very little context because tasks are discrete.

      Programming is different - tasks are a lot less likely to end cleanly. You might work on a project full time for a few months, think it's done, then a few months after that you have to come back to it to patch it, add a feature, port it to a different OS or something. It's a few large tasks rather than lots of small ones. It requires a narrower but deeper kind of knowledge - you might spend all your time using one language working on one codebase, for years at a stretch.

      In short, you need to think about how your personality measures job satisfaction. Do you like variety and completion, or do you like depth and potentially everlasting projects? (I know people who've been working on the same codebase for 15+ years, but that's what they like and they're happy doing that).

  2. Programming.... bleh! by ChiefArcher · · Score: 3, Insightful

    I've done the sysadmin / programming thing... I hate programming although i'm good at it.. most programmers I know hate programming after about 3-4 years...

    I honestly don't want to do this the rest of my life... although I have no idea what i want to do. Programming sucks your brains out...

    ChiefArcher

    1. Re:Programming.... bleh! by ObviousGuy · · Score: 3, Interesting

      I wonder how common it is that programmers come to hate programming or even computers in general.

      I know many people including myself who has burnt out on computers. We are looking for other work in other fields but in the meantime computers pay the bills. One guy I knew went off to medical school, another teaches day care. They are both much happier now than at the point they quit from computer programming.

      I wonder what the burnout rate is among programmers. What is the average industry lifespan?

      --
      I have been pwned because my /. password was too easy to guess.
    2. Re:Programming.... bleh! by Slarty · · Score: 1

      I haven't even been programming (professionally) for a year now, and I'm already burnt out. I used to PLAY with computers... in school, I'd write programs for fun, do neat things, just play with things. But since I started doing this for real, I never do that anymore... I still have ideas of things I'd like to do, programs I'd like to write, but I come home after a day of programming (lately, working with COM... aah! EVIL!) and I'll be just tired, and with no motivation to do anything with computers (other than surf the web or something) and I end up watching TV instead. I can feel my brain rotting.

      So the current thinking is, I'm doing this for another year tops, to try and get some more of my student loans paid off, and then I'm outta here. I'm thinking of spending a year volunteering, to do some good for the world, and then finding a job I like. I've moved beyond caring about the fact that I'll be ditching a job that pays pretty well in order to face possible unemployment, even in this economic climate. Screw it. I'm only 23 and life is too short to spend 8 hours a day doing something I don't love anymore.

      And that's the tragedy of it all... a few years ago, I really did love it.

      --
      Hi... I'm Larry... the shivering chipmunk... brrrrr!... I'm cold... I need a sweater...
    3. Re:Programming.... bleh! by saden1 · · Score: 1

      I've been in the software development profession for almost 3 years now and I'm not burned yet. Every project i work on I am practically learning something new, but there are times when I'm bored to death. Some weeks things are so slow (waiting on other people) I end up maybe doing maybe 15 hours of actual work. Of course there are times where 12 hour days are necessary. All in all, I can't see myself doing something else. Well, maybe teach, but that doesn't pay. I got bills baby and my monthly expenses are over $2500.

      As long as work is challenging and I'm are learning I don't think I'll burn out.

      --

      -----
      One is born into aristocracy, but mediocrity can only be achieved through hard work.
    4. Re:Programming.... bleh! by hawkstone · · Score: 5, Insightful

      Scary. Not just your comment, but a bunch of responses to it. I feel the need to respond if only to give a differing opinion.

      I started programming when I was 7 years old. Atari 1200XL. Moved onto a Commodore 64. Then an Amiga. Then an IBM PC (8086/8088). Then more modern 386/486. An itty bitty bit of Macs. Went to college (BSCS), did the whole Sun/IRIX/HPUX thing for four years. Got a job at a National Laboratory programming. Did that for a couple years. Now back in grad school in CS (MS) while working. I've done BASIC, C, C++, Java, Python, Perl, and several others I'm embarrased to mention (though they end in -TRAN and -BOL). Programming in school and programming at work. When I have free time, I often write programs for fun or for utility. It's been twenty years. I will never get burnt out on it. Many of the people in CS in grad school I know are the same way.

      I hate to make the analogy because it sounds presumptuous, but for me it's fun and creative, kind of like art. I know there are many people out there who chose programming because it was a good living. But they couldn't have enjoyed it too much to begin with. If I hear someone say they're burnt out, I wonder if they fall into this category. Can you imagine an artist say "That's it. I'm burnt out. I've painted for three years professionally, and now I hate it."? If so, then maybe they never really were an artist.

      Sure, there are some tedious parts like debugging, but even that can be rewarding. And certain projects can suck your brains out; imagine working on a huge mural with 10 other artists for several years. Certain projects can get old. But while you're doing that project, you aren't necessarily thinking that you hate art (programming), but maybe instead that you're still itching to paint (code) something you want to work on instead of the project you're sick of.

      If you've programmed some, and said to yourself, "Hey, this is slick! Look at this code I brought to life!", you might have it in you. If you wrote something and said "Glad that's over, now gimme my paycheck/diploma", then you might want to reconsider.

    5. Re:Programming.... bleh! by Anonymous Coward · · Score: 1, Insightful

      It isn't so much the computers and programming so much that cause burnout. It's more a factor of the shortened schedules, insufficient resources, and general lack of consideration for the programmers that is the seed of the eventual burnout.

      Then I became a manager and it just got worse. Now the customers want their projects finished yesterday and by the way our license to perform certain engineering runs out tomorrow so you'd better stay late and wrap that up as soon as you can. And customers don't want to budge on their requirements nor do they understand how problems with their hardware are affecting the schedule.

      Me, I've had enough. I'm going to get me a small plot of land and try my hand at growing some grapes. I've got enough money saved up, it was never the issue. The problem was that the technology didn't make anything easier, it only made it faster and less manageable.

    6. Re:Programming.... bleh! by Anonymous Coward · · Score: 0

      I got burned out on programming several years ago -- and I recovered.

      What happened was, I got disgusted with the kinds of programs I was being required to write. I also got disgusted by all the rules designed to protect people's stupidity and ignorance (i.e., we can't let you write code like that! That's too complex!). Also, I programmed as a hobby at home, but I got absolutely stuck trying to figure out how to write some of the things I wanted, such as parser generators. Certainly my employers didn't want me learning how to write stuff like that, they thought my code was already too complex. So I felt like my chances for professional growth were nil.

      I ended up giving up programming as a job, but I kept poking around in it as a hobby, and before long I solved those hard problems and now I'm enjoying programming again. I even have a project on SourceForge.

      But I'm broke.

    7. Re:Programming.... bleh! by Moridineas · · Score: 2, Insightful

      Can you imagine an artist say "That's it. I'm burnt out. I've painted for three years professionally, and now I hate it."? If so, then maybe they never really were an artist.



      Sure--plenty of famous authors, artists, etc have completely burned out from the amount of effort and spirit they put into their work. Champollion from his efforts suffered a nervous breakdown at an extremely young age and burned himself out. Goethe, Poe, and many many others "burned out"... I would consider them artists ;) Not to mention that doing these things professionally is very different from doing things for fun.

      Not to dispute your main point, but just because you can get burned out at an activity doesn't mean you're not a true partaker of that activity (or good at it, whatever).

    8. Re:Programming.... bleh! by lewp · · Score: 2

      I said the exact same thing you did! Then I ran out of money... :(

      --
      Game... blouses.
    9. Re:Programming.... bleh! by chthon · · Score: 1

      I have done several jobs with and without programming. I have done (somewhat chronologically) :

      1. computer installations
      2. programming with Clipper
      3. programming with FoxPro
      4. programming with C
      5. tested trains electrically and functionally for Bombardier
      6. been unemployed
      7. followed a course in automation (hydr., pneu., PLC)
      8. automated a 400 ton alu press through PLC
      9. learnt and programmed COBOL for 4.5 years
      10. been in software configuration management

      My experience teaches me this about myself and programming : I like to program and I am good at programming (people value my work). However, the environment in which you work also plays a role.

      I can start programming and solve many things in a very decent time, on my own, but then after some time (months, not weeks) my imagination runs dry. Then it is time to start to work with other people, be it programmers or customers. This interaction keeps my mind refreshed. If I must program a long time alone, then my productivity lowers. This can feel like burnout. Take carre however in finding a new job. It could be that after a few months of not programming, your mind has taken a rest and then starts craving for the keyboard again.

      Jurgen

    10. Re:Programming.... bleh! by jafuser · · Score: 1

      I've been programming for about 9 years now and over the past two years or so I've really been starting to burn out.

      Several things happened around that time, so any one of them or a combination of them could have been the cause.

      - I started taking a perscription for social anxiety, and started to do more with my life socially, and a lot of new interests opened up to me that were not related to technology.

      - I had my first serious relationship, and shortly after, my first serious breakup. I think I might have burned out a few brain circuits on this. =)

      - My workplace laid off a lot of people, who were good friends of mine. Many have moved across the country, and we don't keep in touch as well as we did. There used to be over 75 people working here, but now we're down to less than a dozen. It's VERY quiet here.

      - We redeveloped our main application in a new language, which I'm still not nearly as comfortable with as I was with our original language. I understand why we've moved to it (easier to hire contractors for it), but it's not as warm & fuzzy as my "native" language.

      - I moved more from a position of designer to programmer as our application became more focused on a niche market which I'm not quite familiar with, so I am needing to rely more on specifications from management, which are quite fuzzy at best.

      And it's not that I'm burned out from working a lot of hours. I probably work no more than 45-50 hours a week.

      I'll admit I'm no superstar programmer. I am not in the same league as people who have the knowledge or patience to hack away at kernel code, write device drivers, or implement the latest buzzword technology.

      I do have almost a decade of experience with web-based application technologies, but I don't have a BSCS or anything on paper that companies all seem to require these days. Sometimes I'm a little behind on the terminology and the latest and greatest developments in computer science, but I always find a solution to any problem that comes along.

      For that reason, I'm sure I've re-invented the wheel more than a few times (ever try doing CGI in C? - talk about masochistic). I guess this is the reason why I don't feel comfortable with job searching.

      I've probably developed a bit of dysthymia to go with my burnout. I often don't even bother turning on my home PC anymore. I usually get home from work and I just go to sleep or just lie in bed until it's time to get up and go back into work. This cycle has been especially nasty for me lately. It seems the more rushed and stressed out things get at work, the more dysthymic I get.

      I really wish I could find a way to enjoy programming (and life in general) again. But I fear that as long as this company stays in business, I'll probably be stuck here since the pay is good.

      --
      Please consider making an automatic monthly recurring donation to the EFF
    11. Re:Programming.... bleh! by ottothecow · · Score: 1
      I think a lot of the wrong people go into programming because they love computers but the straight sit and code isnt right for them. The parent is one of hte people for which the job works.

      it seems to me that there are many people who want to be proficient programmers and be able to write any tool they need BUT they dont want to write tools that someone else needs over and over, they might be better suited for a job as a sysadmin. occasionally have to write a tool for themselves, etc.

      --
      Bottles.
    12. Re:Programming.... bleh! by glib909 · · Score: 1

      Does putting "burned out" in quotes mean we're not making a distinction between losing passion/interest and going insane from being hunched over putting out lines of literature for years?
      That's sort of what happened to Poe, right?

      --
      Suudsu, that stuff is G-E-W-D.
    13. Re:Programming.... bleh! by dubl-u · · Score: 2, Insightful

      I wonder how common it is that programmers come to hate programming or even computers in general.

      I've felt that at times. For me, it was always about the work and the work environment.

      Years ago, I was a sysadmin, mainly because that was the work available. But in working 70-hour weeks for a couple of financial companies, I completely burned out on it. Even now, if I have to do more than a couple of hours of it, I get immensely surly.

      So I switched to full-time development, which was what I preferred. For a while, that was great, too, but after a couple of death-march projects I was getting burned out on that, too. It made me sad; I really like programming, but forcing myself to program for 60 hours a week for unappreciative jerks was somehow taking the fun out of it. :-)

      Over the last few years, I've switching to working only in projects using one of the Agile methods, like Extreme Programming. The low-level practices like test-first development and pair programming make coding much more fun, and the high-level practices involving planning and scheduling make it so that 40-hour weeks are the norm, and both I and my clients have confidence that what I'm working on matters.

      So my tip to people: if you are starting to get burnt out on anything you love doing, then change it so that doing it is more fun than stressful. Any animal will learn to avoid things that are painful, and if you're spending 60 hours a week mainly in pain, that animal part will eventually win out, no matter how much you feel like you should stick with the job.

    14. Re:Programming.... bleh! by eglamkowski · · Score: 1

      I tried explaining to my wife that I don't want to program any more (after 6 years) and she I shouldn't even think such a thing, as what else could I do?

      I think it depends on exactly what you're doing. My first job I hated after only a short time, but my second job was great and I'd have been happy doing that forever. Amazingly, I'm only on my third job in that time. It's not what I want to do for the rest of my life, though.

      As to what else could I do, probably a lot of things, but the current job market doesn't tolerate anything less then perfect knowledge in 100% of the desired skills. Bleh.

      Ironically (given the topic of this article), I'd really like to switch from programming to system administration...

      --
      Government IS the problem.
  3. Well.. by dr+ttol · · Score: 1

    I'm actually doing the same thing as you. I'm not a big fan of programming, so I don't know why you would want to do that. I would suggest studying finance as an alternative and not trying to make the switch over. Programmers are a dime a dozen ;)

    1. Re:Well.. by saden1 · · Score: 1



      but good programs will cost you at least 36000 dimes a dozen (do the math).

      --

      -----
      One is born into aristocracy, but mediocrity can only be achieved through hard work.
    2. Re:Well.. by pmz · · Score: 1

      Programmers are a dime a dozen ;)

      But problem domain experts are not. This is why interviewing for a programming position can be so frustrating. It is also hard to get past the severe biases present among programmers and the companies that hire programmers (e.g., "We use Struts. Struts is like manna from the gods, because we read about it in Java Slut magazine." or "Ant is better than make...because it's Java and XML and is the latest craze among us teenie-boppers"). System administrators are not immune, either (I know sysadmins who avoid even talking to each other, because of Windows vs. UNIX issues).

      Clearly, I'm not unbiased either (sigh).

  4. Prove Yourself by Markus+Registrada · · Score: 4, Interesting
    Join a Free Software project. Participate in bug fixing, at first, and then cleanup, and then implementing new features. After you develop some confidence and design judgment, implement something substantial by yourself. Then, do whatever it takes (meaning, really listen to more experienced people) to get it accepted, and maintain it and refine it according to qualified criticism and user whims.

    (Don't go start a new project. That's the last thing the world needs, another abortive project run by a newbie.)

    If programming turns out to be not your thing, you'll find out soon enough, and before you've got yourself mired in. One thing: as a Perl expert, you've most likely picked up habits that would make you an awful programmer. You will have to work hard to unlearn those.

    When you go looking for professional programming work, you can point to your substantial contributions, and they will speak for you. Choose your project wisely.

    1. Re:Prove Yourself by jmt9581 · · Score: 4, Insightful

      One thing: as a Perl expert, you've most likely picked up habits that would make you an awful programmer. You will have to work hard to unlearn those.

      Since when did being an expert at Perl make someone an awful programmer? Isn't Perl a programming language? It's possible to write terrible programs in Java and it's also possible to write beautiful programs in Perl. Who is more likely to write a beautiful program in Perl, the expert C++ programmer who is just learning Perl, or a Perl expert?

      I may be a little over the top, but I take offense to the idea that being an expert in a programming language makes you likely to pick up bad programming habits.

      --

      My blog

    2. Re:Prove Yourself by grammar+nazi · · Score: 3, Insightful
      jmt9581,


      The original poster is correct. Perl teaches terrible programming habits. Have you ever tried code object oriented Perl? You have to struggle just to maintain consistent clean code.

      I am more comfortable programming in perl than any other language.

      Your statement about "writing a beautiful program" misses the point entirely. The point isn't to write a beautiful program. It's to write a consistent and maintainable program. Perl loses on the consistancy side. There's-more-than-one-way-to-do-it only makes sense when you want to write a one-shot script to accomplish a menial task. Not when other poeple may eventually look at your code.

      --

      Keeping /. free of grammatical errors for ~5 years.
    3. Re:Prove Yourself by saden1 · · Score: 1

      Perl programs are typically like batch programs. They usually lack object oriented structure. And writing object oriented perl program isn't exactly as easy as writing an object oriented C++.

      I'm currently writing one big multi-threaded perl program to distribute tasks among networked computer and to tell you the truth writing it as if it were batch program is much easier than trying write it in object oriented fashion.

      --

      -----
      One is born into aristocracy, but mediocrity can only be achieved through hard work.
    4. Re:Prove Yourself by Anonymous Coward · · Score: 0

      After Six years of programming in PERL I have learned this: Most PERL programmers suck. They have no sense of design, they'll violate consistency for NO reason, they like stupid one liners. AND, they think globals are just fantastic.

      I'm saying this after SIX years hacking PERL. I'm the guy who usually comes in after a "PERL Guru" has been entrenched for a while and made such a horrible friggin' mess not even he can maintain it. I usually spend six months to a year teaching them how to program and teaching them WHY a global variable is BAD.

      PERL sucks for Software Engineering. After Six years of PERL I love to write in it but I hate to have to revisit anything. The sad part is I've spent SIX years in Perl... I don't know Java and I don't really know C++ anymore since I've not used it in three years.

      Listen kids stay away from PERL, Python, and Ruby. Learn things like C, C++, and Java really really well... then you'll have a future in things other than cleaning up after idiots.

      *LOL* I'm sure someone's going to quip:

      You'll have a future cleaning up after MORONS of C (C++, Java, what have you)...
      it's much better I'm sure...

    5. Re:Prove Yourself by pesets · · Score: 1
      Perl teaches bad programming habbits if one didn't study it in full. One hust needs to read all manuals and better code produced by professionals. The problem of OO in perl is that there are no dedicated keywords for it in syntax (like "class" or so) since OO is supported by a "special handling" in Perl, so people who just study language by glancing on the syntax are missing it. So Perl somehow may be indeed imperfect for bad programmers.

      The biggest problem of Perl compared to other popular languages like C++ or Java was that there were no 100% reliable tools able to convert perl source to bytecode or native code without ability of getting cleartext of source code - that lowered acceptance of Perl for commercial software. But IMHO with the availability of Stunnix Perl-Obfus - commercial obfuscator for Perl, this is solved now.

    6. Re:Prove Yourself by Unominous+Coward · · Score: 2, Funny

      with the availability of Stunnix Perl-Obfus - commercial obfuscator for Perl, this is solved now.

      since when did perl need any more obfuscation?

      --
      "Smoking helps you lose weight - one lung at a time" -- A. E. Neumann
    7. Re:Prove Yourself by pesets · · Score: 1

      Kidding? Not funny.

    8. Re:Prove Yourself by Anonymous Coward · · Score: 0
      After Six years of programming in PERL

      After six years, I would think you'd know it's "Perl" not PERL.

    9. Re:Prove Yourself by jbolden · · Score: 2, Interesting

      I may be a little over the top, but I take offense to the idea that being an expert in a programming language makes you likely to pick up bad programming habits.

      Have you ever heard the expression "A fortran programmer can write fortran in any language"? Knowledge of a language encourages certain ways of thinking and expressing problems. Visual Basic teaches people to organize programs based on primary UI screens, Java teaches people to organize programs based on their understanding of what is being modeled, Perl teaches people to organize programs based on inputs and outputs, lisp teaches people to organize programs based on solved algorithyms.

      To understand a Perl program you need to understand the input and output data that interested the author, to understand a java program you'll need to understand the author's object architecture, to understand a lisp program you need to understand the processes as the author saw them. Low level employees can be taught to all use the same object architecture and thus act more like cogs in a machine with respect to corporate programming.

      The author of the original comment is using "good programmer" to mean "interchangable cog" in particular things like:

      -- insightful
      -- creative
      -- artistic
      -- effecient

      are negatives while

      -- consistent
      -- blindly copying those around you
      -- artless

      are positve.

    10. Re:Prove Yourself by kbielefe · · Score: 1
      I hate to tell you, but there's-more-than-one-way-to-do-it in almost every programming language out there, as far as readability and style goes.

      I'm currently debugging some Ada code at work that was written by a primarily-C programmer. And believe me, this sticks out like a sore thumb in his code and makes it hard to read even though I am "fluent" in both Ada and C.

      Perl doesn't teach bad programming habits. Perl just allows bad programming habits to a somewhat higher degree than other languages. There is a big difference. C allows more bad programming habits than Ada, but you don't see people shunning C, do you?

      Perl was designed to read almost like english if you write it properly, which I (having english as my first language) think makes it very easy to read. Especially look at some of the powerful constructs in Perl 6. Stuff like regexps are even easy to read when accompanied by appropriate commenting.

      Perl written by a good perl programmer is the most maintainable out of any language I have worked in professionally. On the other hand, perl written by a bad perl programmer is the least maintainable out of any language I have worked in professionally.

      Same goes for english or any natural language. A five year old may speak English very poorly, but you don't see people blaming that on the language itself.

      --
      This space intentionally left blank.
  5. Why bother? by Anonymous Coward · · Score: 4, Funny

    Either way, your job is going to get shipped off to India.

    1. Re:Why bother? by Alan+Shutko · · Score: 1

      Actually, it's probably less likely that a sysadmin job will be shipped off to India, since there will always be hardware here in the states, and there will always be a need for _someone_ to manage it.

      I think that it's probably a bad career path for anyone in the US or Europe to get into software development right now. You'll need an exit strategy much sooner than you'd think.

    2. Re:Why bother? by dvk · · Score: 1

      Depends on the scale of your company. A big one (mine is an example), would ship off SAs/DBAs first.

      -DVK

      --
      "The right to figure things out for yourself is the only true freedom everyone shares. Go use it"-R.A.Heinlein
    3. Re:Why bother? by Alan+Shutko · · Score: 1

      Most, maybe, but not all....

      Contrast that to development, where there's _no_ need for a single local person.

      Really, they're both screwed professions, but SAs are less screwed.

  6. wrong topic by Anonymous Coward · · Score: 1, Informative

    you might want to try posting here: http://ask.slashdot.org/article.pl?sid=03/06/19/23 44253&mode=thread&tid=187

  7. true, but... by pb · · Score: 2, Insightful

    The thing is, you could say the same thing about BASIC programmers, or PHP programmers. And you might often be right, as well. It's a common generalization, a stereotype, if you will.

    Perl--like BASIC--gives the programmer a lot of rope to hang himself with. It's quite possible that if that's all you know, you'll have a lot of trouble in a more structured environment. I know I had to learn a lot going from BASIC to Pascal, for example.

    However, if you're an experienced programmer, if you learned good habits in the first place, or if you have some sort of bizarre knack for writing structured, well-maintained code in any language, maybe you won't have that many 'bad programming habits'. And after a certain point, a lot of this is subjective, anyhow. One person's bad habits can be another's coding guidelines.

    --
    pb Reply or e-mail; don't vaguely moderate.
    1. Re:true, but... by Eneff · · Score: 2, Insightful

      No, there's a big difference.

      For example, I hate spaces used for tabs in programming, mostly because I prefer 4 spaces for myself while many others prefer 2. If I'm looking at code, I do *not* want to see half of one and half of the other even if I prefer one to the other.

      Most things that I dislike are tolerable if consistant. Inconsistancy is the great sin.

    2. Re:true, but... by Anonymous Coward · · Score: 0

      Since we're talking stereotypes:

      Sysadmins who code generally code single-purpose stuff that's not very flexible or reliable. Scripts that hardcode paths and don't take options, and generally breakdown when someone blows too hard on them. Then the sysadmin can do his sysadmin thing and swoop in to 'fix' it and be the hero.

      Now, Perl in particular really encourages this coding style. Oneliners, obfuscation, "batch style" -- all add up to ensure that the code is only valuable as long as the guy who wrote it is hanging around. It seems like people make the transition to "Perl Programmers" but never get out of their sysadmin kludge style.

      Going from systems work to programming years ago, the lesson I had to learn: There's a big difference between "This solves the problem (for now)" and "This is a solution for the problem", and that most of the code you write is purely to make the solution extendable, maintainable, robust, and most importantly long-lived.

  8. Welcome to the brotherhood... ;) by jkakar · · Score: 3, Insightful

    I started as a sysadmin many years ago and was competent at it but my heart wasn't in it. It felt static to me. I suppose that's what maintenance is in the end, if you're good at it: routine.

    I enjoy programming, which I've been doing for about four years, because I get a variety of gratification: short-term: every few days you implement something or fix something that was broken and; long-term: you finish a project or major piece and see a system working as a whole. Neither form of gratification can really replace the other and I found that I didn't get enough of either of these as a sysadmin.

    Other than the ways in which the job is rewarding one thing I've really had to learn is to keep expanding my understanding of software and design. If you haven't already you should really look to learning what best practices exist and when/how to apply them; I'm thinking of things like design patterns, analysis patterns (bit dry but good), refactoring, etc.

    Good luck!

    1. Re:Welcome to the brotherhood... ;) by Sherloqq · · Score: 1

      I started as a sysadmin many years ago and was competent at it but my heart wasn't in it. It felt static to me. I suppose that's what maintenance is in the end, if you're good at it: routine.

      It all depends on where you work. I was a programmer for a year and a half, and realized that the programming I was doing was static and routine, and moreover, there was no way spice it up due to constraints imposed by higher-ups outside of the institution (for the lack of a better word). The job became mundane to me, and I did not feel very motivated to do much (I still did what I was supposed to, but I had to pretty much force myself to do it).

      Enter a job offer for a system admin at a young, growing company with a lot of potential. I always wanted to be a sysadmin (figured that out before college, and reinforced my belief once there), so I jumped at the opportunity. Due to the fact that the company was growing, fellow admins and I had the chance to engineer and re-engineer a lot of the facets of the backend infrastructure. Three years later we're still at it, making it better and better every day, and only now is the momentum slowing down somewhat. We're trying new things here, redesigning things there, trying to improve the systems, make them more efficient, resiliant to various problems and so forth. Yes, there's maintenance involved, and yes, maintenance can get tedious, as I've experienced several times now.

      One great aspect of my work at the company (and this will chime in with what someone already mentioned) is being involved with programmers. What that does for me is make me realize I'm not the only one who's using the systems, and I can't set guidelines and parameters arbitratily, but have to work with them instead, have to find common ground, have to search for solutions that work for both sides -- give a little here, take a little there, start over elsewhere etc. Gives a whole new perspective of what the machines mean to other people. Since I consider myself to be a people's person, and since I've been on both sides of the fence, this doesn't phase me as much as it would your run-of-the-mill BOFH (though I /do/ get protective of my machines sometimes and yell obscenities). Quite the opposite, adds dimension and improves my understanding of things. In the end, I feel accomplished (and proud) when I see that my work makes that of others easier, /and/ that my systems still run at optimum performance /and/ don't compromise security (hey, we all know how programmers code, right? :) ). I feel my work is done.

      ... until the next day :)

      --
      Have EVDO, will travel.
  9. Closed mindedness of some companies by vince1 · · Score: 3, Insightful

    It sounds like your skills and background are similar to mine. As long as you can show programming experience and skill, whether it is professionally or open software contributions, it is not too hard. However, some companies can be pretty limited in their mind set. A few years ago when I was moving from a sys-admin job to a development job NCAR in Boulder would not even interview me because they thought I had too much sys-admin experience to be a good programmer. they were apparently so limited in their thinking that they did not believe a person could know both fields.
    One of my favorite kinds of jobs are the ones that are a cross between sys-admin and development. They require skill in all areas. Higher level sys-admin positions I have been in required a lot of perl, shell script, and even some C programming along with systems/network administration because they have involved developing disaster recovery systems, and writing lots of automation programs, to automate sys-admin, publishing of web pages, etc.
    I have seen programmers so handicapped in their skills that they have to call the sys-admin for help just to set permissions on their files. Any company that is worth working for should consider sys-admin skill a plus. So keep looking and don't become discouraged if you encounter closed minded companies. You will be much happier in the long run being choosy about the type of job you accept.

    1. Re:Closed mindedness of some companies by leitz · · Score: 2, Interesting

      One of the concerns I hit at work is the gulf between the sysadmins and the programmers. Too few sysadmins are good at programming and too few programmers know anything about keeping the system maintainable. We just went through a bunch of sysadmin resumes and those that got attention included programming. If you are a sysadmin who can program it looks great in the interview and can build your niche as you transition. If you are considering this as a transition path, go for it! You'll put yourself ahead of others in the job search. And as you add professional experience to your degree you can move around in the career and get paid to improve yoursel

    2. Re:Closed mindedness of some companies by GoofyBoy · · Score: 1


      There is a difference between being a sysadmin and a programmer.

      For one, a sysadmin does not have to care about understand how to translate an end users business requirements into extendable and robust code.

      If you have lots of experience as a dentist, does that make you a good doctor? Would you hire a dentist when what you want is a doctor and they are available?

      --
      The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
    3. Re:Closed mindedness of some companies by mge · · Score: 1

      For one, a sysadmin does not have to care about understand how to translate an end users business requirements into extendable and robust code.

      and if i was nasty, i'd suggest that programmers do not have to care about support. But i'm not nasty, so i'll just point out that it's 11:00 Am on a sunday and i'm installing patches on a production system - just to business requirements (24x7 employee self service for a global corp).

    4. Re:Closed mindedness of some companies by vince1 · · Score: 1
      There is a difference between being a sysadmin and a programmer. For one, a sysadmin does not have to care about understand how to translate an end users business requirements into extendable and robust code. If you have lots of experience as a dentist, does that make you a good doctor?

      Of course not, but that's not the point. To use your scenario, If somebody has all the qualifications of a doctor, does the fact that they have been a dentist before make them a bad doctor? If you think so, then that is an example of the narrow mind set I mentioned that some companies have - that a person cannot learn and become good at more than one field.

      Would you hire a dentist when what you want is a doctor and they are available?

      No, not if they are not qualified as a doctor. But the point is that sys-admin experience can be, and usually is, a major asset to a programmer. To use your scenario again - If I had been shot in the jaw and needed a surgeon to reconstruct my jaw and teeth, then, if I had the choice, I would choose a doctor/surgeon who also has had all the training and experience of a dentist.

      If everybody believed that nobody can learn more than one field, then once you expand your skills to a different field you could never get a job in any skilled field again because every company would think that since you have experience in another field you could not possibly be skilled enough in the field you are seeking the job in.
  10. Entirely possible by msuzio · · Score: 4, Insightful

    I think making the move is entirely possible for you; you know computers fairly well, have a unique perspective on things that many programmers lack, and are used to being 'in the field'.

    Pish-posh to the idiots who say being a Perl programmer somehow taints you. Please. Bad programming habits can occur in any language... the mere fact that you actually *want* to be a developer probably means you would be willing to listen to constructive criticism on how to improve your code. So, regardless of background, you probably could *become* a great programmer if you have any aptitude whatsoever. Enthusiasm is the core attribute most shitty programmers lack, they do it just for the paycheck. Good programmers do it because they dig solving problems :-).

    Here are the key things you'll need:

    1) Code examples. You need a couple really good examples of problem solving and at least *decent* code. If Perl is your best language syntax-wise, then pick up "Programming Perl", read it over a weekend, observe the good programming habits in the code examples. Download a couple of Perl modules and read those too... that should show you how to write a Perl program while avoiding really nasty habits. Then write a program in that style to solve a personal itch. Get a couple of those that you can show some enthusiasm for, and you will do well in an interview where you get to talk to actual programmers :-) (it would impress me!)

    2) Look for a job where you can join a small-to-medium size team. Ideally, one organized into senior/junior developers. See, you want to learn from senior guys who are actively mentoring juniors. I know I do that, because the more I teach my team members how to most effectively program, the more I can delegate coding efforts to them and know they will do it mostly the way I would do it if I had time :-). So mentoring is a good deal for both parties. Hopefully, you can find a chance like that.

    3) If you get a job in a larger group, don't be discouraged. You might be shitty tasks parsed out to you, or you might get overwhelmed with tougher things you don't feel ready to tackle. Either way, forge onwards -- you're a programmer now! Read more good texts on programming (on company time) if you're under-utilized -- I'd hardly fauly anyone on my team who did that! If you're swamped, admit it -- and try to draw others on the team into that mentoring/sharing experience you want. Who knows, you might encourage better teamwork overall... some of the shittiest programming jobs got that way just because the team as a whole lost spirit -- as the new guy, you're the best equipped to cut through that crap (before you get sucked into it too ).

    I'd say give it a shot. You'll certainly learn something. In a pinch, you've got a lot of skills to fall back on. I mean, if you were under-utilized as a programmer, maybe you can fill out your time by offering sysadmin advice or picking up all those loose 'admin' tasks the IT department isn't handling :-).

    1. Re:Entirely possible by sql*kitten · · Score: 1

      Pish-posh to the idiots who say being a Perl programmer somehow taints you. Please. Bad programming habits can occur in any language...

      Not to the same extent. I'm not saying that Perl is a bad language, but it is one of a family of languages including TCL and shell that are best used for small, throw-away programs that just do one thing. Example: if you want to manipulate /etc/passwd how would you do it? Most perl programmers would read it and split() on :. I've done the same myself if I just want to do a job like say build a list of usernames and GCOS for another application. But there is actually a proper API to do it, getpwent(). Why use it when the hack method is so much easier, tho'? When all you have is a regexp parser, everything looks like a string. And if all you have is an associative array, everything looks like a hashtable.

      A C programmer wouldn't even think like that, instead he or she would automatically look for an API to do whatever they wanted to do. A C programmer wanting a custom data structure would think "linked list of structs", which can be a variable sized array, a b-tree, a web, whatever you want them to be.

      The problem with perl is that there is no one right way to do anything, many techniques can be as valid as each other. Perl programmers say that is a strength, and if you're just coding for yourself, it is. But if you're writing as part of a team, or code that will havbe several maintainers over its lifespan, then you will find that everyone has their own opinion on what is the "best" way, and those opinions won't match your own. That's fine in an academic debate, but not so good when there's a product to maintain 10 years after it was originally written.

      I don't mean to single out Perl and its relations particularly. C++ can be as bad. I remember one project where one programmer thought of a particular data structure as a stream, and overloaded >> to iterate over it from beginning to end. Another however thought of it as a stack, and in his code >> retrieved the last item, then deleted it from the main list. Both were valid from the points of views of those programmers, and the project manager couldn't make a judgement call as to which was "right". That was way back in the day, and whoever's maintaining it now (if they haven't rewritten it) has to remember that the same operator means very different things in different places! Get it wrong and you'll get the data you expect in reverse order and may or may not destroy it in the process!

      Some languages are better than others for larger projects. In my experience, both Java and Python are a good compromise between easy to write and easy to maintain.

      If you get a job in a larger group, don't be discouraged.

      I'd say go to the larger team for your first programming job - they're more likely to have the time, money and inclination to train you properly, and the skills you will learn (programming is only one of the skills a good programmer must have) will transfer far better than a small team where you are likely to become "all programmer".

  11. Just ignore the narrow minded companies by vince1 · · Score: 1

    It sounds like your skills and background are similar to mine. As long as you can show programming experience and skill, whether it is professionally or open software contributions, it is not too hard. However, some companies can be pretty limited in their mind set. A few years ago when I was moving from a sys-admin job to a development job NCAR in Boulder would not even interview me because they thought I had too much sys-admin experience to be a good programmer. they were apparently so limited in their thinking that they did not believe a person could know both fields.

    One of my favorite kinds of jobs are the ones that are a cross between sys-admin and development. They require skill in all areas. Higher level sys-admin positions I have been in required a lot of perl, shell script, and even some C programming along with systems/network administration because they have involved developing disaster recovery systems, and writing lots of automation programs, to automate sys-admin, publishing of web pages, etc.

    I have seen programmers so handicapped in their skills that they have to call the sys-admin for help just to set permissions on their files. Any company that is worth working for should consider sys-admin skill a plus. So keep looking and don't become discouraged if you encounter closed minded companies. You will be much happier in the long run being choosy about the type of job you accept.

  12. blah. by pb · · Score: 1

    That's why God created expand and unexpand; all you have to do is figure out how to use them once, and then you can make all your tabs/spaces problems go away forever.

    Sometimes inconsistency is worth it; it all depends on the situation. Remember, "foolish consistency is the hobgoblin of little minds".

    --
    pb Reply or e-mail; don't vaguely moderate.
    1. Re:blah. by pesets · · Score: 1

      Exactly - just use the tools to fit other code to your habbits.

    2. Re:blah. by GoofyBoy · · Score: 1

      >That's why God created

      The point is that it wasn't correctly formated in the first place. "A sloppy mind makes for sloppy code."

      >Sometimes inconsistency is worth it; it all depends on the situation.

      Could you tell me when inconsistency is worth it when it comes to formating? I really can't see a business rule or difficult programming situation where it would be acceptable. Being lazy or the fact that I am limited to 80x40 characters on the screen is not an acceptable reason.

      --
      The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
  13. Sysadmins and Software Engineers by hbo · · Score: 5, Insightful
    I've been a sysadmin for 17 years. I do a lot of programming in my work, mainly in OO perl, so I have a perspective on the two disciplines that might be helpful. Warning: the following statements are generalizations. Not every sysadmin or software engineer will fit neatly into the boxes I describe here.


    One of the things that attracts me about sysadmin is the variety of tasks required to do the job well. You have to be good with computer systems, of course. But your computer knowledge has to be broader than average, because solving systems problems frequently requires understanding the system at several different levels at once (Here I use "system" to include multiple computers connected with a network.) You also have to worry about hardware, and may find yourself elbow deep in a rack or under someone's desk. In addition to the technical aspects of the job, you also need to interact with people an awful lot, often under under difficult circumstances.


    Computer programming requires a different skill set. Here, intense concentration on a single subject is a key skill. Your knowledge needs to be very deep in the particlar area you are working in. There's less of a premium on people skills. I don't have a college degree, and I've noticed that such degrees are less common among sysadmins than among software engineers. This could just reflect hiring bias, but I suspect it actually means something. Academic training in Computer Science, particularly in algorithms, is probably more useful for a software engineer than for a sysadmin.


    For myself, the coding I do is another of the whole suite of tasks I am called upon to address as a sysadmin. I enjoy the intense concentration, but I'm glad I don't have to keep it up year after year. Instead I can jump from task to task, often having several going at once. Or I can learn some new technology that has popped up in the workplace. My jobs have been anything but boring, and boredom is my number one bummer thing.


    Shameless plug: It's ironic that people who appear so similar on the surface can be so dissimilar at a deep level. (I've written a whole paper about it. The software it describes is at http://egbok.com/sudoscript

    --

    "Even if you are on the right track, you'll get run over if you just sit there" - Will Rogers

    1. Re:Sysadmins and Software Engineers by cerberusss · · Score: 1
      elbow deep in a rack [...] under someone's desk
      Sounds liek a great job!

      --
      8 of 13 people found this answer helpful. Did you?
  14. Find An Unmet Need by esme · · Score: 3, Insightful
    I started out at a small (~15 people) company, and I mostly did desktop publishing stuff. I was also into Linux, so when the guy who had been running the office server left, I got that, too. I later left and got a job as a sysadmin.

    But the department I was in had all kinds of programming needs that weren't being met by the programmers. There were a lot of admin. assistants doing tedious manual work when an Excel spreadsheet or Perl script could do it much faster. So I just started doing little apps for the people I knew and got a reputation as someone who could get stuff done.

    Then I found another need -- there was a huge hole in our website (campus map for the university where I worked) that nobody had time to fix. So I made my own webapp for it and started talking to the people who ran the official site about using my version instead.

    They hired me about six months later.

    So my advice is: find an unmet need and meet it. Another post mentioned open source, which could be a good route. But if you fix something your boss needs, it's much more likely to result in a programming job.

    -Esme

  15. My experience by rikkus-x · · Score: 2, Interesting

    I followed the same route, here's a brief rundown of what happened.

    I found a project that interested me (KDE) and started trying to write my own program for it. I tried to made a graphical version of videogen, which is an XFree86 modeline generator. My version made it a little easier to play with combinations of the various parameters, and therefore scratched my personal itch. IIRC I announced it on freshmeat and got a few emails from people who wanted assistance or to request features.

    Now that I had a little experience with writing for KDE, I made my own version of the classic game 'sokoban.' KDE and Qt made this really easy (even for me as a beginner) and I had it usable in a few days, though I hadn't noticed that there was already a sokoban clone in the pipeline for inclusion into KDE, so that little app died off.

    At this point, I decided that kmail wasn't as good as I would like, and decided to try and help out, but I was about to lose my internet connection for some months and didn't feel that my skills were good enough to be actually putting code into live KDE apps, so I started my own mail client from scratch.

    By the time I got my internet connection back, I had more confidence and started coming up with patches for KDE. From this point, I got more involved with the project and the community. I have my own application in the network module now, and though I don't have time to work on KDE actively right now, the skills I learned have helped me get my current job (where I get to use Qt, which is great for me.)

    I would definitely recommend the route of scratching your itches and getting involved with a large project, assuming you are comfortable working in such an environment.

    Rik

  16. "Review" of Stunnix Perl-Obfus by m_ilya · · Score: 1

    Since you are posting Stunnix Perl-Obfus ads on slashdot I think I should post a link on its "review".

    --

    --
    Ilya Martynov (http://martynov.org/)

  17. Irony is .. by stevey · · Score: 1

    I'm suprised at the direction of the change..

    I grew up with computers, my first being a ZX Spectrum, then graduating through bigger machines until I landed in PC-land.

    I fought for a job with a local company a few years back and managed to become a java programmer despite minimal knowledge. Since then I've worked for about four years as a Java/C++ programmer - utilising other skills such as perl, x86 assembly, etc.

    After that much time though I realised I actually hated programming for other people - it took most of the fun out of it. (This is a simplification of course).

    Luckily I found myself in a position to do 'part time' sysadmining when a colleauge left the job.

    Now I'm full-time sole sysadmin for a larger company and I couldn't be happier.

    Sure I still write code .. bash scripts, perl code, and other utilities to help myself and my minions - but now I do it for fun.

    There's no way that I'd ever go back to being a developer. I like the variety, the challenges, the sheer unpredictability of my current role - becoming a developer would remove so much of that.

  18. Done it both ways. by McSnarf · · Score: 1
    I. You can always go back
    II. Everything becomes boring after some time
    III. Next career step might be training
    IV. ...or management
    V. ...or management of networks, not people.

    Enjoy ! :-)

  19. Go via Testing. by Manic+Miner · · Score: 2, Insightful

    I know most people hate testing and see it has a dead end boring job, but if you take the right attitude it can be a good gateway to a future career in development (hey you might even find you like test).

    With your skill list, in particular you use of scripting languages, I would say you are ideally placed to join a company as a software tester. While you have no experience as a tester machine maintenance and scripting is always needed, there is usually the opertunity to produce software testing frameworks and "real" code to test your product with.

    Do this job for a couple of years, but make sure you build a really good relationship with development during that time, and whenever possible do as much product diagnostic as you can. Once you have proved yourself as a good tester and coder, with good product knowledge, the move into development is easy just talk to the people you know about moving.

    This is exactly what I have done, moving from a sys admin role, into software test, and will be moving to developing the product I once tested in a few months time.

    Good luck and hope you enjoy it!

    --
    If you ever drop your keys into a river of molten lava, let'em go, because, man, they're gone.
    1. Re:Go via Testing. by pmz · · Score: 1

      I know most people hate testing and see it has a dead end boring job, but if you take the right attitude it can be a good gateway to a future career in development (hey you might even find you like test).

      Does software testing pay? I've seen postings for software testers but am skeptical that those positions could pay as well as system administration or software engineering. I'd love for my skepticism to be proven unfounded, however.

    2. Re:Go via Testing. by Manic+Miner · · Score: 1

      As a tester I earn either the same, or in some cases slightly more, than people of similar experience / age who work for development within the same company.

      --
      If you ever drop your keys into a river of molten lava, let'em go, because, man, they're gone.
    3. Re:Go via Testing. by Anonymous Coward · · Score: 1, Insightful

      High-end testers are basically a combination of programmer and sysadmin. They need to understand configuration management as well as write scripts for WinRunner (etc) or even things like unit tests. A lot of them end up managing builds, reading debugger output, etc.

      Keep in mind that there's tons of shite programmers out there who think "it compiles - now you tell me if it works". Especially with, um, foreign contract shops, QA gets pretty heavy investment sometimes.

      During boomtimes, these guys were getting ~$100K in the bay area. Can't say what it's like now.

  20. BDFH by Lord+Sauron · · Score: 0, Offtopic

    Behold the Bastard Developer From Hell.

    He makes programs that will surely crash or give false results, thus freaking out the luser.

    Rumor says some BDFHs work in Microsoft.

  21. some obvious materials youll need by kurosawdust · · Score: 1

    the Knuths! the Knuths! the Knuths are on fi-ah!

  22. Programmers Program by Dunkirk · · Score: 2

    There are some really good comments here, but I haven't seen this one yet. I came to understand it because I've had several young people ask me to teach them to program. I'm of a strong opinion that programming can't be taught. At least, not useful, elegant, maintainable, and thrifty coding. I quite agree that coding is an art, and, as such, the old adage "writer's write" is key. I've heard this told to aspiring writers, and it simply means that if you have a future in writing, you will already be, say, keeping a journal, or submitting stories to the local paper, or, these days, keeping a blog. The point is that when someone is at the point you're at (asking if they should go into a field), you can predict their success based on what they're already doing. The bottom line is that if, as a sysadmin, you don't find that you're already writing a lot of programs to help you do your job, then you're probably not really a programmer. Can you do it anyway? Sure. Anyone can do anything they have the talent for given enough determination, but it will just be a job, and that tends to wear thin. I guess I'm in the camp that believes that a being able to write really good code is more of a gift than a talent, and finding your purpose in life is about finding your gifts. If you have that gift, you'll enjoy it. But if you do, you're probably already doing it.

    --
    Acts 17:28, "For in Him we live, and move, and have our being."
  23. Not just artists... by checkyoulater · · Score: 1

    The same burnout effect can happen to professional atheletes, as well. Ever heard of Alexandre Daigle? He was a first overall NHL draft pick, and was expected to be a superstar. He only played about 5 years and just quit. He said he was bored, and effectively burnt out, after playing hockey since he was a small child. Eventually he admitted that the main reason he played was because he was good at it, not necessarily because he loved to play.

    --
    Is that a real poncho? I mean, is that a Mexican poncho or is that a Sears poncho?
  24. Try your current employer by Undertaker43017 · · Score: 2, Insightful

    See if your current employer has any opportunites. The advantage is that they already know your a good worker (assumption ;) and you may already know some of the managers in the development area and can convince them to take a chance on you. If you have to, offer to keep doing your current system administration duties. This could mean extra work for you, but if you can gain the programming experience you need it will be a win in the end.

    My other advice is to keep your system admin skills fresh. I have been doing both sys admin and programming for my entire career (15+ years) and when times are tough, like now, being able to take jobs in either area is a nice advantage to have.

  25. The converse of this question is valid, too. by pmz · · Score: 1

    What about moving from programming to system administration?

    One problem I percieve is that employers currently have a surplus of canidates and have a luxury of being very choosy. So, for example, I have a stacked resume but not much system-administration-specific work experience, so I am already at a disadvantage relative to someone with even one solid year of sysadmin work under their belt.

    It feels as if making any career change, right now, is an uphill battle.

  26. Hey by Hard_Code · · Score: 0

    ...wanna switch?

    --

    It's 10 PM. Do you know if you're un-American?
  27. From someone that's made this leap before, by Sevn · · Score: 1

    I think it happened because it was supposed to in
    my case. A large part of the admin work I've had
    in the past involved task automation. I worked for
    a very 'frugal' employer that wasn't interested in
    spending money for anything. Over time, the projects
    I spent time on got increasingly complex. What
    started out in the early years as mostly writing
    simple perl glue code to make product A talk to
    product B snowballed into writing full shopping cart
    programs in C. I made the jump to developer when I
    was tasked to write custom web-based applications
    for internal customers on the fly utilizing full
    project life cycles. Eventually the projects got
    big enough that I required a team of underlings
    to help me code my visions. I ended up doing less
    and less admin work, and more straight developing
    until that's all I was doing. I guess the best
    advice I can give is a two parter.

    #1. Make damn sure you are the kind of person that
    can sit down and puke up X number of lines of
    half decent code in X number of hours without
    going insane eventually. Developing isn't for
    everyone. To be honest it ultimately wasn't for me
    and I burned out on it.

    #2 Help out. Speak up and get yourself involved
    with a team working on something that interests
    you. If that doesn't work, give some of your time
    to a well chosen open source project. I've seen
    plenty of developer wannabe's get instant
    attention and admiration by putting in time with
    an open source project that directly benefits
    the company they work for. It's a great way to
    get noticed.

    Hope this helps

    --
    For every annoying gentoo user, are three even more annoying anti-gentoo crybabies. Take Yosh from #Gimp for example.
  28. Here's my 0.02USD by x00101010x · · Score: 3, Insightful

    I started programing in BASIC and then BASICA on an old IBM XT with IBM DOS 3.something. I learned by example from BASIC games in the back of Highlights magazine (science version) borrowed from my JrHigh teacher. I now work at a small game developer in southern California making 35,000USD with only a GED.

    I give that background to say that this 0.02USD is coming from the other end of the spectrum, I've taken some CS courses at the local Jr College, but of the 3 professors, 1 is a geneous (worked for JPL out of highschool and designed a guitar pedal for Hendrix) and the other 2 are boneheads, after I did all the courses from the good prof. I quit and am now looking at going back to school for a completely job unrelated major (like english).
    Anywho, so I really don't know what your CS studies have given you in the way of preparation for the real world of programing, but if say you were going to come work with me, here's what I'd want from you.

    1) DOCUMENTATION! DOCUMENTATION! DOCUMENTATION!
    I don't know about undergrad level CS, but the 100 to 200 level courses I've been exposed to lacked grotesquely in this aspect.
    Remember, when you get paid for code, sure your check depends on if it works or not, but to give your employer their honest moneys worth you should really supply documentation in the form of at least one technical design document and lots of comments in your code. Also (and this is more personal preference than anything) most compilers in most languages can work with pretty long variable names so use the long names and save on comments (I don't mean never use 1 letter variables, 'i' is fine for a loop incremental, but with more importaint or complex things, go big).
    Remember, you're probably not going to be at company X forever. So when the time for feature additions or new platform support comes down the line, the code you can be proud of is code they can throw at a Jr programer for the tweaks and not give him/her an ulcer just trying to figure out WTF you were trying to do, let alone where the bug/incompatiblity is. Also, even if you are at company X forever, you may be busy with project Z when they need work done on project Q from when you first started there. So they give the fixes to another programer, imagine how embarrased you could be if they crack open your source and see a big uncommented mess! Maybe project Z will end up being your last.

    2) Avoid band-aids!
    Note I say avoid and not never use. When there's a problem with the way an object was designed (possibly due to no fault of your own, being a smaller company in the games buisness, publishers love to throw feature changes at us half way through a project because they can get away with it) take the time to rewrite the object if needed. Of course unless it's the day before your milestone and there just isn't time, then it's okay to do a bandaid, but then document the hell out of so that when/if anybody else has to go into your code you don't look like an idiot.

    3) Paper first!
    Thats something I learned from the 1 good professor at my community college. When I whip up little tools and such (which I imagine is most of the author's experince, making tools to make admin life easier) I just jump right in and code. However, when it's code in the actual product it's worth it to take the time to sit down and draw it all out on paper. Pseudo-code, object diagrams, hierarchy, sure there's visualization programs out there but it's faster on paper.
    One of the big advantages of drawing it out on paper is that as a programer (at least as me) you get attached to that object you stayed up until 3AM writing. Then you find a flaw in it and should rewrite it, but it's so much more tempting to just bandaid it. If it had been written out on paper first, you may've caught the design flaw ahead of time and instead of throwing out all that code, all you're looking at is a little scribble here, jot down some new psuedo-code and a little scribble here, there and there to carry the changes to all the depen

    --
    DONT PANIC
  29. Depends on the environment by phorm · · Score: 1

    If you've been stuck in a job where you've got several projects on the go, possibly all in different languages (plus databases), and with upcoming deadlines: chances are you will at some time face burnout. It's nice in that case to be able to have something to drop back onto. Sysadminning is a decent switch as you still have some coding but are often away from the hardcore coding. In the same aspect, coding can be a nice switch after being a sysadmin where users are screaming at you because their end-of-year reports are due and the server has crashed somewhere...

    I've often considered a non-computer job, something in electrical, electronics, or perhaps automotive would be nice. I like to work with hardware, and my car isn't really that much more mystifying than a lot of PC stuff. Having something to switch off can be nice, especially if your current market gets overloaded with applicants.

    As for coding, it's almost like a drug. You can become completely involved in a piece of software: resizing arrays in your head, dreaming up functions while you sleep, etc for the length of the project. Then, you almost want to cry when you're 95% done and you have to give up your baby because of a budget slice, or because a cheaper/faster/premade solution presents itself.

  30. I am considering the opposite by pvera · · Score: 1

    I am a web developer but since I am the only technical person in the company (15 employees, ceo and president are a married couple) I end up taking care of all IT. In my previous job IT meant 99.99% Microsoft stuff. Here it is two windows servers, two windows desktops and at least 15 mac desktops. Oh yes, and a freeBSD mail server.

    I am noticing that it annoys me less and less to spend the day dealing with IT issues instead of writing code. It's also a lot of hands-on experience I was not getting before. I always assumed I would spin off my own company after I had enough non-programming experience (just because you have been a programmer 15 yrs does not make you qualified to open a programmer business by yourself) but lately I realized theres a lot of technical stuff you always take for granted.

    For example, buying a new office phone system is a pain in the ass. Or switching from tapping into somebody elses network (we paid him $500/month, total ripoff) to having your own T1. Or trying to turn on the firewall rules on a goddamn Netopia 4522xl with crappy documentation and conflicting advise from SECOND tier tech support.

    I guess most of us will be toeing that line. Most web devs I know are stuck managing their own servers because their clients are too cheap to hire proper help to get their servers setup. And this is stupid stuff like installing a sql server or locking up the SMTP in IIS so it does not end up being abused as an open relay, that kind of thing. Mention Oracle or Sendmail and they freak out.

    --
    Pedro
    ----
    The Insomniac Coder
  31. Handling burn out in the programming field by GoofyBoy · · Score: 1


    Move up in responsiblity.

    As you take on more responsiblity you get farther away from coding and more into a larger scheme of things, technical design, managing people, moving numbers around in budgetting.

    Its a whole different set of skills, whole different world and you are leveraging the base/low-level knowledge you have from programming.

    Looks good on a resume, its good money and you can always return back when you feel like you are getting "burn-out" from the higher level stuff. :)

    --
    The surprise isn't how often we make bad choices; the surprise is how seldom they defeat us.
  32. It's possible - but be aware of the differences by phamlen · · Score: 4, Insightful
    (Just a note on my background: I've been a programmer for 10+ years and a sysadmin for 4+ years. I've also managed software development teams and Operations (sysadmin) groups.)

    Tip #1: Be aware that system administration and programming are different things. Understand the differences - in some cases, your sysadmin background will be invaluable. In other cases, your background will be useless. The rest of this comment is a description of some of the differences.

    Tip #2: Software development is largely about solving business problems.
    While system administration is largely about keeping machines/networks/infrastructures running, programming is all about building a product for a customer (even if the "customer" is really an internal user and the "product" is just a program). Thus, when you switch over to programming, you focus on building what your [customers|users|product development team] wants. You need more people skils, more UI skills, more "analysis" skills.

    Tip #3: Programming is different from "sysadmin scripting".
    Other posters have definitely mentioned this, but understand that programming is very different from scripting. Admittedly, some system administration scripting is really programming but most of it isn't. Some of the key differences:
    • Usually, you work on a component of a system. Thus, other people will use your work and may require a specific interface/design. You have to understand what the users of your program need it to do.
    • Programming usually requires more discipline. Your code may be reused in other systems - thus, it has to be more strict about checking for errors, needs to be error-free even when used differently than you imagined, needs to have some level of documentation, etc.
    • The design of the code matters - not just that it gets the right result.
    • The "process" matters a lot. People care whether you are writing code that meets the right requirements, whether it's testable, whether you're sticking to the schedule, etc.
    • There's a lot more - see some of the references below to read more on this subject.

    Tip #4: Software development is a team-effort. You'll need to conform.
    Software development (in all but the smallest efforts) involves a team. Thus, you'll find:

    • Other people become dependent on what you write. If you're late or your code doesn't work (or there are bugs in it), it usually affects someone else - who usually gets upset.
    • You have to get along with the rest of the team - including accepting their design instead of yours, picking up work that other people haven't gotten to, etc.
    • You'll have deliver to a schedule, warn when you miss it, and sit in innumerable meetings to discuss whether everyone is going to make the schedule (hint: they aren't. :)
    • You'll have to conform: you'll need to use the same editor/development environment as everyone else. You'll need to conform to coding standards, etc.

    Tip #5: Good system design/architecture skills are very different from system administration skills.
    System design/architecture is complicated - and involves a completely different set of skills than system administration. Don't assume you can build systems just because you can administer them. Luckily, you don't need these skills when you begin - just be aware that system design is very different than programming.

    Tip #6: Most programmers haven't a clue about system administration - use this to your advantage!
    I apologize to all the great programmers who I'm offending, but most programmers/architects tend to ignore the system administration issues surrounding a system. For example, do they have a rollout/rollback procedure for releasing components? Do they have an interface for stopping/restarting components - or do they just expect the sysadmins to 'know how to do it'? This is one area where

  33. Terrific post... some questions... by doc_traig · · Score: 1

    Thank you. What do you find more rewarding? I've done a mix of sysad and ops management, with programming/dev only at the academic level. I found many aspects of management enjoyable and challenging, but am now back to infrastructure management because I worried I strayed too far from the hands-on work that got me to management to begin with. I'm wondering if my future in infotech management will suffer because I don't have professional program development in my resume.

    --
    So long, michael. Don't let the door hit you...
  34. sysadmin/programmers by big!theory · · Score: 1
    this is a great idea. I'm a dba (a flavor of syadmin) and a developer. Not a "wears two hats, expert at neither" that you see in small shops or MS shops. Got several years of doing each intensely.

    this skill combination makes you qualified to work on large projects and gives you the deep admin skills needed to implement/make production ready the app you've developed.

    my observation has always been that sysadmins as a group have fewer people skills than developers or people who work closer to the user. Are you user-friendly? Do you tolerate poor or changing requirements? These are bigger issues for developers.

    a lot of sysadmins can't write code. Or can only write job-scheduling scripts, however complicated. this is really different from implementing business functions. are you interested in solving the business problem? (a lot of sysadmins here think they solve the business problem. The customer doesn't. the customer thinks the apps that implement their business functions are what solves their problems.)

    if you love sysadmin, you should probably stick with it. but if you want to really extend your skills you can become a one-stop shopping expert.

    I can't agree with the suggestion that you try OSS work as a way to get started. most customers don't understand it, some are afraid of it. and frankly it's a lot tougher than a lot of commercial programming. better to work your way up to it doing commercial work, getting a paycheck while you learn. an hr rep doesn't understand a job reference from an OSS project.

    if you think it is a good personality match, go for it.