Live data from Hacker News

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

m-cacm.acm.org

121–130 of 286 posts

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

#121
post #105
post #99

Even MIT abandoned Scheme and SICP and switched to Python. There's a beautiful elegance to that approach. It gives a sense of the mathematical foundation of computer science. It's not that useful for building large programs from off the shelf libraries, which is what almost everybody does today. At one time, computer science required a good understand of what's in Vol. 1 of Knuth. That's not in much demand any more.…

Where can one find those hash table theorists? (Just curious, that sounds really interesting actually)

https://probablydance.com/2017/02/26/i-wrote-the-fastest-has...

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

#122
My first language (from approx. 16 to 20) was Pascal. I did not like it and I still fail to see its putative suitability for programming beginners.

The syntax is so unlike other languages that I might have been better off learning C outright.

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

#123
post #99

Even MIT abandoned Scheme and SICP and switched to Python. There's a beautiful elegance to that approach. It gives a sense of the mathematical foundation of computer science. It's not that useful for building large programs from off the shelf libraries, which is what almost everybody does today. At one time, computer science required a good understand of what's in Vol. 1 of Knuth. That's not in much demand any more.…

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 institutions. The supply of idle rich who don’t need a job has never been all that high.

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

#124

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…

On discovering that I used to think in a functional manner before learning to program I wish I had begun with Haskell. Things which seemed like obvious things to try didn't work in C++ 98 so I 'learned' that my thinking was wrong and bad... I remember discovering the possibility for tail call elimination and being disappointed that it did not work.

Lets keep the standardized tests with the standardized humans: absent.

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

#125
post #110

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. I'll believe that when employers stop giving preference to people with university credentials. Until they do that, the primary reason most people go to university for CS will continue to be 'for vocational training.' People follow incentives.

If the employers don't want people who have a detailed understanding of academic minutia, they should maybe stop hiring from university courses and set up some sort of vocational system.

Just because there is a need for vocational experts doesn't mean the universities should try to fill it. The place in society for universities is not a short-term-practical one.

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

#126

Earlier quoted context omitted.

The grandparent comment was about teaching, so I interpreted the parent comment to mean that "innate ability matters much more than good teaching", which my personal experience teaching people disagrees with. And sure, the statement "not everyone can understand computer science" is technically true if you include people with mental disabilities. But in reality, some people draw the line a lot higher as a form of gate…

I've spent about 2.5 years teaching programming. Students really do seem to have some innate programming difficulty slider, which absolutely matters. Some of my students worked their absolute butts off to learn programming, and asked for help constantly (which I gave gladly). And they still barely scraped by. Other students seem to learn programming extremely easily. I would show them something one day, and the next…

I don't disagree with a lot of what you said. Practically speaking, some students are simply "behind" where they should be, at it might be too much effort to catch up, so the pragmatic choice is to pursue something else. I guess it's usually that I attribute their struggle more to external factors than internal factors.

* The student might have other stuff going on in their life at the time. Heavy course load, personal drama, etc..

* The student might have other interests, so they don't devote as much time to studying as they should.

* The student might not yet have had a good math education, so their abstract reasoning skills lag behind. I think it can still be learned, but someone in a college compsci course just doesn't have time to catch up.

I've been an undergrad/grad TA as well as a tutor for high school students in math/programming. My own experience tells me that learning is very "path-dependent". Students will be more receptive to my way of teaching if their background is similar to my own. Part of my job as a teacher is (was) to try to recognize the gaps in their background, but sometimes I do have a lot of trouble understanding what path a student took before coming to me, so it's harder for me to help them.

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

#127
post #110

Earlier quoted context omitted.

> University is not vocational training. I'll believe that when employers stop giving preference to people with university credentials. Until they do that, the primary reason most people go to university for CS will continue to be 'for vocational training.' People follow incentives.

Employers don't prefer university graduates because universities offer better vocational training. Universities teach scientific thinking which makes students better employees. Universities don't teach specific skills but they teach the underling principles.

Employers prefer university graduates because they have to pay extra for good people. And if they have to pay extra they want a kind of certificate that it's worth it plus to justify the extra pay in front of other employees. A degree makes all this easier. Yes scientific thinking is nice but what really matters is that this people can deliver a compkex workload at a given date. In the rarest of cases you actually need a researcher and at that point you want someone with a PhD

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

#128

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"?

At least 5% of the population can’t understand algebra. If you can’t do algebra then you might be able to follow recipes but you can’t do chemistry. Without algebra you can’t do stochiometry and that’s essential for even high school level chemistry.

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

#129

In my opinion the best sequence looks something like this: - Machine language (not assembler) — Assembler for a couple of different architectures (i.e: Von Neumann vs. Harvard, CISC vs RISC, etc) - Forth (written from scratch with one of the above) - C - LISP - APL - C++ I think of everything else beyond these mostly as C/C++ cousins or derivatives. With languages like Javascript and Python it’s far more about learni…

The machine an assembler should probably be taught together. Where possible either emulations of real chips, programmable logic simulated chips, or real chips should be used.

I recall the class which used a 6800 derivative in one of my college courses had a _very_ well written developer's spec manual for it. Complete with a (large) table that showed the logical relationship between the binary value of an instruction and the assembly mnemonic.

Today that might be RISC-V.

'x86' and ARM should also be used, and at least a taste of very constrained systems for super cheep stuff and very low level state machines for components would help round out the package.

Forth should be a semester project for one of the classes. This should include some practical case where either a manually clocked serial link, a set of dip switches and memory transfer captures, or some other constrained input method (maybe that 'boot sector forth' I recall seeing recently?) are used to trickle the core into RAM and then add higher level instructions. This might also include a small boot blob that inits the platform and opens an external data link; a useful example for subsystems.

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

#130
post #36

Leaning the second language is certainly hard, but learning your fifth or sixth language or so becomes easier? Hopefully? At least if you put forth any effort or interest I would think? If anything, I feel like the biggest trap people fall into is assuming they know a lot of languages when they really just know a lot of Algol-descendants... you should make sure to spend time really building something meaningful at le…

Yeah, you learn _any_ language that much faster if you have a solid motivation, both external and internal, to do so. And if the language is _availible_ enough, meaning it has a lot of help, examples and 3rd party libraries, going for practicality or fun&profit projects really helps.

Then again switching programming paradigms not so easy, but when you can...

Post reply on HN