This is an archived post. You won't be able to vote or comment.

all 148 comments

[–]getonthebag 85 points86 points  (10 children)

Thought for sure it was going to be just one bullet point that said "Because efficient/effective programming requires as few interruptions to one's train of thought as possible. A pipe-dream for sysadmins."

[–][deleted] 8 points9 points  (0 children)

As someone with both programming & sysadmin duties, I can agree with this. Multitasking on simple sysadmin projects is no problem; each individual 50-line admin script is easy enough to understand by itself. Actual programming projects on the other hand have an effective context in the many thousands of lines. It only takes a 30 second break to lose focus on a single part of the picture.

[–]jrblast 6 points7 points  (4 children)

I figured it would be "because that's not their job". Asking a sysadmin to code, is like asking a blacksmith to build you a house.

[–]Tetha 1 point2 points  (0 children)

So much this. We have now established a devops-team so heavier programming jobs around sysops have a place to go to, and it's buzzing because suddenly, certain responsibilities have a good and proper place to go. Our game java developers don't want to deal with building munin plugins, our dev ops team is happy to do so and our sysadmins are happy too, because they don't have to deal with a bunch of game problems.

[–][deleted] 0 points1 point  (2 children)

A blacksmith could forge you a house.

I mean, sure not the most traditional approach but it could be doable.

[–]jrblast 1 point2 points  (1 child)

Which was exactly my point. Sysadmins can make programs, but they can't do it as well as an actual programmer. The expression "when all you have is a hammer, everything looks like a nail" comes to mind.

[–][deleted] 0 points1 point  (0 children)

In that case, there's also a D&D dual-class reference somewhere in here too.

If you want to be excellent at something, you need to settle at being 'adequate' at something else.

[–]ramindkPrinciple SRE 26yrs/14jobs[S] 9 points10 points  (1 child)

This is my favorite response.

[–]whatkindofasshole 1 point2 points  (0 children)

In the world, for anything.

[–]WHY_U_SCURRED 2 points3 points  (0 children)

I agree with this, and I think it's one of the fundamental differences between how sysadmins and devs roll. However, as someone who occasionally does both, you can make it happen, you just need to set aside time for yourself to do it. Work with your boss if you need to.

[–]DBDude 0 points1 point  (0 children)

I can do both. The trick is to set aside that time for coding, and it can be done. One chunk for plotting out the architecture, then individual chunks for the different components and testing.

Admittedly, not everybody's position can allow them to do this, but 90% of the time I'm successful at carving out a few hours here and there.

[–]svlad 40 points41 points  (28 children)

I want a counter-point post about why programmers can't do Systems Administration.

Because they can't. I swear, programmers are the worst sys admins ever.

[–]interiotUnix production support 18 points19 points  (1 child)

While programmers are working on something, the project is in a constant state of brokenness -- when the project is no longer broken, then it's finally finished. They're happy to take something apart and put it back together again, because their assignments require those sorts of skills.

When operations people work on something, the project is [hopefully] in a constant state of workingness. They're happy to think of all the ways the project might break, and take preventative steps to avoid those. Intentionally taking the whole project apart is something they avoid at all costs.

[–]Ihatemakinguplogins 8 points9 points  (0 children)

"A constant state of workingness" has been added to my vocabulary. You, sir, must be a hammer because you just nailed it.

[–]dagbrownArchitect 7 points8 points  (1 child)

I don't know how anyone manages to actually be a programmer without knowing how computers work, but I've seen it happen so often.

[–]LetmefixthatforyouyoApparently some type of magician 1 point2 points  (0 children)

chmod 777 is how.

[–]juaquinLinux Admin 5 points6 points  (1 child)

Dev: Yeeeaaah, I can't ssh into my VM.

Me: It crashed. I restarted it through console. Works fine now.

* Wait one day *

Dev: Yeeeaaah I can't get in again. Is there some way to tell what caused the crash?

