Slashdot is powered by your submissions, so send in your scoop

 



Forgot your password?
typodupeerror
×
Programming IT

System Admins Should Know How To Code 298

snydeq writes "You don't need to be a programmer, but you'll solve harder problems faster if you can write your own code, writes Paul Venezia. 'The fact is, while we may know several programming languages to varying degrees, most IT ninjas aren't developers, per se. I've put in weeks and months of work on various large coding projects, but that's certainly not how I spend most of my time. Frankly, I don't think I could just write code day in and day out, but when I need to develop a tool to deal with a random problem, I dive right in. ... It's not a vocation, and it's not a clear focus of the job, but it's a substantial weapon when tackling many problems. I'm fairly certain that if all I did was write Perl, I'd go insane.'"
This discussion has been archived. No new comments can be posted.

System Admins Should Know How To Code

Comments Filter:
  • by uCallHimDrJ0NES ( 2546640 ) on Monday October 22, 2012 @06:31PM (#41735153)
    People who've never coded tend to have many "magic boxes" in their thinking about systems. I find it hard to fully trust an administrator who can't at least parse through other people's code.
    • by bolthole ( 122186 ) on Monday October 22, 2012 @06:35PM (#41735197) Journal

      Depends what they're administering.
      There are plenty of systems that are more closed, and the sysadmin should be spending their time living in the pre-provided frameworks, rather than coding their own.

      Many times, it's a matter of learning what is already available for the system, rather than coding your own, lesser quality replacement.

      • by pinfall ( 2430412 ) on Monday October 22, 2012 @06:40PM (#41735239)
        I don't code a lick after 15 years of sysadmin. I do solve incredibly interesting problems with hardware and that ability alone provides a serious interface to all those 'needs software' perspectives. All of my best friends are coders, we just solve problems differently.
        • by Mr2cents ( 323101 ) on Monday October 22, 2012 @07:05PM (#41735461)

          You don't or you can't? Because even when I'm not coding, just in day-to-day computer use, I often write scripts to batch-process or automate various things. I have found this highly beneficial. I don't want to break you down, I just want to know your reasoning. Personally, I can highly recommend learning scripting, be it bash/awk/php (yes, I wrote php scripts)/powershell/whatever, I'm sure you'll benefit from it.

          • by fsck1nhippies ( 2642761 ) on Monday October 22, 2012 @07:17PM (#41735567)

            2Cents, you are absolutely right. Even in windows systems, a basic understanding of what can be done with code can stop 5 people from running around to a couple hundred machines each.

            Should the sysadmin be a programmer? Not in the conventional sense, but they should be able to programmatically attack the problems placed before them before they just brute force their way through them.

            • by scubamage ( 727538 ) on Monday October 22, 2012 @07:42PM (#41735779)
              Exactly - it comes down to a matter of cost very often. If you can spend a half hour throwing together a script to make a configuration change across, say, 2000 devices (or in our case, several million), it is far cheaper than trying to find a vendor solution, or having folks go out and do the work themselves. The vendor will often have maintenance fees and high initial costs for a tool that "sort of" does what you want. You can have people go out and pound pavement, but if you have 2000 devices and send out 50 people, and it takes each person 20 minutes to do the work on the device plus 30 minutes trave time, times 17$ an hour... well, that adds up fast too. Not to mention the opportunity cost and backlog of tickets that that would generate.
              • by fsck1nhippies ( 2642761 ) on Monday October 22, 2012 @07:49PM (#41735835)

                I see a lot of admins in very large companies throw labor at a problem as their first course of action. It is typically a face palm moment for me as I often see the problems as fixable in minutes. I believe that all sysadmins should be able to program, but think that making a programmer a sysadmin is generally a bad idea.

              • by LongearedBat ( 1665481 ) on Tuesday October 23, 2012 @01:08AM (#41738075)

                make a configuration change across, say, 2000 devices (or in our case, several million)

                Running a bot net, are ya?

          • by Rennt ( 582550 )
            OP made a distinction between coding and scripting. It's assumed that EVERY sysadmin does scripting, but very few can code.
        • by karnal ( 22275 ) on Monday October 22, 2012 @07:35PM (#41735719)
          I have coded in the past using Perl to give us some reporting ability from some non network-connected (think no email/notification ability) phone switches. They had relay outputs that would trigger on an alarm; so we used a box to generate a trap that would fire up my perl script to send out emails to whomever was in the config. I don't know a lot - I mostly use bits and pieces of code found around the web and customized to purpose. I initially thought I wanted to code for a living, but found in my first job that politics trump the technical, and boy were the politics thick. I do more security/administration nowadays, but still draw on the basic coding ability to create automated notifications for anything non-standardized. Really what I'm trying to say here is sometimes the basic experience of coding as well as a need to fulfill a solution that doesn't have a canned solution readily available can push you to do some interesting things.
        • I think you have another step in your development as a sysadmin my friend. You sound like you're still in a bit of the I have a hammer, so these problems must be nails. Sometimes a mix of some carefully crafted scripts as well as hardware is the most elegant solution (especially when cost becomes an issue).
      • by Chris Mattern ( 191822 ) on Tuesday October 23, 2012 @06:50AM (#41739609)

        You missed the OP's point. The point isn't that you'll necessarily be coded for the system you have. The point is that knowing how to code provides critical understanding of how a computer operates that a sysadmin needs regardless of whether or not he's actually coding.

    • Comment removed (Score:5, Insightful)

      by account_deleted ( 4530225 ) on Monday October 22, 2012 @06:50PM (#41735327)
      Comment removed based on user account deletion
      • by countach74 ( 2484150 ) on Monday October 22, 2012 @06:54PM (#41735365)
        I think you missed the point. The coding helps save you time in the long run. Not the other way around.
      • The problem is the way corps shit all over IT they'll just go "Hey, one more job we can dump on them without raising their pay!" and that will be that.

        Lets face it folks, we are gonna end up with critical shortages of IT and infrastructure workers because between the offshoring, the H1-Bs, and the PHBs treating IT as this money pit that doesn't give them any profits? IT has been shat upon for the good part of the last decade.

        I know myself and most of the old guard guys I knew ended up getting out of corporate IT for just this reason, piling more and more work upon us while expecting everything to be done with less help and a shrinking budget...now you want to add coding to the requirements? You gonna add a pay raise and pay for the classes? Yeah, thought not.

        You're right, with caveats, which I will get to in a moment.

        I'm not entirely sure, but I strongly suspect that this situation you describe will turn around, at least a little. There's been some high profile fails in the news associated with outsourcing, either personnel or relying on cloud services, and as more and more outsourcing is done, I think these fails will get more spectacular and more common. You can already see a few companies swimming against the current. I read I think yesterday that GM is i

    • by White Shade ( 57215 ) on Tuesday October 23, 2012 @12:44AM (#41737947)

      I feel like even if you're not going to be doing any hardcore programming, at least having the mindset to be able to reason out the functional blocks that make something in the computer happen is a huge benefit.

      If you know that to do X, you need to do something along the lines of A,B, and C, even if you don't know exactly what A, B and C are , or you don't know how to actually implement it, you're still miles ahead of someone who just doesn't get it.

      That was my experience in programming classes in college too... some people just got it and could make things work relatively efficiently within the boundaries of their knowledge, but others just had no idea at all and were always so far of the mark that it was almost a waste of time for them to even try anymore.

    • I never trust a plumber who can't wire up a fuse box either. Same goes for a doctor that can't practice law. Fuck specialist skills, everyone should know everything
  • by Anonymous Coward on Monday October 22, 2012 @06:32PM (#41735163)

    ...and support for that matter.

    • by Motard ( 1553251 ) on Monday October 22, 2012 @06:55PM (#41735373)

      I've worked in companies ranging from 5 people to 40,000 (and plenty in between). In the smaller shops I've had to do administration, development, desktop, and customer support. In the larger 'enterprise' shops, I'm constantly amused by the myriad breakdowns in communications caused by folks being incapable of putting themselves in the shoes of their coworkers.

      Being a developer made me a better system administrator. Being an admin made me a better developer. Same with operations, support, et. al.

    • by scubamage ( 727538 ) on Monday October 22, 2012 @07:28PM (#41735655)
      Agreed. Several companies I have worked for have had coders who couldn't care less about the fineries of system administration. All they care about is having a nice development environment and a working svn/git where they can store their code. They couldn't care less how the infrastructure behind it works.
    • by dbIII ( 701233 ) on Monday October 22, 2012 @07:32PM (#41735689)
      A lot of the time you don't want developers administrating other people's gear since you get shit like unnecessary reboots of servers during peak working hours leaving 300 people with nothing to do apart from read newspapers (one memorable example). It's not skills that separate a good developers from a good sysadmin but instead a consideration of inter-related systems and caring about consequences of actions.
  • Sure thing (Score:2, Insightful)

    by Anonymous Coward

    Next you'll tell me my developers should know how to admin a server and do so at a drop of a hat.

  • Sure (Score:5, Insightful)

    by xaoslaad ( 590527 ) on Monday October 22, 2012 @06:37PM (#41735213)
    And if you're going to say I'm a programmer then pay me like one. I don't think most sysadmins get paid as much as programmers, and I don't think most companies want to pay sysadmins as much as developers.

    Also, developers trying to write tools for sysadmins usually suck at it, unless they've been a sysadmin at some time in the past. I have used a few products lately which are trying to solve all our sysadmin problems, and the one that doesn't suck comes from a dev who is a former sysadmin. And when I talk to him and make suggestions he sees exactly where I'm coming from.

    Developers just want to solve use cases that fit neat little scenarios without any corner cases, and it shows when their tool is so inflexible as to be useless.
  • Not only admins (Score:5, Informative)

    by Mr2cents ( 323101 ) on Monday October 22, 2012 @06:39PM (#41735223)

    In general, everybody dealing with computers can benefit from a bit of programming knowledge, not only admins. The rule of thumb is: if you're doing a repetitive, braindead job, you're doing it wrong. Computers are built to do exactly that. A small script can automate a lot of work for you, if you have that skill it can help you tremendously.

    • Re:Not only admins (Score:5, Interesting)

      by Mr2cents ( 323101 ) on Monday October 22, 2012 @06:48PM (#41735309)

      PS: YOu don't really need to know how to program, if you can just identify tasks that are braindead and repetitive, that's already a plus. Then you can go and talk to someone who does know how to program, explain the problem, and this person might come up with a simple solution for you. It all boils down to this [imgur.com].
      Unfortunately, many people are not trained to identify automatable jobs.

      • It all boils down to this [imgur.com].

        That's a great graph. Took me a minute to realize that it was very strange to me to have time on the y axis, since it so rarely appears there - but once I got used to tilting my head at 90 degrees, it worked.. :)

      • Re: (Score:3, Insightful)

        by garcia ( 6573 )

        Not trained? What? Most people I know realize the tasks they do could be automated. However, they do everything in their power to ensure they aren't because they believe it keeps their relatively mindless and easy job "safe". This mindset is prevalent in the public sector and the unionized public sector especially.

        I was able to come in and completely revamp a position I was hired to do to expand it to encompass at least 50x more work with a little Access/VBA and some learned-on-the-job DW knowledge.

        They are

      • by tibit ( 1762298 )

        I think that these days programming is like being literate. Sure you don't really need to know how to read and write, your secretary can do it for you all day long. It just seems like a big waste of effort to me. For many simple and repetitive things related to their jobs, everyone should be able to whip up a quick script, just like everyone takes notes as needs arise, without calling their secretary on the intercom every time they need to write down a phone number.

    • by Kjella ( 173770 )

      In general, everybody dealing with computers can benefit from a bit of programming knowledge, not only admins. The rule of thumb is: if you're doing a repetitive, braindead job, you're doing it wrong. Computers are built to do exactly that. A small script can automate a lot of work for you, if you have that skill it can help you tremendously.

      Let me guess, you're a developer? Yes, yes and it'd be great if developers understand a little about sysadmin so they knew how their software would be run... oh and understand the business a little better... oh and understand support and the issues their having.... oh and understand the sales and marketing people who little who has to try to sell this stuff... oh and understand the economists so we actually do things profitable too... and, yeah okay there's a zillion things that would be somewhat useful. I

      • Re:Not only admins (Score:4, Interesting)

        by scubamage ( 727538 ) on Monday October 22, 2012 @07:32PM (#41735691)
        I'm a systems engineer for a fortune 500, and I spend a significant amount of time developing. Now, am I making fancy OOP code using an IDE? Nope, not really. I am however making python/perl/awk/expect/tcl/shell scripts with a heck of a lot of frequency. I don't think I could do my job effectively if I didn't.
      • Personally I don't hate "amateur" programmers coming up with a solution that makes my hair stand up right. I applaud it. If it saves them time, they'll use it. If not, I hope they recycle the bits (especially the 1's, they pollute a lot more than 0's). But seriously, you bring up some important points:

        1) Is the effort spent worth the time gained? That's something you should *always* ask yourself. Even for seasoned programmers this is not always a clear-cut case. Personally I found this technique quite usefu

        • > Never assume you will live forever, nor work forever for that company.

          This is very important. I worked in one place where this one guy was responsible for a bunch of shit. I would often think to myself "if this guy is hit by a bus we'd be fucked for weeks". The guy got sick and was out for a few days. Lo and behold, work ground to a halt until he got back. During this fiasco everyone was saying that we needed to make changes and have redundancy so this doesn't happen again but once this guy came b
      • by tibit ( 1762298 )

        The "abomination in VBA" may be so, but it has likely replaced tons of manual labor. When it outgrows the original author's skills, then there's no reason not to do a proper reimplementation. Yet all those abominations, usually, make their authors more productive. That's their goal. Scoffing at that is going full retard.

  • Isn't this all rather self evident?
  • That usually implies a bit of programming at the very least. Maybe a sysadmin no need to be a large projects developer, but the small tools that could make his life easier would make a big difference.
  • The ammount of skills Network admins should know and still get paid a 10th of what we are worth is ridiculous.

    I should be making close to 300k a year, Do you think any company would pay that?

    So now I need to add codder to the resume which will effectively fall on my shoulders to maintain code? Bad idea.

    I guess I should be happy and count my lucky stars that I have a job?

    The one thing I have noticed in companies that Sales weasels get paid a lot more money than I and the responsibility lies on the network ad

    • The one thing I have noticed in companies that Sales weasels get paid a lot more money than I and the responsibility lies on the network admin to keep it all running.

      Yes. It's a backwards society. Black is white. 2+2=5.

    • by PPH ( 736903 )

      The next thing you know, the admins will want to be let out of the basement.

  • Perl (Score:5, Funny)

    by slapout ( 93640 ) on Monday October 22, 2012 @06:42PM (#41735257)

    So, does Perl drive you crazy or do you have to be crazy to program in Perl?

    • by toygeek ( 473120 )

      Yes.

    • So, does Perl drive you crazy or do you have to be crazy to program in Perl?

      Some people just can't get their head around Perl. That's OK, there's always python. We'll treat you with compassion.

      • Honestly I never thought perl was that bad, but I actually have a pretty good grasp on regular expressions and otherwise I like the shortcuts that perl includes. It lacks the clarity of, say, a nice and well assembled shell script, but if you're making something that tips the balance between trying to make a shell script do something it's not really meant for and just using a normal language, perl is a great choice. Granted you can end up with some cryptic to look at stuff, but that's what documentation is
        • Having to document code is a code smell. Documentation is something that can easily fall out of sync with the source. It is best to program in a fashion that doesn't require documentation, if possible.

          • I disagree - if documentation is falling out of sync with the code, then whoever is writing the code isn't doing their job properly.
            • There is a principle you've probably heard of called Don't repeat yourself (DRY) [wikipedia.org]. If you're unnecessarily repeating yourself you're creating opportunities to introduce bugs. So it is good to avoid documentation (such as code comments), if it isn't necessary. If it is necessary for whatever reason, then it is a good idea to create an automated system that checks to see if they stay in sync.

  • by PeanutButterBreath ( 1224570 ) on Monday October 22, 2012 @06:43PM (#41735259)

    I'm fairly certain that if all I did was write Perl, I'd go insane.

    As a programmer, to me this is like someone equating author and typist. Code is just a medium. Figuring out what to do with it, and how, is the fun part.

  • Many IT professionals called systems administrators have no idea how to code. They basically perform the strict description of systems administration activities. But those who can code tend to be the better sys. admins. and usually end up directing those who do not know how to code. Coding is one of many tools a proficient sys. admin. has. Another is problem solving skills. Believe it or not there are systems administrators out there that can actually solve a problem without calling the vendor.
    • It's because coding involves logically breaking down complex problems into simple steps. Now, when you have an entry level sysadmin (someone with 1-5 - sometimes less - years of experience) they basically do simple tasks. Reset a password, clean up an os, do installs, fix issues, etc - these are honestly trained monkey tasks that any geek squad kid can do. I know, I was one of them (before geeksquad, but the point stands). As they get further down their career paths they SHOULD start to undergo two changes.
  • by Lumpy ( 12016 ) on Monday October 22, 2012 @06:52PM (#41735339) Homepage

    You doubling my salary for that extra work? I'm tired of the constant scope creep people keep shoveling in without an increase in compensation.

    • Don't you see? Knowing how to code will make you more efficient. So, if anything, the amount of, er, whatever it is that you people do, can be increased!

      Yes, early adopters will be able to demand a higher salary for any additional skills that they bring to the table. That is, until we can update our job requirements to include these skills (5 years minimum).

    • by arielCo ( 995647 )

      There are "app" languages like Java/Ruby/PHP that will get you in that situation, and there are languages mostly regarded as tools for automation (Perl/$SHELL/Tcl?). So, there are two ways around it:
      * stick to scripting (it'll make your everyday life easier) and refrain from learning these "dangerous" languages, or
      * learn them (you'll gain additional insight on common programming pitfalls, making you a faster troubleshooter) and DON'T TELL YOUR BOSS.

  • by Sycraft-fu ( 314770 ) on Monday October 22, 2012 @06:53PM (#41735355)

    Then maybe I wouldn't spend an inordinate amount of time fighting with programs that can't understand how to run as a deprivileged user, that can't properly set up their own environment variables and so on.

    So I'll promise to learn to program if they'll learn to sysadmin. Since I already know how to program then they'd better get on it.

    • Then maybe I wouldn't spend an inordinate amount of time fighting with programs that can't understand how to run as a deprivileged user, that can't properly set up their own environment variables and so on.

      We'll get right on that when everyone learns how to accurately analyse and communicate their requirements.

  • by bill_mcgonigle ( 4333 ) * on Monday October 22, 2012 @06:58PM (#41735393) Homepage Journal

    Sometimes I play 'sysadmin'. It winds up as the "this doesn't work, make it work" role. Today it was reading the RFC's to figure out how DSN's are supposed to be returned, writing the java.mailx code to make the developers' app do that, and explaning how SMTP works. Other times it's working through a SQL query planner, finding why packets are headed in the wrong direction, re-doing an architecture, etc. It's not possible to do the job well without good CS training, a solid background in coding, a solid background in networking, and just plain blood, sweat, and tears.

    Then again, you could study for a test exam in 21 days and call yourself a sysadmin too. It's always the definitions.

  • Ah, age. (Score:5, Insightful)

    by Anonymous Coward on Monday October 22, 2012 @06:59PM (#41735405)

    At one point, we *had* to code. Tools didn't exist until we made them. Or at least tools that did what *we* wanted didn't exist until we made them.

    I blame Windows weenies for the loss of this skill. They cannot function without pre-packaged clicky things. Nitwits.

  • I'm fairly certain that if all I did was write Perl, I'd go insane

    And that's the point when you officially become a perl hacker.

  • ... if all they did was write Perl.

    Where do you think Slashdot came from?
  • by MisterP ( 156738 ) on Monday October 22, 2012 @07:18PM (#41735573)

    I don't think anyone could argue that having skills in both areas isn't a good thing. I've been a sysadmin for 20 years and i've had to do basic development over the years (apache modules, ldap-ifying applications, etc). When it comes to troubleshooting complex problems as a sysadmin and the whole team is whiteboarding, you can tell pretty quickly who understands how systems work below the user interface. This is often only learned through writing code.

    The opposite is true for coders too. With a few execeptions, the most competent developers I've worked with have had sysadmin duties at some point in their career. Not that long ago, I had to sit down with a Sr. (Java) developer and explain load balancers and TCP session state.

  • I'm fairly certain that if all I did was write Perl, I'd go insane.'"

    but Perl is a beautiful language!

  • by asmkm22 ( 1902712 ) on Monday October 22, 2012 @07:33PM (#41735703)

    I don't know about full-blown compiled coding or anything, but sysadmins definitely should have a grasp of a scripting language relevant to their environment (such as vbscript for windows). There are too many times you get requests for stuff that inexplicably have no official support for, such setting up a default Outlook signature for all users that pulls information from their login profile. The sysadmin who can say "give me 30 minutes minutes and I'll have it ready for testing" will look a lot better than the sysadmin who says "we could buy an $800 program that will allow us to do that, but we'll still have to test it out."

  • by epp_b ( 944299 ) on Monday October 22, 2012 @07:37PM (#41735733)

    Experience in one field can be an asset in another due to inherent interdependent qualities! Wow!

    But as many others here have pointed out, the last thing businesses need is another job to dump on the IT department while continuing to tighten their budget (because, hey, computers are just computers, if you know about them, you know everything about them, right?)

  • Developers should know how to do the admin job.
  • Captain Obvious...

  • > I'm fairly certain that if all I did was write Perl, I'd go insane.

    Especially Perl.

  • by JakFrost ( 139885 ) on Monday October 22, 2012 @08:59PM (#41736449)

    In my years as a Windows admin I found it interesting to find out which other admins could or could not write scripts and then classify them by the level of their abilities:

    - The GUI clicker Guy
    - The Command Line ipconfig.exe Guy
    - The Google for a Script Guy
    - The Cut-and-Paste Each Line Separately Guy
    - The Excel Drag-and-Fill Guy
    - The Search and Replace In a Script Guy
    - The Batch Script with No "@echo off" Guy
    + The For loop Guy
    + The Reg.exe Guy
    + The PsExec Guy
    + The 2>&1 Redirect Guy
    + The Pushd/Popd Guy
    + The Setlocal Guy
    + The Rundll32.exe Guy
    + The Findstr.exe RegEx Guy
    * The GnuWin32 Sed/Grep/Tee Guy
    * The Cygwin Guy
    * The Perl Guy
    * The VBScript Retarted Syntax Language Guy
    * The JScript Cool Web Language Guy
    * The Script Signing Certificate Guy
    @ The PowerShell Guy
    @ The PowerShell & Quest PowerGUI Guy
    @ The PowerShell & PowerGUI & 3rd Party Cmdlets Guy
    @ The PowerShell & [.NET Framework] Accessing Guy
    @ The PowerShell & .NET FrameWork, Activator, Marshall, Reflection, COM+, Jobs, Runspaces Guy
    $ The Visual Studio C, C++, .NET, API, SDK, MSDN, Compiler, Remote Debugger, Memory Dump Analyzer Guy
    $ Kernel Developer

  • by shuz ( 706678 ) on Monday October 22, 2012 @10:28PM (#41737015) Homepage Journal

    I've found that what can happen in the large corporate world is that you have Developer teams, Production run teams, various IT infrastructure teams, and the Systems Engineers. Networking gets blamed for every outage because well, they are the common thread that all the bits run over. Storage gets stressed out because it is the last thing anyone thinks about until they need it, and the Systems engineers well the Developers want to play all roles unless they don't want to. Production run sometimes lacks the deeper skills of either programming or IT infrastructure.

    Enter Unix Engineers. We are expected to have general knowledge of all IT infrastructure, which we do, we program and script extensively, because our automation depends on it, and we have extensive production application run experience do to managing all the different back end services that everyone depends on. mail, dns, ftp, sftp, web server engines, monitoring, etc. Yes a good sys admin must know how to at least read code and ought to be able to code/script in at least one language even if that is Dos Batch. The problem in the end though is as others point out. The more you know the more production run teams may lean on you to solve their problems. "Just ask the Unix team", Not because it is their responsibility, but because they can solve the problem quickly as they have the widest berth of knowledge.

    Coding as a Sys Admin is crucial. Just know when to say I can't(or won't), for your sanity.

I do not fear computers. I fear the lack of them. -- Isaac Asimov

Working...