Hacker News new | ask | show | jobs
by gabemart 3854 days ago
I feel like the discussion around this post will suffer from a lack of specificity over what a 'software developer' is.

Someone who works primarily on small javascript web applications has a really different job from someone who works on a large application built on a LAMP stack, or someone who writes complex iOS applications, or someone designs self-driving car software for Google, or someone who works on embedded software for pacemakers, or someone who writes operating systems or designs programming languages.

Each of these jobs probably have a particular set of paths that lead to them. Two people who are both 'software developers' don't necessarily have similar skills, training or education.

3 comments

Yet all of those jobs have one thing in common: you have to know how to code. Being able to code is the baseline for all of them. If you can't code on some level, you can't do any of those jobs. The article is about coding, not engineering, the software process, reliability, etc. All of that just further raises the bar.
I think gabemart threw in "small javascript web application" as an example of a job where you don't need to know how to code, where you can get by copying & pasting from Stack Overflow.

A more interesting example is his "pacemaker embedded software" example. There's actually not very much software in a pacemaker. So that's an example of a field where engineering, process, testing & reliability skills are much more important than the ability to actually code. The coding in something like a pacemaker is usually done by an electrical engineer. A good EE may not be a good coder, but they should have the other skills you mentioned.

Someone who works primarily on small javascript web applications has a really different job from someone who works on a large application built on a LAMP stack, or someone who writes complex iOS applications, or someone designs self-driving car software for Google, or someone who works on embedded software for pacemakers, or someone who writes operating systems or designs programming languages.

Do they?

If your job is primarily about taking other people's work and writing code based on it then, in my opinion, you don't really build software. You write code. There's nothing whatsoever wrong with that, but it's definitely different. Building software is much more than writing code.

Software development is working out what a problem is, what the solution to the problem is, and how to implement that solution on a computer. There should be time spent talking to users, gathering requirements, writing specifications, designing a user experience, developing a test strategy, thinking about stuff, writing documentation, and, at the end, a bit of coding. The non-coding side of software development isn't especially different between specialisms. So, really, software development in the sense of everything necessary to make a piece of software does require approximately the same set of skills.

That said though, the knowledge required in any given part of the software industry is very different. A web developer needs to know very different things to someone doing graphics or embedded development.

The software development aspect that you describe cannot be taught at a boot camp. I think the people claiming you can learn to code in a day mean (or think they mean) the coding part, and probably don't realise there's all that other stuff on top of it.

I would like to emphasise the last point you made. The coding skills, while broadly similar, are still different in each of those specialisms. Learning how to write effective code for a pacemaker is very different from writing a Ruby on Rails web app. They're both "coding" and you need the same kind of abstract thought, but you need to understand very different things to be good at them.

> Each of these jobs probably have a particular set of paths that lead to them.

I think the commonality is that at the minimum you need to be able to read English at a proficient level, which weeds out the vast majority of American adults.

That's not true. The vast majority of adult Americans can read at an adequate level. Further, given time and incentive, most can write well enough to be understood, if not exactly to high grammatical standards. These facts are triumphs of the modern educational system.

However large numbers of adult Americans when faced with:

  3x - 7/3 = 4
could not solve exactly for x, no matter the time and incentives. It is hard to imagine how such a person would be able to learn to code, at least as long as programming languages look anything at all like those of today.
While I hate to be THAT cynical... my father is a doctor, and they've had issues with patients not understanding their paperwork. They had done studies to figure out the median reading level of their patients. It turned out to be an 8th grade level, so they adapted their paperwork. The patients still didn't understand it. It turned out that they were capable of reading at an 8th grade level, but their reading COMPREHENSION level was that of a 6th grader.
"More than 300 studies indicate that health-related materials far exceed the average reading ability of U.S. adults."

"90 million adults with limited health literacy cannot fully benefit from much that the health and health-care system have to offer."

"A two-year-old is diagnosed with an inner ear infection and prescribed an antibiotic. Her mother understands that her daughter should take the prescribed medication twice a day. After carefully studying the label on the bottle and deciding that it doesn't tell how to take the medicine, she fills a teaspoon and pours the antibiotic into her daughter's painful ear."

http://hospitals.unm.edu/health_literacy/pdfs/HealthLiteracy...

Did you seriously just suggest that the majority of American adults are illiterate? I'd love to see the source you base that claim on.
> I'd love to see the source you base that claim on.

Like the government's official data on adult literacy?

http://nces.ed.gov/NAAL/PDF/2006470.PDF

After 1994 they got rid of the 'advanced' literacy ability category, corresponding to roughly the level academic journal articles are written at, because not enough Americans qualified. So currently the top literacy level is 'proficient', which is roughly the minimum level you'd need in order to teach yourself to become a competent developer. (That's basically the level you need to read a newspaper and compare and contrast the information presented in two different articles.)

First, thank you for providing a credible source.

However, linguistic constructs in most programming languages are not what I'd consider advanced English. A C++ program is hardly written in Shakespearean style, for example. And many words in programming languages do not exist in English per se; e.g., "def" from Python is not a word.

So, programming requires a more basic understanding of written English than you seem to imply.

> However, linguistic constructs in most programming languages are not what I'd consider advanced English.

Linguistic constructs in most programming languages can be at least as complex as anything in English, and aren't even English at all. You know how many experienced programmers have trouble dealing with programming languages with, to them, unfamiliar syntax? To someone who hasn't programmed, all programming languages have unfamiliar syntax.

> So, programming requires a more basic understanding of written English than you seem to imply.

That doesn't follow from the premise that "linguistic constructs in most programming languages are not what I'd consider advanced English."

"Proficient" literacy (the current highest level) for each area of literacy is defined as follows (from the document provided upthread):

Prose literacy: reading lengthy, complex, abstract prose texts as well as synthesizing information and making complex inferences

Document literacy: integrating, synthesizing, and analyzing multiple pieces of information located in complex documents

Quantitative literacy: locating more abstract quantitative information and using it to solve multistep problems when the arithmetic operations are not easily inferred and the problems are more complex

I would argue that programming tends to require literacy at that level in each category of literacy in that least one natural language (the language in which information about the programming language, etc., and the problem domain is available), as well as the ability to develop the equivalent degree of literacy in the programming language. (This isn't necessarily a prerequisite to learning programming, and especially in the case of early programming exposure, I think programming is a useful context for achieving a proficient level of literacy in a natural language.)

Sure. But the most advanced level of literacy they're measuring is just being able to read a newspaper written at an 8th-grade reading level. And that's actually below the level of most programming tutorials. E.g. even reading the Django documentation, which is known for being unusually clear and well written, is still much more difficult than reading an NYT editorial.
I have to seize the opportunity:

http://stanford.edu/~mkagen/codepoetryslam/

How is that paragraph evidence of illiteracy?
> at the minimum you need to be able to read English at a proficient level
The vast majority of adults can't read English well? Let's get real here, that's not even close to the truth.
Out of curiosity, what makes you believe that? I live in America, and your claim sounds somewhat bizarre.
You meant to reply to the parent right? Just look at the published studies on the topic. One can argue for roughly 20% functionally illiterate easily, any higher and its really just speculation. Certainly far from a "vast majority"
You say tomato, I say t0m47oLoL