I can so much agree. I pretty much went that way and a lot of it is true and I wished I had done that earlier. Also I would recommend everyone to go this way, because it makes some problems easier to solve for you, even if you stay a sysadmin.

Other than that, I really wasn't a good sysadmin, actually I used to be a really bad sysadmin, but still came from that direction. This however brings me to another thing: Sysadmins aren't ever valued enough.

Everyone treats Sysadmins as second class IT people that can't code too well. However, that's from my point of view not true at all. They usually code "script" way faster. Their set of tools simply are different and designed for people trying to reach different goals.

But there is more to this. As a programmer, you have your cozy, nice environment, your nice specifications, your nice libraries, your basic knowledge of data structures, etc and you have an easy way to be like "uh you can do it that way. It's even cooler".

As a sysadmin you usually don't have anything to rely at all. You don't learn too much at universities, that can be of help and while as a software developer you basically have to just write code and make that work as a sysadmin you are dealing with unpredictable systems, have maybe a single system with multiple users, need to make sure none of these processes do something bad, yet can do everything they may need to do, need to trace down an error that is somewhere, don't have a debugger, can't just quickly run the code on your test system, have a way harder time to trace things down, but then it doesn't have to be the one system, but could be a whole network of such systems, the whole internet can be the source and you are pretty much always in the battle field, in live systems and lots of attackers could potentially attack every single thing and you basically need to know every protocol, and every piece of software, every network connection and by heart. It could be something very high level causing the problem, a faulty program, the hardware, physics, whatever and you have to try to master chaos every single day, while programmers usually just work with something simple and often see it as a super hard problem when they are dealing with some input from the outside.

I don't know, but it feels weird, when the bigger amount of math basically causes your pay to be higher, when that very thing is actually making your job easier.

I am a programmer myself. I love coding. I love my job and I kinda like to brag a bit with it, but actually compared to many other jobs, like sysadmins we are really overpayed, while way too often complain about bad sysadmins. Being a sysadmin isn't just "apt-get install apache", but way more and way intense.

Another thing that's also funny and strange is that scripting thing. The same thing that often causes sysadmin to start out with ugly code is the thing that makes sysadmin advance extremely quickly when it comes to code quality. Once they really are programmers they know that a lot of code can be complex and since they have skills in using many tools and not just use them, but use them correctly (unlike most programmers tend to) they will usually turn out to write high quality (less bug prone) code with the right amount of defensiveness and in a way that brings some kind of order into chaos.

It's a hard way, but sysadmins are maybe a bit too much perfectionists to realize that they would be good programmers and that hardly is recognized by people starting out as programmers, who would make really, really awful sysadmins btw. and no just because you set up a unix system and a firewall it doesn't make you a sysadmin.

I actually even think that the devop thing is going partly into a wrong direction. It works, but only if you are using Ubuntu. No, really. That's also not a good thing in general, because it could actually push IT backwards. Diversity is sadly not valued enough. Using the right tool can really push you forward. And while we often seek for tools used by most people it ultimately leads to stalling. Going into a direction where we have Ubuntu instead of many Linux distributions, many Unices, many Operating Systems isn't good. There are reasons for the creation of more than one and they didn't use to be as naive as they frequently are today.

Also Sysamdins are very humble. One can actually see that by version numbers. It's maybe a bit silly of an example, but they (and programmers working with them) are extremely conservative about making a version sound like it could be stable. If they try their hard to find anything to change or make better and really can't think of anything then they will maybe call it 0.9 Alpha. On the other hand, if they find something that is called 12.13.4.0 then the zero at the end makes them really suspicious about the software being too unstable (there is enough chaos already). If you know such software then it is probably written by a person somehow related to sysadmin stuff.

However, there is one thing that would make Sysadmins really great programmers: They are super pragmatic. They a´have a good sense of realism. They know what's necessary and what isn't, as long as they are not afraid of being punished for non-perfect/beautiful code. That means that they are good at writing release-ready (feature-/stability wise) code.

However none of that is true for anyone who just switched. It's just hard to learn what the right amount of quality really is and that it also is about "beautiful code".

Well, so much about my experience. If you know a sysadmin that likes to code, maybe help him and be nice. They are always complained about when something doesn't work (even when it isn't their fault) and whenever something works great it is the developers, marking people and so on who are praised.