Live data from Hacker News

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

m-cacm.acm.org

161–170 of 286 posts

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

#161
post #79

Earlier quoted context omitted.

> “Programming fundamentals” isn’t the same from language to language. It’s inconceivable that a student who learned to program with python would develop the same type of fundamental understanding as a student who used C (to develop an understanding of memory-level APIs) or Haskell (to develop an understanding of type and semantic theories). I think this is a pretty good point and it touches upon something I was thin…

What inspired me to learn programming was your last point: building things. That's why I think that people should be introduced to a loosely typed, high-level, forgivable language. Compiler errors and verbose code does not appeal at first glance, you need to draw people in.. I will never forget the moment 11 year old me saw a message box appear with text that I specified. I made that happen, I built it. I felt so pow…

This is why I recommend using Processing and the free book Nature of Code to learn the basics.

People see what they do and have instant visual feedback.

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

#162

It's my feeling that articles like this are evergreen, simply because the demands on a "first programming language" are contradictory and excessive. Depending on who you ask, a first programming language (I'll say 1PL to reduce repetition of the phrase) should do one or more of the following: 1) Be practically useful even if the student drops computer science immediately. 2) Be low-level enough to teach the fundament…

Slightly related, I am having great success with using Processing as a first language for my young child. The fact that it is very visual and easy to make "pretty things to look at" while still being pretty powerful made the onboarding a lot easier then something like JavaScript or Python. As a bonus, it is close enough to (Java, C, etc.) that the move to a next language should be pretty straightforward.

I've done some Processing with both of my kids.

One of them also did a ton of Scratch, which is very different in a bunch of ways - and he seemed to spent a lot of time wrestling with the fundamental limitations of Scratch. It felt so specific to Scratch that I often felt like what Scratch led to was, well, more Scratch - and also getting caught up in the politics of putting things up on their public forum.

I felt that both Processing and Scratch certainly hit the 'fun' point, and that Processing also had the advantage of being a lot closer to actual coding. I imagine that there are probably also JavaScript setups that might tick some of these boxes too.

Folks getting huffy about the fact that people aren't learning metacircular interpreters or assembly code (or logic gates!) right off the bat forget that (a) even the basics of solid imperative programming, and the inexorable way the computer does what you told it to, not what you "meant" is hard enough and plenty to get started with and (b) computing is one of many things people could be doing with their time, and making it shitty and esoteric and unpleasant to pass some purity test is not going to necessarily attract the people you want in the field.

Notably the latter point - weird culty languages, ultra-low level approaches, etc - are going to filter out your students down to the people who knew from Day 1 they were going to be computer scientists. Nerds, like me. This is by no means going to filter people down to the 'best possible student cohort'.

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

#163

Earlier quoted context omitted.

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

Sorry, by "can" I mean "has the mental capacity to". I agree with the statement "not everyone has the knowledge they need to understand chemistry right now ". I disagree with "not everyone has the mental capacity to understand chemistry". Note also my definition of "everyone". I certainly think everyone has the mental capacity to understand algebra.

> I certainly think everyone has the mental capacity to understand algebra.

I invite you to tutor some middle school students then. For values of algebra that include “can be taught to draw the appropriate line given the corresponding equation” there are plenty who can’t understand algebra.

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

#164

Earlier quoted context omitted.

> I don’t think everyone can understand computer science. This is a bold claim. None of us are special for working in tech. Our life has presented us the opportunity and passion to invest ourselves deeply in the field, often at great opportunity cost. Saying that a bad teacher makes no difference in student outcomes is equally ridiculous as saying an excellent teacher makes no difference in student outcomes. If that'…

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

I teach programming (not CS) part time. All students have been doing reasonably well and took something valuable with them, which is the intent of the course.

However only a few have what it takes to regularly sit in front of a computer and power through long term. It’s definitely special for better or worse. Let’s face it: We’re nerds!

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

#165
post #142

Earlier quoted context omitted.

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

> At least 5% of the population can’t understand algebra. That's a very low bar, though. It would mean that 95% (ok, maybe slightly less) of everyone out there would be able to understand chemistry.

That algebra is necessary for chemistry does not imply that it is sufficient.

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

#166

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…

Going to take a stab at defining measuring sticks for the problem:

Here's some metrics we should measure a "system for programming education," of whatever form, against.

--Success is measured against new students with zero programming background.

Todo would be defining zero programming background.

Ideally people who've never evaluated a statement before AND never used a CLI interface AND without an amazing mathematical background.

--Students do not feel regret, unhappiness or anxiety before they start or after they finish a 1-2 hour programming session. Students want to program in the future. All other things being equal.

--The level of expertise to target for a "solid programmer" is creating discrete systems using higher order abstractions from scratch. Whilst using a strong mental model of what higher order abstractions actually look like in their physical state to improve their creations.

A secondary KPI might be "can the student make a compiler." But a mental model of what higher order abstractions actually look like in logical state seems like a good goal.

--Currently underrepresented cultural backgrounds show end state success at the same rate as other cultural backgrounds, all other things being equal.

Programming stuff is difficult, when there are difficult academic barriers to overcome people on the south side of social inequality fail more. Thus it needs to be a metric.

--Could possibly program for money?.

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

#167
post #166

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…

Going to take a stab at defining measuring sticks for the problem: Here's some metrics we should measure a "system for programming education," of whatever form, against. --Success is measured against new students with zero programming background. Todo would be defining zero programming background. Ideally people who've never evaluated a statement before AND never used a CLI interface AND without an amazing mathematic…

tl;dr

-Measure success against "never done it before with average mathematics."

-End goal is able to make cool things with a mental model of fundamental logical state that helps at creating things in higher abstractions.

-No discriminatory bad news.

-No traumatizing for life and making them hate instructing computers.

-Employable?

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

#169
post #160

Earlier quoted context omitted.

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

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…

As for kids, I agree with you that the majority of them can potentially be good at almost every field. But as for adults, I’m not so sure. Most of us become way too rigid as we age, learning capability and more importantly motivation becomes way lowered. So someone who had trouble with basic algebra (at the time mostly due to a bad teacher/experience with math) will not generally be able to overcome his/her identity of “being bad at math”. Of course, there are exceptions.

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

#170
post #103

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.

The bar for getting stuff done with programming is much lower than the bar for chemistry. While I do agree that not everyone can or will be a full time software engineer, I think that most people can incorporate programming into some aspect of their lives. Whether they want to is another thing but that shouldn't stop us from teaching at least the basics even if it means the most they'll do is write conditional excel…

I suspect many people on HN have an unrealistic view of how most of the population operates.

People who can do any version of STEM with some minimal basic competence are unusual. They're not exceptionally unusual, but they're certainly not the population median.

Media numeracy is around Level 3 on this list. Numeracy in the US is lower than the OECD median and is somewhere between Levels 2 and 3.

https://www.nationalnumeracy.org.uk/about/what-numeracy/what...

I'd estimate you need Level 4 for programming to make any sense at all and maybe get you started with very simple programming tasks, Level 5 to be able to do basic code construction on a daily basis, and Level 6 to be a competent senior with some useful modelling skills.

Level 5 is maybe 20-25% of the population. Level 6 is probably less than 10%.

Post reply on HN