Search Unity

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

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

  1. splattenburgers

    splattenburgers

    Joined:
    Aug 4, 2017
    Posts:
    117
    I was recently reading an interesting essay which discusses the difficulty in teaching people how to code. It mentions somewhere that up as much as 30-60% of students fail their first programming course, and that in schools of lower level than university it can be as much as 80-90%! It also mentions that this is not merely the byproduct of laziness as many of these students are otherwise very willing to learn and do well in school besides the coding. It also mentioned that this difficulty in teaching coding and the success/failure rate of students was the same regardless of the teaching method, or what language is used. Basically everything has been tried and nothing worked (the essay's own words).

    What is it about coding that makes it so extremely difficult for people to learn? I admit it can be intimidating at first but I never found it difficult to figure out after doing some research and watching some tutorials. Yet the failure rate of teaching coding appears to be somewhere between 30-90% on average depending on the school (university students perform better). What is it about coding that scares people off so much? I mean it's not THAT difficult 0_0

    EDIT: The original post was a bit misleading. University students only have a failure rate of about 33% (which is still considerable), but for non-university students the failure rates can be as high as 90% in extreme cases. So basically failure rates can be very high but aren't the same for all groups across the board.
     
    Last edited: May 29, 2019
  2. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    966
    I feel like there are some variables that you are missing. First off, do 30-60% of STUDENTS fail their first CS course or 30-60% of CS MAJORS? The first couple of course are generic programming courses that are full of programmers, math majors, business majors, artists... it’s a gen-ed. Other than engineers and math majors, I’d expect most of them to struggle.

    Probably the thing people fail to grasp most would be object oriented programming and multithreaded events. There difficult concepts.
     
  3. splattenburgers

    splattenburgers

    Joined:
    Aug 4, 2017
    Posts:
    117
    I will copy the direct quote:

    Despite the enormous changes which have taken place since electronic computing was inventedin the 1950s, some things remain stubbornly the same. In particular, most people can’t learn to program: between 30% and 60% of every university computer science department’s intake fail thefirst programming course.

    Source: http://www.eis.mdx.ac.uk/research/PhDArea/saeed/paper1.pdf
     
  4. BrewNCode

    BrewNCode

    Joined:
    Feb 17, 2017
    Posts:
    372
    So programming course as in: "Intro to C++," "Intro to Java" etc...

    I guess the major reason is that they were overconfident. I took my intro to C++ classes and I got an A, then in OOP, I passed with a C, mainly because I thought it would be as easy as intro...

    Another thing is, that people nowadays enter to coding to earn money, and then they realized that they need to actually think critically and logically, otherwise, your code won't run, the code doesn't run, therefore you fail the course.
     
    xVergilx likes this.
  5. I don't know, I have failed my first coding course because I used 'i', 'j' and 'k' as a loop variable and the teacher liked the 'x', 'y' and 'z' all the time and I wrote better bubble sort than him (I went to college with almost 10 years of programming experience in assembly and whatnot). I also didn't like the 'history of programming languages and hardware" part of the course (it was part of it back then in my home country), I didn't care about that, nowadays I do, as a novelty.

    IDK in the UK what is the content of the course, but in my home country it's notoriously dumb. And coding course is a subject which can be used as a filter.

    Background: in my home country schools and colleges and universities get tax-money depending on how many student attends. So they inflate the beginner courses with everyone you can think of, and then after the first semester (or two) they choose a course which can be used as a filter. Since coding is abstract for most of the people, they use coding for that. Just kick out people so they don't have to support these students anymore and since most people don't know too much about computer programming they usually won't complain about it or just don't care because you can work in the industry without the papers.
     
  6. Ony

    Ony

    Joined:
    Apr 26, 2009
    Posts:
    1,977
    programming (particularly game programming) very often requires one to think outside the box in order to know how to properly proceed with thinking inside the box. Not everyone knows how to do that, or indeed knows that they don't know how to do it.
     
  7. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,639
    It sounds like you are supposing that more people fail computer science than other subjects, but does the paper actually compare numbers for other subjects at all? Do other subjects have a higher success rate? At the school I went to, at least 30-60% of the freshmen failed courses of a wide variety of subjects.

    Also, my CS department was required to fail a certain percentage of incoming students every year. This is not uncommon with Universities that have small, competitive departments.
     
    Kiwasi and Ryiah like this.
  8. newjerseyrunner

    newjerseyrunner

    Joined:
    Jul 20, 2017
    Posts:
    966
    I had a professor like that. Looking back now, it's quite obvious that many of the people who teach programming are not very good programmers outside of an academic sense. A good programmer will tell you that both are wrong. While I certainly use i, j, and k over and over again, you should always prefer a more descriptive variable name. x, y, z is even more wrong unless you're doing a for loop over voxels or something.
     
  9. RichardKain

    RichardKain

    Joined:
    Oct 1, 2012
    Posts:
    1,261
    One of the core, central parts of effective programming is problem solving. Problem solving is not easy to teach, and it isn't for everybody. Some people straight-up hate it. When I was taking geometry in high-school, we had an entire section on geometric proofs. Geometric proofs are about 20% memorizing some basic geometric rules, and 80% problem solving. You can memorize those rules real good, but if you can't use them to solve problems, you'll still have trouble with figuring out geometric proofs.

    I've always had a taste for problem solving, so I was able to breeze through that portion of geometry. In fact, it was easily my favorite part of the class. But I was surprised at how many of my fellow students struggled with it. Even some of the class's best students with the highest grades seemed to have some manner of mental block when it came to geometric proofs. Logical problem solving is not a common skill, and proficiency in it is not something that can be easily taught. Memorizing syntax and structure is only the beginning. Effective problem solving is what makes you a serious programmer.
     
    Ony likes this.
  10. Well, it was in a 90-ies and it was purely procedural stuff. So i,j,k (or x,y,z) was good enough most of the time for a loop variable. Obviously when they need to be more descriptive I choose proper name for them. But when you have to have an loop variable and it's not important these are goods enough. The advantage is that your mind just slip through of these so don't take up any brain-power.

    My problem was that the academia was not pleased with the fact that I already had extensive experience with the subject. And habits and stuff.
     
  11. kdgalla

    kdgalla

    Joined:
    Mar 15, 2013
    Posts:
    4,639
    By the way, this whole 30%-60% thing is not the conclusion of this paper that you linked, and so the author doesn't go in to detail about it at all. That's exactly why academic papers meticulously cite their sources, though. You can look-up the paper he cited and that may give you more information on how that came up with that number.

    It's useful to also keep this mind if you are ever doing academic research. You find a paper that seems to answer your questions, but you don't understand every thing that the paper says? You can read the papers that the author cited as well, and that will give you more background information.
     
    splattenburgers and Ryiah like this.
  12. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    Assuming those numbers are accurate, I'm not actually surprised. Programming requires significant logical thinking and troubleshooting abilities, which I believe a significant portion of the population does not possess. I also do not believe those abilities are entirely learned behaviors. Also, programming is not something people of low IQ are going to excel at. When your country has an average IQ in the 90-100 range that means means half the population has an IQ below that average. If your IQ is below average, programming might be a difficult skill to master.
     
  13. splattenburgers

    splattenburgers

    Joined:
    Aug 4, 2017
    Posts:
    117
    Actually, one of the more weird things noticed in the essay is that high IQ individuals were not considerably more likely to understand coding compared to lower IQ ones, and that many high IQ students who had no problem educating themselves about other complex skills in many cases went absolutely nowhere when it came to coding. This suggests that while a high IQ will benefit your coding skills, for the purposes of understanding coding, it doesn't seem to mean anything unless your IQ is very low (sub-90 IQ).
     
    Last edited: May 28, 2019
  14. Joe-Censored

    Joe-Censored

    Joined:
    Mar 26, 2013
    Posts:
    11,847
    Sub-90 isn't "very low" though, that was my point with IQ. In the US the average IQ is in the mid-90's, so an IQ of say 89 is just slightly below average. Scores of 89 or lower probably cover about 1/3 of the population. But I certainly agree that IQ isn't everything. I've known high IQ people who have difficulty planning almost anything in their lives, who I doubt would make good programmers.
     
  15. splattenburgers

    splattenburgers

    Joined:
    Aug 4, 2017
    Posts:
    117
    Sub-90 is considered below average. 90-110 is considered average. About 75% of people are considered average or above average.
     
  16. tsibiski

    tsibiski

    Joined:
    Jul 11, 2016
    Posts:
    604
    That's interesting... I started off as an Organismal Biology major. In fact, that is the degree I ended up with. I took a C+ Intro to Programming course. Holy cow did I do everything within my power to just barely pass that.

    About ~4 years later, I was a manual tester and got asked to learn to program on a basic level so that I could write automation scripts. I had to learn on the fly with The Google and about 3 Pluralsight training courses. Within 3 months, I was writing automation scripts by hand full time. Somehow, years later, I'd say I am a pretty good C# web developer w/ MVC; could definitely get a job as one. I'd be solid for standard native apps, and just barely serviceable as a Unity game developer.

    Interestingly, my teacher at the time, tried to convince me to drop the course. He literally told me, "maybe this isn't for you". He was a good guy, although it was often hard to understand him. He was native Korean. I chalked his comments up to trying to test my resolve more than trying to actually get me to give up. I told him that I would pass, whatever it took. Glad I stuck with it. I don't know if I would have been as excited about my next chance to code if I hadn't.
     
  17. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    5,181
    Not enough good teachers. When teachers are paid real salaries, kids will get smart. Don't kid yourselves like it requires any special genius. I mean yeah you can't be a rock but majority of students being failures isn't because the subject is so hard, it's because it's difficult to teach and whats the incentive for people who have the capacity to be good teachers to teach? They can make infinitely more money actually programming.

    Every coding course I've took except one just starts by jumping into stuff without explaining any theory at all. No overview of syntax or anything. That is how you learn human languages but coding is not human language. It needs to be explained in simple theory first.
     
    neoshaman and splattenburgers like this.
  18. Deleted User

    Deleted User

    Guest

    Considering that programming is just a tool CS students and professionals use, it is entirely to move forward without being proficient at it. I know people who code worse than I but again have better grades...
     
  19. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    This was my first thought. The OPs stats seem more like a feature then a bug.

    I didn't do computer science, I did chemical engineering. But the first two years were deliberately designed to fail people out. The first year failed people out who couldn't handle the workload. It got rid of people who were lazy, not committed, or simply didn't turn up. The second year failed people out who couldn't handle the course content. It got rid of people who simply did not have the right mindset or raw intelligence. Very few people failed out in the third and fourth years. (For reference "failed out" often meant they dropped into a lesser degree).

    As a general rule, its to the long term advantage of universities to only pass people who are capable of completing the content. If a uni makes sure all its graduates are actually skilled, then the graduates are valued by the market. This in turn leads to more prestige for the uni, which allows them to charge more or take on more students. The whole thing continues in a feedback loop.

    As a student, the last thing you want to do is attend a uni with a high pass rate. High pass rates should be a major red flag that something is wrong. It doesn't mean the standard of teaching is high, it normally means the academic bar to passing has been lowered.
     
    Deleted User likes this.
  20. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    Coding is not for everyone, it just isn't.

    Most people's brains aren't wired for code, they're wired for interpersonal communication, and the way you communicate with people is so extremely different than the way you need to communicate with a machine that ... well ... the two are kinda in conflict.

    The kind of pedantic, precise communication required to make a machine do what you want is exactly the kind of irritating communication that makes partners in conversation bored or irritated.

    Although it's kind of similar to most other STEM fields, where the subject matter revolves around things that people are uncomfortable with: true, false, accuracy, numbers, precision.

    Programming is really its own thing, mixing those other elements with the pragmatism and inelegance of applied maths like trig, while also working with an abstract subject matter that has little to no direct tangibility.

    I'm not arguing programming is hard. I'm arguing that programming is unnatural for the vast majority of people.
     
    Darkgaze, Martin_H, Tzan and 4 others like this.
  21. LaneFox

    LaneFox

    Joined:
    Jun 29, 2011
    Posts:
    7,536
    The requirement of self motivation.
     
    devotid, VIC20 and Lurking-Ninja like this.
  22. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    5,181
    Yep ^^

    It's not something you can just pick up easily by looking at it. That's why it really requires good teachers. Doesn't mean its infinitely complex or anything. There will be people who take to it more naturally.
    I've learned more about coding from frosted and a few others here on this forum than I have from a number of online courses. 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.
     
  23. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    Referring back to my experience at university, the first programming class had a whole bunch of people who didn't even know what to expect from programming. I don't think it was a lack of experience that caused them problems, I think it was the discovery that they just didn't like it.

    When people ask me about programming courses these days, my first piece of advice is to get online and learn some programming themselves first. If they like it, it'll give them a huge boost when they start learning formally. If they don't like it, better to know now than after you've picked courses.

    I used to think that math wasn't for everyone. Specifically, I thought it wasn't for me. In reflection since, many of the things I struggled with at school I've since picked up on my own with relatively little trouble. I think the issue with math is far more to do with how it's taught than that the concepts themselves are hard.
     
    neoshaman, Ony, Kiwasi and 1 other person like this.
  24. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    TBH, I don't think programming itself is actually hard. I think it's easier than a lot of other stuff people do.

    I just don't think it's natural. It requires a different kind of thinking than most of the thinking people do, and a different kind of communication than most people are accustomed to. Math in general does also.

    Most people don't like thinking precise. They like thinking sloppy and loose.

    I don't wanna get into touchy water or stereotype but I do think that people who are at least a bit on the autism spectrum tend to find it a more natural fit. Stereotypical speech patterns there are closer to the kind of pedantic formation that code rewards.

    What's hard and whats easy are different for different people. And I would actually classify normal human speech as far harder than programming, it's just that most people are better wired for it.
     
    Marble, IcyPeak, Ony and 2 others like this.
  25. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    I'd say people struggle because all through school students are taught how to regurgitate things that other people have figured out, but rarely do schools teach people to solve a problem from scratch with a few simple tools. You often get those little intra school challenges where you get a box of things and you have to figure out a contraption that will perfectly weight 1kg of rice or something, but those are extra curricular, at least they were for me.

    Anyway, my point is that I did 12 years of school and it wasn't until my second year of computer science that I finally figured out how to think, learn efficiently and solve problems. I think there needs to be a bigger focus on this in early schooling, not math, but logic, problem solving and thinking as that can be applied to all subjects where as math, often feels like it only applies to math when you're first learning it and so for those not interested, they don't learn and then miss the logical side of it which is what you need for computer science.
     
    angrypenguin likes this.
  26. Kiwasi

    Kiwasi

    Joined:
    Dec 5, 2013
    Posts:
    16,860
    Really? That was like my entire degree. We had a few base knowledge papers where we had to regurgitate stuff, but everything else was pure problem solving.

    If you are right, that does explain a few things about some of my degree qualified colleagues...
     
  27. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    5,181
    Education, at least where I'm from, teaches the opposite of intelligence. Lot of trouble to get smart after public schoolin.
     
    Ony likes this.
  28. ChazBass

    ChazBass

    Joined:
    Jul 14, 2013
    Posts:
    153
    I'm not surprised, although those number seems high.

    Back in the day, programming certainly wasn't the coolness that it became initially with advent of the Web and then later with the advent of Google and Facebook and the rise of the smart phone, and then more recently with (at least here in the US) the encouraging of the masses from elementary school to adult to just "learn to code".

    As a result, I think schools have more students taking these intro to programming classes, and many of those are probably not well suited for it, but like the idea. I also agree with the idea that the higher number of college kids taking these intro classes means there are fewer good teachers to go around. This is compounded almost certainly by the fact that good programmers are more likely going to be doing that rather than teaching.
     
    Deleted User and Kiwasi like this.
  29. MD_Reptile

    MD_Reptile

    Joined:
    Jan 19, 2012
    Posts:
    2,664
    Well my experience with traditional programming education was like this:

    - Spend tens of thousands of dollars and maintain a regular life while trying to go to school full time
    - Take tons of classes I should have already passed in high school and lose thousands of dollars to it
    - Finally make it to first programming classes (python) and discover that... I was beyond it :/

    That sounds like bragging but it actually sucked. I sunk a huge amount of money (I've yet to pay back) into learning how to do something I had already taught myself the basics of, and of course by not getting into an elite school I didn't get the finest professors - and at the end of the day I could have saved a huge amount of time and effort and just Google'd it like I always had done to begin with.

    Your milage WILL vary because some schools are definitely better, and the teachers are definitely going to be different. You might find a great school for programming, and I'd seriously recommend just showing up the semester before you start signing up for classes - and meet with the professors, meet with the students, ask them if they like the classes, ask them if they knew anything about writing code before they made it to that class! This could make a big difference in which school you choose, and which professors you choose! Let my mistakes be your lessons!

    For the real over achiever you should go shadow local game dev companies (or software dev companies) and watch what they do. Learn what langs they use. THEN figure out what school and professors to pick.
     
    IcyPeak, Jingle-Fett and Ryiah like this.
  30. Ony

    Ony

    Joined:
    Apr 26, 2009
    Posts:
    1,977
    I had a computer/programming class (using TRS-80s) in high school and my teacher used to get mad at me because I would always finish way before the rest of the class. For some reason that irritated him. And then I would get mad. And we'd get in fights. I got suspended once because he made me so mad I kicked his little garbage can and it hit his chair. Not to mention numerous detentions. I wasn't exactly the most well behaved student, truth be told.

    Was sad to hear that he'd passed away a few years ago. Here's to you, Mr. Jelsovsky. I've had a good long career with this stuff. I hope you'd be proud of me now.
     
  31. Jingle-Fett

    Jingle-Fett

    Joined:
    Oct 18, 2009
    Posts:
    614
    Random guess: people who are good at programming are not necessarily good teachers, and vice versa. Teaching is a separate skill and not everybody is good at it.

    Also, I think most people have the ability understand the logic required for programming. The real barrier is the language and how it's structured, I know it was for me anyways. Look at how many artists are able to make use of node-based programming, but give them actual code and they struggle. It's very much like learning a foreign language like spanish or french or something.
     
    neoshaman, Ony and MD_Reptile like this.
  32. Antony-Blackett

    Antony-Blackett

    Joined:
    Feb 15, 2011
    Posts:
    1,778
    By school i mean pre university. Primary and high school.
     
    Kiwasi likes this.
  33. Deleted User

    Deleted User

    Guest

    I am about to share my experience and knowledge in education, it goes sort of counter to a lot of whats been said before this point...

    Take it with a grain of salt.

    It seems weird and incorrect to use phrases like "brains not wired for it" or "they just aren't suited for it". There's a lot of science about the connections and "rewiring", chemical operations within a persons brain but it doesn't seem right to say a person is fundamentally incapable of something like learning because of that. I suggest we look at the person as a whole rather than as a collection of neurons.

    To understand why some are incapable of learning a new skill or topic it may be more illuminating to examine why (at a high level) that person hasn't learned adequately. I use the phrase "hasn't" because many people say things in absolutes. "You're not good at math and so you never will be".

    We talk lots today about "growth mindset" versus "fixed mindset" and these are important concepts.

    My firm belief about learning anything is that there has to be a will for it. Some just don't like learning things. Saying some are unable to learn for static reasons is a fixed mindset approach. Some people have other things going on in their lives that makes them unwilling to succeed here. Past trauma, having to care for a family member, their financial situation, an awful home life, untreated ongoing depression, the list goes on. Those who actively want to succeed in anything will achieve their goals. Those who aren't in it to learn most likely won't.

    The last thing I want to address is the public school system. The schools teach concepts 60 years out of relevancy.

    As for learning there are two cognitive types: knowing what something is (a name) and understanding a process.

    Its the difference between reciting specific battles in human history and grasping just how a stack or queue or red black tree works in computer science.
     
    neoshaman, MitchStan, VIC20 and 2 others like this.
  34. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    Code itself isn't hard to write. Anyone can read and write code.

    The hard part is learning to suss out the precise goals from the vague statements we generally use in human communication.

    This thread is a good example. The title "30-90% of students" is a disaster straight away. That's a huge range. 30% fail is very different from 90% fail.

    Nobody has engaged with those numbers, instead most of us probably translated those numbers to "a lot". The title got translated in our heads to "a ton of people fail". "A lot" is more natural for our brains to understand.

    That's why code is hard to learn. Because in order to get good at coding, "a lot" doesn't cut it.

    You can blame teachers if you want, but the fact is - training your brain to suss out specifics from the vague generalities most brains prefer is hard. Most people will not find that process fun or rewarding, especially in school when they're probably more focused on drinking and fu...ahem. You get the idea.
     
    Martin_H, Socrates and Ryiah like this.
  35. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    https://dl.acm.org/citation.cfm?id=2591749

    It looks like the average pass rate is 67.7%. Although it seems like there is phenomenon regarding misquoted failure rates or poor studies.
     
  36. splattenburgers

    splattenburgers

    Joined:
    Aug 4, 2017
    Posts:
    117
    I think in the original article I posted (thought it could be from another source, it's a long essay so I don't remember all of it) it was said that in universities the failure rate was only around 30 or so percent which is consistent with what you just posted. But when people's ability to learn coding was explored outside of universities (whom are disproportiontly stacked with intelligent individuals) the failure rate skyrocketed, in some cases going as high as 90%. This is the reason the title says "30-90% of students (not just university students) aren't able to learn coding.

    Tbh I should probably modify my OP post to make things a bit more clear.

    EDIT: I should also add that even when people DO pass CS class many still don't know how to code for some reason. There are actually plenty of articles online from baffled programmers complaining about people with CS degrees actually not knowing anything about coding except only very superficially.
     
  37. Arowx

    Arowx

    Joined:
    Nov 12, 2009
    Posts:
    8,194
    Could you please link to the article?

    As I'm very surprised in these stats, e.g. programming is just basic maths and logic, sequence, selection, iteration and especially with fun game engines and visual programming languages available today. I would guess and hope that your source article is anecdotal and not a good in depth study e.g. n (sample size)?
     
  38. frosted

    frosted

    Joined:
    Jan 17, 2014
    Posts:
    4,044
    Note how - if we start to discuss the details of the subject, a lot of people will get bored with this thread and the response rate will drop.

    That's why coding isn't for everyone. It's much more fun to talk loose and sloppy, just throwing in random opinions than it is to engage with details and specifics.

    QED
     
    dadude123, Akshara and Ony like this.
  39. dogzerx2

    dogzerx2

    Joined:
    Dec 27, 2009
    Posts:
    3,971
    Most people probably find it uninteresting... And there’s a lot of misleading hype around gamedev, people jump in thinking it’s easy money... then they can’t find the mmo button
     
  40. Murgilod

    Murgilod

    Joined:
    Nov 12, 2013
    Posts:
    10,159
    I wonder what the statistics are like for people learning a foreign language.
     
    Martin_H, MD_Reptile, IcyPeak and 6 others like this.
  41. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,779
    To gain skill, there must be an interest, or need toward it.
    If there is none, there is no motivation to pursue to learn in given direction.

    And even so, being pushed toward direction by force, for example by family/friends/trends, wont make person necessary good at skill, even pass exams.

    However, is not to say, that interest will never come. For many people, interest may come later in their life. Saying that many good programmers has no higher education and also are self thought.

    Programming is not something you can learn in 3-4 years of study, on its own. Similar as engineering, politics, or other study direction. There is requires whole set of good, relevant background and interest, before then and after.

    Also, not everyone develop own abstract thinking and strong analytical skills, required for effective programming. Just like not everyone can be good drivers. Not to mention about programming languages, to be picked, which takes years in relevant fields of interest.

    Universities in general have relative high dropout on first years. That including myself, as I was not interested, how my Uni thought me programming and economics. Also, students often changes their courses. Few years later I took different engineering direction with much more success at Uni and further work. But I can say, at least 15% of students shifted from IT and economy, to just economy course after first year, because programming wasn't their thing, as their thought. And economy they thought is easier to learn for them.

    Similar trend I have noticed, when I was studying electronics and electrical eng. and people shifted heavily toward automotive and mechanics after first year, as electrical and electronics eng. was not their thing at given time. Again very abstract thinking is required.

    Just my thoughts, mixed with exp.
     
    dogzerx2 likes this.
  42. dogzerx2

    dogzerx2

    Joined:
    Dec 27, 2009
    Posts:
    3,971
    Depends. Never met anyone who had to learn English and just couldn’t, but I know people completely uninterested in learning it, and forgot most of what they learned in school.
     
    MD_Reptile likes this.
  43. Antypodish

    Antypodish

    Joined:
    Apr 29, 2014
    Posts:
    10,779
    My anecdotal thing is, I could not learn for seven years English at school. My colleagues could learn however, no problem. So after seven years, I was able count and at most introduce myself. This forum would be far out of reach back then. That's it.
    However, German language I learned at school to communicative level in 3 years. Few years later I went abroad, and learned near fluent English in 2 years. To the point, I could go to Uni abroad.

    For me teaching in school was very dry, mostly grammar and grammar. Not for me. Very little of speaking. And speaking was way, I learned languages primarily and grammar was secondary.

    But I would say, going abroad is best way to learn foreign language. Any can be picked within 3 years, as long person is exposed to to it. Further languages is even easier to learn.

    So yeah, there is need for interest and some circumstances.
     
    IcyPeak and dogzerx2 like this.
  44. BIGTIMEMASTER

    BIGTIMEMASTER

    Joined:
    Jun 1, 2017
    Posts:
    5,181
    This is the same principle that is taught in boot camp in the military. I am sure in many serious professional disciplines minute attention to detail is paramount to the craft. It's all a matter of degrees, of course, and success in learning does largely depend on what the environment and motivating factors are... but it is the job of teachers to shape the environment and guide the motivating factors to give the best chance for success. Otherwise we're all just winging it on our own, and failure rate will always be high that way. Too much depends on luck that way.

    But I don't blame teachers. As always, I blame everybody for not properly valuing investment in the future, being apathetic, and also politicians.
     
    frosted and dogzerx2 like this.
  45. CortiWins

    CortiWins

    Joined:
    Sep 24, 2018
    Posts:
    150
    What i remember from when i learned programming and saw others learn it at the same time, programming seems to require different thinking form other topics. I saw a lot of pretty smart people that just didn't get it, until it clicked at some point and then it became relatively easy for them.
     
    dogzerx2 likes this.
  46. I_Am_DreReid

    I_Am_DreReid

    Joined:
    Dec 13, 2015
    Posts:
    361
    I did it in community college so i have a bit of experience.

    1. It was a slight bit boring or maybe my expectations of it were over hyped. Wanted to create some big fancy programs but all we did were simple ass command line programs and i still had problems with those because my head is hard.

    2. Some aspects of programming involves maths to an extent. I dont really like math. So when it came to doing some sort of calculation my brain just froze.

    3. Its a huge field mon. I once created a program in c for school and thought yo myself "how does scanf work???". I attempted to do further research and i was just so overwhelmed by the amount of info available.

    4. A whole lot of damn information is out there. If i as a begineer want to learn programming and i go online and say hey i want to learn programming, help, best books needed. Lord have mercy, john, james, henry, george, jim, tamara all give a long ass lists of books, resources and recomendations. Not to mention their personal approval/disapproval of certain languages based on their feelings.

    5. You need some level of logic, you need to understand how things work. I once was following a tutorial on how to make a 2d char walk. I paused it at the point and thought crudely "if i push the left button, then i want char to move to x point". I then resumed video only to see person use transform/translate (cant remember) and i was like......what???

    6. Writing the code is somewhat easy, debugging that S*** is hard lol. Syntax errors are a bitch but if you know the programming language your working with then most of it can be resolved, but logical errors?? Nah fam, im not losing sleep for that.

    I do have an appreciation for programming now although i dont do anything too complex.
     
  47. Vryken

    Vryken

    Joined:
    Jan 23, 2018
    Posts:
    2,106
    Perhaps it could be a combination concepts that seem pretty abstract at first, along with the very high learning curve.
    I'm sure I'm not the only one who, when first starting, wondered "How am I supposed to go from System.out.println() to making something like a web application or a desktop application? What even is a 'System.out'?"
    Those kinds of thoughts can be pretty overwhelming if they get to you.

    It took me a full year to even learn what a method/function was and how to use them, and I fully believe that if I didn't have an interest in this subject-matter to begin with, I most likely still wouldn't know to this day.
     
  48. splattenburgers

    splattenburgers

    Joined:
    Aug 4, 2017
    Posts:
    117
    Can't be bothered to dig it up so you will just have to take my word for it. But it's not that odd at all when you think about it. Many people who are good at something often can't understand why others are not because they take their skills for granted.

    And programming isn't just "basic math and logic". Even in a "simple" language like Python code structure can be very cryptic and hard to understand for a beginner. For example, when I was just starting to learn coding I understood that lines were used to give instructions, but for the longest time I did not understand methods and struggled understanding why during tutorials the coders would often add .InsertMethod into their lines. Another problem is that most coding tutorials for whatever reason don't ever bother explaining syntax so you end up getting confused with all the funny looking symbols and don't know why they are there or what their purpose is. Then to make matters even worse the workflow of programming can be very open ended meaning that not all code may be written the same depending on the tutorial you are watching.

    Another problem is the terminology. Most programming terms are very technical and difficult to relate to. Ints, floats, bools, enums etc. And that's not even getting into having to dig through an actual scripting API looking for the things you need. Somebody above mentioned wanting to find a way to move an object in Unity and then got confused that the method uses is called "Transform" rather than something like "Move" which is what a normal person would expect/look for. Basically almost all of your conventional wisdom is useless in programming.

    Actually, now that I think about it my original decision to make this topic now seems redundant since I just basically answered my own question lol.
     
    Last edited: May 29, 2019
    neoshaman, IcyPeak and VIC20 like this.
  49. CortiWins

    CortiWins

    Joined:
    Sep 24, 2018
    Posts:
    150
    From time to time, i'm just happy how transparent stuff has become over the years. My current Visual Studio in C# tells me my mistakes before i can even compile. It tells me what is wrong, where its wrong and why its wrong.
    When i started programming in C i had a text editor with a compile button and the compiler would tell me that there is an error in FileA, Line22 when actually in FileB Line77 i forgot a semicolon.
     
    neoshaman, IcyPeak and MD_Reptile like this.
  50. angrypenguin

    angrypenguin

    Joined:
    Dec 29, 2011
    Posts:
    15,620
    Great post! :D

    To me it highlights that programming isn't one skill, it's many. Before they realise that, many people think that "programming" is "writing code", which in and of itself isn't too massive a task to learn. But then there's math, problem solving, algorithm design, information architecture, software design, oodles and oodles of technical knowledge about how computers and networks and other things work... and that's before we're getting to making anything that's nice, or before we consider domain knowledge for whatever specific fields we make software for.

    So basically, if someone "fails" to pick up "programming" it's entirely possible that the code bit wasn't ever the problem.


    That said... the hugeness of the field is definitely manageable for many people if the learning is structured appropriately. I suspect that this is why so many programming courses spend so much time making command line applications. It's not the cool stuff that people want to jump into, but it does make you focus on some fundamental skills before muddying the water by exploding the problem space before learners have the basic tools down.