System Admins Should Know How To Code
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.'"
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.
Cloudiot: A person who does not see offsite storage as a way to lose control over access to his or her own data.
...and support for that matter.
Next you'll tell me my developers should know how to admin a server and do so at a drop of a hat.
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.
What's that Flipper? Someone's in trouble on the other side of the bay?
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.
"It's too bad that stupidity isn't painful." - Anton LaVey
Isn't this all rather self evident?
In a utopia, sure a sysadmin should know how to code. But the sysadmin's job is to support the code and OS, not figure out what is wrong with the code when things break.
Should a developer need to know the ins and outs of the Data Center? Should they know Unix/Linux/Windows/App Servers and everything else that is running?
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 admin to keep it all running.
So, does Perl drive you crazy or do you have to be crazy to program in Perl?
Coder's Stone: The programming language quick ref for iPad
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.
I remember the judge... http://lazytechguys.com/news/business/judge-for-google-and-oracle-case-is-also-a-programmer/
There are three kinds of people in the world. Those that can count, and those that can't.
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.
I was never a developer as it is now called, but I wrote code in about half a dozen or more languages to solve a problem that needed to be solved. I worked with System Administrators and Engineers that had never written a line of code in any language and to me it seemed that they were working blind and with one hand tied behind their back
As an IT manager, I don't want my sysadmins to code. I want my coders to code. I want my testers to test. And I want my sysadmins to...ermmm...admin the sys. Mixing roles & responsibilities can be really dangerous, especially when there's a strict development and deployment lifecycle in place (and if there isn't you're living in uncontrolled chaos), including change management and release management, that must be gone through properly. Uncontrolled changes, with sysadmins using production systems like they're test environments, is a bad idea and will end in tears.
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.
Do not look at laser with remaining good eye.
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.
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.
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.
My God, it's Full of Source!
OUTSIDE_IP=$(dig +short my.ip @outsideip.net)
Dude. Drink every time you accidentally put a semi-colon on the end of a line in VB?! WTF?! ARE YOU MAD?! I will be fucking wasted by noon. Just add in drink every time that I need to reference a library that doesn't link well with VB (specifically VB6--sqlite is an amazing example), and other retarded situations, and you've got me wasted by 10am latest. Terrible idea... except. Wait. I retract everything I just said. Coding in VB makes me want to get wasted. Brilliant idea!
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.
well said. While I try my best to prevent it I often see many communications issues that cause problems in large shops. Developers may not understand the infrastructure and admins have no idea how to work with Dev for troubleshooting
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.
It's probably a lot healthier to stick with proper OO languages.
That statement makes you not crazy enough to be a code monkey.
... if all they did was write Perl.
Where do you think Slashdot came from?
I think you missed the point. The coding helps save you time in the long run. Not the other way around.
The time you save doesn't help coding in the long run.
Sounds about right to me.
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!
Just because it CAN be done, doesn't mean it should!
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.
I have to agree with the fucking moron comment above. Mitt is a joke. The only thing he knows how to do is aggrandize himself. He's never had to actually work a day in his life and has no clue what an average person goes through.
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."
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?)
Psh, real men use goto statements.
Welding all this developed-in-silos software together so it actually works should have some compensations.
Developers should know how to do the admin job.
However I do believe they should know how to script..
Just my HO. Coding can be a bit too excessive for a sysadmin - otherwise he'd shift more towards programming. Scripting can be more than enough with bash/perl/php/python.
GET OUT OF MY HEAD!
Captain Obvious...
If they knew how to write code, they'd be a developer. Since they don't, they are in sys admin.
> I'm fairly certain that if all I did was write Perl, I'd go insane.
Especially Perl.
Oliver's law of assumed responsibility: If you're seen fixing it, you will be blamed for breaking it.
If you can't code, you're probably a Windows admin.
Often my help desk guys ask what they can do to get off the phone and do their job better and I say learn from something I over looked for a long time...learn VB and Perl. You can do so many awesome things with minimal code that can help take you systems to the next level. They should learn simple bat & vb scripts and then move to Perl and on from there. I think the biggest problem is that they over look the tools you can create with them. Like logon scripts and scripts to make mapping a printer as simple as double clicking a file.
The cowards are out in force today.
Good ones can, and they should be admin on their development, and have admin privileges on the QA boxes.
But do you want your expensive developers doing support or admin work? Or do you want them developing product.
Some places I've worked the pay for support tops out below the starting developer pay.
Admins come closer but developer salaries are still generally higher.
And lastly, do not give developers write access to production. If you have to ask why, get more experience and learn for yourself.
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 .NET FrameWork, Activator, Marshall, Reflection, COM+, Jobs, Runspaces Guy .NET, API, SDK, MSDN, Compiler, Remote Debugger, Memory Dump Analyzer 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 &
$ The Visual Studio C, C++,
$ Kernel Developer
And you're still missing the point. If you have other issues with Sysadmin's playing god on your network, denying them the ability to script is just going to make them manifest their behaviour in other ways. The correct way to deal with a god complex is not where I'm going however. The correct way to deal with sysadmin's who need to test and deploy scripts to a production environment is to give them the same tools that the developers have. Let them have access to a development and test environment that correctly mirror your production environment. The OP and the GP weren't implying that sysadmin's should be given free reign to blindly run untested scripts in production, and with that the solution to "we don't want them testing in production" isn't to deny them the ability to script, it's to give them access to proper procedures and environments to develop their scripts safely.
This article is a waste of time. Seriously? Sys Admins have to code to be able to be effective? I've never heard of a more erroneous statement. I have a sys admin that doesn't code on iota and he does just fine at his job. Leave code to programmers. They know it better, waste less time trying to figure out the right way to code whatever it is you're trying to achieve and as a sysadmin you're letting other people do the job they're supposed to do.
Mechanics should have mechanical skills.
The above seems to state that there is a big difference between scripting and programming. I would argue that the only real difference is scale.
Scripting is a verb used to describe writing a small, quickly written (typically but not necessarily in an interpreted language) piece of software to handle a narrow problem set.
Programming is a verb used to describe writing a small to large, carefully written (either in an interpreted or a compiled language) piece of software to handle anything from a narrowly scoped problem to a large suite of related problems in a common domain.
Ergo, I argue that you're differentiating apples from oranges but the only fruit I see are small apples and big apples. And, as many others of complained about, some of the core issues apply to both scales: development and testing should not be in production for software development regardless of the scale, and you need to document both types for future developers and for users.
Developer is one who develops (creates) software !! A UI designer is a developer !! The program manger is a developer (of the software) !! Only the programmer is the one doing the coding (generally) !! A programmer is a developer, but a developer need not be a programmer !!
Carry on !!
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.
There is or can be built a machine that can simulate any physical object. -Church-Turing principle
I've been at fortune 500s in which I was tasked to provide some system administration/helpdesk for a branch office of about 50 employees. It wasn't every day, just a few times a month I would be onsite. The hilarity ensues when I have to call the main office to speak with the IT dept. In one recent example, I had some trouble with Exchange connectivity inside the office. He tested the cluster of servers and ran mail flow diagnostics. Looked fine. He said it was the network guys job. So I called the network admin, he said traffic and routing looked good on his end, it must be an Exchange problem. Back and forth we went. The problem was a combinations of undocumented server and DNS changes. Nothing got resolved until I got at least five people in conference call. It was only then that people started to fess up as to what was going on and when.
In short, it was a breakdown in communication. I only got things working because I took it upon myself to wear the managers hat and get shit done. Way above my pay grade, and I'm sure I get paid half as much as those fucking monkeys behind the phone!
Ya, I'm bitter.
Life is not for the lazy.
Please no, I enjoy both programming and systems work and am equally good at both. I enjoy the lack of competition presented by those that can only do one or the other.
you're bitter because you solved a problem that was 'above your pay grade'??
Wow, maybe this is what's wrong with the IT industry. Yeah, big corps are complicated and bureaucratic etc etc etc, but if more people actually WANTED to make an effort to do stuff, and worked outside their own defined sphere of influence just to y'know, actually get shit done, then maybe things wouldn't be so bad?
All the discussion here leads me to the conclusion that the key to happiness is as simple as continuing to learn and develop your skills and to occasionally stick your neck out and do whatever it takes to solve the problem.
Hej! Nasi tu byli!
.. I'll learn to code when the devs stop coming to me with this request.
I work in a small team (as small part of a big company, we develop a REST API), 2 devs and me as tester, and being able to program ( a little ;)) makes my day-to-day job much more productive ... eg. I can quickly trace the issue to it's source if the devs are busy working on another story or do small enhancements to our support- and test-tools (web-admin-interface, status monitoring, etc.) and can assist other teams using our product in about any aspect (where does field xyz come from, why is the specific call not working/shows strange behaviour), ... ...)
If I would be a "normal" tester like we also have plenty in the company (pure black box testing, no decision-power) I'd have to tap around blindly, having to rely on devs and documentation instead of being able to actually assist the devs, not only in finding issues after implementation, but also in the decision making processes (eg. how should xyz be handled, what's the best flow for a tricky new feature,
Obviously I am aware of the risk that too much insight in the code has, as you can get careless, but I can switch pretty well between doing the testing work (in a blackbox fashion, so I just test the functionality according to our documentation) and doing debugging/tracing and dev work.
Your proposal is ridiculous! Next, you'll be saying politicians should know how to run a country!
I was promised a flying car. Where is my flying car?
Getting drunk will take the edge off of the painful cancer VB coding will give you after a few months.
You have failed to grasp that *anything* that could influence correct operation of a production environment, even a little 'harmless' script that manipulates production systems and/or their data, needs to be managed correctly, assessed for impact (by someone other than the guy that wrote it), tested properly and deployed carefully.
At least, that's what people in commercial IT think. Interestingly though, while the people in commercial IT do the most paperwork to get something deployed or updated - like, report an incident, then report another, and then find out, that they are related to the same problem, so create a problem ticket, then create a software change ticket, and then create a test report, and once you are done, create a software package and a release plan, then create an infrastructure change ticket to deploy the software change, and by the way, involve some 50 people in that single case - systems and software in commercial IT are still extremely unreliable.
On the other hand, you can have fairly small development teams, that create a solid software, you can have that handed over to a fairly small team of reviewers, and once they are all done, you get a system that's about some 1000 times more reliable than any of those "managed correctly" commercial IT systems.
Risks to production need to be managed, and the biggest risk I know is a sysadmin with a god complex and a hobby in scripting.
The biggest risk I know is managers who think that managing is the most important and most effective tool in systems reliability. There is virtually NOTHING to manage here, except for picking a very small group of the right (competent) specialists and putting them together in the same room, so they can actually talk to each other.
No kind of "correct management" will ever get you a reliable system if the people who are involved in all your fancy "processes" are idiots, are too many, or are simply overloaded with useless information and generic paperwork; however, if you get the right people to accomplish a task, they will not fail, not even without ANY management, because the are intelligent and knowledgeable enough to manage themselves.
No text, guy.
In this day and age it's kinda amazing to still find admins who can't even script enough to take some of those annoying petty tasks off their hands.
Using code as a buzzword seems to have caught in within the last year or so, I now see it on a regular basis. And I always think "what programming language are they referring to?", apparently html is also included.
I've had a similar experiences, I was trying to get a DNS change in a 150000 plus corporation, with every email I sent to find someone responsible the CC list became longer, until i reached the CTO who basically admitted he doesn't know how the internet works. Eventually I discovered the DNS control was outsourced to a Indian guy sitting in Bangalore who worked from home. A nice guy actually, and he did do my changes however this dude sits on the domain keys of the kingdom for this company. If this Indian guy ever gets eaten by a tiger or overdoses on curry that company is seriously fucked.
I am purposely withholding from disclosing the name of the company to save their stock and this guys job.
But you know who you are!
Buddy, this how you get promoted - doing things above your pay grade and making sure management knows about it. You then become the go to guy for management to solve problems. Then during salary/bonus/promotion time if they don't reward you drop them and leave.
It had never occurred to me that there might be sys admins out there who *can't* program to some degree!
If you try to fail and succeed, which have you done?
Sysadmins should be able to code: Amen.
AC,
Well said, but I was also or more leaning towards the complexity in knowledge and languages. Scripting is easy and doesn't require extensive knowledge. Programming I find is an art..
And yes I do agree in terms of scale, but put it in a job perspective and what's expected of you, well yes it should and does make a difference!
And based on experience, Programming in the eyes of management, regardless if you need a compiler, it's expected of you to write a full featured program (or website that has a lot of features), while scripting is just, well, scripting (interpreter, automating tasks, cleanup, backup, etc..) :)
I've got disks full of piss poor programs and scripts that I have hacked together over the years to do various specific things and solve my problems. Despite not knowing how to make them any better, I know that they are all fragile, slow, steaming piles of spaghetti. Even though I tried to document every line, usually due to my inexperience in that language, I still can't go back a year later and understand what is going on without spending WAY too much time immersing myself in the code, again.
After 20 years, I've learned that with very few exceptions, I am not the first to encounter the problem, that someone else has more than likely developed and made available a very good solution. I've learned that it is better in the long run to spend some money now than to try to do it yourself and spend many times more over the long term for a poor solution. I have also learned that when I have a "genius" idea that no one else has previously developed, I am MUCH better served to higher a professional programmer to do the development and spend my time clearly laying out the requirements.
I guess what I am saying is that, you're completely wrong! Sysadmins should administer and programmers should write code. The jobs are not the same and neither person should do the other's job, unless your intent is to do it badly.
Been working IT for almost 15 years now. The respect is the same then as it is now. You wade through shit to solve a problem, only later to get bitched at for not finding it sooner when in fact you were originally trying to make a case of how pro-active you've been. Oh, and because I've been wading in shit, I smell bad.
There is no respect in IT and the pay sucks. I'm looking to find another career patch that isn't already tainted with disdain. Fuck this, life is too sort. I'm tired of falling on the sword and not getting any recognition for it...for 15 years.
Life is not for the lazy.
Your job's to be "the expert", and you can't BE "expert" unless you are master of the environs you're working in, and guess what fellas? That's computers!
Which, of course, means you had BETTER learn to program these machines!
Why?
Well, this IS why - It's since there isn't always a "turnkey solution" or app/utility out there for you to just buy, and USE, to do the particular task @ hand... you will HAVE to create it, yourself...
What about when say, a contract coder gets "let go" & his job was done + no "future maintenance" clause was in place or has expired... then what? YOU get stuck with having to amend it or add features (provided you have no in-house devs that is & since they already most likely have things on their plate, they will be overburdened by the fact you're proving yourself INCOMPETENT in computing by being unable to perform often SIMPLE maintenance to existing code!)
A lot of you MAY not like that, but I've seen it (& lived it) - it's the "why" of WHY I went back for a STRAIGHT CSC degree - to learn that end of things better than I knew them beforehand.
(Impossible? Perhaps... mainly since most of you 'admins' are only "users with a better password", being admins - & yes, I've said THAT before here too, to much chagrin of those I directed it to... however, then again? Truth, is like that - it can STING!)).
* I've done BOTH roles professionally for nearly 2 decades, and speak solely from experience (much of which has been in the Fortune 100-500 as both a programmer-analyst/software engineer AND as a network administrator)...
APK
P.S.=> Think about it... when you're stuck & there IS NO TOOL FOR THE JOB/TASK MADE ALREADY, guess what? YOU are stuck building it, and if you can't? You're "F'd"... since it's YOUR JOB as the "go to guy" to get done & done right!
... apk
If all you can do is meet requirements, either you have a bad boss or you are just a code monkey. College kids with no real world experience do that every day and pay for the privilege.
As a programmer you should be able to extract the client's desires with appropriate questions and be able to maintain and contain their expectations.
IT people have to take classes on this stuff. Do CS people not do the same?
Windows sysadmin here:
I've obtained a degree in Computing and Networks which involved quite a fair amount of programming. I decided that programming wasn't quite for me, and went into support, then a sysadmin role.
The programming lessons and experience I obtained have helped my career massively, batch file, powershell, powercli, the list goes on. The ability to follow or at least read and adapt scripts to help my job is crucial. I recently had to make changes to hundreds of virtual machines, and would be unfeasible to do manually.
There's a massive difference between coding and scripting, but the latter is important for any sysadmin, regardless of infrastructure.
"With a few execeptions, the most competent developers I've worked with have had sysadmin duties at some point in their career." - by MisterP (156738) on Monday October 22, @08:18PM (#41735573)
Most DO, & have to (especially IF/WHEN they're coding "industrial strength"/"enterprise-class"/"mission-critical" apps) - otherwise, you CANNOT DO YOUR JOB, or not without being a TOTAL "PAIN-IN-THE-ASS" to those with such permissions... it's why it's done!
* You MAY find it surprising that most coders who have worked @ the level DO know how to be system-wide administrators... most also have home networks to "emulate it" so they learn that way as well, not just "on-the-job"...
(At least, that's how I've done it/managed it, since 1994 professionally... you HAVE to know both to be effective in ANY scenario, like ones I illustrated here -> http://developers.slashdot.org/comments.pl?sid=3202915&cid=41740505 )
Those things DO happen!
APK
P.S.=> "Been there, done that", for decades now - & I *think* you'll find that's true for any dev that's been to that type of projects & environs...
... apk
Coders should learn how to sysadmin, IMHO...
....would you accept that statement from your mechanic when their fix doesn't work?
Knowing a little programming is good (for scripting and "glue" programs), but I've seen too many CS majors that try to reinvent the wheel (because they like to program) rather than getting to know the built-in tools that are fairly standard and vetted.
e.g., I had a CS major ask if there was a Linux version of WinDiff because he was thinking of writing a Linux version.
Competition Good, Monopoly Bad.
Is there a code v. comment synchronization system yet? I'm imagining something where a comment is associated with nearby code (delineated by whitespace or scope) and includes a checksum of that code.
foreach my $atom (@atoms)
{
my $radius;
# calculate thermal radii as inverse of temperature, scaled to allowed range (CC 58e2 c902)
$radius = $atom->{'temp'} / ($max_temp * ($radius_max - $radius_min) + $radius_min);
print "$atom->{'x'},$atom->{'y'},$atom->{'z'} $radius\n";
}
And your editor can highlight it for you if it falls out of sync.
If all you plan to do is camp where you are, and you don't see a need to code.. well good for you. I'd still recommend knowing at least the basics since it can, and more often than not does, improve your ability to perform your job. I use scripts all the time, but then again I'm not an average system admin. Let me give you a few examples.
I wrote a script for resetting LDAP passwords for Unix, since most Unix admins don't understand LDAP. It had to meet NISPOM compliance, randomly generate secure passwords, inventory LDAP to ensure the user exists, poll People Soft to ensure the employee was valid, etc.. It was a cool little project that took me about a week. However when it was done our level 1 support could reset passwords for users, saving time in the long run for everyone else (including myself). They still use the same code to reset passwords, and I wrote the utility 7 years ago.
That little project, since I wrote it modular, was expanded to full user and group management. Need to add a user, type in a badge number and answer a couple basic questions. Again, level 1 could add users and groups to Unix LDAP without issue. 6+ years later, they still use those too.
Analysis applications often have countless requirements for Engineers to run jobs. I wrote wrappers for everything from MSC software to PAM CRASH. wrappers were simple to modify for new versions and again those are being used some 10 years after I wrote them.
Need to validate users from disparate systems, write a script. Need to check for compiler functionality, write some basic C code. If you can't get a simple program to compile, then neither will your users. In my opinion, a sign of the best administrators are that they test and think things through.
Coding can make your job much easier, as well as those around you. It's all about what you can innovate, then how you innovate a solution. I use scripting much more than C, but sometimes more complex problems come with C. Testing things like memory with an active OS are simple in C, why reboot and wait for a vendor disk?
Like I started with, it may be something you don't have to do now. However, to make yourself more valuable I'd highly recommend it.
-The wise argue that there are few absolutes, the fool argues that there are no probabilities.
I have never met one that couldn't program, I have actually found the opposite, the sys admins I have worked with could program better in more languages, and the coders could only code better at maybe 1 or 2. Sys admins need to know C, unix tools, windows tools, perl, php, shell, and a multitude of operating systems and different packaging systems that go along with that, they are generally more intelligent than the most intelligent programmer, and generally on spare time kernel hackers, so not sure what types you hang out with, but please don't insult the real admins :)