3 ms·
To be fair, to learn to think, you have to learn the language first. Learning to program without knowing the language is useless and counter-productive. Of co
by ergocoder 5mo ago
To be fair, to learn to think, you have to learn the language first.
Learning to program without knowing the language is useless and counter-productive.
Of course, this doesn't mean you have to learn 10+ languages first... but you have to learn a real programming language (not a toy one) before you can learn to program.
Edit: * a language
- Jtsummers 5mo ago> To be fair, to learn to think, you have to learn the language first. Which language is the language? A competent programmer can think about programming and reason about programs written in most languages without having to know that particular language intimately (with some exceptions that push outside the normal algorithmic language notation of the Fortran, C, Java, JS, Common Lisp, Rust, Go, etc. family of languages; but those are minority languages and a competent programmer shouldn't need more than a short period of time to become literate, if not expressive, in it).
- ergocoder 5mo agoI meant "a language". Corrected it. > A competent programmer can think about programming and reason about programs written in most languages without having to know that particular language intimately That's because the programmer already learned how to program. But when they started, they definitely didn't write only pseudocode that wasn't runnable (to see the results) for months/years.
- Jtsummers 5mo ago> they definitely didn't write only pseudocode that wasn't runnable (to see the results) for months/years. GT started students that way and it worked well for years. A full semester (number varied, but was the CS 101 course, 1301/1311/1501 or something like that), taught with only pseudocode. They got rid of it because of appearances, trying to be like every other school out there. Eventually settling on Python, I think, after a brief stint with Scheme (which ended after a major cheating scandal).
- deleted 5mo ago[deleted]
- jmalicki 5mo agoBullshit. You need to learn to leetcode in psuedocode first.
- ergocoder 5mo agoBullshit. I never see anyone learning to program using pseudocode (which isn't runnable to get feedback). If they used pseudocode, were they just run the program in their heads?
- linguae 5mo agoWhen I took an introductory programming class at Sacramento City College in fall 2004 during my senior year of high school, we spent the first half of the semester designing our programs using flowcharts and pseudocode. We were encouraged to check the logic of our flowcharts and pseudocode. In the second half of the semester, we implemented those programs in C++. I haven’t seen this pedagogical practice in any other introductory course I’ve seen since. I believe it’s a holdover from the early days of computing, when programmers didn’t have access to personal computers or even interactive computing, which meant that programmers needed to spend more up-front time on design. Think of the punchcard era, for example. I teach introductory programming in C++ at Ohlone College in Fremont, and I have my students write C++ on Day 1, starting with “Hello World” and going from there without flowcharts.
- dataflow 5mo agoI think it's for all intents and purposes impossible to program like this in this century. Like imagine just writing x + y in C++. Are you seriously going to enumerate every declaration of operator+ in the translation unit in your head to see if it's eligible (don't forget ADL)? And then every single possible implicit conversion or promotion that could make other ones eligible? And then go through all the overload resolution rules that practically no humans have memorized (with any template instantiations that may come into play) to figure out if the declaration you wanted is actually the best match? That's before you even look at its definition...
- 5mo ago
- wanderingmind 5mo agoThis, we learn natural language like English first before we can use it to express ideas, argue for or against those ideas with evidence. The problem is not teaching a programming language, the problem is stopping there and not teaching how to use it to solve real problems.