Search Unity

  1. Unity 2019.2 is now released.
    Dismiss Notice

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

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

  1. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    2,276
    I feel like the coding 101 courses I took would have gone a lot easier if there was first some high-level discussion about how computers work, period. Like having a tutorial in a game. Way easier than just throwing player into dark souls and saying, "eh, just keep at it you'll get there eventually."

    For instance, have student solve basic logic problems that mimic common coding solutions, just without the code. Then slowly go into explaining the structure of code, what its actually do inside the computer, how the different pieces of hardware are working together.... its way easier to learn when you first get the why's without added complexity. As much as possible 101 courses should be totally free from jargon and specifics.

    There was someone here who post in the getting started section sometimes who wrote some of the best instruction I've seen anywhere. Don't got time to search it now, but whoever that person is really ought to put that skill to (further) use. I'd take courses from them.


    Some people are gonna succeed no matter what and all, but whoop-dee-doo.
     
  2. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    11,952
    That's more or less how my formal programming education went. The classes were in parallel, but we were learning each of how computers work, and how to use logic to solve problems, and how to write code. So we got the concept of computers as logic machines, and separately we got taught the application of using logic machines to solve problems.

    Before going into that, I'd taught my self bits and pieces of each of those things. The value I see in formal education is filling the gaps in the fundamentals, mostly because it makes further self-teaching far more efficient.
     
    Kiwasi likes this.
  3. alexzzzz

    alexzzzz

    Joined:
    Nov 20, 2010
    Posts:
    1,403
    Oh man, I hate reading papers with lots of math because they use single letters everywhere. The math itself is fine but its traditional naming conventions are just awful.
     
    IcyPeak_S, dadude123, frosted and 2 others like this.
  4. Vryken

    Vryken

    Joined:
    Jan 23, 2018
    Posts:
    726
    Maybe that's why I tend to dislike math - poor variable names. :p
     
    IcyPeak_S, VIC20 and Ryiah like this.
  5. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    7,063
    I think "80s era style computers/OS" would be way better as teaching platforms as the only way you could get them to do anything was to run console commands and then they would launch you into game worlds after making some screechy noises and you plug in a tape cassette.

    Code (CSharp):
    1. 10 PRINT "HI WORLD"
    2. 20 GOTO 10
    A friend showed me their ZX81 computer and the programming manual, I borrowed it and wrote my first game in a school text book.
     
  6. VIC20

    VIC20

    Joined:
    Jan 19, 2008
    Posts:
    2,408
    Am I the only one who never had a programming course? I’ve started to learn it in the 80s by reading books. I think the hardest part are often the examples (which were much better in the 80s) in some books. Usually (outside the Unity world) the goal they are trying to achieve is so far from my own tasks that I have no idea WHY they want to achieve something or even WHAT they want to achieve. The real information is often hidden below unnecessary confusing bullsh*t about bananas, apples or whatever.

    So I guess the teacher is an extremely important factor.

    You still can communicate with bad english. But your code won’t run if it throws out errors. That makes frustration less common when learning languages (unless it is about the french number system) so I guess the results will be better.
     
  7. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    5,714
    As with both, it depends on how bad. I write bad code all day. It compiles, but it's still garbage awful. The only thing that can understand my code most of the time are machines tailor made to do just that.
     
    Ryiah and MD_Reptile like this.
  8. TenKHoursDev

    TenKHoursDev

    Joined:
    Nov 9, 2014
    Posts:
    1,040


    Is that what you were talking about? I got a real kick out of that video
     
    IcyPeak_S and VIC20 like this.
  9. mountainstream

    mountainstream

    Joined:
    Apr 15, 2019
    Posts:
    75
    If you believe that intelligence is partly genetic, which would stand to reason as humans have evolved their brains and not all brains are the same.

    Then I would say that probably maybe less than 50% of brains are capable of the abstract thought at a fast enough speed that is required to complete a moderately complex programming task with a level of stress that is comfortable.

    On the other end of the scale, approximately 10% of the population is categorised as having a learning disability. And then there are people who don't specifically have learning difficulties but their brains are not quite suited for higher abstract thought.

    Another reason can be cultural. For example, if a child lives in a culture in which abstract thought is not encouraged they may not form the necessary neural pathways in childhood needed for abstract thought in the future. (Adult human's are less able to pick up new tasks quickly e.g. learning a language.)

    But yeah - long story short - programming is hard and some people are smarter than others.

    Edit: Oh you want to know why it is hard? Well it does involve holding a lot of information in your brain, planning, logic, pattern recognition, generalisation, simulation, etc. Of course it's hard. If you find it easy, it just means you're intelligent. There are some people who can't even work a dishwasher even with instructions.
     
    Last edited: May 31, 2019
    IcyPeak_S likes this.
  10. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,432
    Nope. To this day I've never taken an actual programming class. I have a solid engineering degree, which focuses a lot on problem solving and basic science. But my programming education has never extended beyond reading the documentation, watching YouTube, and talking to others.

    As an engineer, I disagree. Once you throw 17 variables into an equation, naming them all with anything other then a single letter or Greek symbol makes it more difficult to follow. Especially given anyone skilled enough to read and understand advanced math is likely already familiar with the various domain conventions for single letter variables.

    If you are programming or writing out logic, long variable names make sense. But for pure math, shorter is better.
     
  11. alexzzzz

    alexzzzz

    Joined:
    Nov 20, 2010
    Posts:
    1,403
    Why is this not true for programming? Any skilled programmer should also be familiar with the various domain conventions for single letter variables ― this doesn't sound much different.

    We shouldn't have to type the word 'distance', we could use d or l or x or r or h or something else instead, maybe even use caps. The programs would become shorter and therefore definitely easier to read and understand. Less typing + reading is easier = win-win.

    That's because in pure math letters don't mean anything real. When math is used to describe the real world, the letters are no longer just letters.
     
  12. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    5,153
    Pure math become meaningless, if start mixing with other disciplines, like electrical / electronic / physics / chemistry / materials / statistics. Each uses single letters to describe properties and often use already reserved by other discipline letters. So as long methods are encapsulated, commented, etc., we are fine. But there is potential issues by mixing these, in trying to be clever.
     
  13. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    5,714
    Making code less readable for people who aren't intermediate-to-advanced programmers is not making things "easier to read and understand" but actually the opposite.
     
  14. AndersMalmgren

    AndersMalmgren

    Joined:
    Aug 31, 2014
    Posts:
    4,662
    Math algorithms are often kept inside some sort of scope block, like a method or property. As long as the name is clear and well defined. It's not that important what the local variables are named.

    It could even be better if you keep the names directly from the formal definition of the algorithm. We did this for example for our ballistics coefficient.

    The general design and architecture is far more important than local variables and algorithms
     
    IcyPeak_S and Ryiah like this.
  15. alexzzzz

    alexzzzz

    Joined:
    Nov 20, 2010
    Posts:
    1,403
    Intermediate and advanced programmers are people too, so it's the opposite for all the programmers. However, in math meaningless one-letter names are considered normal even for public papers that describe solutions to real world problems where variables are not abstract anymore. I'm just wondering why.
     
  16. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    5,714
    No, because intermediate and advanced programmers will not see any meaningful difference. Also, this is a problem that a lot of people have with math.
     
    taptpci likes this.
  17. alexzzzz

    alexzzzz

    Joined:
    Nov 20, 2010
    Posts:
    1,403
    I believe, intermediate and advanced programmers would disagree about no meaningful difference.
     
  18. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    5,714
    I am one. I've worked with plenty. There's a reason hardly anyone does this in the first place.
     
    taptpci likes this.
  19. SparrowsNest

    SparrowsNest

    Joined:
    Apr 6, 2017
    Posts:
    1,786
    I didn't read any posts besides the OP, but in my experience -

    I first started coding when I was about 13 and had known flash animation, I tried making games and learn by myself - failed horribly, but what else could you expect from a 13 year old with nothing but google (i'm 25 now incase you're wondering how long ago this was).

    when I got to highschool at 15 I had a C# class, I took it for 2 years until the teacher quit, safe to say - I didn't know S***, heck I didn't even know why you have to put "void" before the function (in 2 years I didn't learn about the return value - seriously???).


    when I was 21 and was released from the army I heard unity is free to use and I hopped on that train without a second thought, it took my 2 weeks to know how to start coding basic stuff and after 2-3 months I was already calling tutorials out on stuff they do wrong.

    You just gotta find what works for you - I learn best by myself or 1 on 1 with a good teacher.
    some people can get it in class, but if you do - make sure your teacher is good.
     
    IcyPeak_S likes this.
  20. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,432
    Typically because a given program is normally working with far more variables then a given math paper is. D for distance works in math because you are typically only working with one distance. In Unity, as soon as you have three GameObjects you have six distances that you are playing with. And it exponentially increases as you add GameObjects.
     
  21. JohnnyA

    JohnnyA

    Joined:
    Apr 9, 2010
    Posts:
    4,628
    https://retractionwatch.com/2014/07...itude-test-canned-for-overzealous-conclusion/

    "Though the paper was never formally published, it made the rounds pretty extensively. Now, Bornat has published a retraction, stating that he wrote the article during an antidepressant-driven mania that also earned him a suspension from his university."

    There may be some grain of truth to the paper, but its so obviously not valid research, I mean it says in the footnote on the first page that their criteria for failing is not a student failing.
     
    Last edited: Jun 2, 2019
  22. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    7,063
    Code.org is dedicated to raising the number of schools that provide CS courses apparently on 35% of schools have CS in the STEM curriculum in the US https://code.org/promote

    So even if the OPs stats are right 65% of students are not even getting the chance to learn programming at school in the US.
     
    IcyPeak_S likes this.
  23. alexzzzz

    alexzzzz

    Joined:
    Nov 20, 2010
    Posts:
    1,403
    The problem with D is you never know it's a distance or something else until you find some random place in the paper where it is described (if it is described).

    I see 'p' in a paper about fluid simulation with particles:
    p - is it a pressure, an impulse, a position, or something else?
    dp/dt - is it a change in pressure over time, a force, a velocity, or something else?

    When the math people need to work with multiple distances (and they often do), they start adding one-letter or one-digit subscripts to their one-letter variables or use different one-letter variables to denote different distances. When they run out of Latin letters they start using Greek ones. These people are hopeless. :D
     
    Last edited: Jun 2, 2019
    DreReid, Kiwasi and SparrowsNest like this.
  24. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,432
    Its could also be ρ, which typically means density. :p

    I get what you are saying. I suppose its just normal to me because that's the environment I grew up in.
     
  25. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,582
    Haha - that is accurate.
     
  26. devotid

    devotid

    Joined:
    Nov 14, 2011
    Posts:
    353
    I taught myself to code with playmaker 10 years ago because I was sick of working real jobs in the real world. (Skateboard Manufacturer, Woodworker, Autobody painter/fabricator, greenskeeper etc) You name it I have done it....haha

    I bet if those people went and worked in the real world for a couple years that failure rate would go way down. lol
     
    DreReid and MD_Reptile like this.
  27. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    5,153
    @devotid did you went to Uni / College, as topic suggests?
     
    MD_Reptile likes this.
  28. devotid

    devotid

    Joined:
    Nov 14, 2011
    Posts:
    353
    Yes, I went to Ferris State University in 1998 for Manufacturing Engineering and only made it 1 year. I never took a actual coding course. I didnt even know what a game engine was until 10 years ago and Im 40 now. Well, I guess I did take a coding course as I did G and M Code for CNC machining.... But that wasnt really the same thing.

    I think I am kind of the "new version" of coder.... as I really still dont know how to take a blank sheet and just write code from scratch. I have kind of snuck in a side door.... as without playmaker I would not be a game dev. Period. I have been able to make a great living simply because I understand logic and playmaker lets me see it in visual interface. Nowadays I really dont even need to know how to code if all the tools are in place for me with things like playmaker.

    In my opinion.... The reason people are scared of code is they simply dont understand what is even happening... if that makes any sense? Once I seen it "moving and working" in a visual sense with Playmaker..... it all just clicked for me.
     
    MD_Reptile and Ryiah like this.
  29. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,582
    I messed with Playmaker and similar products a bit a while back just to see how they worked - but in school I even used this visual scripting tool thing I can't even remember the name of. I remember thinking "this is wack, I could write this in C# way faster" haha.

    Truth is though - that stuff is a gateway coding platform, and it gets people who are wired for this kind of stuff interested, then they just keep on learning :)
     
    devotid likes this.
  30. devotid

    devotid

    Joined:
    Nov 14, 2011
    Posts:
    353
    Ive actually heard many veteran coders say that playmaker is a great way to quickly layout ideas and prototypes for clients......and then others claim it isnt real coding and say that it cant/shouldn't be used in production games. Its a weird topic and I have received many different takes on it.

    But in the end.... if people enjoy what you create and pay you fairly for making and maintaining it... who cares what it was made with. :)
     
    IcyPeak_S and MD_Reptile like this.
  31. tsibiski

    tsibiski

    Joined:
    Jul 11, 2016
    Posts:
    273
    Seems like the essay that came up with 30-90% should have been a little more cautious and flexible with the range they presented.

    I might have said, "Why does 0-100% of students fail to learn coding?"
     
    TenKHoursDev, Kiwasi and Antypodish like this.
  32. snacktime

    snacktime

    Joined:
    Apr 15, 2013
    Posts:
    2,312
    I'm guessing the results are likely more due to things like interest and desire. We are talking about people who don't know enough to know if they even have an interest until they try it. So who knows what percentage actually applied themselves that much. Or maybe they have some other mental barrier with programming that's not related to ability.

    My wife is a translator, fluent in 5 languages and in her domain very capable of abstract thought.. But she has zero interest in programming and her brain just switches off if I start talking about what I do.

    My gut feeling is most people choose careers not really based on what they are best at, but what they were exposed to and through circumstances stuck with long enough to get good at. I think most of the population given a good reason, could learn to code.

    Like if they did this same test but put some strong reason for doing well on it, I think you would see very different results.
     
    MD_Reptile likes this.
  33. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    5,153
    Way of explaining, is another skill, which also applies to teacher. If trying to talk purely technical for example, to person from different domain, then has receipt for boredom. I think best way is, to tune, into listener domain. So in your case, explaining based on different languages. Or, as I use often examples, of making food in kitchen. That works treat. ;)

    Gas hob is good example of matrix and arrays :p
    And this is my container, or 0/1, or variable.
     
    Last edited: Jun 3, 2019
  34. TenKHoursDev

    TenKHoursDev

    Joined:
    Nov 9, 2014
    Posts:
    1,040
    You could always just go back to the eight-bit assembly era if that's what you want.

    I feel dumber just reading the first paragraph of that paper...
     
  35. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    14,277
    I miss the easy days of game development on my C64. For everything that modern game development has brought us it has never felt as easy to me as coding for that computer.
     
    Socrates and TenKHoursDev like this.
  36. Lurking-Ninja

    Lurking-Ninja

    Joined:
    Jan 20, 2015
    Posts:
    4,139
    Me too!

    processor 6502
    org $1000

    lda #$00
    sta $d020
    sta $d021
    tax
    lda #$20
    loop:
    sta $0400,x
    sta $0500,x
    sta $0600,x
    sta $0700,x
    dex
    bne loop
     
    MD_Reptile likes this.
  37. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    5,714
    I would rather eat my own feet than go back to coding like that. I'm here for results, not to poke a CPU instruction set with a series of sticks.
     
  38. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    14,277
    Just think of how much time you would save not having to compile or wait for assets to import. :p
     
  39. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    5,714
    That's good because I'm gonna need all that extra time to write and test code like that :v
     
  40. mountainstream

    mountainstream

    Joined:
    Apr 15, 2019
    Posts:
    75
    Yes, I did like programming the Spectrum. I think the limitations made it more simple and fun.

    That's what makes games fun; the constraints. Without constraints, it's not a game it's just... life. :(
     
  41. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    5,714
    ...sure, if you decide that game design doesn't exist.
     
    Billy4184 likes this.
  42. TenKHoursDev

    TenKHoursDev

    Joined:
    Nov 9, 2014
    Posts:
    1,040
    Okay Smark Alek, I'll have you know my GRANDPARENTS designed better games than today's tomfools! Games like kick the can, capture the cloth, "war", screw your neighbor (the card game!), and the climbing of 100 foot tall trees WITHOUT health insurance!

    Disclaimer: This post is not an endorsement of any of said activities, though it should be noted that the author of this post once partook in all of these things (*ahem* going full send before full send was even a thing) at some point (some might call this a "child-hood") on a regular basis.
     
    IcyPeak_S and Socrates like this.
  43. GameDevCouple_I

    GameDevCouple_I

    Joined:
    Oct 5, 2013
    Posts:
    1,739
    This burns my eyes.
     
  44. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    11,952
    Wait... why do constraints mean that game design doesn't exist?
     
  45. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    5,714
    I'm stating the opposite of that. Specifically, I mean this part:

     
    angrypenguin likes this.
  46. Ryiah

    Ryiah

    Joined:
    Oct 11, 2012
    Posts:
    14,277
    IcyPeak_S, TenKHoursDev and Socrates like this.