Live data from Hacker News

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

m-cacm.acm.org

281–286 of 286 posts

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

#281
post #267
post #263

Earlier quoted context omitted.

> C is not really representative of underlying hardware anymore While I understand where this is coming from, can you suggest any language that is closer to the mental model of how the underlying hardware works than C (other than assembly)?

Well, hard to define closer as a simple dimension — but in certain things perhaps Rust — eg. SIMD is notoriously bad in C. Also, multithreading — which is not exactly a new thing either and don’t forget about pointer aliasing — though that latter is more of an optimization possibility. Fortran may also be considered as another candidate for having SoA over AoS which can potentially be more cache-friendly. But my poin…

What about multithreading? Someone exposed to developing a multithreaded app in C using pthreads will have a much better understanding about threads. I have worked with too many younger developers who are confused about kernel threads, cooperative multitasking, green threads, 1:1, 1:M due to only having experienced higher level languages. You couldn't ever have this type of confusion after working in C with threads.

Memory handling of course is the other big area. So many developers grown only on higher level languages have varying level of confusion about memory allocation, passing buffers around by copying vs. pointers, modifying memory vs. copy on write vs. reallocating everything. You couldn't possibly come out confused by any of this after a solid stint in C.

And just like threads, it's very valuable understanding even if later you mostly program in higher level languages.

So yes, while it certainly true that in the 80s you could squint at C code and see the generated assembly code, and that's no longer necessarily true today, it is still true that having a solid foundation in C will help tremendously in understanding what's going in the CPU and memory in ways that probably no other language (that I'm aware of) will help you learn.

I do need to spend a solid season in Rust sometime to have a deeper opinion about it!

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

#282
post #239
post #160

Earlier quoted context omitted.

Can't or don't ? I think there is a huge difference between currently being unable to understand something and being unable to understand something indefinitly (e.g. because you have mental deficiency that blocks you from forming the necessary pictures in your mind). Having thought math to mentally challenged kids, I had only one kid where I would really say he could not learn algebra at that point of his life. Mainl…

The majority of us can improve in any area. Some brains are hard wired for programming others for say music. A programmer can make a song. A musician can make a program. I'm sure you could train those kids to sing as well. I'm sure you could train those kids to play basketball. You wouldn't be able to train them enough to make any professional league. Programming is genetic. Recently I met my birthparents and I disco…

I do think it is more about the way you explain something than about the actual topic. You can explain the same topic in such a way that it works for people who can visualize things, for people who like abstract concepts, for people where it is about social relationships etc.

Good educators will always target multiple of those patterns. Bad educators always target the same pattern and will therefore only have auccess with the same kind of person.

I am currently teaching electronics and programming to artists who quite uniformly hated math and physics in school, and it kinda works. You just cannot teach it in the way they would teach it to a STEM student.

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

#283
post #199
post #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…

What do you think of https://www.pyret.org/ ?

Super cool, but also difficult to start for total beginners!

I suspect this is aimed more at people who can already program and want to learn functional programming, rather than people who have never programmed, but I might be wrong!

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

#284

Earlier quoted context omitted.

It has been a pipe dream of some since the 1960s that "everybody" would program computers in the future. It hasn't happened and won't happen. Most people simply don't have the patience for it.

Not the patience but the aptitude for it. Writing code simply doesn't require the same amount of intelligence as writing a sentence.

Writing too much CRUD code makes me unable to complete sentences…

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

#285

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 recall struggling in algebra as I didn’t follow the particular process that the teacher went through, while some friends seemed to readily follow this same teacher, and yet upon one on one discussion, I had no problem comprehending the same.

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

#286

Earlier quoted context omitted.

> 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, w…

I guess I disagree with your premise then? In my experience someone who is likely to think that anyone can learn CS is likely to also think that anyone can learn art, car repair, or chemistry. On the flip side there are plenty of people who believe that people are born "chemistry people" or "math people" or "art people" etc.. I've not witnessed anyone say that CS is accessible but chemistry is not.

> I guess I disagree with your premise then? In my experience someone who is likely to think that anyone can learn CS is likely to also think that anyone can learn art, car repair, or chemistry.

That isn't my premise. My premise is that saying such a thing isn't a bold claim, it's a commonly accepted claim.

When you said "This is a bold claim", I replied with "I disagree", because "Some people just aren't any good at $DISCIPLINE" isn't a bold claim.

Post reply on HN