Hacker News new | ask | show | jobs
by tsunamifury 3854 days ago
" The majority of the population can not learn to code at all, no matter how much training they receive."

What an arrogant, false, and self-aggrandizing fiction. Stop over-valuing yourself -- coding isn't some ultra-difficult natural selection process equivalent to winning an NBA Championship.

Designing complex services, scaling and maintaining them on a server stack is hard. Developing, training, and shipping a useful deep-learning network and making it into a useful product is hard. Coding is not hard.

I get sad when engineers, especially ones who's tone seems vaguely threatened, start writing up these discouraging blog posts belittling 'noobs'. Its a pleasing fiction that software engineers are just 'naturally better' and therefor their jobs are ensured. I think that anyone who says this has likely not been in the industry for very long -- because they would have seen scores and scores of devs left behind due to not training up and getting beaten out by upstarts who teach themselves and do well.

4 comments

First, I agree that the statement presumes a lot without offering any evidence. Second, I essentially agree with it; I believe most people cannot code and can't be taught it.

Coding requires a turn of mind that at least half of the population lacks: abstraction. You must be able to map a problem space into a form that is amenable to decomposition and solution using data and instructions. I think most technically inclined folks would be surprised how many smart people lack this ability (like doing basic high school math). Many others lack basic skills in logic, or the ability to define a reliable procedure. (I say this after 60 years of life, working in both white collar and blue collar settings). It's not that these people are stupid. Their minds just don't welcome abstract thought and the hierarchy of formal sequential models that is code.

In my experience, the set of skills peculiar to writing software well is surprisingly uncommon.

Coding is, in fact, quite hard.

But that doesn't mean no one can learn it.

Playing the saxophone is quite hard but a lot of students learn how every year, to varying degrees of skill.

You're right -- the finer point seems to be that coding is not a binary state. Its a lot of things along a spectrum and a lot of people make money at all points.
I agree that the statement "The majority of the population can not learn to code at all" is very questionable: what is the basis of that assumption ?

Are there studies that took n people from different backgrounds, completely unfamiliar with coding, and tried to teach programming over the course of several weeks/months, and found that the majority were not able to get to an acceptable level ?

Coding stuff that works 100% of the time in a budget constraint is not solely about being up to date in useless new technologies.

Using the world "stack" in your assertion is just showing a belief in the idea there is a silver bullet that can help you do 90% of the job in 10% of the time. And following that idea the 10% remaining I guess maybe shot dead with some agile process.

However, it is not the case when the specifications are clearly having ambiguous non resolvable issues.

Your stack sux big: the cloud, the OS the internet itself have design flaws. Each of this layers in the stack is adding coupling (requirements), costs, surface of vulnerabilities uncertainties (thus diminishing SLA).

Building a complicated architecture by taping a stack is easy. You just hire 23 yo coders saying they can solve any NP problems because o notation are old, thus boring, thus deprecated. And then you have your never ending shiping date coming until your "new feature of death that is based on an un solvable problems" will not ship.

Thus, a cost matrix for True,False/positive,negative like in signal processing used for assessing costs of software is still a freaking good idea. But it is hardly self taught.

Related to this is QA. Measuring non conformities and their costs. This part is the most overlooked. It is where business is done. Non conformities are non predictable by nature, but my experience is that during the lifecycle of an application that is where most of the money is spent. It is hardly self taught. Part of a boring curicurlum.

Petri diagram (State-transition diagram): I met no coders able to read or write them, especially in asynch programming. And they love to add states (for each new states there is n + 1 new transitions possibles added to the diagram). Part of the education in electronics.

Documentation: new developers don't know how to write or read. A craftsman provides words with definitions. Coders don't care to properly put down definitions: it is too waterfall/ISO/ITIL heavy processes. Believe I had to fix a code where a developer confused a shit of paper with a page increasing costs by 2 for customers. Reading and writing in french and english where mandatory in my university. And it was boring.

Legal: IP does not say copy pasting code from internet to put it in your code is OK. For instance code on stackoverflow is not open source. You cannot do free sofware on your work time and claim it belongs solely to you without any explicit agreement from employers. IP requires teaching.

Actual coders jumping from one technological sect to the others (RDMS, node, GO, nosql, async, OOP, functional, POSIX, unikernel, container) are nothing else than monkeys or mechanical turks.

I refer to Feynman what is science essay regarding the monkeys. Being able to make a 100$/month web server make a nice hello world in angular JS is not what makes economy better. Building is a thought process that must encompass the investment, the costs of operations, the time to market, the legal and financial risks, the control of defects and the measure of the conformity with the requirements.

IT has became a religion where consensus prevails on the technological tools being the solution. Forbidding an in depth analysis that would be conflictual about the adequation between what people wish (being coder to pay the bills because we are lacking of jobs and it is well paid) and what the economy needs (stuff that works better for less bucks).

Yes being a programmer is either being born by luck in an aristocracy that need no excuse or a fraud that needs to secure is paycheck by pretending to have an added value.

Remember people are having student loans. They have an incentive to perseverate in a way they constantly fail.

People are not altruistic by nature when it comes to their own beefsteak (or tofu). Education bubble is creating a toxic situation for which corporations are not the answer (who will watch the watchmen?).

We have over instructed (in technology) under educated (in humanity and science) masses of students that sux because their abilities to speak, write, reason and communicate is hindered by a deficient education that forget to make them think and argue like grown ups.

It is not an IT bubble we are facing, it is an education bubble that takes its roots in the 1980s and for which the future of yet 3 generations is engulfed both in debt (public in Europe, private in the USA) and in failures (high unemployment rates because organisational structures did not adapt to the qualification like toyota did).

Education is not a good. It is a necessity for a sane society. And modern education fails at delivering adequate citizens. However it delivers numerous cheap incompetent interchangeable obedient workers preventing a power struggle inside the structures.

Saying NO to bullshits is the first added value of a coder. And saying NO when everybody says yes is disruption, it can lead to innovation and progress.

At least hire me, it leads to less costs (KPEX and OPEX) :)

PS I do have too much time.