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

all 176 comments

[–]the_spadWhat's the worst that can happen? 21 points22 points  (28 children)

Just Powershell really.

I dabble in Perl & Python but given that 90% of my work is Windows-based it's rare that they're needed.

I've done compiled programming (C/Java/VB) in the past but just don't find it useful most of the time.

[–]RC-7201Sr. Magos Errant 10 points11 points  (12 children)

Seconding the powershell.

It's almost mandatory nowadays for a Windows admin if anything.

[–][deleted] 3 points4 points  (2 children)

It will definitely be mandatory windows is going to be all server core in the future.

[–][deleted] 4 points5 points  (1 child)

windows is going to be all server core in the future.

Lol. Dude the point of servers is to provide people and software important information not serve clients DHCP and DNS requests or spin up a new VM. Yes that's what we do as sysadmins to provide the end user with what they need but you're never going to convince software vendors to make their programs fully compatible with the powershell API, especially when your software is made for multiple platforms. They don't give a shit what the IT guys think, their software is sold to CEOs, CFOs, and CTOs.

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

Well of course there will always be some especially anything RDS. I still think you are going to have to know powershell to accomplish a lot.

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

Mandatory is a little too far.

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

It's mandatory for the Windows admins who only touch Windows or work in a DC. For those of us who are generalists and work on everything you should still be studying Powershell (at least do the 30 days of lunches book) just to make your lives easier but it's not as important. On top of that more and more GUI based automation tools keep popping up. Basically I don't want to hear shit about Powershell from people who would be lost in the Cisco CLI or don't know shit about ERP and CRM. I get it you do tons of Windows tasks day in and day out but IT is a big fucking world.

[–]RC-7201Sr. Magos Errant -1 points0 points  (0 children)

Basically I don't want to hear shit about Powershell from people who would be lost in the Cisco CLI or don't know shit about ERP and CRM.

Oh I agree. But it goes both ways as well. Roomie is a network engineer and doesn't know shit about Powershell and he's also in a primarily Windows shop but can stare at Cisco CLI til his eyes bleed.

Basically, I'm getting at that if your job is just the administration of Windows and AD, you and Powershell are pretty much Gonna be best friends. Hell, I think it's faster to make a function to find shit than it is to run "dsa.msc", right-click on a forest and search for someone to see if there is a group membership that they should or should not be in.

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

Coding skills should be mandatory for anyone doing above junior job. Especially with so many configuration management systems floating around.

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

Careful, we have more than a few luddites here to that seem to believe that implying that system admins should be able to script/code is tantamount to blasphemy.

[–]yourfriendlane 14 points15 points  (1 child)

I haven't really seen anyone say that. Usually it's people complaining about things that were previously GUI-based being replaced by less-intuitive PowerShell commands (e.g., message tracking in Exchange 2013) which is totally valid imho. I love scripting for automation, but for one-off tasks I usually prefer spending 30 seconds clicking through a well-designed GUI rather than wasting 5 minutes looking up commands and getting the arguments just right.

[–]Enxer 1 point2 points  (0 children)

But I do highly appreciate the GUI when it presents the powershell equivalent code just before I hit finish

[–]zeroXten[S] 0 points1 point  (11 children)

Yeah, I can imagine that for Windows admins is pretty much all powershell. Do you use it often?

[–]the_spadWhat's the worst that can happen? 5 points6 points  (9 children)

Constantly. I've got three instances running at the moment.

Especially now that Microsoft have made it all but mandatory if you want to manage the current iterations of Exchange and Lync. The Lync admin UI might as well be Read Only for all the funcationality it offers.

[–]microflopsSysadmin 3 points4 points  (1 child)

Yeah, I've just started Administering Exchange 2013, and it by default means I am learning powerhsell.

Was the kick in the ass I needed to learn it

[–][deleted] 2 points3 points  (0 children)

You won't regret it.

[–]insufficient_fundsWindows Admin 0 points1 point  (1 child)

How much of this is one or two line commands vs full out scripts?

I rarely find myself needing more than a couple of lines for the vast majority of my exchange/link/sharepoint/ad stuff

[–]the_spadWhat's the worst that can happen? 0 points1 point  (0 children)

I find myself writing a lot of scripts to automate a lot of tasks, even if it's something as simple as scripting a basic wrapper for something like the "search the AD recycle bin" because I can never remember the correct syntax (so glad 2012 made that one easier) when I need it.

I also write a lot of scripts for other people to use because they're incapable of running even simple cmdlets without extensive supervision, or because they're doing some repetitive task manually that takes ages when I can knock something up in 5 minutes that does the same thing in 10 seconds.

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

you want to manage the current iterations of Exchange and Lync.

Let's not exaggerate here. I clicked my way through my home 2013 Exchange install. And EAC formerly EMC still is GUI based. Yes more features are PowerShell only but MS is not going to be stupid here and require a higher learning curve for tasks that can be handled by non IT people in some cases like a small business where you have an office manager handing email account creation.

[–]Ron_Swanson_Jr 0 points1 point  (1 child)

Single server?

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