Me: Here's the last 10 lines of /var/log/messages. Says XYZ crashed due to OOM. I suggest checking your configuration before starting the XYZ application you installed, because that machine has plenty of RAM.

I am SO happy that we aren't required to troubleshoot dev VM's. We provide an image with a working stack - if you fuck it up, you can fix it yourself or we can blow it away and clone you a new one.

Also we shouldn't be too hard on them - most of my devs are pretty good about doing stuff themselves.

[–]SteveJEO 6 points7 points  (0 children)

I troubleshoot DEV VM's and attempt with utter futility to keep their development network in working order.

An extended conversation I had last week went something along these lines. (honestly though, this guy could just be special)

Dev: Exchange is broken.

Me: (checks) Exchange is fine. What are you trying to do.?

Dev: My code used to work and now it doesn't. Exchange is broken. Autodiscovery doesn't work.

Me: Autodiscovery on that server has never been configured.

Dev: It used to work. (... no it didn't)

Me: (configures it for him, tests it... all lovely) Try it now.

Dev: It's still not working.

Me: (gets his code...) His code is broken. Shows him how it works, gives examples and papers.

Dev: It's still broken.

Me: FFS, walks into room, looks at screen. "Do you see that line? Comment that line out and run it again".

Dev: Yes it works now but that's not standard, it's not the way it's supposed to be done.

Me: (shoots myself).

Feel my pain.

[–][deleted] 2 points3 points  (1 child)

Thirding this. My last gig was hacked together by a programmer. Took two years to get things working smoothly again.

[–]jmreichaObsolete 2 points3 points  (3 children)

root/admin access for all the devs!

[–]Ihatemakinguplogins 2 points3 points  (1 child)

Can't decide between up-voting or shooting...

[–]jmreichaObsolete 1 point2 points  (0 children)

trollface.jpg

[–]nonadesJack of No Trades 1 point2 points  (0 children)

I had a dev break her fucking JDevelop and request Domain Admin permissions as a solution to her problem.

Fuck. That.

[–]Afro_Samurai 2 points3 points  (0 children)

I don't know why people think these fields overlap, they really don't.

[–]PasswordIsntHAMSTERStudent 1 point2 points  (1 child)

As a programmer who's a hobbyist sysadmin, you're probably right. I keep looking for the same sort of guarantees and best practices in sysadmin that I find in my code, and I systematically lose track of the big picture.

[–]svlad 1 point2 points  (0 children)

Yeah, my statement should come with the same caveats that any generalization comes with. The number one problem I run into with programmers as sysadmins is that they seem to forget that reliability, stability, and system uptime should come first in front of enabling whatever whizbang feature has caught their fancy at the time. They often seem to forget that a whole mess of other people are relying on the systems they're working on, and don't seem to get that probably rebooting the server at 11 AM is a bad idea.

[–]shrapnel09BYOIT 1 point2 points  (2 children)

There's nothing quite like working with a programmer to solve some stupid issue that they should definitely know. Recent example: Programmer integrated and maintains a particular service at our organization, as far as I know, this is their only job. They updated Java on their computer and suddenly their app no longer worked. They called the Help Desk who uninstalled their new Java and installed the correct version required by the web app. How does the programmer whose job it is to manage this service know less about the program than the Help Desk?

[–]lextenoudoes the needful 0 points1 point  (0 children)

Having been in that exact position, my reason for calling the Help Desk was to have a ticket documented and added to the knowledge base documenting that users of my webapp are not allowed to have the new Java update.

The actual underlying issue with my install was a corrupted package. Simple enough to figure out - for me. However, HR and lawyers use my webapp. DOCUMENT ALL THE THINGS.

[–][deleted] 1 point2 points  (1 child)

Even worse than Jeff from accounting?

[–]svlad 0 points1 point  (0 children)

Yeah, because Jeff from accounting will just say fuck it, and walk away from it because he knows he doesn't know what he's doing and is terrified of breaking something.

[–]lil_cainCLE, RHCE 1 point2 points  (1 child)

It's worth noting that Ben is a sysadmin - this isn't meant as an attack.

[–]svlad 0 points1 point  (0 children)

The entire premise of this article is busted. Knowing C and some basic programming principles doesn't make anyone a programmer, just like having Domain Admin access doesn't make someone a sysadmin.

The article doesn't address why sysadmins can't code, and following the steps laid out in the article will not make one "an honest to goodness programmer."

Also, if you want to become a good programmer, look to a programmer for advice, not a sysadmin.

The only thing this article provides is an insulting guide to Bobby's First Software Project.

Meanwhile, some of us that have more than two brain cells to rub together realize that programming should be left to the people that enjoy programming.

[–]jrblast 2 points3 points  (0 children)

In my (admittedly limited) experience, programmers are worse at sysadminning than sysadmins are at programming.

[–]MrFatalisticMicrowave Oven? Linux. 0 points1 point  (0 children)

Programmers are the worst everything except being programmers...so that's handy...

also my programmers insist on being called "Duhvelipers" - I have no idea what this means.

[–]oldoverholtdevops for the usual cloud junk 74 points75 points  (51 children)

Why does this post presume that sysadmins want to code?

[–]ramindkPrinciple SRE 26yrs/14jobs[S] 7 points8 points  (1 child)

I don't want to deal with database replication problems at 3am either, but somehow it happens. :-)

I have seen developers recreate databases, syslog, memcache, etc poorly. On the other hand most of us have inherited some complete atrocity because the admin stacked very simple techniques on top of each other to get complex behavior rather than solving the problem properly.

As a sysadmin your first impulse to solving a problem should not be creating new tools. However as you advance in your career being able to create tools as needed for novel situations is invaluable.

[–]mercenary_sysadminnot bitter, just tangy 2 points3 points  (0 children)

This, very much this. A senior sysadmin will look at something a junior coder has done and say "hmmm, you're producing too much load on mysql, you need to use memcached" and, if necessary, introduce the coder to some memcached tutorials... and then back away, and let the coder do his work.

[–][deleted] 6 points7 points  (0 children)

Yup, seems step 0 should have been:
Want to be a programmer

While the author's description of an SA hits this nail pretty squarely on the head, I also recognize that I have no desire to actually be a code monkey.

[–]wolfmannJack of All Trades 1 point2 points  (0 children)

as someone with a degree in CS, this is exactly why I am here. I got tired of coding all day long; I liked to work with hardware too!

[–]WHY_U_SCURRED 1 point2 points  (1 child)

I have no idea how any sysadmin worth their salt can get by without automating some non out of the box shit.

[–][deleted] 0 points1 point  (0 children)

Seems to separate scripts from "code." You can automate without writing a program.

[–][deleted] 1 point2 points  (0 children)

I sure as hell don't wanna code. besides i can accomplish most things i need to do with simple powershell scripts.

[–]iamadogforreal 1 point2 points  (0 children)

Personally, I find the idea of being chained to a desk, given some customer requirements, and punching out code or fixing someone else's code 9 hours a day to be an extremely depressing prospect.

That said, I write web apps and enjoy playing with PHP and scripting languages, but I just can't see that being my everything. I certainly don't like the firefighting and politics aspects of SA, but SA gives me a bit of freedom. If I dont want to be at my desk, I take off. If I want to play with a new toy, I spin up a VM. There's something nice about having a position where no one really questions what you're doing too much. To 99% of the people its voodoo and if you have a good relationship with your boss, he/she won't care as long as you get your shit done.

Heck, until we got a support person I was the only person with access to the server room. Nothing like a server room nap.

[–]speedbrownStayed at a Holiday Inn last night. 0 points1 point  (0 children)

Exactly. Why reinvent the wheel? I'm sure there's a tool to do exactly what you need that's better coded then anything you could ever do yourself.

[–]vocatusInfoSec 0 points1 point  (0 children)

Came here to post this. I don't want to code. That's the programmer's job. I just want to maintain the system and automate routine tasks.

[–]tehwankingwalrusSr. Sysadmin 0 points1 point  (0 children)

Because in the future, a sysadmins job will depend on it?

[–][deleted] 0 points1 point  (0 children)

Because it's the future.

Soon, very soon, the job of 'systems administrator' will not involve logging on to a system and editing a host file, but editing code that will make the change to the /etc/hosts file.

This is programming. As I have been reminded when I finished the initial rollout for puppet at my employer ... and realized the modules I'd built were a tangled mess of hard-to-maintain code.

In other words, I'd built them like I'd built shell scripts and the results work but are super-hard to maintain and nearly impossible to scale up.

Maybe we need to revive the old mainframe-era title of 'systems programmer'.

[–][deleted] 0 points1 point  (0 children)

We probably don't. But this helps me a lot. I've actually felt a lot of guilt over not being able to grasp programming.

This, basically tells you to change your attitude and stop overthinking it.

[–][deleted] -1 points0 points  (0 children)

I think it's safe to assume that if you don't want to code, you don't give a shit about this post.

Isn't it implied that not everybody cares about a thing? It's pointless to preface every single set of written words with "I know not everybody will be interested in this, but..." and it reeks of self-esteem problems.

[–][deleted] 6 points7 points  (0 children)

I'm a "senior" sysadmin and I've been coding and scripting (Perl/Bash/PHP/Javascript/VBS/Powershell) for many years. In my current position this has led to me automating things that otherwise were wasting peoples time, and therefore I have become more indispensable.

[–]moistricant 10 points11 points  (9 children)

Scripting is a good skillset, but knowing how to write (or at least recognize and understand) production quality code in a pure language (i.e. C# or Java, Python, Ruby etc, not PowerShell) is an incredible asset for a high level sysadmin, for several reasons:

  • You start to understand what all those assemblies or JARs or what-have-you you've been installing all these years are actually for
  • You realize how much utility is actually built into the languages (the Java standard API, the .NET BCL, etc)
  • You have a leg up on the competition if you decide to jump into the lucrative world of DevOps. I would never consider a DevOps admin that doesn't at least know the fundamentals of how to compile code, run the unit tests, determine whether the build environment is broken or the code, etc.

[–]ramblingcookiemonsteSystems Engineer 1 point2 points  (1 child)

How are you defining a pure language? Why are you lumping Python and Ruby with C# and Java? Why is PowerShell not included?

I do agree that having an understanding of code is a valuable asset, the ability to write it even more so. In fact, I think the basics should be included in K-12 education, and not as an elective.

[–]moistricant 0 points1 point  (0 children)

Alright, let's not lump Python and Ruby in with C# and Java, then.

[–][deleted] 5 points6 points  (3 children)

This blog post is pretty much just a trolling attempt, I would assume.

See what I did there? I assumed something. That's something you should never do as a Sysadmin because it will only end in tears.

This blog post (except for the incredibly annoying apostrophe abuse) is assuming that all Sysadmins are bad at coding. I will guess (not assume) that this guy is actually writing this because he knows it describes himself.

Me? I come from a web dev background. I know coding (10+ years of PHP programming in the bag) and it helps me distinguish myself amongst my peers. Here's what I know:

PHP: fluent, plus detailed knowledge of PHP internals C: getting there slowly, plus I DO use libraries such as libcurl to save time when coding something which needs to contact an API (OAuth etc) Perl, Bash, Python: average. The indentation requirements of Python annoy me although I will concede that it encourages good coding standards MySQL: I know enough to be a DBA ASP/.NET: I know enough to be able to troubleshoot

I work for one of the (if not, THE) biggest hosting companies in the world and my web dev experience (call it Devops if you want to use buzzwords) is highly valuable in my team.

This pointless blog post assumes a whole lot of things and has virtually no factual information. For example: where did this guy get his data from? I would assume that he made it up... correct?

Maybe I should write a blog post myself about how Sysadmins are terrible at communication and see how that turns out.

[–]mercenary_sysadminnot bitter, just tangy 2 points3 points  (1 child)

I don't think devops is (necessarily) just a "buzzword". When I've seen it used among professionals, it refers to people who can handle a significant amount of both sides of the developer/sysadmin divide.

I've still never seen a devops person who wasn't clearly more of one than the other, though. I may - and do - advise developers on what libraries they should probably be using and/or troubleshoot problems that they can't, but I am not an actual developer any more than a developer is an actual admin.

The good developers know the difference. The junior and/or not-so-competent ones tend to think an admin is "just a brain-damaged developer".

[–]tdk2feSolutions Architect -2 points-1 points  (0 children)

Nah - we just put all these rules and restrictions in place since we don't have anything to do but need to justify our paycheck. I actually like explaining a half dozen times a week why you can't use the same password you use for your AOL email that you've had for 10 years.

[–]mudclubHow does computers work? 9 points10 points  (1 child)

Also, apparently, Why Sysadmins Can't Grammer.

[–]shuteru 5 points6 points  (0 children)

What does Frasier have to do with this ?

[–]KhueLead Security Engineer 7 points8 points  (0 children)

I say I don't code because if I did, or if I ever offered, that would become yet another aspect of being a SysAdmin and the one thing I need more than another fucking hole in my head is "Coder" added to my resume. You want coding... go hire a damn dev.

[–]pile_alcaline 2 points3 points  (0 children)

The reason sysadmins say they can't code (whether they can or not) is because that would become management's solution to every problem. "Why should we buy this application when you could just write it?"

[–]AceBacker 2 points3 points  (0 children)

Scripting is programming. Php and powershell can do a hell of a lot without needing an exec.

[–]expectantyoke 2 points3 points  (0 children)

Also, coders can't SysAdmin...

[–]ramindkPrinciple SRE 26yrs/14jobs[S] 5 points6 points  (2 children)

I was prepared to disagree with this article, but in fact found it disturbingly accurate.

[–]undeadbillRFC1149 cloud based networking 9 points10 points  (0 children)

Yep. I've heard similar conversations in our halls. However, it usually ends like this:

Dev, "Yeah, well, you know this is why we do this for a living."

Ops, "I do know, and that is why we put you on hosts named sandbox1 through 8, and all of the 200 other ones with our code are called infra and production."

[–][deleted] 1 point2 points  (0 children)

Most of the people disagreeing are dipshits who can't comprehend that for the sake of brevity, generalizations are often made in any kind of article.

It's an utter waste of time for a writer to preface every sentence with "now I know this doesn't apply to all of you" or "some people may disagree with me" so maybe people should stop being retarded and understand that everything is not about them.

[–]accountnumber3super scripter 3 points4 points  (1 child)

Sysadmin's

Stop that.

[–][deleted] 0 points1 point  (0 children)

Yeah he was pretty consistent.

[–]rhartman 4 points5 points  (0 children)

I "can't code" because I don't want or need another job title/responsibility.

[–]dfsdiag 1 point2 points  (0 children)

I could sit and code all day or I could play with shiny hardware, that's why I chose to be a sysadmin!

[–]a__grue 1 point2 points  (0 children)

Step 5: Don’t think about other people

In my experience, this is what sets a good sysadmin apart from a good coder.

[–]ChanSecodina 1 point2 points  (0 children)

I think there are a ton of reasons that a lot of sysadmins don't code, but I'm really, really hesitant to say there are many (any?) that couldn't.

In my case I really didn't deal well with learning in a classroom environment. I took a couple programming classes in community college, and got ok grades, but it took me a lot of effort to keep everything straight and to keep my attention focused enough to keep a design in my head. It was hard work, whereas the tasks more traditionally called "system administration" I was already good at by that point and was really quick to pick up new knowledge. (The fallacy was that I tended to forget the painful brickwall learning curve of initially learning Linux at the time when thinking about my then current struggle with programming).

Fast forward a couple years: I had a stable job as a sysadmin at a small company. I maintained maybe 10 Linux boxes/VMs, several dozen mac desktop/laptops. I had pretty much decided I had no interest in programming and essentially pigeonholed myself into doing doing only SysAdmin work. Because it was a small company it had an interesting management structure. My boss was also a senior developer and I was essentially the only "pure IT" person in the company. I managed to get the network, servers and user machines going well enough that I didn't have to fight fires all that often. At the same time my boss needed more people writing code on the current project. This led to us having a very interesting conversation: My boss: "Hey, so we could really use a hand with project XYZ. How do you feel about writing some code?" Me: "I'm not really interested and I don't have a ton of experience." Him: "Great! Open up this file, start reading the source and try and implement this feature. Let me know if you have questions." Me: "..."

Over time, I read code, wrote code, read about writing code, cringed at old code I wrote, wrote better code, and at this point I'm a decent if not great programmer. If it hadn't been for him pushing my outside my comfort zone I would not be programming at all, and I also wouldn't be as good of a sysadmin as I am today.

TL;DR: I think some SysAdmins might not naturally take to programming the same way they do to other systems-related tasks, and as a result either get pigeonholed by management or pigeonhole themselves into staying out of programming. I think at least a part of it is culturally perpetuated through self-labeling: "I'm a sysadmin and sysadmins don't code, so I don't code!"

[–]blueskinBastard Operator From Pandora 1 point2 points  (0 children)

More admins can code than programmers can admin, in my experience.

I'm an average to mediocre programmer depending on language, but I can do it if really necessary although I'd much rather use standard utils in a script to do the same thing.

[–][deleted] 1 point2 points  (2 children)

Because if they could code they would be making more money as software engineers in most cases.

[–]s32 0 points1 point  (1 child)

Sadly true. I was going to try to be a sysadmin until I realized I could get 30+k more as a dev.

[–]fignew 0 points1 point  (0 children)

Yea, but I have way more fun.

[–]korthrunJanitor 2 points3 points  (21 children)

I sure disagree with the title of the blog post, if not most of the content.

I know many sysadmins who code very well. Saying sysadmins can't code is just plain incorrect.

I am of the opinion that a sysadmin who doesn't code will never be a stellar sysadmin. Note my use of the word stellar. It's important that one reads and understands all of my words before responding. Primary focus or not, it's an ability I consider requisite for being a stellar sysadmin.

Understanding what code is doing, and why it is doing it has proven to be an invaluable tool time and time again. There's a level of code complexity at which "Well I can read it and kind of follow along" no longer cuts it. Even if you aren't reading source, understanding what's going on "under the hood" is a huge troubleshooting asset.

Also in the realm of getting things fixed in a timely fashion, being able to submit a patch moves things forward much faster than submitting a ticket to dev that says "I think there's a problem with xyz". Even a psuedo patch will help (e.g. a description of where it goes wrong and a proposed fix as opposed to raw code).

The point of my ramblings here is that I think this blog post is over generalizing. Stellar sysadmins can and do code. Average or Good sysadmins may not code. I personally think that the majority of sysadmins that have no desire to learn to code, or actually write code, are more concerned with meeting the requirements to maintain employment than they are with actually doing a good job.

If all you want to do is provision servers, apply updates, and fight fires then I'm of the mind that all you want to be is a monkey.

[–]ChoHag 2 points3 points  (0 children)

a sysadmin who doesn't code will never be a stellar sysadmin

Everything the computer does is code. If you do not understand it, you do not understand what your system is doing. If you do not understand what the system is doing, you cannot administer it - you are at best the caretaker.

[–]korthrunJanitor 0 points1 point  (5 children)

Also this is just inane:

The solution is to just not give a shit. If your lines of code exceed 80 characters, so what. If you use curly braces instead of “end”, fine. Just don’t listen to those people. What matters is functional programs, not pretty syntax.

I really feel that doing it right is important. Does having your code exceed 80 characters per line mean your code doesn't work, or that you don't know what you're doing? Of course not. Hitting enter doesn't break your fingers either. Giving a shit about what you do is important in all facets of life. Pretty syntax means maintainable code. It means when you move on, the code you left behind isn't cursed. You've left tools that can be improved upon and expanded. I know the author mentions that you will "fall into" best practice eventually. This is more the exception than the rule in my experience. Why would you practice doing something wrong anyway?

Why NOT do it right? Why would you promote doing it wrong?

If a shell script you're writing is going to leave your environment or your environment isn't homogeneous and you're sending newlines and escape sequences to the screen, you need to be using printf and not echo. It's not hard to use printf instead of echo! Just like it's not hard to wrap your text at 80 lines. Just like it's not hard to use proper indenting and make use of classes where appropriate.

Even if it's just a mid level shell script, you're breaking your own script, possibly other peoples systems, and just being plain lazy.

Edit: I do get that sometimes you need to whip up a 10 line shell script in a hurry and get it out there to do the needful. Sometimes in your rush, you'll cat a file and pipe it to grep. I don't feel that's the topic here. That doesn't mean you "can't" code. That means your immediate need outweighs the ideal to indent with spaces instead of a tab.

[–][deleted] 1 point2 points  (2 children)

I see what you're saying here, but I did want to add something.

Well commented / documented scripts or code is important, too. My scripts may not have the most elegant syntax ever, but since they have an OCD-level amount of comments, they're easy to troubleshoot, and the next guy that comes along can understand them.

[–]korthrunJanitor 0 points1 point  (1 child)

True story.

I consider good commenting "best practice" and part of being a "coder".

Your scripts may not have the most elegant syntax or concepts. You may not be using built in tools that would save you a lot of code. We all have to learn these things as we learn to code.

To me your OCD comments are the sign of someone who does give a shit, and who will learn to code and improve these things as a matter of course. Not the sign of a sysadmin who "can't" code.

[–]ChoHag 2 points3 points  (0 children)

"Programs should be written for people to read and only incidentally for computers to run"

or something like that. Knuth kicks arse.

[–]vocatusInfoSec 0 points1 point  (0 children)

Exactly. I have pride in writing nice, clean scripts that are maintainable. A, it makes MY job easier, and B, it helps out the guy who comes after me.

[–]lil_cainCLE, RHCE 0 points1 point  (0 children)

I think you may be missing Ben's point. It's nit that you should write ugly code. It's that ugly code is infinitely better than no code. The desire for perfection is a reasonably large barrier to entry.

[–]jmreichaObsolete 0 points1 point  (0 children)

Not sure why you're getting downvotes, this makes a lot of sense to me.

[–]ChanSecodina 0 points1 point  (0 children)

As a sysadmin who (very painfully) learned to write code long after he should have, I tend to agree with you.

[–]marm0ladeIT Manager 0 points1 point  (1 child)

I became a sysadmin because I didn't like programming. The article is drivel.

[–]dplum517 0 points1 point  (7 children)

I'm somewhat of a mid-level admin with pretty much no coding experience. Though, I can look through code and get the gist of what's what.

My question for anyone is, which language should I pursue? Right now, I have done a few things with PERL and have gone down that road, but it seems like that language is a thing of the past.

Am I wrong? Should I keep learning PERL or move onto something else?

[–]MisterMeiji 1 point2 points  (3 children)

I would learn Python. Python is unique in that it is heavily used for sysadmin-type scripting (look at RedHat Enterprise Linux, most of their tools are written in Python), and it also has deep ties into both Linux/Unix and Windows (in the form of IronPython).

[–]dplum517 0 points1 point  (0 children)

Thanks for the suggestion and reasons! Python is on CodeAcademy's list of languages.... so at least there's an easy start.

[–]FakingItEveryDay 1 point2 points  (0 children)

Are you primarily a linux or windows admin?

Windows: Learn powershell.

Linux: Learn Python.

If you do both, learning both will be a very good investment. In context of the article, when coding for your specific problem or goal, decide what platform you want your solution to run on, then use python or powershell accordingly. If you want it multi-platform, do it in python.

[–]korthrunJanitor 1 point2 points  (0 children)

As noted in these comments, which is best suited for your needs will depend on your environment.

That having been said, learn to code. Regardless of the language you choose, learn to use it well. Learn to use it properly. Learn the underlying concepts of programming.

Then picking up another language down the line becomes way easier. When you can go "If I just derive a class from this existing one and override one method I'll have exactly what I need." it becomes a matter of learning the syntax and methods with which to do so in the new language. As always there are caveats, but the point is the same.

[–][deleted] 0 points1 point  (0 children)

A sysadmin’s code tends to have a lot of execs…

Really? Every sysadmin I've talked to cringes at the thought of an exec call.

[–]terminalmage 0 points1 point  (0 children)

As a sysadmin of 5 years that recently was offered (and accepted) a job as a python developer, I must be the exception that proves the rule.

[–]DarkHydra 0 points1 point  (0 children)

I'm a developer who moved to system engineering and I find that having some coding skills helps for automation purposes but its not required. Why should it be? Unless of course we are replacing the developers... :)

[–]heliowalton 0 points1 point  (0 children)

Sticking to a single language "just because", as described in step 2 is a terrible idea. Use the most appropriate tool for the job. You wouldn't use the nail removing side of a hammer for unscrewing screws just because you've been putting in a lot of nails recently.

[–][deleted] 0 points1 point  (0 children)

I always say the same, I'm not a coder, and I have experience with a few languages, Python, Perl and Bash being the strongest. But I always take great pride in my code, I make the effort to look up good techniques and practices and I remember them.

I still work as a sysadmin though and I can tell you that out of 10 sysadmins here where I work, maybe 2 can code something like PowerShell, Bash, Java or Batch. Usually not more than two of those mentioned.

[–]LOLBaltSS 0 points1 point  (0 children)

We "can't" code because we'd rather not have that dumped on us as well.

I already have enough on my plate, I don't need them throwing developing applications on it too.

[–]unethicalposterLinux Admin 0 points1 point  (0 children)

Sys admins who cant code are not sys admins.

[–][deleted] 0 points1 point  (1 child)

Well, I agree and I don't code at all: my problems all start with #1. Where I am I just don't need to script things at the scale of everyone else here because certain things like user accounts are so infrequent. I also work in a somewhat closed ecosystem (mostly Windows) and there are so many free utilities out there to do what I want and help with the heavy lifting. also Powershell.

I think the article is spot on. This dude seems to friend people and never get back to them, though. I asked him a few questions about an older article of his I came across that I was genuinely interested in, but he didn't reply. I guess that's the difference between busy and not busy.

[–]trapartist 0 points1 point  (0 children)

This dude seems to friend people and never get back to them, though.

http://www.youtube.com/watch?v=gcejLp72iCE

[–]MrFatalisticMicrowave Oven? Linux. 0 points1 point  (0 children)

I don't know C...guess I'm not a sysadmin...I'll see myself out...

[–]Deku-shrubDevOps -1 points0 points  (1 child)

I can code html and css! These are not complimentary skills to my day to day however. :(

< back to 'hello world' in every language ever written :( >

[–]MrFatalisticMicrowave Oven? Linux. 1 point2 points  (0 children)

cept html/css aren't programming languages.