TE
TechEcho
Home24h TopNewestBestAskShowJobs
GitHubTwitter
Home

TechEcho

A tech news platform built with Next.js, providing global tech news and discussions.

GitHubTwitter

Home

HomeNewestBestAskShowJobs

Resources

HackerNews APIOriginal HackerNewsNext.js

© 2025 TechEcho. All rights reserved.

How a sysadmin can become a programmer

75 pointsby sea6earalmost 12 years ago

24 comments

Aqueousalmost 12 years ago
Great advice except for this bit:<p>&quot;Step 3: Scripting isn’t programming.&quot;<p>I have to disagree that scripting isn&#x27;t programming. To me it is no less programming than using a library, except for you are interacting with that library through stdin and stdout instead of a direct function call. If there are no libraries available for a single user tool, then execing is your only option. UNIX is designed to pipeline many different small tools that do one thing very well together. What&#x27;s the difference between doing that at the command line vs doing it in a script? Sometimes it&#x27;s just the most efficient way to program something. And with the use of exec tools can get quite powerful quite fast.
评论 #5991519 未加载
评论 #5991402 未加载
评论 #5991295 未加载
karlkatzkealmost 12 years ago
I&#x27;m a sysadmin who used to be a coder. I know a lot of people who have gone in either direction.<p>The reason I stopped coding is that I got into it to solve problems, but I got tired of spending what felt like 90% of my time writing unit tests, wrestling with frameworks, and solving problems with upgrades to the huge webs of dependencies for even basic projects. In other words, I got fed up with what coding has become. It&#x27;s no longer hacking. It&#x27;s toolchain management.<p>I&#x27;d always been a full stack developer, so I just started focusing more on the sysadmin side and gradually transitioned over there. I can manage toolchains just fine if I want to focus on that. My coding experience is handy when we&#x27;re trying to troubleshoot a bug that only shows up on production ... uncommon, because our dev and QA groups are GREAT, but it still happens. I not only know where all the logs are, but I&#x27;m able to read the code and make sense of stack traces from the different languages we use.<p>Those who think what I&#x27;ve done is ridiculous don&#x27;t understand how scripted everything that happens in the sysadmin world these days. Everything in infrastructure&#x2F;operations is scripted except the troubleshooting -- and even that stuff gets scripted as soon as it&#x27;s done so that it doesn&#x27;t pop up again. Yes, the native language of these tasks is bash, but ruby and python are becoming really popular. So&#x27;s haskell, for those who can speak it. What&#x27;s disappointing me right now is that all of the chef stuff we&#x27;re doing is starting to get complicated enough to have a big toolchain (thankfully managed right now with bundler) and starting to grow unit tests... Didn&#x27;t I make a career change to get away from this crap?<p>I think I&#x27;ll go be a DBA next. ;)
评论 #5991479 未加载
评论 #5991348 未加载
oneeyedpigeonalmost 12 years ago
This whole article is full of prejudice, narrow-mindedness, and over-generalisation. I&#x27;m not a sys-admin myself, but I have known some, and they certainly didn&#x27;t fit this stereotype.
评论 #5991214 未加载
CrLfalmost 12 years ago
Let&#x27;s just, for a moment, entertain this radical notion that many sysadmins are actually programmers that just don&#x27;t want to do software development as a profession. I know that, for most people here, this is very strange: who would choose to avoid the exciting world of programming having the skills to do so? But indeed, it happens.<p>For someone that likes to solve problems, 95% of software development is mind-boggingly boring. It&#x27;s mostly looking at the same codebase day-in and day-out, while having to deal with shifting requirements. All of this to end up with some application that you mostly wouldn&#x27;t use yourself. This, if you&#x27;re lucky that your project doesn&#x27;t get cancelled before it sees the light of day, or it doesn&#x27;t get delayed so much that you get so bored that you move on before seeing it to completion.<p>And the consultancy... Parachuting into projects at clients and being extracted by helicopter when &quot;it&#x27;s done&quot; (which is usually when it meets minimum requirements to receive payment, not when it is at all in a state to be proud of).<p>Really, 95% of software development isn&#x27;t glamorous stuff at NASA or the next big social network(1).<p>Systems administration, provided you are self-motivated, can actually code your way out of a hole, and are willing to deal with the occasional user, provides plenty of space to solve problems with programming. With <i>programming</i>, not IDE and framework juggling.<p>Sure, it can be boring at times and can be stressful at others, and you have 95% chance of being in the exact same environment where you wouldn&#x27;t like to be coding in. But at least you have more autonomy and can actually <i>solve</i> problems.<p>I&#x27;m a programmer by training and a systems administrator by profession. I would most likely rather be programming than taking care of systems and databases, but only if I found something in those remaining 5% that I would actually enjoy doing.<p>Otherwise, it would just burn me out from programming altogether, and I like programming...<p>(1) Actually, developing the next big social network is probably as boring as everything else I said. Who in hell wants another social network?
评论 #5992610 未加载
评论 #5992785 未加载
dsr_almost 12 years ago
Hi, I&#x27;m a systems administrator. I&#x27;m reasonably senior. I can tell you that pretty much all sysadmins code. In overlapping sets, some are good at it, some don&#x27;t need to be good at it, and some like solving problems that way. But being a sysadmin is a different job from being a software developer, and people who are good at one and not the other are much more common than those who are good at both.<p>The nature of systems administration work falls into two broad categories. The first is small problem work: a user has a problem, a machine signals an alert, something isn&#x27;t working. The second is, of course, large project work: users need a new service, the alerting system needs to be replaced, new infrastructure needs to be built. Most of the time, but not always, the small problems need and have immediate solutions, and the large projects are not as time-critical and require some amount of research, budgeting, selection, configuration and support before they can be deemed complete.<p>A sysadmin who has specialized into a particular problem domain will need the skills appropriate to that domain. Sometimes that means picking up a new configuration syntax -- which may be a complete language. Sometimes it means building better communications skills, so that you can diagnose what your users are complaining about. Whatever it is, you can assume that the people who specialize in an area that doesn&#x27;t require much programming, don&#x27;t do much.<p>Generalist sysadmins, on the other hand, need to be competent at a wide variety of skills, including two or three languages. That doesn&#x27;t mean that they need to be UX designers (but they need to recognize a UI failure) and it doesn&#x27;t mean that they need to be database administrators (but they need to understand how to back up and restore the databases they support, and figure out the replication system and find single points of failure). They do need to be able to write short programs to automate what they would otherwise do manually, to figure out what the debug logs are really complaining about, and to understand computer systems from electrical and environmental needs through virtualization systems and configuration management.<p>Finally, there are sysadmins who are also developers, who announce that they don&#x27;t like any of the existing mail programs and so they will write a new one; who determine that there&#x27;s no configuration management system that tracks and removes subsystems as cleanly as they would like, and so a new one will be needed; who write filesystems or music organizers or browser extensions because that&#x27;s what they need and want and are good at.<p>The industry, nebulous quagmire that it is, needs specialists, generalists, and dev-ops hybrids. Making false generalizations merely reveals a bizarre lack of awareness.
评论 #5991367 未加载
评论 #5991541 未加载
评论 #5991634 未加载
评论 #5991616 未加载
wistyalmost 12 years ago
Most sysadmins aren&#x27;t LAMP (or LNMP, or LNPR, or whatever the flavor of the day) programmers, who know how to make a todo list &quot;pop&quot;. They aren&#x27;t javascript ninjas, who actually know how to interact with the DOM. They don&#x27;t know how build models of black holes, or self-driving cars, or make enemy sprites hunt you down in an interesting way, or debug a GUI.<p>Sysadmins <i>do</i> program. Their programs tend to be flatter (scripts, not frameworks), but that doesn&#x27;t mean they aren&#x27;t programmers. They probably can&#x27;t build great frameworks, but not a lot of programmers can (but sadly, they try - every big corporate project seems to grow into a badly thought out framework).<p>If you pick any domain that&#x27;s not &quot;compiler design&quot;, you can probably make a good case that they aren&#x27;t really programmers.
评论 #5991422 未加载
hhwalmost 12 years ago
Sure, most people working as sysadmins can&#x27;t code. Then again, most people working as programmers can&#x27;t code either. People who can really write good code are few and far between.<p>The very best sysadmins are also good coders, and the very best coders are also good sysadmins. The foremost experts on any operating system are the developers that work on them after all. You can never fully understand an operating system without reading the code, and you can&#x27;t write the most efficient code if you don&#x27;t fully understand the entire stack the application runs on, operating system included.<p>As for using tools instead of writing code, what it comes down to is what&#x27;s the best solution for the problem at hand. A good sysadmin doesn&#x27;t need to memorize ways to use tools; they know each of the tools well enough to make full use of them. If a task can be done with a one-liner, and has a fixed amount of work to be done, why would you spend more time to implement the same in a programming language, when the execution time is insignificant relative to the development time? Considering the slower higher level languages that are popular nowadays vs the standard tools written in low level C, the execution time may actually end up slower despite the execution savings in running a single process instead of many.
评论 #5992473 未加载
dobbsbobalmost 12 years ago
I&#x27;ve never met an openbsd&#x2F;freebsd, solaris or old school unix sysadmin that didn&#x27;t have a total mastery of C&#x2F;++ and scripting like perl. By total mastery I mean debugging and even reverse engineering binaries looking for something that was eating memory, and often completely rewriting some major program parts to add security like old smtp and sendmail. The Sr admin I worked for could quote K&amp;R by memory and was a much better dev than the software engineers there just he was a total neckbeard and didn&#x27;t want to deal with &quot;politics&quot; so confined himself to the sysadmin dungeon. He made more money than them too<p>Just look at openbsd-dev mailing list. Most of those guys are sysadmins, like the guy who wrote OpenBGP from scratch, the pf maintainers... basically all Berkley forks were created by sysadmins.
评论 #5991457 未加载
评论 #5991473 未加载
incisionalmost 12 years ago
As a set of bullets, I can agree with parts of this list, but the supporting paragraphs of weird assumption and baffling generalization, not nearly as much.<p>The phrase &quot;I&#x27;m not a coder&quot; can mean all kinds things coming from a sysadmin, context is import.<p>If a sysadmin truly lacks the ability&#x2F;confidence to write useful code, I&#x27;d expect has more to do with the typical nature of the job and organizational divisions than prejudices, hang-ups or fickle behavior of the sysadmins themselves.<p>A role which is too often reactive doesn&#x27;t leave much time for development. Likewise, development towards the goals of a sysadmin (automation, insight, reliability) too often lead sysadmins to unemployment due to misunderstanding as the relationships between sysadmins who &quot;don&#x27;t do anything&quot; and systems that don&#x27;t break.<p>I expect new businesses, particularly the type common on HN could be exceptions, but in many organizations the preferred language of system administration and those of software development don&#x27;t align. As a result, serious sysadmin code written in say Python as opposed to corporate standard of .NET&#x2F;Java is putting the sysadmin on an island and likely to be seen as a threat&#x2F;liability.
jrussbowmanalmost 12 years ago
Couldn&#x27;t help but write a response - <a href="http://joerussbowman.tumblr.com/post/54602688494/why-sysadmins-dont-code" rel="nofollow">http:&#x2F;&#x2F;joerussbowman.tumblr.com&#x2F;post&#x2F;54602688494&#x2F;why-sysadmi...</a>
评论 #5991394 未加载
nnqalmost 12 years ago
The way I see it, in:<p><i>Age 0</i>, all computer users where actually <i>users</i> and <i>sys admins</i> and <i>programmers</i> and <i>EEs</i>, then, when computers stopped being room-sized monsters, in<p><i>Age 1</i>, all users were <i>users</i> and <i>sys admins</i> and <i>programmers</i> (the Lisp machines era is probably at the end of this age), then, when software became actually usable by most non-programmers, in<p><i>Age 2</i>, all users were <i>users</i> and <i>sys admins</i> (the UNIX era falls in this age), then, in<p><i>Age 3</i>, users started to be only <i>users</i> - or, more exactly, people who were not programmers and sys admins started to actually use computers on a large scale (the current era of Windows and Macs and everything else) - since sys admins separated themselves from the users group long after the programmers have, they are &quot;philogenetically&quot; closer to users than to programmers ...also, this is why I think the &quot;Linux desktop&quot; dream took so long to rise up, becase Unix systems by design ask users to at least be sys admins too, and reward them to the max when they are sys admins and coders too.<p><i>Now, if anyone has any idea of what comes next, please share the enlightening thoughts :)</i><p>The only witty continuations I can think of is: Age N - humans are no longer &quot;using&quot; the machines and they haven&#x27;t done this for a long long time (well, they do, but only in the sense that a plant uses the sun, water and earth to survive), they are being used by them, grown in &quot;human natural reservations&quot; for scientific study purposes and historical education purposes for machines to remember how the beings that preceded them were like ...but hopefully someone else has a brighter view on the future.
评论 #5992586 未加载
评论 #5991302 未加载
tehwalrusalmost 12 years ago
small point: the author isn&#x27;t saying &quot;scripting languages aren&#x27;t programming languages&quot;, nor are they saying &quot;you cannot write programs in scripting languages&quot; - they&#x27;re saying that <i>scripting</i> - a particular style of program-writing - isn&#x27;t programming, or put better &quot;proper programming&quot; which is arguably true, especially if you&#x27;re writing bash or IPython scripts, where you have access to and make heavy use of shell commands.<p>That style of programming is very very different to regular compiled programs, and practicing one and never the other <i>will</i> lead to a bias, and relative incompetence in the other. This is why I&#x27;m rubbish at chaining unix commands together, because whenever I&#x27;m confronted by a problem that might need something that complex, I just use python. I have the reverse problem to the rhetorical sysadmin in the article.
评论 #5991529 未加载
tmcwalmost 12 years ago
Why Programmers Can&#x27;t Use Apostrophes Correctly
评论 #5991204 未加载
popeealmost 12 years ago
Some of best programmers i have met are, watch this out, sysadmins. And no, they will not do your job :-)<p>On the other hand most of developers&#x27; knowledge is like swiss cheese, because they don&#x27;t know enough about underlying machine, they only want to deal with abstractions and algorithms, so for example trivial things like where is located config can be really tricky for them. As you can see, one could do same article about developers, but what&#x27;s the point on spitting on people you work with? Ah, yeah, frustration :-)
stephengilliealmost 12 years ago
This actually describes how I have approached system administration over the past few years. I&#x27;m just now trying to change that. I&#x27;m embarrassed to say, but I&#x27;m writing HTML for the first time -- in 2013, not back in 2003 when all the cool kids were.<p>OK so I&#x27;m not a cool kid anymore. But I can be again, I just have to slog through some tomes and actually build something cool. Isn&#x27;t that what being a nerd is all about?
评论 #5991261 未加载
od2malmost 12 years ago
Hi, I have been a Solaris&#x2F;SGI admin (2 years) and software engineer (10 years) in my life. The reason why sysadmins can&#x27;t write software is this: Every day sysadmin stuff like pulling cable, installing OS&#x27;s, fixing printers does not require someone whose super intelligent. But real IT work-- setting up domain controllers, running a global corporate network, running a cloud service, etc takes a fair amount of brains yet a lot of companies compensate their IT departments as if they&#x27;re well paid cable monkeys.<p>The skill sets for a good programmer and a good sysadmin overlap somewhat. But you can make MUCH MORE MONEY writing software. In the early 2000&#x27;s when I was a sysadmin jobs in my area were paying 40k-60k a year. Programming jobs were paying 60k-100k. So basically, poorly payed IT positions select out anyone who could actually do a good job at them because those very people can make more money writing software
ancardaalmost 12 years ago
&gt;SysAdmin’s are purists and have a lot of ego. Using a module or library is akin to cheating.<p>I&#x27;m a programmer and I know how this feels. It&#x27;s not about &quot;cheating&quot;. To me, I view it as &quot;I can&#x27;t be bothered to learn &#x2F;how&#x2F; this works, I&#x27;ll just use a library&quot;. I can make a half-assed HTTP library, but in production, I&#x27;d obviously use a real library. The important thing is I understand on a more intimate level how HTTP works. That is invaluable in debugging as when I ask myself &quot;why isn&#x27;t this working&quot;, I can think back to my own code and it often helps to shape my understanding. I can think how the machine thinks as I taught it how.<p>I&#x27;ll often study other systems while building my own. It&#x27;s all part of the learning process to me.<p>It also provides deep appreciation for the effort that&#x27;s poured into libraries.<p>I&#x27;ve also done the same thing on the web; I used XMLHttpRequest and DOM apis for years before I started using jQuery. I&#x27;ve never had a single complaint but I&#x27;ve seen programmers who have gone right into jQuery and surrounded themselves with abstraction and have had no idea how the system is behaving and they get confused and frustrated. This leads people like me to view libraries as bad; they are preventing people from learning how their systems work.<p>Programmers today seem so lazy. I&#x27;m not really sure if that&#x27;s the right word. I see people using HTML 5 Boilerplate and they never seem to ask &quot;Why is the meta charset before the title tag?&quot;. I did. Now I know about UTF-7 XSS vulnerabilities. I spent most of my day reading up on charset vulnerabilities. With that knowledge, I patched several projects of mine. Sure, people using Boilerplate would be protected but they wouldn&#x27;t really know what from.<p>Perhaps I just think differently to other programmers. Maybe they just want to get on with their work while I obsess over &quot;how does this work?!&quot;
评论 #5992947 未加载
vonskippyalmost 12 years ago
And the flip side, why coders can&#x27;t do the simplest of sysadmin tasks.<p>I&#x27;ve meet coders who couldn&#x27;t spell &quot;DHCP&quot; let alone tell you what it does or how it works.<p>They&#x27;re two completely different job descriptions - why should one need to do the other?
评论 #5991694 未加载
评论 #5992950 未加载
Hovertruckalmost 12 years ago
Why not link to the blog post directly? This link will break as soon as the author writes another blog post about devops.<p><a href="http://cuddletech.com/blog/?p=817" rel="nofollow">http:&#x2F;&#x2F;cuddletech.com&#x2F;blog&#x2F;?p=817</a>
contingenciesalmost 12 years ago
When a sigh will not suffice, abstract it.
shirroalmost 12 years ago
Part of it is just experience. As a sysadmin I was jumping from one task to the next learning as I went. I never got the chance to be really crazily good at any one thing. No sooner would I learn something and apply it and I was off to put out another fire in a totally different area.
tetealmost 12 years ago
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.<p>Other than that, I really wasn&#x27;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&#x27;t ever valued enough.<p>Everyone treats Sysadmins as second class IT people that can&#x27;t code too well. However, that&#x27;s from my point of view not true at all. They usually code &quot;script&quot; way faster. Their set of tools simply are different and designed for people trying to reach different goals.<p>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 &quot;uh you can do it that way. It&#x27;s even cooler&quot;.<p>As a sysadmin you usually don&#x27;t have anything to rely at all. You don&#x27;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 <i>somewhere</i>, don&#x27;t have a debugger, can&#x27;t just quickly run the code on your test system, have a way harder time to trace things down, but then it doesn&#x27;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.<p>I don&#x27;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.<p>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&#x27;t just &quot;apt-get install apache&quot;, but way more and way intense.<p>Another thing that&#x27;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.<p>It&#x27;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&#x27;t make you a sysadmin.<p>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&#x27;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&#x27;t good. There are reasons for the creation of more than one and they didn&#x27;t use to be as naive as they frequently are today.<p>Also Sysamdins are very humble. One can actually see that by version numbers. It&#x27;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&#x27;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.<p>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&#x27;s necessary and what isn&#x27;t, as long as they are not afraid of being punished for non-perfect&#x2F;beautiful code. That means that they are good at writing release-ready (feature-&#x2F;stability wise) code.<p>However none of that is true for anyone who just switched. It&#x27;s just hard to learn what the right amount of quality really is and that it also is about &quot;beautiful code&quot;.<p>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&#x27;t work (even when it isn&#x27;t their fault) and whenever something works great it is the developers, marking people and so on who are praised.
junkiloalmost 12 years ago
my response: <a href="http://eleventymedia.com/" rel="nofollow">http:&#x2F;&#x2F;eleventymedia.com&#x2F;</a>
michaelochurchalmost 12 years ago
I really can&#x27;t stand all of these silos that seem to exist for the benefit of MBA-culture idiots who don&#x27;t understand the first thing about computers, at the expense of programmers.<p>&quot;You can&#x27;t X. You&#x27;re a Y!&quot; Well, <i>fuck you</i>.<p>All of this warring-camps idiocy, &quot;hire a real X&quot; nonsense, and all of these damn silos, just exist so a bunch of people who aren&#x27;t smart enough to manage technology can feel like they understand shit. They don&#x27;t. They hire some $785&#x2F;hour consultant whose diagnosis is, &quot;you need better system administration&quot;. So they go out and hire a sys-admin or two with a &quot;track record&quot; and the problem is &quot;magically&quot; solved.<p>Programming was supposed to be the magic skill that allowed one to move fluidly about the industrial&#x2F;technological economy. It showed that you could grapple with abstraction, learn quickly on your own, and get hard things done and do them well. It conferred <i>mobility</i> and job security.<p>Then those useless &quot;be a team player and syngerize the verticals while the rubber hits the road&quot; monkey-morons came in and had to fucking siloize everything, just to play a divide-and-conquer game, create the sense that we were incapable of handling &quot;the big picture&quot;, and reduce our bargaining power. This distracts us from the fact that those people aren&#x27;t at all necessary.<p>Good business people go out and solve important business problems; the bad ones meddle in our affairs for intimidation&#x27;s sake.
评论 #5991849 未加载
评论 #5993329 未加载