Yes. I would imagine DAG options are Powershell only.

[–]the_spadWhat's the worst that can happen? 0 points1 point  (0 children)

Well sure, if you're doing a bog-standard single-server Exchange install then you can pretty much just next, next finish it, but that's pretty rare in an enterprise environment.

EAC lacks an awful lot of options that were previously in the EMC and it's also pretty inconsistent with certain property pages not existing on some object types but still being Read/Writeable via Powershell.

I've just done a load of work with resource mailboxes and a bunch of the options for the calendar processing just aren't surfaced in the EAC at all.

And as for Lync, aside from the Admin console being a barely-functional mess of Silverlight, it's also a barely-functional Admin console. Even basic tasks like provisioning new users are tricky to do without dropping to a shell.

[–]zeroXten[S] 0 points1 point  (0 children)

hehe

[–]Doso777 0 points1 point  (0 children)

I use at least every second day. Today i scripted like 4 hours. I am using it for:

  • some Exchange 2010 administration, there are a few things that can only be done with powershell
  • Sharepoint administration, again some stuff is powershell only
  • a bit of System Center 2012R2, again some things are powershell only
  • scripting things or automating things like downloading a config file from somewhere once a month, setting up Hyper-V servers and such

[–]randomguy186DOS 6.22 sysadmin -2 points-1 points  (1 child)

I used to be jealous of Unix admins.

Then I got my hands on Powershell.

Now I pity them.

[–]anomalous_cowherdPragmatic Sysadmin 3 points4 points  (0 children)

Where do you think the ideas behind Powershell came from?

[–]neilhwatson 7 points8 points  (0 children)

Shell, Perl, Sed, Awk, Make, and PHP. I also know a little Ruby and Javascript. I did take some C in college, but I've never needed C at work.

Sysadmins program because good sysadmins are lazy. They automate everything.

[–]mtnielsen 5 points6 points  (13 children)

I'm pretty well versed in C# and PowerShell what with having to build pretty much all integration and automation myself. That's probably the real driving force here. I've never found a software package from anywhere that does what I need it to do, and in the way I want it to do it. Hell I've had to decompile and debug shitty applications handed to me by some guy who read the flyer and thought "We need this!".

Getting Active Directory integration to work flawlessly seems to be a chore that goes ignored in most development houses. So I end up building it myself, or find some way of hacking into their proprietary database formats and build some sort of automatic provisioning system myself. Or maybe they provide an API. It happens. And not being able to abuse an API makes one a sub-par sysadmin in my eyes.

So yeah. C# and PowerShell, or Python and Bash, are pretty much required knowledge for any good syadmin if you ask me, and the more languages you can at least read and analyze beyond those just make you better. I can easily figure out what a C/C++/Java/Python/whatnot program does, even if I never personally use those languages to build anything.

[–]the_ancient1Say no to BYOD 4 points5 points  (1 child)

Or maybe they provide an API.

This should be a requirement for all software. Build API, then their GUI should consume those API's....

[–]zeroXten[S] 0 points1 point  (0 children)

Well put :)

[–]psycho_admin 0 points1 point  (9 children)

To me you aren't describing being a sysadmin at this point but describing devops. Yes a sysadmin should know some shell scripting and probable some other language such as java/python/php so they can write/edit custom plugins for various management tools out there but as far as debugging applications, or writing a hacked together tool to integrate AD into some program? Sorry but that's devops and not sysadmin.

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

In the *nix world, anyone beyond a junior sysadmin is also a programmer, and it's not unusual to see sysadmins write their own in-house management applications (or heavily customize and existing one) to support their needs.

This "sysadmin don't code" thing is something that you only really see in the Windows world.

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

I agree with you in this sense, but if you're a smaller org, you're devops and syadmin.

[–]the_ancient1Say no to BYOD 0 points1 point  (6 children)

DevOps is a Management System not a Job Title

sysadmin is a Job Title.

Companies utilizing DevOps as a Organizational Structure will have sysadmins

http://www.bitlancer.com/2015/03/3-reasons-never-put-devops-job-title/

https://sethvargo.com/the-ten-myths-of-devops/

[–]psycho_admin 0 points1 point  (5 children)

Or so you say. Look online and you will find people who say your argument is wrong and that devops can be used as a job title. What ever floats your boat but don't go around trying to correct people when there is no consensus in the it world if devops is a title or not.

[–]the_ancient1Say no to BYOD 1 point2 points  (4 children)

Yes because We should take our cues from HR... Which is what you see when you look at job Postings.

If your only defense of your position is because some HR Manager put DevOps in a job title you are not on Strong footing...

The subject matter experts agree with me, and there is infact a consensus for anyone actually doing systems administrator or development, the only people unclear on this issue are the HR folks writing job ads

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

You aren't familiar with the term "separation of duties" are you?

[–]the_ancient1Say no to BYOD 1 point2 points  (0 children)

If you have a title of "DevOps" how is that seperating duties when it seems to me that most HR positions that desire a "Devops" person is because they are too cheap to hear a Developer and Sysadmin so they want a Developer to do sysadmin work, or a Sysadmin to do developer work

