Earlier quoted context omitted.
Just a nitpick, but this is false > Haskell is missing the idea of something happening after something else A Monad is implicitly a monoid, which certainly does specify an ordering. And as for expressions, the order of evaluation of arguments is not specified either by C for example.
The bigger problem is that "something happening after something else" is not related to the idea of an if-then-else. In Common Lisp the if-then-else construct is IF. The "something happening after something else" construct is PROGN. The whole point of if-then-else is that only one thing happens ; "something happening after something else" requires a minimum of two things.
Why did we ever think a student's first programming language didn't matter?
201–210 of 286 posts
Re: Why did we ever think a student's first programming language didn't matter?
#202I believed in miracles. I believed in illogical things.
I was bad at Maths.
I however didn't stop. I took a critical thinking class and become an atheist three years after.
I was to able to see things differently after that.
Still, it was not enough to be able to program, but certainly boosted speed.
I took a Python class. I was able to understand basic concepts of programming.
It's still not enough because I can't make something real world.
I was looking at real world Python projects but they are hard to read and has obscure short names.
Then, I spent my time understanding what an API is. I found bubble.is and there I used my skills to build a real world app and made some money.
I moved to Outsystems and there I boosted my understanding on a lot of concepts.
I started to feel that I was like ready but afraid to swim into a real programming language.
I got angry one day. I wanted to build an API in real world language. So, I googled and found a result for express.js
I hated Javascript because a lot of people hated it in online. But I started to copy paste express.js example it on my machine and modified it according my needs.
I felt relief. I finally started real world programming with Javascript.
I made a lot of money with JS for 6 months.
I then discovered about C++ and the static typing world.
I went to learn C++ despite people telling me you should learn C before learning C++
I got understanding about pointers and memory management, compilers after learning C++
I then moved to embedded space where I did a OS and kernel from scratch.
That's my journey and of course I'm still learning Maths.
Actually, learning critical thinking & programming helped me to see what Maths really is. I'm studying basic algebra and going thru a lot of concepts right now.
Re: Why did we ever think a student's first programming language didn't matter?
#203Earlier 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.
Why do you believe that "not everyone can understand chemistry"? Perhaps I should be a little more specific. When I say "everyone" below, I mean "the overwhelming majority of people in the average range of human intelligence, without debilitating mental deficiencies". This group spans virtually everyone you are likely to encounter, from car mechanics to school teachers, to postal workers, to professional software eng…
I know that this feels like something that should be true in an ideal, just world or in the HN-reading bubble, but I've never agreed with this. I know people who are incredibly smart, I know average people who are not very intelligent, but are fairly knowledgeable, I know rather simple people who live simple lives, and I know people who are, bluntly said, absolutely fucking stupid.
I am absolutely sure that I know people who wouldn't be able to get from zero to doing my job exactly the way I do it (and I'm certainly no rockstar programmer, I'm like in the bottom 10 % here) in any reasonable timespan, like 20 years even. I would literally bet any amount of money on it.
Re: Why did we ever think a student's first programming language didn't matter?
#204Earlier quoted context omitted.
> If a student has trouble transferring their knowledge of programming fundamentals “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 theor…
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.
Re: Why did we ever think a student's first programming language didn't matter?
#205Earlier quoted context omitted.
I think you’re vastly overestimating programming fundamentals. Every language can do some form of if then else be it machine code with goto’s or purely functional. Ask someone to find the absolute value of a number and they should be able to quickly figure out something that works in a new language. The basics of programming are not about being correct so much as not being lost.
> 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,…
if' :: Bool -> a -> a -> a
if' True x _ = x
if' False _ y = y
https://wiki.haskell.org/If-then-elseAlso, 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.
Re: Why did we ever think a student's first programming language didn't matter?
#206Re: Why did we ever think a student's first programming language didn't matter?
#207Earlier 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.
Re: Why did we ever think a student's first programming language didn't matter?
#208If 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.
Re: Why did we ever think a student's first programming language didn't matter?
#209The most applicable is, "It is practically impossible to teach good programming to students that have had a prior exposure to BASIC: as potential programmers they are mentally mutilated beyond hope of regeneration."
But do not forget, "The use of COBOL cripples the mind; its teaching should, therefore, be regarded as a criminal offence."
Re: Why did we ever think a student's first programming language didn't matter?
#210Earlier quoted context omitted.
C imparts a very specific architecture onto your code. Scheme is more of a blank slate upon which many different paradigms can be taught.
> Scheme is more of a blank slate upon which many different paradigms can be taught. reply Also, for a lot of first-time programmers, Scheme and other lispy languages, can come with heavier cognitive friction. Unlike procedural languages where you can think about what you want to do, break it down into steps, and then make those steps, there is a higher-level (or deeper-level, if you like) of thinking that needs to g…