Live data from Hacker News

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

m-cacm.acm.org

51–60 of 286 posts

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

#51
I can’t imagine how many people switched majors or dropped out due to having something like Java foisted upon them in their 100 level CS classes. I have been using it off and on professionally for 15 years and I am always floored when I have to introduce somebody to Java and a Java codebase. Even something as simple as knowing which version to install requires a lengthy exposition. Do I need the JRE or JDK? What about J2SE. Or do I need J2EE? Should I use adopt (a dumb name itself) or maybe coretto? Who knows.

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

#52
post #19

It’s unfortunate that CS curriculums lean so heavily on math and proofs.

I think it's worth distinguishing between "Computer Science" and "Programming". One of the motivating examples in the OP is "conversational programmers". OP defines that as people who want to be able to have conversations about programming stuff, but won't program. -- For those people, sure, assuming heavy technical/math background when teaching programming isn't helpful. But many topics in Computer Science heavily r…

This is no different than engineering.

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

#53
Author is showing confused thinking, by conflating "first" with "only". Teaching a new programmer less than 2 language paradigms warps their brain into limited view of what is possible.

Even learning JS + HTML, or Spreadsheet + Bash/PowwrShell, with good instruction, should be enough to instill the key idea that languages are abstractions and there are radically different languages for different problem domains, and you should find ones that fits the applications you are interested in.

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

#54
post #4

The biggest problem with the first language is that a student has nothing to compare it to, and so naturally comes away thinking that the design decisions in that language are a reflection of some deep underlying truth, that this language is The Way Things Should Be Done rather than a product of its time and particular goals of its designers. When I was a wee coder I thought BASIC was the bee's knees. I don't think t…

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.

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

#55
post #35

Earlier quoted context omitted.

Most programmers are not computer scientists. Even most people with computer science degrees are not computer scientists at heart, they forced themselves to do the coursework so they could get a job (mostly web, utilizing almost nothing they were taught). I learned to program as a child (I taught myself, for fun!) but I didn't learn much computer science until well into adulthood.

As someone who fought hard to switch careers into this industry and teaches software engineering now I understand the impulse to think this but I have to say all my experience thus far contradicts it.

Which part(s)?

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

#56
We might be able to teach a lot more people about programming if we don’t expect students to know mathematics first

I'd like to know where the author thinks mathematical learning can stop. In the US we live in a society where people will say with a smile, as though it was a badge of honor, "Oh I can't do math, I always hated it in school."

I'm sure the author isn't talking about that level of learning and would still want a reasonable degree of knowledge for all people, but their opinion on what that should be would be would be interesting in this context.

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

#57
My anecdotal experience:

Me in an incredibly dull Java class in college: This is awful! I dreamed of making computers do interesting things, but it turns out programming sucks and is mind numbingly boring to learn! (I eventually dropped out and went on a different path)

Learning Python on my own 20 years later from various free online resources: This is incredible! I can make computers do anything and it all makes sense! What else can I learn?!?

For me, having both the right starter language and the right form of resources were required for it work out (ingesting lessons via video as I am curious about a certain topic works infinitely better than a classroom).

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

#58
One thing that doesn't seem to be called out and that's the 'overhead' of a language i.e. compilation, libraries, resources etc. - vs - a simple opportunity to teach basic programming principles and algorithms.

Python and Javascript have very low barriers to entry for the overhead (it can get complicated but for small programs it's easy).

You can use those to teach a lot of basic things.

In my own education we started with C/C++ and we were all drowning in pointers 80% of the time, the actual course material was pedantic.

What Uni tends to not focus on very well is just teaching the real, applicable basics of a language, with some good professional 'best practices' and students can spend years wasting their time trying to get things to compile, lost in bad manpages etc..

Start with something 'very light' and for everything else - provide a short 101 course for languages of instruction which focus on the practical mechanics of the language and nothing else. Those courses might even be taught by professional developers, outside of the regular kind of pedagogy. It feels 'not very academic' but that's the reality of the discipline.

If you want to teach architecture, and expect students to 'build buildings' ... you need to teach them properly how to use the hammer, nails, measuring tape - even if that in and of itself is not particularly academic.

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

#59

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.

That's a bit silly reasoning.

Processing is Java but doesn't have public static void main.

Python has a the beginners problem that a small error won't block compile but will make the program behave on completely bizarre ways.

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

#60

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'm not sure that's a good reason. Handling "just trust us, we'll cover it later" is as essential skill when learning anything, especially things related to programming.
Post reply on HN