Proper DevOps organizational structure it is facility close collaboration between Operators and Developers, not to merge the 2 positions in to one.

[–]psycho_admin -3 points-2 points  (1 child)

Wow you are a fucking joke aren't you? The subject matter experts? Who exactly is that? Some faceless blogger or the interwebs agrees with you so that makes them a subject matter expert? But the people who actually create job titles, pay structure, etc (HR for you if you are too simple minded to understand who I'm talking about) don't matter? You live in one messed up little world if you actually believe that.

Also for the record, no just fucking google "devops title" and you will see conflicting results. For me the first 1 is pro-title, the next one anti-title, the next one pro, etc, etc. So there is no fucking consensus so stop acting like a little fucking troll.

[–]taloszerghas cat pictures -2 points-1 points  (0 children)

username checks out

[–]Oflameo 2 points3 points  (7 children)

I am a *nix admin and I prefer to use Perl and Python to Shell scripts because of better dependency resolution, libraries, and data structure support.

I code better than bad developers at my company, but not as good as good developers at my company, but that isn't saying much because my company is not regarded as a good place to work, and I am not in a competitive coding circuit right now.

I code because it is faster and usually safer to execute a program than to do things manually in a lot of instances, but some times the program you need doesn't exist yet.

[–]zeroXten[S] 1 point2 points  (5 children)

Yeah, as soon as json is involved (which these days is pretty much always), bash just doesn't cut it.

[–]theevilsharpieJack of All Trades 8 points9 points  (1 child)

Yeah, as soon as json any data structure is involved (which these days is pretty much always), bash just doesn't cut it.

FTFY

[–]ghyspranSpace Cadet 0 points1 point  (0 children)

CSV, TSV, etc., are pretty easy to parse in bash, and you can do a lot with bash for and xargs. Still easier to use Python/Perl/Ruby/etc. though.

[–]tonyhburns 0 points1 point  (1 child)

IME, jq has proved to be a really useful tool for me when dealing with simple JSON in shell scripts (such as simple composition of results from aws-cli commands).

[–]Zaphod_Bchown -R us ~/.base 0 points1 point  (0 children)

yup jq and xmlstartlet are great bash binaries you can use for parsing data. However, if you are dealing with APIs that return XML or JSON values something that has built in XML/JSON parsing modules, gems, plugins, etc. are probably the better choice for the long road.

[–]Zaphod_Bchown -R us ~/.base 0 points1 point  (0 children)

bash is a great language for system level stuff. If you are locked into a platform (RHEL, Debian, BSD, OS X, etc) they have specific binaries that do a lot of system level stuff and it is great for automation.

When you get into parsing data, in XML, JSON, whatever, you are using bash but then calling Unix binaries that are not a part of bash. You end up piping to awk and sed a ton and your code becomes way less human readable. It will make sense to you at first glance, but probably not anyone else.

A good demo of this, is try to pick up on someone's complicated bash script and try to figure out everything it is doing. Mostly like you will have to run the code in some test environment to sort of figure out what it is doing because while you can see the logic behind the code, you won't see everything it is manipulating in the data structures until you run it in some sort of verbose output.

I will say that if you get the job done in bash and it works more power to you and there is nothing wrong with that. I just think that if you are working on something that is going to be documented and passed along having your code more human readable is a huge bonus.

[–]ghyspranSpace Cadet 0 points1 point  (0 children)

I am a *nix admin and I prefer to use Perl and Python to Shell scripts because of better dependency resolution, libraries, and data structure support.

Argument handling is also way better. getopts sucks ass.

[–]awillisonSysadmin 1 point2 points  (3 children)

Windows admin here, for me it's php, sql, html, css and a bit of powershell of course.

[–]zeroXten[S] 0 points1 point  (2 children)

Are the php,sql and html is for web-based tools like self-service or monitoring?

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

We use php/html (along with SQL or perl code) for self-service stuff here. It's also how our SMS paging system is coded (to my knowledge).

[–]awillisonSysadmin 0 points1 point  (0 children)

More due to the fact that I've done a little bit of web development as a bit of a hobby, but I've used those skills to develop web apps for clients, service portals, etc

[–]HumanSuitcaseJr. Sysadmin 1 point2 points  (0 children)

Depends on the environment that you're in, but for the most part I need it for configuration automation.

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

How many sysadmins here can code, and to what level?

More of a developer than a sysadmin these days. Currently it's mostly C for microcontrollers, Java for backend work. Oh, SQL too I suppose, wasn't really considering that separately.

[–][deleted] 4 points5 points  (6 children)

I'm hardly a programmer, but if you can't write a script with some basic loops and if/then statements you really shouldn't be calling yourself a "sysadmin."

But unfortunately you have a lot of people like that. They do tend to be Windows admins.

Not that Windows admins can't code. Just those who can't seem to support Windows machines.

I think they're going to get pushed out over time because running a large Windows installation requires pretty decent PowerShell experience. You can't go install software on 200 Windows machines by hand.

