Live data from Hacker News

Why did we ever think a student's first programming language didn't matter?

m-cacm.acm.org

171–180 of 286 posts

Re: Why did we ever think a student's first programming language didn't matter?

#171
post #29

Earlier quoted context omitted.

I think you’re vastly overestimating programming fundamentals. Every language can do some form of if then else be it machine code with goto’s or purely functional. Ask someone to find the absolute value of a number and they should be able to quickly figure out something that works in a new language. The basics of programming are not about being correct so much as not being lost.

> Every language can do some form of if then else Uh, not exactly. I had a really hard time learning prolog because it doesn't really have if-then-else. Haskell is missing the idea of something happening after something else. Stack languages don't have variables. And so on - there's a lot more to programming than python. There's a big class of popular structured / OO languages which are quite similar (C, JS, Python,…

Just a nitpick, but this is false

> Haskell is missing the idea of something happening after something else

A Monad is implicitly a monoid, which certainly does specify an ordering. And as for expressions, the order of evaluation of arguments is not specified either by C for example.

Re: Why did we ever think a student's first programming language didn't matter?

#172
post #83

Earlier quoted context omitted.

> None of us are special for working in tech Computer occupations as a whole have a median intelligence at least 1stddev in excess of the population median. https://www.gwern.net/docs/iq/2002-hauser.pdf I have to imagine that programmers in particular are even higher.

I've always felt like a good data point in favor of IQ playing a non-trivial role in suitability for programming is the fact that anti-credentialist moves like 10-week coding bootcamps have been so incredibly successful. Bootcamps took off shortly after I graduated from my top-ranked CS program, and I remember being extremely dismissive of their value: there was no way that you could fit the four years of my CS degre…

You do indeed get very smart people doing menial work, and their talents are largely wasted.

IQ has always been a good indicator of programming skill. Unfortunately school grades and specialisation aren't a good indicator of IQ, and (I think?) it's illegal in the US to require job candidates to take IQ tests.

So the issue for companies is that without the usual whiteboarding or educational paper trail you have to find a way to identify high IQ people without being too obvious about it.

The other issue is if you find no-experience very-smart people you have to spend time training them before they start being productive. This works if you're not in a hurry, but it's harder to justify when runway is limited.

Re: Why did we ever think a student's first programming language didn't matter?

#173

Earlier quoted context omitted.

>> I don’t think everyone can understand $RANDOM_DISCIPLINE. > This is a bold claim. I disagree. What makes computer science so special that it can be understood by everyone, while it is generally accepted that other disciplines cannot? After all, saying "Not everyone can understand chemistry" doesn't draw the same ire.

Why do you believe that "not everyone can understand chemistry"? Perhaps I should be a little more specific. When I say "everyone" below, I mean "the overwhelming majority of people in the average range of human intelligence, without debilitating mental deficiencies". This group spans virtually everyone you are likely to encounter, from car mechanics to school teachers, to postal workers, to professional software eng…

> Why do you believe that "not everyone can understand chemistry"?

I didn't say that I did. My belief is irrelevant anyway, because it is generally accepted when someone says "not everyone can understand chemistry".

I was pointing out that saying such a thing only draws ire if you say it about CS.

> When I say "everyone" below, I mean "the overwhelming majority of people in the average range of human intelligence, without debilitating mental deficiencies". This group spans virtually everyone you are likely to encounter, from car mechanics to school teachers, to postal workers, to professional software engineers.

And yet there is no controversy if postal workers, car mechanics and hairdressers say that they are not able to understand chemistry. There is only controversy for CS.

I feel that you would do well to explain why only CS is controversial, while chemistry, auto mechanic and art is never controversial in regard to this particular assertion.

Re: Why did we ever think a student's first programming language didn't matter?

#174

Earlier quoted context omitted.

> “I was taught like xyz, and I’m successful now and so that was definitely the right approach”. For what it's worth, the same reasoning can be heard in other fields. I work in foreign-language education, and debates about the best way to learn another language—memorize vocabulary and grammatical rules? move to a country where the language is spoken? watch a lot of movies in the language?—often reduce to competing pe…

Foreign languages come with an enormous amount of experience. Whether that experience comes from watching a lot of foreign language media or living there or something else entirely probably doesn't matter. You need to build intuition and that seems to only come with experience. Teaching in this sense tends to provide subpar results, because no teacher can spend enough time to get students the experience required to b…

This is a great analogy. It boils down to having a reason to put in the time to become proficient. A lot of people learn to code by the book without ever finding a puzzle they passionately want to solve through code. With language, you need a reason to practice. Only a breadth of experience can fill the gaps that allow you to intuit meaning in the real world, as opposed to a classroom. In a foreign country, the reason amounts to simply living there. I remember years of knowing simple BASIC and Perl when I was about 10-13 years old and having no ideas what to make with them. I could compile a Mac program with windows and menus and didn't know what to make, other than screen savers. Hypercard was what harnessed my creativity in narrative to my curiosity about code. A similar thing might happen to anyone who wants to code who loves music or writing or art. Code, like language, is for many people only important as a means to an end. It's a tool to communicate. So the measure of success in learning such a tool isn't necessarily whether you make a career at being a translator. It's at whether you can effectively use the tool to do the things you want and need to accomplish outside the specific domain of communication itself.

Re: Why did we ever think a student's first programming language didn't matter?

#175

Earlier quoted context omitted.

I'm not sure what you expect them to be able to do beside using Excel.

Programming an "AI", perhaps. That ticks the boxes of deceptively simple interface and programs a few lines long. It also won't require as much formal training and will be more intuitive and trial error based. GPT-3 and DALL-E have given us a glimpse of what that will look like.

At most one will create an easily teachable AI they can utilize. But that’s most definitely not the same as training a NN by specifying input/layers, etc.

Re: Why did we ever think a student's first programming language didn't matter?

#176

Earlier quoted context omitted.

This is an argument for teaching intro programming with Scheme.

No, it is an argument for teaching intro programming in C so they better understand what operations a computer is capable of doing. When you are used to C most other languages feels like a library that automates tedious tasks rather than something alien, you are well aware of the things needed to happen in the background so that the code you write in other languages can do what it does.

C is not really representative of underlying hardware anymore, and is a language with basically no compile time defenses, making the student scratch their head at hard to debug segfaults. I would definitely not start with C.

Re: Why did we ever think a student's first programming language didn't matter?

#177

Earlier quoted context omitted.

There's really no reason to go to university if all you want is to write some Python scripts. University is not vocational training.

> University is not vocational training. University started out as a trade school for the clergy, then added law and medicine, and then became a finishing school. At all points the median student was more interested in drinking than studying. Scholarship has always been a minority pursuit at universities and research universities haven’t even existed for 300 years. Universities are now and always have been vocational…

In more mundane terms, the fact that you go to university to get a good job has been the social contract pretty much everywhere in the world in the 20th/21st centuries.

The idea that this is “not what it was meant for” which is oft repeated on HN - and I presume in academic circles too - is not only inaccurate as you point out, but also arguably irrelevant, because the people paying the bills and justifying its existence expect otherwise.

Re: Why did we ever think a student's first programming language didn't matter?

#178

After graduation, I fought my undergrad to switch the CS 101 course from Java to Python for the simple reason that public static void main() has a huge number of concepts built in and "just trust us, we'll cover that later" is a terrible excuse. Edit: Even now, years later, I still got them in the wrong order. Arg.

I disagree. Other than the already mentioned points in replies, static typing and failing at compile time with a helpful error is really important. Runtime errors are much harder to interpret and debug - it is a skill they will have to learn later on, but inferring runtime state at a given point is arguably harder than doing so statically.

Re: Why did we ever think a student's first programming language didn't matter?

#179
"The tools we use have a profound (and devious!) influence on our thinking habits, and, therefore, on our thinking abilities. ...

It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration.

The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence."

- How do we tell truths that might hurt? Edsger W.Dijkstra, 18 June 1975

https://www.cs.virginia.edu/~evans/cs655/readings/ewd498.htm...

Re: Why did we ever think a student's first programming language didn't matter?

#180

There’s a lot of folks in this thread who’ve shared their personal experience with learning and teaching programming languages. Some attempt to generalise this experience into principles of how much the first language matters and how to choose it. It would move the conversation forward if people were up front about which metric they’re trying to move. For example, here are two equally valid pedagogical goals that are…

Another important part of the choice of first language (and approach) is making the student want to learn the material. That can be very different for different students. For nerdy high schoolers you might want to start with SICP while for an adult career transitioner you might want to start with “Your First Web App” to highlight the commercial possibilities.
Post reply on HN