Slashdot Mirror


Programming Education: Selling People a Lie? (blogspot.com)

An anonymous reader writes: It's hard to exist in the tech world today without hearing the constant refrain about learning to code: "it's easy, we desperately need programmers, and everyone should learn how!" UK software developer Mike Hadlow disagrees, strongly. He says, "Formal education for programmers seems not to work very well and yet the majority of those who are successful programmers are mostly self taught. On the one hand we seem to have people who don't need any guided education to give them a successful career; they are perfectly capable of learning their trade from the vast sea of online resources available to anyone who wants to use it. On the other hand we have people who seem unable to learn to code even with years of formal training.

This rather puts the lie to the barriers to entry argument. If the majority of current professional software developers are self taught, how can there be barriers to entry? Anyone with access to the internet can learn to code if they have the aptitude for it. The evidence points to a very obvious conclusion: there are two populations: one that finds programming a relatively painless and indeed enjoyable thing to learn and another that can't learn no matter how good the teaching. The elephant in the room, the thing that Yvette Cooper, the 'year of code' or 'hour of code' people seem unwilling to admit is that programming is a very high aptitude task. It is not one that 'anyone can learn', and it is not easy, or rather it is easy, but only if you have the aptitude for it. The harsh fact is that most people will find it impossible to get to any significant standard."

