top | item 19613541

Hello world: Shining a light onto the culture of computer programmers

54 points| derangedHorse | 7 years ago |arstechnica.com | reply

60 comments

order
[+] UweSchmidt|7 years ago|reply
Regardless 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.

[+] interfixus|7 years ago|reply
As 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.

[+] wolfgke|7 years ago|reply
There 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.

[+] subjectsigma|7 years ago|reply
Conjecture here, and a pretty simple one: people like money, power, and status. Lawyers and doctors have tons of money, have power over you (you are alive, you are not in jail, all because of them), and have credentials because they need to pass hard tests. That's easy to like.

By contrast, understanding what some computer people even do is hard for the layman (no obvious power), and until pretty recently computers did not make you a lot of money. We also let pretty much any idiot with a computer write code, it is not a position of status.

Shows like Mr. Robot and Silicon Valley are already starting to show how perception is changing. Nerds still get made fun of, but you can't be laughing too much at filthy rich entrepreneurs or hackers who do whatever they want to drug dealers, the police, etc.

[+] w8rbt|7 years ago|reply
That picture made me cringe. Who sets a cup full of coffee right next to their laptop keyboard and phone?
[+] jlokier|7 years ago|reply
I 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.

[+] externalreality|7 years ago|reply
There'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|7 years ago|reply
What 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...

[+] bitt|7 years ago|reply
I 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-progr...

[+] golergka|7 years ago|reply
> 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.

[+] krageon|7 years ago|reply
Do you have some examples of places where you have seen this so I can avoid working there? It sounds incredibly boring.
[+] LandR|7 years ago|reply
Nope.

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.

[+] m_fayer|7 years ago|reply
Sometimes 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."
[+] Nursie|7 years ago|reply
> 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.

[+] amelius|7 years ago|reply
I 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.

[+] notacoward|7 years ago|reply
As 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.
[+] choonway|7 years ago|reply
try teaching. then you would be amazed at the tiny proportion of students able to do that on their own.
[+] JamesBarney|7 years ago|reply
In 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.

[+] gnode|7 years ago|reply
You 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.

[+] world32|7 years ago|reply
Can 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.
[+] JustSomeNobody|7 years ago|reply
Sure, 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.
[+] subjectsigma|7 years ago|reply
I'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?
[+] C1sc0cat|7 years ago|reply
You are assuming the eveyone has your /our skills here.
[+] return0|7 years ago|reply
usually when something becomes so mechanical it is automated and the job is eliminated
[+] rujuladanh|7 years ago|reply
Speak 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.

[+] AltmousGadfly|7 years ago|reply
The 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.

[+] QuamStiver|7 years ago|reply
I'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.
[+] notacoward|7 years ago|reply
A 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.
[+] revskill|7 years ago|reply
It 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.