6 ms·
Hello world: Shining a light onto the culture of computer programmers
- Amendeson530 8y agoI don't know why, but I find it amusing that people are so attached to their macbooks that they will even carry around full sized keyboards to replace the garbage keyboards on them instead of just buying a better laptop with a usable keyboard.
- externalreality 8y agoThere's a lot of fantasy in this article. Most programmers today do very little actually - we don't wield major influence. We basically glue together a bunch of Free Open Source offerings. The most critical skill is that ability to move fast by practicing with our Free Open Source offering tools. We pay (MS, Google, or Amazon) to host our applications. And we perform maintenance on these applications for years. Nothing special, anyone can do it. More and more people enter the work force every years. Since all things are becoming automated there will be enough jobs for the foreseeable future. We get to wear nerd clothes and act smart but generally all one has to do is be able to read documentation and use a computer. I would reckon that the average 13 year old who has a good reading comprehension can do what most programmers do these days. It's like playing a video game. They would probably be better at it too.
- NotPaidToPost 8y agoWhat you describe does not look like the typical software developer job at all. Certainly not anyone can write software. In fact, many who see themselves as "coders" are not very good at it themselves. Edit: I've found it's a bit similar to law in terms of skills and mindset. Some people struggle to follow the text of an actual law. Then, drafting an actual law is an even more specialised skill. In both software and law, if you draft badly you will face problems...
- urVeryWrong 8y agoWow, really? Because GP describes my exact experiences. I've job hopped for going on ten years now, and every slot I've inhabited was just a bunch of self-important, pendantic board game experts throwing their weight around, until they struck fear or induced mental fatigue, and wore you down to get their way. Nasty pieces of shit, barking like tiny dogs about syntactic preferences and vocabulary pissing contests, nothing more. There were a handful of rare birds at one place, and when I say rare, I mean it, because even inside the company, there were all of maybe ten people that sharp, and there rest were posturing imposters. Let's recount some of the worst. Fat nerds, pissed off about constant usage versus scooped variables, and getting in people's faces about JavaScript factoids that lack real value. Girls who code waiting to receive their daily pair-programming ass kissing session, because girl (that's right, TWO X chromosomes, AND I sit at a desk all day! Please, please, no autographs!). Meanwhile, numerous 40 and 50 year old women lumber about, chatting up fellow parents about their latest medical condition, news about their kids, or both. Walking talking dick-for-brains brogrammers talking about last years epic spring break bikini contests, while swiping through their phone's photo album brimming with tits and ass, as if they're TRYING to provoke the fat nerds into an active shooter incident. Non-binary conversation chores scuttling about with darting eyes, because they're walking around in their latest experimental underwear, dosed on horomones and looking for reasons to name drop pronouns and ask if you'll be attending the activist meeting on Wednesday. True robots that lead you to question if the machines are already walking among us. Tempermental, neurotic Jews. Culture shocked Indians that rush home at five sharp, to clock in at their arranged marriage. The extremely rare black guy, extroverting blackness as hard as possible to compensate for role he's expected to play in whatever buddy movie Mel Gibson can't do another sequel for. And, oh yeah, Asians because someone lied and told them programming was really about math. Also, godless communist Russians keeping a low profile because their smuggling malware payloads behind firewalls for Putin. Is that everybody? Let's see... Who am I missing... Oh yeah, inept QA disembarking from the short bus, and autistic security "experts" incapable of engaging in conversation that doesn't involve Warhammer 40K trivia.
- C1sc0cat 8y agoI sometimes think drafting laws badly is a feature not a bug - after all think of all that lucrative legal work for other lawyers.
- choonway 8y agotry teaching. then you would be amazed at the tiny proportion of students able to do that on their own.
- frabert 8y agoExactly. As someone who has been asked to teach an IT technician friend how to program, it's absolutely not a trivial task. You would think the problem solving skillset of a technician would help, but nope.
- bitt 8y agoI have a friend who I consider to be tech savvy and very smart. He couldn't get "coding". Dropped the class and switched major (I know this is anecdotal). It's not for everyone [0]. I agree that it has gotten simpler, but it depends on what you're doing. Some developers "glue together a bunch of Free Open Source offerings" and some need to do a lot more than that. [0]https://blog.codinghorror.com/so-you-dont-want-to-be-a-programmer-after-all/ https://blog.codinghorror.com/so-you-dont-want-to-be-a-progr...
- golergka 8y ago> Nothing special, anyone can do it. That's what I'm thinking every day while I'm working and talking to other developers. But when I try to teach, or help non-coders who decide to take up coding, I am amazed every time to find out that there's one skill that I don't even think about that seems unteachable: structural thinking. I can teach a person how to get an input from a user. I can teach a person how to process that input. I can teach a person how to present output to the user. I have not been able to teach a person how to decompose a task "calculate effective property tax rate" (or something similar) into those steps.
- 2muchcoffeeman 8y agoI know good software engineers who believe in alternative medicines and doubt the efficacy of vaccines. I’ve met some that don’t even know the basics of how an OS or CPU works. We’re not special as a group. We’re good at some stuff and also really bad at other stuff. Just like everyone else.
- golergka 8y agoYour comment seems to be written as if it's a counterargument to something I said, but it doesn't contradict anything in my comment and I completely agree with your point.
- rujuladanh 8y agoSpeak for yourself. If what you are doing can be done by a 13 year old, that is your reality. What I do requires years and years of experience/study, and 90% of the 20 year olds cannot do it, and that is being very conservative. Of course you are talking about the average developer. But your average health personnel aren't doctors, they are nurses or assistants. And there is nothing wrong with that.
- JamesBarney 8y agoIn real life there are still projects that are failing, that are going over time and budget. There are smart guys on those projects with masters in c.s. who are making completely boneheaded calls that will mean they aren't adding any value. We can talk about how easy software is and it's just glueing a bunch of components together. But whole we do there are millions of devs that are flailing and failing to do that.
- Cthulhu_ 8y agoOne issue I have seen is that when systems should be easy to make - you know, database, data wrangling, rest API - people tend to make it more challenging for themselves. Case in point: exactly an application like what I just described, but because that was boring and basically the same application as already existed in terms of architecture, they made it a microservices application that was only supposed to communicate via events published on a central event bus. Which can be a good design pattern I guess, but they lacked an architect, formal specifications of said event bus events, and a too quick conclusion of "this needs to be in its own microservice". Tl;dr, after a year and a half they still had nothing to show for but a well put together powerpoint slide deck, and a lot of half-finished components that should in theory sorta work together. That is, unchecked developers have a tendency to overcomplicate things for their own enjoyment / challenge. I don't know how to fix that, besides having a strong tech lead who is able to rein people in and ground them.
- amelius 8y agoI think the problem is mixing terminologies: • Programmer: glues together existing tools (your example) • Software engineer/architect: builds/designs systems that can handle large loads efficiently; invents and applies techniques so the systems can become large while keeping them maintainable • Computer scientists: invents and analyzes algorithms That said, roles are usually mixed up as well, where a computer scientist in industry can easily spend 90% of their time programming.
- fouc 8y agoNot really a mixing of terminology considering that the scientists/engineers are only going to be a small proportion of the coding population.
- dnautics 8y agoI would say a true software engineer is someone that can design a system to meet a SLA, write documents which systematically show how it's measured and specced. Most software 'engineers' (including all but one of them with that title in my company) are just 'devs'. My feeling is that a software architect is someone who can design something to try to meet an SLA but is too lazy (or too high level) to actually check it.
- kitsunesoba 8y agoMost positions I've worked sit somewhere between 1 and 2, involving quite a bit of glue but a good chunk of design work as well. Had there been no design component (glue alone) the produced software probably would have been functional in the strictest sense but would also have been a slow buggy mess.
- krageon 8y agoDo you have some examples of places where you have seen this so I can avoid working there? It sounds incredibly boring.
- Tade0 8y agoPick pretty much any front-end related position. Half of my career has been spent on such things and ironically this was the better paid one. Apparently doing interesting stuff comes with a pretty hard penalty in terms of compensation.
- rxhernandez 8y ago> Apparently doing interesting stuff comes with a pretty hard penalty in terms of compensation. Yup, I'm trying to transition to web development strongly because of the much higher compensation and the ability to work remotely. I admit developing nonlinear curve fitting frameworks, working with laser physics and doing biomedical algorithms engineering was much more fun and fulfilling. However, it's far more appealing to enjoy more time with my family, work from a peaceful location and never have to deal with traffic. Though this transition to web development isn't at all helped by the fact that Javascript feels like it was a failed experiment in hell where it was probably deemed to be far too tortuous to be used as punishment; only god knows how Mr. Eich got his hands on it. (I've professionally written code in Java, Python, Matlab, Fortran, C, Go and assembly and none of those languages come within two orders of magnitude of the disdain I have for Javascript)
- scrollaway 8y agoYou can do frontend webdev and have a lot of fun. First of all, stop using plain JS and move to Typescript. That'll fix most of your issues with the language itself. Second, for what's fulfilling, it depends on what you're actually working on. If you're going to just make dynamic menus for a wordpress blog then yeah, your life is gonna be boring. But nowadays "frontend" can mean writing entire apps. My latest site (https://overframe.gg/ https://overframe.gg/) is a SPA in React+Typescript and I had a lot of fun writing it. The nitty-gritty of reverse engineering games, simulating calculations, etc; all these are still there.
- return0 8y agousually when something becomes so mechanical it is automated and the job is eliminated
- C1sc0cat 8y agoYou are assuming the eveyone has your /our skills here.
- m_fayer 8y agoSometimes I think the same thing about what I do. Then I work with a junior and appreciate the difference that a decade+ of accumulated knowledge, instincts, and intuition makes. Yes, most of us don't gain ability the way a surgeon or aerospace engineer might, it's not that palpable, but don't undervalue yourself nevertheless. It takes a lot of work and dedication to get to "I can reliably and predictably snap stuff together like legos and make a functional system."
- world32 8y agoCan you give a real world example of glueing "together a bunch of Free Open Source offerings"? I've heard the idea that thats all software engineers really do before but it doesn't seem realistic at all.
- smartstakestime 8y agobrowsers + javascript + css (frontend opensource) ... to backend , many frameworks for each langauge, many languages all documented ... to persistence layer (mysql , postgres, mssql), and finally server but as OP said thats on amazon, Azure, Dreamhost ... etc OP is discussing more so the practice of professional dev for 70 - 90% of the devs. Business guys want results , they dont care about scaling and so its about getting it out ASAP. Theres alot of politics, I was taken aback at first, with the idea of CS/software being very technical but it seems that this creates more of a differentiator for political manipulation, cause everyone is already skilled in analytics. I could go into more detail but basically its all there and a search away (google). In fact there is a term in the industry called "google-fu" (like kung-fu) which means the number of searchers you need to perform to get an answer. Its a double edge sword. All devs are on their own for learning, but all the info is out there, you just need to be willing to search and learn. Sadly many people are not like that, and that seperates the good dev from the bad dev (besides the politics). I assume its the same for being a surgeon, that all you have to do is study and learn the info and you can do it. But having a steady hand is very important. And sadly , if everyone had a steady hand , you'd still have the same amount of surgeons. Those who can do. You want to be a dev, open up the next tab and type into your tool bar "how to learn javascript". Realize that devs created this tool for you, and if you are not a dev its because you dont want to be. Its all there, the web is your oyster.
- world32 8y ago> browsers + javascript + css (frontend opensource) ... to backend , many frameworks for each langauge, many languages all documented ... to persistence layer (mysql , postgres, mssql), and finally server but as OP said thats on amazon, Azure, Dreamhost ... etc All of that requires a significant amount of engineering and coding to get working. Just using a frontend framework does not give you a working application, you still have to code that application.
- Nursie 8y ago> Nothing special, anyone can do it. They really can't. What you describe is beyond the vast majority of people. Not the vast majority of well educated people, perhaps, not the vast majority of STEM people, sure. But most folks? They'd take one look and run away from the insanely complex wizardry you seem to be practicing. Also, as other posters have said - that's your experience, not everyone's. Someone has to write the automation tools. Someone has to write the libraries. Someone has to know how to write a compiler, to write crypto routines. Someone has to create AWS. There are a lot of paint-by-numbers coding roles out there, sure, but it's far from the whole industry.
- JustSomeNobody 8y agoSure, a 13 year old could write a web ui and crud back end for a $20 IoT device. And you're correct, that's not that difficult. And while a lot of HNers live in the web world, not all of development has to do with the web. There are lots of development jobs that are much more difficult and take more skill. They don't pay FAANG money so they don't get the attention on HN, but they do exist.
- notacoward 8y agoAs others have said, speak for yourself. Sure, there are plenty of "coders" who just bolt together stuff written by others, but somebody has to create the pieces and that takes at least a little bit of real creativity. The problem is that we don't distinguish between specialties and roles. In medicine the division is clear between various surgical and non-surgical specialties, or between physicians vs. assistants vs. nurses. In law nobody confuses contract and criminal law, or attorneys (sometimes even barristers vs. solicitors) and paralegals. But we don't do that. You're slightly right in that there are people who call themselves coders who don't really create code, but real coders aren't fantasy.
- LandR 8y agoNope. Dont know how much experience you have of trying to hire developers, but the majority out there (even the ones with years of experience) don't pass the most basic of criteria for the job. Our test for hiring is a simple app that can take a value, decrement a balance and show if the new balance is negative or not. I've seen some of the tests that come in, 80%+ of the applicants fail to do this. A non-neglible amount will send in something that doesn't even compile. Good developers are rare IME. Another mate of mine that has to hire developers says he's lucky if 10% of the people who apply and get to the interview turn out they can actually write code.
- gnode 8y agoYou could make a similar meaningless argument about electronic engineers. Most just solder together ICs, and the IC designers mostly glue together IP blocks. They pay utility companies to provide electricity. To work at a lower level doesn't mean you're a more advanced engineer, in some ways it means the opposite; working at a higher level usually requires some understanding of what's below.
- notacoward 8y ago> working at a higher level usually requires some understanding of what's below. Maybe what's immediately below. I fervently wish that "higher level" developers did have some slight clue about what happens when they make a call to lower layers, especially wrt storage since that's what I work on, but I've learned not to rely on them having any such knowledge.
- subjectsigma 8y agoI'm not going to tell you you're wrong (plenty of other people did that) but I'm wondering what experiences you've had that makes you believe the average 13 year old could pick any task and just "glue together" libraries to solve it?
- UweSchmidt 8y agoRegardless of how accurate this portrait of programmer culture is, I must say that I welcome the attempt to create some positive PR. Our fellow nerds, doctors and lawyers, somehow got star treatment by hollywood, while our kind is usually portrayed as unattractive, awkward, laughing stock and at best a passive character in an assisting role. This tragically reflects on our perception in the real world.
- wolfgke 8y agoThere are people who quite like this outsider role. Concerning the "Hollywood argument": if I think how Hollywood demands DRM in evermore standards and to infect your life, not being liked by Hollywood is one of the best advertisements for programming jobs that exist.
- interfixus 8y agoAs perceived by the general public, there is a huge difference: Most people have some idea, however vague, what a doctor or a lawyer actually does, while 'programming a computer' is utterly obscure and opaque to a lot of those same people. This keeps surprising me again and again, but apparently any kind of computing device is a black box built on magic, probably to the vast majority out there.
- UweSchmidt 8y agoNot sure if that's true. Legal minutiae and latin diseases are at least as opaque to people as software code, the actual work likely less glamorous than programming.
- world32 8y agoYeah I don't really see law or medicine as any different in this regard. People all have a basic idea of what makes you ill, what various diseases, treatments etc. are. But most people don't understand the intricacies of the endocrine system. People all have a basic understanding of the law, what kind of sentences to expect for what crimes, how court works etc. But most people don't understand <INSERT_COMPLICATED_ASPECT_OF_LAW>. You see where I am going with this.. People all have a basic idea of how the internet works (you connect to the network and data is returned to your computer), the difference between 4G and Wi-fi etc. But most people won't be able to explain the difference between RSA cryptogrpahy and eliptic curve cryptography.
- QuamStiver 8y agoI've been coding professionally for almost three decades, and the pursuit of elegant solutions makes up about 1% of my paid work. The rest of the time I'm fighting constraints: time, money, available resource, risk, all the usual. Very rarely does professional software engineering leave room for art, IMO.
- revskill 8y agoIt depends on situations: Your location, your health, age, family, finance,... If you mostly work on a team, then it's enough to NOT create art. In my case, i MUST create art, to abstract most of boring stuffs, because of the situation. That means, i want to spend the least brain work in software engineering as possible with the help of art.
- notacoward 8y agoA little over three decades here, and you're absolutely right. For every hour spent developing a cool algorithm, there are likely to be at least ten spent on low-level coding details, hooking it up to its inputs and outputs elsewhere in the code, writing tests, debugging other people's tests, integrating with build systems, debugging other people's build breakage, monitoring and alarms, addressing code review nit-picks, rebasing on top of whatever my coworkers jammed in while I was being diligent, documentation, etc. Any non-trivial project will also be interrupted by meetings, project-wide direction changes, on-call shifts, and so on. If I get one uninterrupted morning/afternoon of working on "elegant solutions" in a month, that's a good month.
- AltmousGadfly 8y agoThe building where I work has a rather large cubicle farm full of software engineers. Most of them are perfectly normal people. Men, women, black, white, Asian. We got all kinds. But there are a couple who are different. - One guy I call "hoodie guy" wears a hoodie all the time. I live in Central GA where its 90-plus degrees and 90-plus humidity in the summer time. Hoodie Guy is still wearing the hoodie zipped up and hood up. Hoodie Guy doesn't talk to people. - Got another guy who wears the same clothes all week. Asked him about it once; he said he bought 5 sets of the same clothes so he wouldn't have to choose in the morning. Like a uniform I guess. - Got another guy who has a duplicate of the computer they work on at his house; this is not a PC. Its a purpose-built piece of mil-spec hardware that we put on airplanes to process data. We didn't give him one so he could code at home. He built it from doodads he picked up at surplus sales and trash heaps. Dude is hella smart. But most of the people in cubicle hell are pretty normal.
- w8rbt 8y agoThat picture made me cringe. Who sets a cup full of coffee right next to their laptop keyboard and phone?
- jlokier 8y agoI confess that I do this quite often, if there isn't enough room on the tiny coffee shop table to keep the drink and the laptop far away from each other. What else can you do? At least the phone is water-resistant.