Live data from Hacker News

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

m-cacm.acm.org

181–190 of 286 posts

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

#181
Taking specific languages out of it, I think some characteristics of a good starter language could be:

* Simple Syntax - I think it's important for this to be a 'typed' language rather than blockly-style as otherwise people find it hard to transition after. It's important to learn typing in syntax otherwise that's a band-aid that's harder to rip off after.

* Mix of dynamic and static typing - On the other hand, words like 'integer', 'string', 'for' e.t.c. confuse people who are starting. A good starter language would allow people to dynamic type and then encourage them to static type in the future, getting them used to the terms.

* Very helpful error messages.

* Standard functions that support drawing simple stuff to screen (I'm looking at you python - how hard is it to draw a circle for a beginner! Beginners want to break out of the terminal quickly).

Would love to hear everyone else's thoughts!

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

#182
post #171

Earlier quoted context omitted.

> 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.

The bigger problem is that "something happening after something else" is not related to the idea of an if-then-else.

In Common Lisp the if-then-else construct is IF. The "something happening after something else" construct is PROGN. The whole point of if-then-else is that only one thing happens; "something happening after something else" requires a minimum of two things.

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

#184

Earlier quoted context omitted.

> 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 exist…

> 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.

It's an idea from the middle of the 20th century. For much of the 20th century, university was just something you did if you were upper class. Then someone noticed that upper-class people had good jobs and decided that must be due to their university attendance. It wasn't.

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

#185

If a student has trouble transferring their knowledge of programming fundamentals from one language to another, it seems far more likely they didn't really understand them to begin with, which is a failure of teaching and testing, not some sort of 'limitation' in the student.

Failure of teaching. Also laziness on the student is a big factor.

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

#186
post #50

I think you should teach assembly language first, and then build a few simple high-level langauges on top of that. I suspect it would prevent a lot of mental dross from forming.

I'm not gonna downvote you but I think you should be. This is already what universities were doing up until recently and I don't think it helped anyone. Some people learn top down and some learn bottom up, some learn... middle-out? what ever their way is, you're just saying everyone has to learn bottom up.

Assembly is indeed intimidating for novices. I agree. But I still think that newly minted programmers need to understand something about what's under the hood of languages like python.

Maybe a full course in assembly is too much for freshmen, but they should at least understand that RAM isn't like VCR tape: you can fetch any RAM memory location in constant time, unlike with a serial storage medium like tape. And they should know some of the hardware memory addressing mechanisms that make arrays possible.

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

#187

Given the ever-increasing amount of automation in the economy, I believe that programming (of one form or another) is going to become a skill as important as writing. Everyone learns how to write in school, even though only a few become novelists or journalists. Similarly, everyone will learn to code even though only a few will become data scientists or software engineers. Programming for non-professionals looks a lo…

> I imagine the trend will continue where deceptively simple interfaces allow people to automate routine tasks.

For that to work you need some equivalent of unix's `|` for disparate systems.

It's been tried but the problem becomes a sufficiently expressive interface between systems.

There is a reason why in 2021 I still occasionally dump stuff to CSV and re-import somewhere else.

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

#188

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 am a physical embodiment of a person who can not understand chemistry. Basics hell yes, organic chemistry for most parts yes, process chemistry ... iffily, but when it comes to physical chemistry, I'm hopeless. And I tried. Over many years. I changed my major in university from chemical engineering to CS because my head simply would not work the way you need it to work in physical chemistry.

On the upside, I think there are surprising parallels that have made my recent life (~15 years) easier because of the lessons I picked up from chemical engineering. Conflicting feedback loops, S-curves and equilibrium states are not that different from the concepts and safeguards you encounter in distributed systems.

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

#189
post #175

Earlier quoted context omitted.

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.

That's what I meant. Trying to get the already-trained AI to do exactly what you want by modifying the prompt could be thought of as a type of programming and could become a skill-set in itself.

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

#190

Earlier quoted context omitted.

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 reaso…

> It boils down to having a reason to put in the time to become proficient

You just gave me an epiphany about why I am having a hard time creating music.

Post reply on HN