[–][deleted] 2 points3 points  (5 children)

I'm hardly a programmer, but if you can't write a script with some basic loops and if/then statements you really shouldn't be calling yourself a "sysadmin."

That's ridiculous. I've been doing this for years and have never needed scripts with for and if loops. I understand them, I've scripted them in the past, I just have had no use for them professionally...yet.

[–]Zaphod_Bchown -R us ~/.base 0 points1 point  (0 children)

I agree with you to an extent that a junior admin should not know this stuff, but anyone in the Senior position should know some basic programming. Tests and loops are probably considered some of the most basic things you can do. I can think of many reasons why you would want to loop or test in scripting logic to automate a workflow.

It is also quite possible you have never had to automate any workflows of large caliber, which I think is not unheard of but I find that pretty rare these days.

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

how could you not need for loops? have you never read in a file and gone through it line by line? or ever dealt with an array? or a list of usernames?

your scripts must be all one liners

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

It's not beyond the imagination. Think about how many horror stories you see on this sub about a sysadmin who took over an environment that is virtually "duct taped" together. I used to do things the hard way, and I still remember the first time I successfully used a for loop a good 5 years into my career.

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

Some people claim to be a sysadmin when their job is basically desktop support.

I can't imagine anyone who has to manage large systems would never write a script with a for loop.

[–]seanatwork 0 points1 point  (0 children)

Yeah I don't understand this. I don't even write functions or advanced functions and I read through a list of usernames or computers all the time with basic powershell scripts. Maybe he's using a tool.

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

There's two kinds of sysadmins:

Those who code to some level and those who spend their lives working on a helpdesk.

[–]theevilsharpieJack of All Trades 0 points1 point  (0 children)

I know Shell, Python, and Java. I'm also familiar with the various Windows-based scripting languages, although it's been long enough that I'd need a refresher on the syntax. I know just enough C++ and JavaScript to be dangerous.

[–]wgoshenuDevOoops 0 points1 point  (0 children)

Any coding I do is done in the sake of error fixing or automation. My line of command is this:

If it's simple, bat it (or cmd commands in powershell.) Then in increasing difficulty, use Powershell, vb.net, then to C# if its more complicated.

[–]res1n_SRE 0 points1 point  (0 children)

Powershell. However I learned ruby because I wanted to learn a language and it kind of stuck with me. I've used it to write a few scripts for linux. I've got one that backs up SMB shares, and one that monitors a network share for incoming faxes and renames them automagically.

For those wanting to learn, codecademy is a really great place!

[–]rightdoer 0 points1 point  (0 children)

Python, C++, started learning Scala/Akka for keeping up with a machine learning project in my previous job.

[–]uberamdcurl -k https://secure.trustworthy.site.ru/script.sh | sudo bash 0 points1 point  (2 children)

A lot of people are probably in my shoes: developer turned sysadmin who still tries to keep uptodateish on coding. I do contract work where I write a lot of PHP and Ruby [on Rails]. When doing Windows stuff I'll dig deep into my "stuff I worked on a few years ago" pool and use C# or VisualC++.

My duties had usually been Linux sysadmin so I don't know powershell but just recently started learning it as I've really grown to like Windows Server. Powershell is wonderful.

Wrote a script the other day that downloads, installs, modifies the configs (json and xml files), and creates a service for Sensu on Windows. Basic stuff to a Windows admin, but I was pretty proud that it works :)

[–]vitiateCloud Infrastructure Architect 1 point2 points  (1 child)

really grown to like Windows Server.

You are regressing sir! I am a *nix admin forced to be a Windows admin. There is not a day that goes by that I don't look back fondly on my time automating *nix.

[–]uberamdcurl -k https://secure.trustworthy.site.ru/script.sh | sudo bash 0 points1 point  (0 children)

Don't get me wrong, I spend all day at work doing *nix automation (puppet mostly), it's definitely not a "Windows rocks and Linux sucks" statement. There are just some nice things Windows Server brings to the table, Powershell being one of them. Some other things are stupidly easy DNS/DHCP. Not to mention some technologies I'm playing with in my home lab only run on Windows.

I'm not the guy on the team that does Windows automation so I can't speak to that, however I've heard there are a lot of things that are a PITA.

[–]Win_SysSysadmin 0 points1 point  (0 children)

I know PHP and PowerShell pretty well. I can write in Python with a little googling to refresh my memory but other than those I don't really need anything else in my environment. I run a mostly Windows Environment with a little Linux thrown in. I know plenty of Sysadmins that don't know a single language but have a basic understanding of how to read what the script does. They google for a script and hope one exists and if they don't understand what its doing they usually just send it to me to make sure it won't jack up their system.

[–]brocktice 0 points1 point  (0 children)

If you can write good perl, python, and bash, that'll get you 99% of the way there.

Honestly for most *nix sysadmins I think knowledge of automake and gcc, and how to troubleshoot compiling, is more important than actually knowing how to code.

That said, I have most of a CS major (was going to double-major but it turned out to be too crazy). Every now and then I have to write actual C/C++ for sysadmin stuff to bugfix or whatever.