17 of 397 comments (clear)

  1. One door it does open for the failures: by Anonymous Coward · · Score: 1, Insightful

    People who take programming courses and can't hack it can still list that as a qualification to become an Agile Project Manager. That role is best filled with a person who can't program and is jealous of those who can.

    1. Re:One door it does open for the failures: by Opportunist · · Score: 3, Insightful

      Those who can do, those who can't manage?

      --
      We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
  2. It's not entirely a lie by JoelKatz · · Score: 5, Insightful

    Programming education should try to find people who have the aptitude to be good programmers and quickly weed out those who never will.

    1. Re:It's not entirely a lie by hey! · · Score: 4, Insightful

      Well, I don't know whether it's inborn, although if sometimes seems this way. But without taking a position on whether programmers are born or made, there are skills and habits involved with being a good programmer that would be useful to anyone. That said, however, I'm not convinced that these skills and habits are what the programming education movement is teaching. I am convinced that coding isn't the only way to gain those things.

      What a really skillful programmer does that special is transform problems from something it isn't clear how to solve into other problems that are readily solvable. That takes a peculiar mix of discipline and imagination which simply teaching coding per se will not foster.

      --
      Post may contain irony: discontinue use if experiencing mood swings, nausea or elevated blood pressure.
    2. Re:It's not entirely a lie by AmiMoJo · · Score: 1, Insightful

      Almost anyone can become a competent programmer. They need the right teaching and opportunity, but it's definitely something that can be learned.

      A lot of complex programming tasks are less about software engineering and more about knowledge of the application. Business knowledge, systems knowledge, that sort of thing. Stuff that can be learned.

      The ability to learn is the real key to it.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
  3. Re:What a load of CS-degree-holding crap by Anonymous Coward · · Score: 2, Insightful

    Maybe if you're developing YAWA (yet another web application) but if you're doing something interesting it is a high aptitude task. Also, having a CS background (I didn't say degree - there is a difference) WILL make you a better programmer because you'll have an understanding of what's going on behind the scenes. Otherwise you're a code monkey who when confronted with a problem that can't be solved by gluing some libraries from codeplex together doesn't know what the fuck to do.

    I mean think about it. How is writing a kernel module or a compiler a low aptitude task? Have you ever tried debugging why your kernel isn't receiving interrupts even though you have an IDT only to discover it's because your GDT hadn't been initialized yet? Have you ever tried to write a tokenizer? Heck, even high level languages like C# and Java allow you to do some cool, weird, things thanks to reflection. Have you ever written a method that copies all the properties of one object to another object using reflection?

    tl;dr; apps are ruining America

  4. ahem by jasno · · Score: 4, Insightful

    Even if you *can* program it doesn't mean you'll actually want to do it.

    Many aspects of programming are boring and tedious. You need someone who can handle the abstract thinking, memorize the various components involved, understand how they fit and how to change them, and then sort through the various administrative steps(version control, bugtracking, communicating with devs/qa/mgmt, etc). Also, many programming jobs are very un-social. I've had times at work where I did't speak to another human for several weeks.

    --

    http://www.masturbateforpeace.com/
  5. Cut the fat. by pushing-robot · · Score: 4, Insightful

    We should get rid of history classes while we're at it... how many kids become historians?

    In fact, let's go back to apprenticeships and work-training. Imagine how quickly we could get working-class children into their lifetime careers of burger-flipping and form-filling and ditch-digging if we remove all the distraction of a 'well-rounded education'...

    --
    How can I believe you when you tell me what I don't want to hear?
  6. Re:Logic versus programming by Anonymous Coward · · Score: 3, Insightful

    You realise that logic teaching of various kinds predates programming by millenia, right?

  7. Agile/Scrum == hot potato by Anonymous Coward · · Score: 5, Insightful

    In my experience, from numerous Agile/Scrum/Kanban meetings, the concept was sound -- get people together, find out where everyone is at, find what is slowing stuff down, go on.

    However, that works in Japan where there is a level of respect from employers to employees.

    Here in the US, what was, "what did you do, what are you planning to do, and what is in your way" becomes "explain the pathetic amount of stuff you did", "make promises for next meeting", and "point the finger at someone else." The concept of a blocker, for example is used as a way to blamestorm, and ultimately, a way to find who gets shitcanned first.

    As for development in general, find a niche. Mainstream development stuff is offshored, and if by chance it isn't, it is handled by H-1Bs that rotate out after 90 days so they can't get a chance at a green card. Even if you find a dev job, you have to program at least 1000 lines of code a day, or else you will get replaced by someone who will. Bugs? If it builds, ship the damn thing. Security problems? Security has no ROI, worry about it when the lawsuits happen.

    I personally recommend people go law, accounting, or a trade. You cannot offshore a plumber, electrician, or lawyer, and there is no such thing as an unemployed attorney. No, one may not wind up as a senior partner at Ben Dover & C. Howlett Fields... but one can eke out a living.

    1. Re:Agile/Scrum == hot potato by mikael · · Score: 3, Insightful

      Effectively, the person who is getting the least work done is the one to be promoted to management or fired. That leads to an arms race where programmers start working until the late hours of the morning to make sure they are not the one completing the least number of tasks.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    2. Re:Agile/Scrum == hot potato by Anonymous Coward · · Score: 2, Insightful

      I personally recommend people go law, accounting, or a trade

      Brilliant idea: let's continue down the road of We Don't Make Anything In America and towards the dead-end town of ServiceEconomyville, which is smack-dab in the middle of Thirdworldistan. By the year 2100 the Chinese will be importing American workers to give them mani-pedis and pick their lettuce, while here in the former United States we'll have underage workers working 18 hour days assembling smartphones for the South Koreans and Vietnamese to buy.

  8. Re:Logic versus programming by WarJolt · · Score: 4, Insightful

    The problem with teaching someone to program is that they tend to miss the part where you have to think about the problem abstractly and structure the problem properly. If you can communicate the problem effectively to other people, then you can find a programmer to code up your idea relatively easily. The aptitude problem comes from the fact that many people think learning to program is the point. Good programmers are able to communicate abstract concepts at a high level, which can't really be taught through just learning to program. Honestly, I think you learn how to program better simply by explaining what you are trying to do in plain English. The actual programming task has almost little educational value.

    Students should come up with a problem they are trying to solve, conceptualize it and then explain it to their coding buddy and if their coding buddy can code it then the student probably understands how to program well.

  9. Aptitude, Ability and Desire by Archangel+Michael · · Score: 3, Insightful

    Anyone with access to the internet can learn to code if they have the aptitude for it. The evidence points to a very obvious conclusion: there are two populations: one that finds programming a relatively painless and indeed enjoyable thing to learn and another that can't learn no matter how good the teaching.

    I fall somewhere in the middle. I have programmed in languages from Assembly to PHP/Javascript (if you call those languages), so I have the ability to code.. I also know I don't have the aptitude to; I find typing at a keyboard to be very monotonous and am quickly bored. This doesn't mean I don't have desire to code, I just find it boring. I wish I wasn't bored with it.

    However, I have a colleague who loves to code and is quite good at it. However, when he gets stuck he doesn't ask other programmers (I no longer code), he asks me, because I don't see the code, I only see the logic. I've helped him solve a number of problems simply by not being a coder but being a problem solver. I'll let him code the details needed to accomplish the solution.

    That being said, knowing logic is fundamental to solving problems. People with strong logic skills can solve problems. Coding does help you learn how to be logical and solve problems.

    --
    Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
  10. Re:the have's vs have not's by Anonymous Coward · · Score: 1, Insightful

    If someone said good English require high aptitudes is going to learn that they are full of themselves

    So what you're saying is that there's no special skill involved in being an author, poet or a playwright. Anyone can do it, and nobody has to try harder than anyone else to make a good book, sonnet, or play?

  11. Love... by The+Code+Hog · · Score: 3, Insightful

    As I've gotten older (started BASIC with a Timex/Sinclair XZ81, do NoSQL engine design for a living now), I've come to believe that the population split is true; there is a segment that has the aptitude to code, and the rest who don't.

    The easiest way to see this aptitidue is to look and see whether someone loves to code. Just loves it. Works late because they have their teeth into a problem, holds incredibly complex systems in their head comfortably, etc. LOVES to code. Who feels, to paraphrase The Wind in the Willows: "There is nothing-- absolutely nothing-- half so much worth doing as simply messing about in code."

    You rarely find crappy software folks who enjoy puttering about in the code. You often find crappy devs who got into it for the high salary.

    --
    -- "Vote Democrat. Because the current crop of conservatives are just bugnut crazy."
  12. Re: Logic versus programming by Anonymous Coward · · Score: 2, Insightful

    > Programming existed for millenia before computers. Planning is programming

    The fact this gets upvoted, is part of the problem. A disconnect from reality.