Search Unity

  1. Are you interested in providing feedback directly to Unity teams? Sign up to become a member of Unity Pulse, our new product feedback and research community.
    Dismiss Notice

Why do 30-90% of students fail to learn coding?

Discussion in 'General Discussion' started by splattenburgers, May 28, 2019.

  1. kburkhart84

    kburkhart84

    Joined:
    Apr 28, 2012
    Posts:
    897
    What better way to get revenge, not only to move on, but to see other students get it for you :p
     
  2. dogzerx2

    dogzerx2

    Joined:
    Dec 27, 2009
    Posts:
    3,888
    everyone knows you're supposed to use i/n/m
     
  3. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    2,903
    When you write really complicated code with nested for loops its best to use uppercase "I" and lowercase "L"
     
    Kiwasi, Ryiah, Tzan and 2 others like this.
  4. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,693
    after this I will use "loop" instead of "i", thanks for the insight
     
  5. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 20, 2015
    Posts:
    7,228
    That should be Iloop or lIoop. or IIoop or lloop. Any of these.
     
    Kiwasi likes this.
  6. FrankMarlon

    FrankMarlon

    Joined:
    Jun 4, 2020
    Posts:
    6
    Reason is because they took the time to think carefully about how to explain things simply, rather than just slapping together some course to make a buck. Like most things, people who are expert make it seem simple, while people who are not make it seem more complex than it really is.
     
  7. Darkgaze

    Darkgaze

    Joined:
    Apr 3, 2017
    Posts:
    184
    The same reason why people fail in learning maths. They have no motivation, boring small programming tasks. Nothing is practically applied. I hated math, I tried a math career, I failed in all of that, moved to computer engineering. Now I'm an R&D engineer working on physics and math all the time. NOW I undertand all that I learned 20 years ago. Why didn't they show me how to create cool stuff with all that?

    Now I'm a teacher too, and I try to give the students practical uses of those concepts.
     
    Ryiah, Martin_H, neoshaman and 3 others like this.
  8. RLord321

    RLord321

    Joined:
    Feb 25, 2017
    Posts:
    28
    Programming is like art and art is very hard to teach. I actually teach programming and I have to bite my tongue because on the first day, I want to tell the class that it can’t be taught... If you really wanted to program, you would have found other ways than sitting in a classroom to do so.

    Programming requires critical thinking more than anything else and some people just aren’t cut out for that as it can be extremely time consuming.
     
  9. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,693
    My latest experience with working alongside people who never met programming in their life, wasn't critical thinking nor logic, it was the goddamn stupid convention dump you have to wade through, they solved the problem long ago, but having to deal with petty convention make them doubt their logic, and they feel dumb for not knowing simple concept that only make sense if you learn about them, the right (personalized) analogy generally put them on track very fast.

    Also now when dealing with people no knowing anything about computer, I explain computer with a light switch being the minimal computer possible, as I/O unit with memory processing exactly one bit, works well after they pass the shock of "this can't be that simple", because they are open to generalization (everything is just switch, octet are just a serie of switch). Purist don't like that there is no actual "processing of information" in a switch, I'm saying it's relative, that part is the least interesting actually to understand a computer, and you can built toward that.
     
    Martin_H likes this.
  10. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,693
    ABSOLUTELY relevant:

     
  11. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 20, 2015
    Posts:
    7,228
    ... and absolutely as big of a BS as the Brandenburg Gate...

    Unless you think it is okay to say to draw a human means smearing some graphite on the paper... Because the information and precision loss are approximately the same.
     
  12. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,693
    I'm saying this match all the struggle I have notice, my argument was that convention get in the way and made things more complex than they are.
     
  13. Vryken

    Vryken

    Joined:
    Jan 23, 2018
    Posts:
    1,905
    The thing is, just telling people "write this to do what you want" doesn't help them learn or understand how/why it does what they want. Then the next time they run into any problem, big or small, they don't know what to do.

    It commonly happens here on the forums. I frequently see threads started by people who are new to programming that just end up going like this:

    -OP: "I'm getting an error, how do I fix it?"
    -User: "You need to add this line."
    -OP: "Now it shows a different error."
    -User: "Change this thing to that thing."
    -OP: "Now there's three more errors."
    -User: "You're missing a thing over here and made a typo over there."
    -OP: "Another error."

    Repeat ad nauseam.

    It would be better for both parties if the OP in this example learned how to read & understand error messages. They'd be able to solve them much faster and wouldn't immediately get stuck in their project once they see a red underline in their IDE.

    As the saying goes, "Give a man a fish and you'll feed him for a day. Teach a man to fish and you'll feed him for the rest of his life."
     
    Ryiah and Lurking-Ninja like this.
  14. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,693
    The point is still the terminology is as obscure as it get and concept get introduced too early with little fanfare. If you have no experience with that, this image looks like a gross oversimplification, but you don't get to introduce someone fishing while in storm chasing sharks, just because fishing in a pond is insulting to you.
     
  15. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 20, 2015
    Posts:
    7,228
    Yes, please point me to any profession which does not have its own language in order to be able to be precise and concise to communicate important distinctions between phrases. I gave you an example above. I feel the pain of the artists, I have tried to learn to draw and everything. But when I told them I don't care about Color Wheels and Theories and stuff they were laughing at me. Apparently drawing isn't accessible. :(

    (Okay, half-joking, it is true I tried and I had no patience to learn all those things properly, so I really feel the pain, but I don't think the solution should be simplifying without consideration)
     
  16. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,693
    I never said it was about simplifying without consideration, also you met a bunch of bad teacher sorry, which is what I'm pointing at, you get hung up with that example. Think about good writing, there is a reason people say show don't tell, why long exposition is frown on, and why lore dump makes you unfunny at party, UNLESS you are already interested in that, in which congratz you find a clique.

    The thing is, in that example the implicit person that is responded to, is obviously focus on getting something done, and the answer give too much information, and he get lost in many uncertainties, ie he has to fight the terminology while understanding what to do, that's obfuscation, that's not learning. First is to get to the point like the second example. THEN once the point is made and the mental load is free, explain succinctly some elements by introducing terminology, I would opt with explaining using "it makes available some command".

    also terminology matter, as in you can first draw from their own semantic, have them act on that, THEN introduce the proper terminology, for example I use "formula" instead of equation or algorithm, to avoid distraction from the problem (if they aren't familiar or have bad association with the terminology) THEN once they solved what they did, I say "by the way, in <field> it's called <proper terminology>". It's just that a lot of people can easily solve for flower rather than x, and many similar thing. Why terminology is distracting? well there is no association to it, so the person will focus on decoding it from exactly nothing, you have to get the experience first THEN associate that experience with the terminology. It's a matter of focus.

    SO yeah, have the person write the stuff first, have it solve the problem, THEN associate that with the terminology is way more effective than a dumb lore dump, which is just merely a shibboleth.
     
    DauntlessVerbosity likes this.
  17. DauntlessVerbosity

    DauntlessVerbosity

    Joined:
    Feb 28, 2020
    Posts:
    37
    I absolutely agree with you. Terminology has been the biggest obstacle I've had with learning programming. Strange terms are explained with more strange terms and looking up any of the strange terms only yields more strange terms and no explanation in actual everyday English. This was what initially scared me away from programming. It sounded impossible. Initially figuring anything out was nearly impossible simply due to the language used. Then, once terms finally started to set in, I had a light bulb moment. Nothing I was learning was actually complex in any way. In fact, it was all quite simple. It was just obscured by people unwilling, or unable, to explain things in plain English.

    Teaching is a skill that many people lack and a major part of that skill is the ability to break complex concepts down into smaller, bite-sized pieces. In addition, a person has to be able to put themselves in the mind of the person they are teaching to figure out where they are and size up the gap between that space and the knowledge they need to acquire. Learners can't do that themselves because they don't yet know what they need to know and have no perspective to gauge what they need. Talking about differentials to a child who hasn't yet learned to add is a waste of time (and telling them to "look it up" is useless... no calculus explanation will make sense). Yet, for some reason many experienced programmers speak to newbies using terms new people don't know, and when the newbies ask for an explanation, they only get more jumbled jargon. Sometimes, I think they enjoy torturing new people, both because it makes them feel superior and because they had to wade through the confusion themselves long ago.

    One of my most favorite things ever was tutoring people in math years ago. I loved taking someone who thought they "can't do math" or that they were "stupid", figuring out where their brain was, and giving them what they need, little bit by little bit. Their eyes start to light up and they begin to suspect that they aren't actually stupid for the first time. It's an awesome feeling. It's like boring into someone's brain, inserting what needs to be there, and watching the connections form. I plan, when I'm not still a moron-level programmer, to start helping new programmers. It doesn't need to be so hard.
     
    devotid likes this.
  18. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,693
    Yeah! Same experience, I'm no teacher though lol
    That's also why I'm a game designer lol
     
    DauntlessVerbosity likes this.
  19. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 20, 2015
    Posts:
    7,228
    You're mistaken. Continuing the examples, in case of drawing or writing, even if you don't know the terminology, if you write or draw something, that is a drawing or writing. If you "write something" in code, that's just a wall of text, that's not a computer program, it doesn't do what it was intended for.
    It's like first, teach how to derive in math and then tell them it's derivation. Or teaching math like this: draw a line and then draw a vertical line, now in the middle of the second vertical line, draw a horizontal line, then draw a vertical line again, then draw two horizontal lines and finally draw that curly thingy when the top is circular and the bottom is flat.

    And by the way you just wrote that 1 + 1 = 2.
     
  20. neoshaman

    neoshaman

    Joined:
    Feb 11, 2011
    Posts:
    5,693
    You are just playing semantic, because I obviously write and implicitly it also mean run to see what you write does (the experience part). The magic of programming ... it's interactive ....
     
  21. goat

    goat

    Joined:
    Aug 24, 2009
    Posts:
    5,182
    Based on my time in college at my particular university over 50% of the computer science majors flunked out and of those that graduated about 25% of those were totally reliant of classmate help to graduate.

    I remember myself the excessive amount of work I had to do to learn to be a competent programmer but then I was never too smart and didn't even major in computer science until I was a junior in college. Yes, I was in the shared computer lab commons way into Friday nights while the students flunking out or needing classmate help were out drinking or watching TV or whatever.

    But then as a freshman at the prior bunny college I was attending well over 50% of the students taking the bunny freshmen classes flunked out too s easy as those Intro Freshman classes were. You have to go to class. You have to study the material. Universities weren't like high school back then.
     
unityunity