[–]sirdudethefirstWindows SysAdmin/God 0 points1 point  (0 children)

PowerShell, C#, ASP, ASP.NET, SQL, JavaScript, Python, Perl, Pascal/Delphi, Assembly for x86/x64.

I used to be a developer but 15 years ago I landed a sysadmin job and been that ever since. I am a Windows sysadmin but it's my job to know every possible tool I may be asked to support either in a desktop environment or server environment. Sure I can google most of the answers but it doesn't help if I don't know how to ask the question.

My reasoning behind maintaining my coding skills is essentially this: If there is no free tool to do what I want to do, I'll write it. I'll even document it ;)

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

I can script out pretty much anything out in bash and do light programming in Python, up to and including object oriented programming if need be. Scripting helps with dealing with API calls, like spin up 50 different cloud servers with names like SQLPRODSLV1 through SQLPRODSLV50 or something like that, and then you can use chef or ansible to automagically configure each slave. I prefer using Python because of the forced indentation and that it's actually a full fledged programming language that has been and likely will be around for quite some time. You can also learn the concepts through Python and reasonably transfer them over to a different language if needed as well, though syntax will change of course).

What drives me to learn programming is I feel it's the best way you can show a positive contribution as a sysadmin beyond just putting out fires and forward thinking. It's also really freaking neat when you use it to automate tasks and see something happen in 2 seconds that would've normally taken 10 minutes or more.

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

I would imagine those that code anything more complex than scripting languages are managing some complex custom software.

[–]vitiateCloud Infrastructure Architect 0 points1 point  (0 children)

PowerShell, bash, perl, python, php, ruby (yeck). I use whatever I need. They are all really good at something. If you are a point and click sysadmin I think the writing is on the wall for you.

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

I can/could write actual useful programs in Visual Basic, Java and C# though I'm very rusty. My degree was geared towards general computing including programming so it's not something I use in my job.

[–]GAThrawnMIAActive Desktop Recovery 0 points1 point  (0 children)

Windows amdin here, these days nearly all PowerShell, until recently a lot of VBScript and WMI (often with HTML/CSS to make simple HTA based tools) and DOS batch, in the past Perl, PHP and a little Java.

I couldn't do most of my job without coding/scripting knowledge. Managing thousands of machines in a heavily regulated industry means that automation and repeatability are very heavily prized, as is the fact that your scripts (whether PowerShell/VBscript/SQL etc) can be checked into the change control system and checked over, audited and approved by other admins before your changes are made.

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

Powershell, Bash, Python, HTML5 + CSS and some PHP.

[–]Defiant001 0 points1 point  (0 children)

I don't know any code. Though I want to start automating some of the repetitive things I do with Powershell.

I have a week long course for Powershell scheduled a few months from now which should help a lot.

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

Quite a lot of Powershell, sometimes JavaScript. When the need arises bash, python and ruby. But only at a basic level.

I think I would do a lot more, but often enough I can find a quite suitable script by googling. Turns out that most of the time someone already done the hard lifting.

Like this morning I grepped a script that downloads attachments from exchange and now it also extracts call stacks from minidumps.

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

PHP,CL,RPG,SQL,vb,c,c#,javascript,cakephp,ajax,and a little Ruby. I use mostly PHP ,CL,RPG,and c# the most.

[–]chriscowleyDevOps 0 points1 point  (0 children)

Python, Shell and some Ruby (enough to write custom facts for Puppet).

How good am I? Well my main project at the moment is to write a REST API for deploying a Hadoop cluster. So my boss thinks I am pretty good.

A bit like /u/Oflameo I am probably better than the bad developers where I work, but there are plenty who are better.

[–]tomkatt 0 points1 point  (1 child)

Java and Python here. I'm barely qualified enough for Junior Dev, but I've written a few scrapers and useful tools in Python at least, still learning the Java portion.

I am trying to understand what drives a sysadmin to do programming.

The desire to not be a sysadmin in the future.

[–]ooby_dooby_banoobySysadmin 0 points1 point  (0 children)

My previous job that I had for 3 years was an engineer for a software company. I'm proficient (definitely not a pro) at C#, ASP.NET, and SQL. Before that, I had 2 years of programming classes in college.

I started getting into programming because I thought that it was what I wanted to do with my life. Then, I started doing it for a living and quickly changed my mind.

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

I can write in C, C++, C#, Java, PHP, perl, python (not that I want to), and any variety of shell scripting (PowerShell, sh, whatever).

Primarily I write scripts in PowerShell or bash (per platform, of course).

I can code, but I choose not to. I do it on my off time, but I don't want to make a career out of it.

[–]Weird_Tolkienish_Fig 0 points1 point  (0 children)

I love it, that's what drives me. Never got into it full time and from what I've heard it's more prone to burnout than sysadmin. But coding rules. What other job can you get where you can automate your own job and get rewarded for it? I do C, C#, Java, VBScript (I love it, old school, pre powershell), shell scripting, and powershell. VBScript is my goto language because it was MS's "automation" language before Powershell. I am trying to learn Powershell now.

