For example, I typically do better with reading than watching video. But it also depends on the subject matter.
Ultimately, when it comes to education / teaching / learning one size does not fit all.
231–240 of 286 posts
For example, I typically do better with reading than watching video. But it also depends on the subject matter.
Ultimately, when it comes to education / teaching / learning one size does not fit all.
Earlier quoted context omitted.
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.national…
Those who think anyone can learn programming should pick an acquaintance ages 25-45 who has sufficient time, and attempt to teach them to program, and see the results. Or inquire about the actual success rates of coding bootcamps (which are already self selected groups and have filters themselves, far from the average population to begin with).
I've done the above with very mixed results, it's pretty clear that for a litany of reasons the average person is functionally incapable of being a useful programmer. I don't see the average citizen coding a lot in the next few decades, even casually.
Earlier quoted context omitted.
Yeah, but: > In the US, 14% of the adult population is at the "below basic" level for prose literacy; 12% are at the "below basic" level for document literacy, and 22% are at that level for quantitative literacy. Only 13% of the population is proficient in each of these three areas—able to compare viewpoints in two editorials; interpret a table about blood pressure, age, and physical activity; or compute and compare…
100% population literacy is neither reasonable nor attainable. Yet, functional literacy has drastically improved throughout the past century. To say programming is never to attain such a characteristic is making a statement against the trends of history in all other academic disciplines. Focusing on the present state is an ignorance of underlying trend. A couple thousand years ago, groundbreaking advances in trigonom…
But if these advances take centuries, from a purely personal perspective they don't matter much. By then, I, and everyone I have and will ever know, will be dead.
In the long term, we're all dead.
Though I obviously appreciate progress :-)
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.
Or it simply means the student does not have the aptitude for programming. Not everyone does.
Some students (and programmers) can excel in one programming language and struggle with a different one. Programmers don't want to admit this because it suggests a superficial focus on syntax.
Developers often say: it's semantics that matter in programming, not syntax. But you can't separate syntax from semantics - they are so closely entwined. And for many developers it shapes the way they solve problems (me included).
Some programmers develop a deep understanding of semantics that makes them easily see beyond syntax regardless of the language. I'm definitely not one of them. Dare I suggest (with no judgement), that a substantial number of programmers, possibly even the majority, also find it difficult to see beyond syntax for more complex programming topics?
Aside: A tweet from Sahil Lavingia (founder of Gumroad) from 2019:
"For those who think they can't learn how to code: try another language.
I tried PHP a few times and gave up. Then JavaScript: gave up.
Then the iPhone came out, I tried iOS development, and everything started to click!"
With mathematics, a student entering a math degree program is expected to have taken several math courses in high school. Students take placement exams to determine if they need remedial courses, but in general, you'll need to have taken algebra, trigonometry, geometry, and maybe a level of calculus.
But for computer science, we don't do any placement testing. Everyone goes into the same Java 101 course. And it's often the same course that everyone else in the college are taking as a gen-ed requirement.
Yes yes, insert any Dijkstra quote you want. I've read a lot of his papers. He was a professional troll. We need to stop holding him up as a paragon of computer science instruction. He did some great work in algorithms, but the dude is not the role model we should be pushing.
For as much as people like to parrot "computer science is as much about computers as astronomy is about telescopes", at least a telescope is conceptually quite easy to understand. A computer is a vastly more complex beast. Imagine trying to teach mathematics with students who don't even know the basics of the symbolic representation that algebra teaches. Such a student would fundamentally lack the tools necessary to succeed in a math program. But with computer science, we have students who don't know how to use their computers as tools. They only know how to use the software that other people have written and probably not even all that well. Even though "computer science is not about computers", being able to effectively use the tools of the field is still a necessary prerequisite.
So either shift the expectation to students having to learn the basics of programming on their own completely, or introduce a course of remedial programming classes in a variety of paradigms. But this purgatory of holding students hands through essentially nothing more than learning how to use the terminal and run a compiler, with only the most basic of procedural programming scattered on top, then throwing them in the deep end, that has to stop.
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,…
Haskell very much has an if then else equivalent. if' :: Bool -> a -> a -> a if' True x _ = x if' False _ y = y https://wiki.haskell.org/If-then-else Also, Java was designed to handle performance critical code like that. That’s why people call it a fast language, you can write non performance critical code however you want, but optimize for speed and it’s going to look like C.
> Also, Java was designed to handle performance critical code like that. That’s why people call it a fast language
Sure; but my point is that idiomatic java looks quite different from idiomatic C. If your first language is C, its easy to write java that looks like C. If your first language is java, you can torture C into looking like a bad version of java. But both approaches are newbie mistakes. Learning a language involves a lot more than just being able to make programs that work at all. Its also learning a culture, and learning to make code that fits well with the existing ecosystem. You won't get very far in the java programming community if you don't know how to write java in the popular style.
Thats why they say learning your second language is difficult. You need to unlearn some of how you approach programming so you can come at your second language with fresh eyes.
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…
> “I was taught like xyz, and I’m successful now and so that was definitely the right approach”. For what it's worth, the same reasoning can be heard in other fields. I work in foreign-language education, and debates about the best way to learn another language—memorize vocabulary and grammatical rules? move to a country where the language is spoken? watch a lot of movies in the language?—often reduce to competing pe…
Earlier quoted context omitted.
I was the one who appeared to learn it super fast. In retrospect, I had comparatively large amount of preexisting knowledge - my parents shown me very basics (in basic) before and we had some programming games. And looking at my kids, this stuff matters a lot. A kid that comes in with complete zero experience has massive disadvantage against one with some experience.
This is very key. By the time I entered undergrad CS, the kids who had owned computers growing up, and played or even modded videogames, had a massive starting advantage over the ones who hadn't. The entire first year of CS courses was mostly there to instill fundamental computer skills (not CS skills!) in the ones without that preexisting knowledge.
I read a paper over a decade ago talking about this. They gave a survey to freshman students and looked for correlations with their end of semester marks. They found the students who assumed there was a consistent set of rules underpinning programming (even if they didn't know what those rules were) dramatically outperformed the students who thought the computer would "work it out somehow".
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…
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 discovered the whole family are programmers. I thought I came up with the idea myself I pushed myself through school. No one in my highschool did programming or elemetry school. I thought I determined my own choices.. I was proud of the unique path.. then I met the birthparents and realized how predetermined everything is.
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.
Hm. Ada and Eiffel have very similar syntax to Pascal and Ada is used in various industries.