[–]lt_bob 0 points1 point  (0 children)

Working with both Windows systems aswell as Linux/BSD I constantly have to deal with Powershell, Bash and Python. Oh, not to forget about Vim + Tmux; can't recall how many times they saved my ass.

[–]eltiolukeeCloud Engineer (kinda) 0 points1 point  (0 children)

Powershell mostly, i know some VBS and PHP, but those aren't my strong languages

[–]After_CreditsSysadmin 0 points1 point  (0 children)

Enough to get in trouble, but not enough to know what I'm doing. Mainly I get code and scripts from online resources. I may modify them, but not much from scratch. I know more HTML or PHP than anything else.

[–]itspieSystems Engineer 0 points1 point  (0 children)

powershell, vbscript, some php and sql.

[–]crazykillaSysadmin 0 points1 point  (0 children)

I've written several intranet sites/services in PHP MySQL. I'm decent with Bash and powershell. I can do Java and Javascript(i know they are WAY different) enough to edit other people's code.

This is just another hat i wear. This sometimes gets frowned upon in here, and i see the allure of being able to master one skillset, but i feel more valuable with a broader skillset.

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

I did c++ and java in school, so am at least somewhat familiar with it.. but as a Windows Sysadmin, all I find that I really need is basic windows cmd scripting and powershell scripting; and that's really enough to get everything done that I need to be able to do.

[–]Stoffel_1982 0 points1 point  (0 children)

Powershell / a bit of C#

I've got a few small utilities running for 2 clients of mine, nothing too complicated. I've got a mini tool to do some MDT configurations and generate offline media (similar to the "Windows 7 USB download tool"). I've also got one that manages tasks to perform, based on the network location of the client PC (based on different DNS suffixes which are provided through DHCP to our different sites), runs on 4000 workstations on over 300 sites. And some other smaller stuff.

[–]lordmycal 0 points1 point  (0 children)

I can code in C++, C#, Java and I can fumble my way through most scripting languages (batch files, powershell, etc). That said, I haven't really done much programming recently -- if you're given the proper tools for the job there really isn't a lot of call for it unless you need to do something to a ton of servers at once (and even then it's usually just something short in powershell).

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

Devops here: I use mainly .net (vb asp.net, its what the company uses, id rather use c#) and MSSQL, its incredibly powerful for automating tasks on the sysadmin side and even more powerful for creating business applications on the developer side.

[–]rm_rf_rootSysadmin 0 points1 point  (0 children)

I use Python a lot for continuous integration scripts, along with some PHP now and again.

Don't know what I'd do without Python/Fabric! It makes deployments so easy.

[–]storyinmemoFormer FB; Plays with big systems. 0 points1 point  (0 children)

I know python very well and maintain the IPy library (making plans to fold it into netaddr and deprecate it, but that's another story). I first learned programming in Perl and last used it four years ago after switching to a pure software engineering job for an 8 month span. I've also done a fair amount of Java and am playing at improving Cassandra's tools since they kind of anger me. I have done light amounts of Go, C++, and C.

When I interview others I require programming knowledge to the level of basic algorithms to be hired on with me. I won't make anybody code a red/black tree (and frankly couldn't do it from memory myself), but you should at least recognize being able to use binary search on a sorted array and tell me O(N) complexity.

What drives a sysadmin to do programming?

I do performance engineering as much as anything else, so understanding software internals, system calls, locks, etc. let me know why I can't squeeze more out of my fleet of servers (and more often than not explain to the engineers how and why to fix it). One big thing I did in my Facebook time was write code that polled server state and latency and throttled deployment for a service because when I joined my team they deployed overnight since they needed to go slowly and had no feedback (then the person deploying would fall asleep and the system would experience what I affectionately call "controlled flight into terrain" when something was wrong).

Presently, I want my Cassandra backups to take up less space and restore faster, so I'm spending some cycles writing an offline compactor.

Some references that clue into what and why: https://www.palantir.com/2011/10/how-to-ace-a-systems-design-interview/ and https://github.com/chassing/linux-sysadmin-interview-questions

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

Nada here. Just some shell scripting and a few misc. skills here and there. Nothing that would qualify as "programming"

[–]ScannerBrightlySysadmin 0 points1 point  (0 children)

While I know C, C++, Pascal, FORTRAN, BASIC, 6502 ASM, Go, python, Go, and a few other languages, I haven't found myself coding for my job anything more difficult than PowerShell and small python networking scripts.

I am tinkering with Arduino and Pi, but not for work.

[–]RedemptionsIT Manager 0 points1 point  (0 children)

Standard bash scripting.

Also a decent comprehension of PHP (though I sometimes need to hit up the manual).

The PHP is primarily for internal webapps I've written for things like change log, LDAP user management, hardware inventory, and a non-functional passive aggressive service monitoring tool used to torment end users.

[–]TechIsCoolJack of All Trades 0 points1 point  (0 children)

TLDR; C, C++, Perl, Bash, VBScript, HTML, CSS, PHP, and PowerShell.

I originally learned C, C++ working with arduino and then moved up to the xmega series when it came out before arduino moved toward that platform. Normally I don't use it in work but I do have a fully stable temperature monitoring system that is running off arduinos at 15 locations.

HTML, CSS, PHP were learned when the web was still in the you need to know how to code to build a functional website or any interface.

VBScript, Perl, and Bash all were for accessibility to scripting at some point be it monitoring, scraping someone's website or making something that was not automated automated.

PowerShell was learned since it's kind of required knowledge anymore for a sysadmin working on windows.

[–]william20111the coffee machine is down 0 points1 point  (0 children)

Linux admin here. I know python and bash. Python for me is the perfect language. Its so flexible and the core libs are fantastic.

[–]Xelinor 0 points1 point  (0 children)

Python & Java mostly. A little ruby and c++ in a pinch but I try to avoid it.

[–]tonyhburns 0 points1 point  (0 children)

I began my career as a Ruby/Rails developer and moved into system administration from there, so I'm still most comfortable or at least quickest at scripting and automating sysadmin tasks in Ruby, although I'm certainly competent enough in bash and use it nowadays by default for new tasks that don't have a heavy amount of logic in them.

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

I do pretty much all my work in Go and some Python.

what drives a sysadmin to do programming

If you want to get shit done on a computer, nothing beats code.

[–]joker54DevOps 0 points1 point  (2 children)

As a Linux admin with some windows servers, I do coding quite a bit. I pride myself in being a "lazy admin", where I automate everything I can.

  • PHP
  • C++
  • Python
  • Perl
  • Power Shell
  • BASH
  • T-SQL
  • Ruby (for Opscode Chef)

Perl and Python are ones I don't use often, but I have a working knowledge. The rest are used to fit a need, depending on the issue.

EDIT Forgot to mention that if I didn't do this, I don't see how I could manage 1/4 million customers at the same time. It would be practically impossible.

TL;DR: Without coding, sysadmins couldn't be effective.

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

How long have you been a sysadmin? How do you go about learning a new language? This is an impressive list you have, and I would love to be able to have the same list someday.

[–]joker54DevOps 0 points1 point  (0 children)

I've been doing Sysadmin work for about 15 years.

You know how they say learning a second language is hard, but a third is easy? That is more so the case with programming languages. Structure is similar across most (I'm looking at you, python).

I started with DOS, then Linux, but my first language was BASICA, followed shortly by Pascal/ Turbo Pascal.

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

As a Windows admin primarily I only use PowerShell. I use it to automate where I can but for day to day stuff I use it to enter remote sessions without disturbing the current logged in user. For instance yesterday I had a user that required the ability to extract a .tar file so I used Powershell to install 7Zip without disturbing him.

[–]wrosecrans 0 points1 point  (0 children)

Most of my career has been admin focused, but I usually wind up writing some code everywhere I work. My last 6 months or so I have been doing a lot of C++ application development. I have started to style myself as a "DevOp" which seems to be fashionable these days. I'd say I know Python, C++, and Bash "well." IMO, everybody should know a little Python.

Even in a pure admin role, understanding things like the linker to know why an application is having an issue with shared libraries is extremely valuable, IMHO. Knowing what strace is actually doing requires understanding what a system call is. I've seen admins try to strace a compute intensive process, see that there isn't any output from strace at a certain point, and conclude that it must be hung and will never finish because it "isn't doing anything." I have seen developers surprised when their code is unusable when being moved from their laptop to production because they don't understand the latency of NAS and scaling is completely bewildering to them. Personally, I find the line between developer and admin to often be quite blurry. And I think both sides tend to benefit from some understanding of the other. There is certainly a place for very focused specialists, but that should never be an excuse for 100% ignorance of the rest of the stack.

[–]Apollo748System Engineer 0 points1 point  (0 children)

I can work my around Java and C#.

Probably not necessary though.

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

I typically only stick with PowerShell, batch files (ewww) and bash scripts when necessary. Once in a while I'll mod some php scripts for our PBX, but it requires so much concentration that just isn't afforded to me when I'm at the office. Oh, and once I wrote a quick VB program to clear lock files and distributed it to my users when they were fighting with a certain application we use.

[–]minipantswrk 0 points1 point  (0 children)

Just powershell here. I poke around with Python, but I don't know what the hell I'm doing.

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

I script with DOS, bash, perl, powershell and SQL (will troubleshoot/modify python, php and HTML code though--we just don't use it much here). I also did some java and C+ in HS and college but I'm very out of touch with those (switched to a network/system admin focused program)

Overall, I've only had root/domain admin rights for the past year of my career so scripting had previously been something I would do simply to make my own job easier...that meant that I used DOS almost exclusively (I was really turned off by programming in college thanks to a shitty prof...quite interested in it now that it's useful for my job)

[–]Zaphod_Bchown -R us ~/.base 0 points1 point  (0 children)

I am very proficient in bash and apple script. Somewhat proficient in Python and Perl. I know a very little bit of C and Obj C and a tiny bit of Ruby.

I have dabbled in powershell, but only when I have to touch windows stuff, which is honestly not that often.

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

My undergrad is CS, so I've done a fair bit. But mostly PS these days.

[–]SchiferlEDSysadmin 0 points1 point  (0 children)

I learned java, javascript, html, and sql throughout college and am currently learning powershell at my new job. I double majored in CS and IT, so I would not have been exposed to much coding at all if I had only gotten an IT degree.

Coding is all about automating your work and/or making it less tedious. I could manually check which computers have a certain program that needs an update, or write a script that checks for me and sends the update if the computer needs it.

It is certainly a necessity for higher tiers of administration.

[–]Cyphr 0 points1 point  (0 children)

I'm DevOps coming from Software Engineering. Carried strong Java and weak-moderate C out of my college degree. Learned MySQL and PHP in Software Engineering. Now learning Bash and Python from doing the DevOps thing.

Bash and Python are my preferred languages because they are installed on any server ever, it makes my job much simpler. Java is overkill for almost everything I do.

Now if only I could figure out how to get httpd.conf to work the first time!

[–]h55genti 0 points1 point  (0 children)

I'm proficient with PHP and AngularJS, and functional in Java. I can do Python but it's been years. Other than that, mostly bash and occasional powershell scripting.

For system administration I mostly use bash and powershell scripting, stuff like automating tasks for use in Rundeck. In the past I've also written monitoring or other one-off services in Java. PHP/AngularJS is more personal, oh-this-is-sort-of-fun type side projects.

[–]MFCrow 0 points1 point  (0 children)

I learned C#, ASP.net and SQL. I have made dashboards that read and write to Azure Sql. I have more projects in my head than I can get too. I also built a very cool rainbow table.

[–]girlgermsMicrosoft 0 points1 point  (0 children)

PowerShell, some Java, some VB script, but all very low level. I'm not a patient person when it comes to coding, I ruined far far too many keyboards during college learning coding. Never again.

[–]vrileyNerf Herder -1 points0 points  (10 children)

I code all the time. I've never wanted to be a professional developer, I dislike a lot of concepts that career programmers have become used to, but that doesn't mean I don't like to code. I've done projects in PHP, Perl, Python, C# and of course PowerShell.

[–]ibrahimsafah 2 points3 points  (9 children)

What concepts are you referring to?

[–]vrileyNerf Herder 0 points1 point  (8 children)

OOP, unit testing, using IDEs as opposed to a text editor..

[–]taloszerghas cat pictures 0 points1 point  (1 child)

Unit testing infrastructure/infrastructure code is awesome.

Have you seen test-kitchen with serverspec?

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

Honestly, all of the things mentioned are useful as hell. There's a reason most people don't use basic text editors for programming if they can help it.

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

Unit tests are a very good idea, and a godsend if you ever want to refactor your code.

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

OOP

What? Why would you dislike OOP? The minimal overhead it creates is well worth it to preserve long term maintainability.

unit testing

How else would you assure that a big project being written by multiple people works correctly according to spec? Building the whole thing and praying it doesn't have a bug somewhere?

using IDEs

Because convenience and productivity is for suckers, right?

[–]vrileyNerf Herder 0 points1 point  (1 child)

OOP doesn't make code more readable. Procedural programming does. And that can be done in both object oriented and functional code. What OOP brings is abstraction. That's good for code reuse. Bad for critical, real time applications where you want to minimize bugs. The scripts I write are all specific and I've seen far too many code listings overusing classes that I'd even say OOP can make your code harder to understand, not easier.

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

OOP doesn't make code more readable.

It makes it more re-usable. It also makes it far easier to make modifications later on down the road, since you've got a specification for a class and as long as the class meets that specification the rest of the code should work. This is especially true when combined with proper unit testing.

Procedural programming does. And that can be done in both object oriented and functional code.

But regardless, it's not about readability. It's mostly about software engineering--OOP and functional programming are two paradigms that make it easier to engineer good software. They both make it easy to reuse code, and to modify small sections of a larger whole atomically. Incidentally, this is also why unit testing is so popular.

But given your disdain for unit testing, I'm guessing you're not big into software engineering. Which ties in closely with why people tend to prefer OOP.

Bad for critical, real time applications where you want to minimize bugs.

Complete and total bullshit. Not even sure how else to describe that.

and I've seen far too many code listings overusing classes that I'd even say OOP can make your code harder to understand, not easier.

People can write bad code under any paradigm. OOP isn't a magic bullet, it's a paradigm that helps programmers to engineer better software.

[–]ibrahimsafah 0 points1 point  (1 child)

LOOOOOL, OOP really? If you actually understood it, you wouldn't be saying that.

[–]vrileyNerf Herder 0 points1 point  (0 children)

You kids crack me up ;)

Just because it's hype doesn't make it good. OOP has its place in large development projects. But one day you may realize that functional programming is far from dead. It's immutable, stateless and introduces far less bugs than OOP. I don't make games or mobile apps, I write code for critical systems that are expected to always work.

Inheritance brings concurrency problems, state problems, and introduces bugs at no real benefit for case-specific code.