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."

247 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. Re: One door it does open for the failures: by prefec2 · · Score: 1

      Depends on the kind of agile. (a) an excuse do not document and hack around delivering a broken product. Or (b) an iterative development approach.

      For option (a) a person unable to code would not be a problem. However, (b) requires someone who can estimate effort, which requires an experiend developer and engineer.

    3. Re:One door it does open for the failures: by currently_awake · · Score: 2

      Avoid jobs you can do from home, because that means someone from the third world can do it from their home and take your job. The only "Benefit" from teaching programming to the masses is a glut of workers to drive down wages and benefits.

    4. Re:One door it does open for the failures: by moronikos · · Score: 1

      Well, the old saying was "those who can't, teach." Maybe the problem is that the teachers are those who can't? LOL

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

      There is no such thing as an "Agile Program Manager", just a sign of how bent out of shape Agile has become in most shops.

    6. Re:One door it does open for the failures: by angel'o'sphere · · Score: 1

      The role: 'agile project manager' does not exist.
      Agile run projects don't have/need project managers.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    7. Re:One door it does open for the failures: by uninformedLuddite · · Score: 1

      I heard it was in Idaho

      --
      The new right fascists are bilingual. They speak English and Bullshit.
    8. Re:One door it does open for the failures: by eric_harris_76 · · Score: 1

      Promotion: The process by which an excellent engineer becomes a terrible manager.

      That old definition also applies to programming, perhaps even better than to engineering.

      --
      There's no time like the present. Well, the past used to be.
    9. Re:One door it does open for the failures: by HornWumpus · · Score: 1

      No. The full joke is, if you can't teach administrate. If you can't administrate, be a librarian.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  2. Logic versus programming by TWX · · Score: 5, Interesting

    Seems to me that there's a disconnect in the way people think about programming versus thinking about math and logic. Might it make more sense to people to think logically and procedurally, then worry about applying that to a computer? Those skills are useful in life itself and are not limited to even mathematics disciplines, let alone computer programming.

    --
    Do not look into laser with remaining eye.
    1. Re:Logic versus programming by JoeyRox · · Score: 1

      I agree logic and programming are two separate disciplines but I wonder how one would go about teaching logic outside the confines of programming without getting even more abstract and discouraging the student.

    2. Re:Logic versus programming by alvinrod · · Score: 2

      Exactly my sentiments. Problem solving skills are important no matter what discipline a person may enter into or as you put it, just generally useful skills for life. If a person's job requires no more thought than that of a mindless drone, odds are that someone can build a robot or a computer to do that job more efficiently.

      Programming isn't the only way to teach those skills to kids, but it is a rather good one and with computing becoming so ubiquitous, odds are that there's some overlap between computing and the interests of most young people which does help with buy in.

    3. Re:Logic versus programming by Anonymous Coward · · Score: 3, Insightful

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

    4. Re:Logic versus programming by JustOK · · Score: 4, Interesting

      end of one school year, they took a bunch of students to the library. They needed to test the schedule for the following year. Some students became "Rooms", some "Classes" (e.g 6a, 7b etc) and some were teachers. The rooms were positioned, and they started the clock. Teachers went their way, classes came in. Clocked ticked on, with teachers and classes following their schedules and time tables. They looked at mis-assignments, double bookings, "traffic" jams in hallways etc. It was kind of a neat way to look at programming, although they were just testing the results of the scheduling software.

      --
      rewriting history since 2109
    5. Re:Logic versus programming by burtosis · · Score: 1

      Might it make more sense to people to think logically and procedurally, then worry about applying that to a computer?

      By the time they are in school its been drilled in this is totally unnecessary for everyday life and is likely to make you unpopular. That seems to be a fairly large chunk of this issue, as well as a host of issues in later life, when large scale and coherent rational thought escapes people.

    6. Re:Logic versus programming by everett · · Score: 2
      --
      Sig withheld to protect the innocent.
    7. Re:Logic versus programming by JoeyRox · · Score: 1

      Sure and how would that teaching be applied in a fashion that doesn't discourage people wanting to learn programming, which was the thrust of my question.

    8. Re:Logic versus programming by Anonymous Coward · · Score: 1

      It largely is for applied math. For my math degree I only had to take one class in formal proofs and only used them for second semester of Calc II and somewhat in higher linear algebra and topology/diff geometry classes. I'd always assumed you had to go to grad school to really start proving stuff, but that wasn't my interest.

    9. 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.

    10. Re:Logic versus programming by thinkwaitfast · · Score: 2

      There was a discussion on slashdot about this in 1999. Interesting the comment quality between then and now.

    11. Re:Logic versus programming by Anonymous Coward · · Score: 2, Interesting

      I studied logic under philosophy without a computer in sight. It's easy and it teaches you to understand other people's arguments... and how to find the holes in them. Sleigh of hand no longr works. If the wider population understood logic, politicians and ideologues would have a much harder time fooling the electorate.

    12. Re:Logic versus programming by mikael · · Score: 2, Interesting

      The desired solution for any problem is always some kind of plumbing taking into account user inputs, user output, databases, system state and storage. Some people can only solve a problem if they have been taught how to handle those particular "patterns" before. Creative types can come up with a solution using either deductive analysis or by writing code as they go along.

      Some projects just require someone who has read all the web page design textbooks and the patterns are fairly simple to match - create dialog form, send SQL query to database, return results to web page. Others can require intricate programming such as designing an interface unit to connect together two pieces of hardware with proprietary protocols from separate vendors. Then there is no textbook or online tutorial.

      --
      Vintage computer adverts: http://www.vintageadbrowser.com/computers-and-software-ads
    13. Re:Logic versus programming by Kjella · · Score: 2

      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.

      Technically, yes. Practically, no. What you want them to do is come up with an actual method/formula/implementation for doing it, not just the hand-waving. Like the task is to sort a stack of books. The person giving the task might not even understand that there is such a thing as sort algorithms and that the computer needs a very precise set of steps on what to do. He's just got the start and end points, now the stack is unsorted and when it's done it's sorted.

      And that's maybe fine in a business setting, it might not matter or it's an implementation detail left to the developer because in this case it's fairly obvious it can be done. But in many other cases I'm like okay you've defined some inputs and output, but there's no obvious relation between them and you're trying very hard to make that my job to make it work, even if it's way into the business domain where you should explain to me how this should work. I don't think you understand it until you have a computer that refuses to think for you.

      --
      Live today, because you never know what tomorrow brings
    14. Re:Logic versus programming by sensei+moreh · · Score: 1

      Back in the last century, as an undergraduate who didn't take a programming course (and had never programmed) until after completing all of the coursework for a math major, I found programming to be like doing math proofs.

      --
      Geology - it's not rocket science; it's rock science
    15. Re:Logic versus programming by demonlapin · · Score: 2

      I did CS 101/102 in college in C++. I learned a lot about data structures and the various ways to establish them, move them from one place to another, save and load, etc. What I didn't learn was how to create a Windows (or MacOS, or anything other than text-mode Unix) application that would do what I wanted. Algorithms are an essential and interesting part of computer science, but they are a long way from working applications.

    16. Re:Logic versus programming by rtb61 · · Score: 1

      The problem with programming is the lack of logic, that internal logic purely being bound to the creators of the programming laguage and differing from language to language. Biggest problem I with generating solutions was when presented with a problem I would come up with a range of solutions and unfortunately try to implement more than one style of solution at a time, making it real difficult to find the fault, as each part should work but of course just not together. No unifying structure and logics, like in physics, physics was cool, missing a formula, no problem as long as you understood it, your could reconstruct it from root forums. Coding not so much because lanuages are based to much on the individual choices of the language coders rather that strictly adhering to existing mathematical, and phsyics formula principles as well as grammatical english. Sure you can compact it, but verbose should hold to existing usage as taught from the earliest levels in schools. Of course what else would you expect from asshats who force QWE on generation after generation of children because as adults they are too lazy and stupid to switch back over to ABC (no wonder Americans as still have their feet stuck in place and inching along in their change to metric).

      --
      Chaos - everything, everywhere, everywhen
    17. Re:Logic versus programming by NicknameUnavailable · · Score: 1

      Some redneck wisdom for you: you can't fix stupid.

    18. Re: Logic versus programming by swillden · · Score: 2

      Planning is programming. In a way this reflects the post. Some people plan and prepare. They can program.

      I'm lousy at planning, but a pretty decent programmer. I know lots of good programmers who are bad at planning.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    19. Re:Logic versus programming by jader3rd · · Score: 1

      Might it make more sense to people to think logically and procedurally, then worry about applying that to a computer?

      Yes, but most students will still have the same frustrations that they do with the math that's taught now. It'll seem like fluff to kill time until graduation. But by providing the students programming experiences, they can see how all that math, logic and procedural thinking can be applied to do something.

    20. 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.

    21. Re:Logic versus programming by Rei · · Score: 4, Interesting

      I think the whole term "learn programming" leads people to think in the wrong direction. One semester should be enough for a person to learn the "basics of programming". If they can't get the basics down in that time, they're never going to. Most of the time spent on programming education needs to be not on basics or learning languages, but on getting your future-programmers to avoid the giant list of common pitfalls that programmers make in every field of programming. Teach them O(N) notation. Teach them data structures. Teach them of buffer overflow. Teach them of injection. Teach them how and when to optimize and to recognize what optimizations actually help versus just making the code confusing. Teach them to avoid directly overwriting important files, rather to write the data to a temporary and then move it to the ultimate destination to prevent data corruption during crashes. Teach them refactoring. Teach them threading and race conditions. Teach them the importance of server-side checks on data validity rather than just client side. Etc. Basically one should take a survey of people working professionally as programmers and ask them, "What lack of knowledge or bad programming habits have frustrated you the most about any of your coworkers, past or present?" - the most common answers should form the basis of a good programming education, along with whatever teaching about tools and principles that will increase their productivity.

      I really don't have too much to complain about with how my college taught CS, although some things could have been improved. I have more of an issue with some of the maths courses that were required which really had nothing to do with programming except in very specialized fields. I actually got a lot more out of my elective math courses than I did out of my required ones.

      --
      Nothing says 'welcome to the neighborhood' like a gunny sack full of dead squirrels.
    22. Re: Logic versus programming by Demena · · Score: 1

      I don't think the comment was bad, but it was a toss-off and I agree it was not worthy or nor should have any up votes.

    23. Re: Logic versus programming by Demena · · Score: 2

      They are not bad at planning their program and how the code would work or they would not be good programmers would they? Not being able to plan would prohibit being able to structure a program. So, I have some issues with your observation.

    24. Re:Logic versus programming by penguinoid · · Score: 1

      Seems to me that there's a disconnect in the way people think about programming versus thinking about math and logic. Might it make more sense to people to think logically and procedurally, then worry about applying that to a computer? Those skills are useful in life itself and are not limited to even mathematics disciplines, let alone computer programming.

      A logical argument, but then maybe you have to teach someone logic before it'll convince them :-p

      --
      Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
    25. Re:Logic versus programming by pestilence669 · · Score: 1

      So shouldn't we solve the lacking efficacy in mathematics & science education before attempting to teach a new subject built upon the failed lessons necessary?

    26. Re:Logic versus programming by TheRaven64 · · Score: 4, Interesting

      TFA seems to be completely missing the point. We're not teaching programming because we expect everyone to be a full-time programmer, we're teaching programming because it's an important life skill. Even if they just learn that there are some tasks that can be automated and when to ask a professional programmer to do it (and, ideally, what tasks can't easily be automated) then that's a huge win. If they can do the simple automation tasks themselves, that's even better.

      How often have to seen people in admin jobs spending ages doing something in MS Office that half a dozen lines of VBA could have done in under a second? Eliminating that is the kind of productivity win that we expect to see from teaching everyone a little bit of programming. The argument makes as much sense as saying 'most people won't become novelists, we shouldn't teach English', or 'most people won't become accountants, we shouldn't teach mathematics'.

      --
      I am TheRaven on Soylent News
    27. Re: Logic versus programming by ultranova · · Score: 1

      Society needs both and the ants are always exploited.

      Greedy assholes abusing other people certainly like to pretend their deliberate choice to do evil to be both a necessary evil and an eternal law of nature that happens on its own. It's neither. Humanity advances as it moves from regarding actions as something that "happen" to something that's "done", because the former implies helplessness while the latter implies potential for control.

      --

      Forget magic. Any technology distinguishable from divine power is insufficiently advanced.

    28. Re: Logic versus programming by swillden · · Score: 1

      Not being able to plan would prohibit being able to structure a program.

      I see program structure as a collection of abstract components with particular relationships between them, not as a long sequence of steps. In procedural programming languages, individual building blocks are plan-like in that they lay out a particular sequence of steps to accomplish a specific purpose, but even there the content of a function is quite different from a plan, at least to my way of seeing it. In functional languages, programs have almost nothing at all plan-like in them.

      There is also some amount of forward looking analysis needed to be a good programmer, but it's more recognition of characteristics of good and bad architectures, designs and code -- some properties lead to long-term flexibility and maintainability while others lead to future trouble. But that's also not an endeavor that looks anything at all like planning.

      The AC's comments about the fundamental differences between code, which is fixed during implementation and executed slavishly during execution, and a plan, which is less detailed, ad-hoc, not fixed during planning and refined during execution are also relevant. Programming and planning have almost nothing in common.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    29. Re:Logic versus programming by Ol+Olsoc · · Score: 1

      Seems to me that there's a disconnect in the way people think about programming versus thinking about math and logic. Might it make more sense to people to think logically and procedurally, then worry about applying that to a computer?

      Never worked with Windows, eh?

      --
      The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
    30. Re:Logic versus programming by Ol+Olsoc · · Score: 1

      Sure and how would that teaching be applied in a fashion that doesn't discourage people wanting to learn programming, which was the thrust of my question.

      I've found that there are huge numbers of people who are incapable of logic. That might also speak to the topic of the story.

      Monty Python's Witch skit from The holy grail saams ot be the level of logic maybe half of us are capable of...

      https://www.youtube.com/watch?...

      --
      The shepherds did so well protecting the flock that the sheep no longer believed that wolves existed.
    31. Re:Logic versus programming by matbury · · Score: 1

      Re: "they tend to miss the part where you have to think about the problem abstractly and structure the problem properly" -- I agree with your point but I'd take it further. Our education systems aren't very good at assessing problem solving and other forms of higher-order thinking skills. If we can't assess them easily and cheaply (assessment is possible but high-skilled, labour-intensive), then in a competitive, grades-driven education system, there are no rewards (higher grades and bettering your classmates) for higher-order thinking skills. Do you see where I'm going with this? The people who end up being good at the difficult stuff do so because of family and peer support and personal interest (and those interests being encouraged and supported) as well as not having all their free time taken up with continual, stressful, and pointless standardised testing. If you want to find good problem solvers and people who learn through their own volition and initiative, look at graduates from liberal arts schools.

    32. Re:Logic versus programming by Half-pint+HAL · · Score: 1

      If you equate programming with standard maths, you're missing the importance of mutability. Maths is semantic and imperative, procedural programming is declarative. Mathematical variables are an entirely different beast to computer variables.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    33. Re:Logic versus programming by Half-pint+HAL · · Score: 1

      If the programming makes the problems seem more relevant, there's no reason you can't learn both at once.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    34. Re:Logic versus programming by mike4ty4 · · Score: 1

      I would want to point out though that some people may need the right teacher. If they don't get it they may also not have a teacher suited to them. I think several different types of teachers would need to be tried before they could say they just can't get it. Not everyone can do with the cookie-cutter education we have now. Of course this requires the person to have enough motivation to try enough before giving up.

    35. Re:Logic versus programming by mike4ty4 · · Score: 1

      So are you saying a major portion of programming ability is actually _communication_, not just reasoning and writing code?

    36. Re:Logic versus programming by Half-pint+HAL · · Score: 1

      I don't really buy the types-of-teacher/learner thing. I believe their is a near-optimal teaching strategy for every subject, and that you only need to tinker round the edges to incorporate learners' prior knowledge and individual aims. I reckon any apparent differences in learners beyond that are best explained as "tolerances" -- most learners can cope with a limited amount of inefficiency in teaching, and those tolerances may be individual. I aim to be a better teacher with every lesson I teach. If I was to say "learner differences" I would be professing a belief that you can only ever successfully teach a small part of your class at any one time. It would make my job easier, but it sounds a little dog-ate-my-homework to me.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    37. Re: Logic versus programming by Half-pint+HAL · · Score: 1

      "in procedural programming languages..."

      Isn't that the problem we have in teaching programming? our refusal as programmers to accept declarative programming as "real" programming? The "programming" (i.e. scheduling and process planning),of past centuries was declarative, not imperative, and that's much easier to get our heads around as human beings.

      "But... optimisation!" I hear you cry. How many of us really need to develop high-performance systems? I had a task that I spent months trying to code up imperatively, and when I said "stuff that" and fired up Prolog, I got my results in weeks instead of months. I'm happyrunning it as a batch job for now and optimising the code (i.e. rewriting in another language) later if I need to. For now, it means I can focus on other parts of the system and get the whole thing to full proof-of-concept rather than getting stuck on one part of it.

      Besides, most of the heavy lifting in a lot of coding tasks is done in libraries, and from the programmer's point of view, that's effectively declarative programming -- I have no control of how SDL draws a circle on screen. Yes, I can start looking at how different libraries' internal code works and whatnot, but going down that road means hitting the conclusion that libraries are *worse* than declarative code, because declarative coding means that (in theory) one line can be evaluated whichever way is most efficient whereas a library call encodes a specific operational choice.

      What we need is what I call "declarative-first programming" -- a language/environment that lets you code up a declarative algorithm to build your first working prototype then progressively optimise it section-by-section using more specific code until all the sections where efficiency matters are procedural, and all the lightweight (not processor/memory intensive) stuff is declarative.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    38. Re: Logic versus programming by swillden · · Score: 1

      You've written a cogent and interesting post, and I'm also a fan of declarative programming, but I think you're just wrong about what is easier for people. It appears to me that declarative programming is much harder for people to learn than procedural programming. I think you're arguing that this is because that's what we teach people first, but I think it goes deeper than that, that non-procedural paradigms are inherently much harder for people to get their heads around. In particular, repetition and selection are much more naturally expressed in procedural forms. Go explain recursively processing a list to your grandmother.

      That said, I think that once you understand declarative programming, it's more elegant and less error-prone. Though harder to debug when it goes wrong.

      The "programming" (i.e. scheduling and process planning),of past centuries was declarative, not imperative

      I also disagree with this. Scheduling and process planning is generally thought through and documented in sequential, imperative ways. Organizational structure is more declarative in nature, but I think people have a harder time understanding organizational structures and their implications than they do plans.

      --
      Note to ACs: I usually delete AC replies without reading them. If you want to talk to me, log in.
    39. Re: Logic versus programming by Half-pint+HAL · · Score: 1

      One of my favourite tings at the moment is Python's list comprehensions, which I feel sit on a weird boundary between declarative and imperative. It's declarative because you don't specify how the iteration works but it's arguably imperative because everything except the iteration is explicit. But I think this is enough to make it declarative. I'm not talking it through the loop, and then iteration could be evaluated 0 upwards, -1 downwards or in any random order you want -- it's just not relevant at the programmer's level.

      In that sense it's analogous to sigma-style mahematic operations, and that sort of implied iteration is perfectly acceptable in the declarative paradigm. As such, we don't need recursion for all of our list processing functions

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    40. Re: Logic versus programming by Half-pint+HAL · · Score: 1
      (Replying to self)

      In that sense it's analogous to sigma-style mahematic operations, and that sort of implied iteration is perfectly acceptable in the declarative paradigm. As such, we don't need recursion for all of our list processing functions

      In fact, this sigma-style iteration where there are no interdependancies between iterations is crucial to parallelisation, so traditional imperative iterative loops are a major barrier to progress.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    41. Re:Logic versus programming by penguinoid · · Score: 1

      I studied logic under philosophy without a computer in sight. It's easy and it teaches you to understand other people's arguments... and how to find the holes in them. Sleigh of hand no longr works. If the wider population understood logic, politicians and ideologues would have a much harder time fooling the electorate.

      Nope, sleight of hand still works. Who are you going to believe, me or some coward who can't even spell "sleight"?

      --
      Don't waste your vote! Vote for whoever you want, unless you live in a swing state it won't matter anyways
    42. Re:Logic versus programming by tehcyder · · Score: 1

      Sure and how would that teaching be applied in a fashion that doesn't discourage people wanting to learn programming, which was the thrust of my question.

      If you can't get interested in logic by yourself, you're never going to be much of a programmer. Teachers and teaching methods are irrelevant.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    43. Re:Logic versus programming by tehcyder · · Score: 1

      I would want to point out though that some people may need the right teacher. If they don't get it they may also not have a teacher suited to them. I think several different types of teachers would need to be tried before they could say they just can't get it. Not everyone can do with the cookie-cutter education we have now. Of course this requires the person to have enough motivation to try enough before giving up.

      There are good and bad teachers, but even the worse ones can't put you off something you enjoy.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    44. Re: Logic versus programming by tehcyder · · Score: 1

      They are not bad at planning their program and how the code would work or they would not be good programmers would they? Not being able to plan would prohibit being able to structure a program. So, I have some issues with your observation.

      I imagine that by "planning" GP meant the boring admin stuff you have to do at work, like scheduling meetings, not the actual programming work.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    45. Re:Logic versus programming by mike4ty4 · · Score: 1

      Yes, but if you are taught the subject wrong you may learn to hate it, in which case you won't enjoy it. If your introduction was not a good one, you won't like it.

    46. Re: Logic versus programming by Demena · · Score: 1

      Well, that would make him way off topic, no? A thread has a context. I suggest try read the post again. I said "They are not bad at planning their program and how the code would work..." - a limited and specific thing. You can "imagine" all you want but it is not relevant is it?

  3. What a load of CS-degree-holding crap by Anonymous Coward · · Score: 2, Interesting

    "High aptitude task" my ass. Programming these days is assembly line work at the direction of your team lead. It'll be automated away soon enough.

    1. 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

    2. Re:What a load of CS-degree-holding crap by gremlinuk · · Score: 2

      In that case, you're doing it wrong.

      Programming is a creative, problem-solving exercise involving predictive thinking and failure mode effects analysis. All of which are 'hard' problems in the AI sphere, so they're not about to be automated any day soon. Also, given that description, there's no wonder your average mouth-breather can't learn to program effectively. Most of them haven't had a creative thought in their entire lifetime. (doubly so for politicians like Yvette Cooper)

    3. Re:What a load of CS-degree-holding crap by randalware · · Score: 1

      they have an app for your comment.

      MBA PHB app: if I don't understand it, it must be easy & take no time.

      what's your degree in ? and how long after you started working in that field did you realize you barely knew enough to start and had a lot more to learn ?
      What age did you think you were a master at your craft ?
      Are people still paying extra for the experience & wisdom of a master? or has offshoring/Walmart/H1B visa reached your field.

      I was an IT worker & a master at my specialty. I have switched to being a professional poker player.
      Not as profitable yet, but a lot less stress.
      And the retraining & continuing education happens in realtime.
      Bet,Call,Check,Fold,Raise,Shove,Quit

      --
      This is my opinion based on what little I know and understand of the rumors and lies Thanks, Randal
    4. Re:What a load of CS-degree-holding crap by gweihir · · Score: 1

      For all the bad coders do: Yes. There are a few that actually solve difficult tasks that need solving. For example cleaning up the security mess these bad coders routinely create or actually do things that need to be fast and reliable. That will not be automated anytime soon.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  4. 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 Anonymous Coward · · Score: 1

      25% can program? ... to what standard/level? I've been a professional SW engineer for the last 15 years, and I'd say about 1 in 10 of the people I come across are actually GOOD at it, and that's those who are in the field doing well enough not to get fired.

    2. Re:It's not entirely a lie by avandesande · · Score: 1

      This would be more like a music program at a conservatory.

      --
      love is just extroverted narcissism
    3. 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.
    4. 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
    5. Re:It's not entirely a lie by ImprovOmega · · Score: 4, Interesting

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

      I had a professor in college who would actively and zealously apply this principle. His class was the one gateway class in all of the computer science department - if you couldn't pass his class, you couldn't get a CS degree period. When I was an undergraduate I remember his class being a lot of work but surprisingly engaging and with interestingly tricky problems to solve. When I was a graduate student I got to see behind the veil a bit and he explained how those tricky problems would separate out the folks that shouldn't have been in the class in the first place. I always thought that was kind of cool, that he cared about the state of the field that much to not want people who shouldn't have a CS degree to get one.

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

      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.

      Well, while I mostly agree with what you're saying, I think a lot depends on what your standard of "competence" is.

      Suppose the standard is this: take a clearly defined task and code a solution in a reasonably acceptable style using the first approach that pops into your head. Well, anyone of average intelligence could be trained to do that, and I think this the kind of conception of competence that a lot of HR departments use. That's why they like certifications; certifications measure exactly this kind of competence: whether you can regurgitate what you've been taught to do.

      But I think it's the wrong way of thinking about programming competence.

      While the first approach that pops into your head is likely the right one if it does the job, I think a "competent" programmer needs to be able to come up with alternative approaches, especially when it doesn't look like the obvious ones work. This is where I think many "competent" programmers find themselves out of their depth. Don't get me wrong, there is a need for people who can do the obvious thing adequately, or implement a solution when the hard thinking has already been done for them. And goodness knows many schools don't seem to be able to turn out enough graduates who can tell the teacher what he expected to hear. But even if most schools can't meet that target, it's still an unacceptably low standard. Schools need to do more to foster creativity.

      And I think creativity can be fostered. The only reason most people believe that someone has to be born creative is that so many schools are so successful at snuffing out any kind of unconventional thinking at such an early age. Teaching programming can help, if you're teaching students to tackle tough problems, problems where they have to face round after round of failure. But it's not programming that's the point; that's just a vehicle. It could be art, or creative writing, or music; anything that teaches persistence and flexibility when your first crack at something isn't good enough.

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

      The weed out programs worked well when you could drop a class an hour before the final exam but universities decided that wasn't a good idea for some reason so now there is an enormous stress on students to follow their course even if the weed out course said they shouldn't be in that field at all. Oddly enough these changes seemed to have come from the accreditation side of the teaching business yet mecreases the vaule of degrees.

      My take is only about 1 in 100 people will ever understand how the machines work well enough to be great programmers. I want to be able to pick a page out of "The Art of Computer Programming" and have a prospective programmer explain what the page is talking about and why (or why not) the concept mentioned would be used.

    8. Re:It's not entirely a lie by tbyington · · Score: 1

      "Liberal Arts" actually include hard sciences, and is a rather broad grouping which equates to "not tech/vocational school." I think you mean to hate on the Humanities, and enrollment in these majors are actually in decline.

    9. Re: It's not entirely a lie by tbyington · · Score: 1

      You mean this College? http://cla.umn.edu/academics-e... (note those are only the majors in the College of Liberal Arts at the University of Minnesota) But, as someone who does not suffer from Autism, I understand what you are trying to say. You mean "arts/humanities" but are saying "Liberal Arts." And you are correct, not everywhere uses the term "Liberal Arts" to include their physics program. "Liberal Arts" isn't a political term. It's the idea that to be a free thinker you need an exposure to a broad training. English majors having to take math and science, physicists needing to take life sciences and art, and cs majors needing to take physics.

    10. Re:It's not entirely a lie by NicknameUnavailable · · Score: 1

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

      That's not what colleges are for. They are a place for people to socialize and build business connections for some, for others they are a scam to sucker them out of a lifetime worth of wages through student loans. They stopped being places of higher education the exact same time they started letting everyone in: there aren't as many smart people as are in college, not even close.

    11. Re:It's not entirely a lie by Anonymous Coward · · Score: 1

      Some teachers get an ego-boost from failing students. It reinforces the notion that what they are teaching is difficult (so they are geniuses for being able to teach it) and really important (so they are really important for being the ones who teach it).

      Maybe he really cared, or maybe he was just an arrogant ass. It is hard to tell, sometimes.

    12. Re:It's not entirely a lie by phantomfive · · Score: 1

      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

      This says no. In short, if you claim it is inborn, you need to be able to make a test that distinguishes between those who "have it" and those who "don't have it." Alan Kay has good things to say, too as usual.

      --
      "First they came for the slanderers and i said nothing."
    13. Re:It's not entirely a lie by JoelKatz · · Score: 1

      I agree that there are significant aspects of computer programming that can be taught. But there is a certain capacity that makes the difference between people who could be very good programmers and people who never will. You can measure this capacity, and it's a good predictor of success as a programmer. Essentially, it's the ability to assimilate a set of arbitrary rules and then solve problems requiring the application of those rules. This skill is also important in many areas of mathematics and logic.

      It's the same kind of skill that allows a person to reason out the answer to certain types of logic questions even if they haven't been exposed to those kinds of problems before. An example of a problem of this sort would showing a person four cards on a table, one face up showing a 10, one face up showing a 3, one face down showing a black back and one face down showing a red back. Then ask them "which cards do you need to turn over to make sure every black card has a 3 on the back?"

      To someone lacking this skill, this will be a very challenging problem and they will likely get it wrong. To someone who has this skill, it will be no more difficult than an analogous problem that does have an internal logic, such as: In a bar, there are four people. One is drinking beer, one is drinking water, one is 15 years old, and one is 31 years old. Which people need to be checked to make sure nobody under 21 is consuming alcohol?

      The difference between these two problems is that one follows rules that make sense and that we understand. The other follows rules that have no internal logic and are arbitrary. Manipulation of arbitrary rules is the soul of programming. And while you can teach people to solve these problems, the techniques they would use won't work in a the more complex situations programmers face. You can't make an exhaustive table for the HTTP specification. You can't really analogize the rules for iteration invalidation in C++ collections to anything in common experience.

    14. Re:It's not entirely a lie by AmiMoJo · · Score: 1

      It's the same in many industries. You don't need a top architect to design a basic house or shopping centre. You don't need a top surgeon to remove an appendix. You don't need a top pilot to fly routine cargo routes. It generally isn't worth paying for top people to do those things either.

      A lot of programmers do front end or database work. It isn't rocket science, and all the hard, performance critical stuff has been worked out and implemented in libraries anyway. I've written some of those libraries.

      A lot of coding work doesn't need the best people to produce perfectly good, usable apps. That frees the rest of us up to do the hard bits.

      --
      const int one = 65536; (Silvermoon, Texture.cs)
      SJW, n: "Someone I don't like, and by the way I'm a fuckwit" - AC
    15. Re:It's not entirely a lie by phantomfive · · Score: 1

      Well, a lot of people who research these things recently have been saying things like, "innate talent.....the thing that separates those from the rest, is extreme motivation to learn." Some kids have it , and some kids don't.

      --
      "First they came for the slanderers and i said nothing."
    16. Re:It's not entirely a lie by angel'o'sphere · · Score: 1

      Perhaps your 'professor' only was an extremely bad 'teacher'.
      Nothing in 'coding' is so complex or difficult that one who studies physics, math, chemistry, biology or 'law' can not grasp in a few weeks. After that come 'broader topics' like theoretical CS or special topics like compiler construction.

      I had 'weed out' courses myself, nothing I had to learn in those courses I ever needed the last 20 years, and I barely remember enough about it to write a job description if I ever need one doing solving of differential equations etc.

      The weed out courses where a waste of time, they took roughly 30% of my time till 'bachelour'.

      Face it: 90% of the teachers are simply bad teachers. They force the student to 'grasp their words' instead if finding the words the student easily grasps.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    17. Re:It's not entirely a lie by angel'o'sphere · · Score: 1

      Knowing how the machine works is completely irrelevant for 'normal coding'.
      An AVL tree is an AVL tree is an AVL tree. Regardless of programming language and/or processor architecture, aka 'machine'.
      I for my part don't know how many registers for what purpose my Mac has (since they moved away from 68k) ... and yes, I programmed PowerPC in Assembler, too ... but can't remeber the way registers where named, worked etc.

      If I need that again, I learn that in a day or 4 hours ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    18. Re:It's not entirely a lie by angel'o'sphere · · Score: 1

      The Alan Kay link is a very interesting one, and supports my ideas about teaching and learning which I have since 40 years or longer.

      I'm a martial arts teacher ... as a hobby, not as profession, my profession is all around CS ... and I never had a student that could not be inspired to keep learning and brought to "black belt level", regardless of his talent. "Black belt" in quotes as many westerners have a weird idea what a "black belt" is.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    19. Re:It's not entirely a lie by angel'o'sphere · · Score: 1

      Then ask them "which cards do you need to turn over to make sure every black card has a 3 on the back?"
      Your example makes no sense at all.
      There is only one card with a 3 on it, and the backside is unknown ...

      But I have an IQ test for you as well:

      8
      5
      4
      9
      1
      7

      What is the next number in the sequence? You get a bonus point if you can tell the next three numbers.

      In a bar, there are four people. One is drinking beer, one is drinking water, one is 15 years old, and one is 31 years old. Which people need to be checked to make sure nobody under 21 is consuming alcohol?

      Another stupid question. So, are there now 4 or only 2 people? Two people that are not drinking, or two people you don't know "what they are drinking", or two people you don't know the age, or both?

      Sorry, people like you make it so that other people fail exams fail tests and fail in job interviews. The question tests nothing except the awareness of the test subject about how unclear (actually stupid) the question is.

      I don't demand that teachers/tests ask simple things, I demand they formulate the questions in a way that they are comprehendible and the goal of the answer that is seeked is simple. I don't mind not being able to figure a solution to a complex question. However I mind if it is obvious on the first glance that the question is a trick. E.g. in most IQ tests the preamble is:
      "In case there are two (or more) solutions to that problem: pick (check) the simplest one"

      In a TV show I saw, more or less a talk about IQ and IQ tests, there where a few questions as examples how IQ testing works. One was a simple math problem, as above (granted, it is pretty hard, but well, so is life). After solving it there was an uproar in the audience that the solution is wrong and not intuitive as there was another solution that was obvious for everyone, me included. The "scientists" insisted that the "correct answer" is the one they decided before, even after it obviously was the case that everyone who was able to solve it took the other option.

      Or lets look at another concrete example:
      You are sailing in a boat that has a fron sail (Fock or Genua) and a back sail (Main).
      The question is: you have to much pressure on the back sail, so your boat wants to turn its tail away from the wind. What do you do:
      a) increase the size of the front sail (by rolling it out ... assuming it is a "roll fock"), or by changing to a bigger sail
      b) decreasing the size of the back sail

      Funny, isn't it? There is not even a third - obviously wrong - or a fourth - obviously right - answer, so which do you pick? And how pissed will you be when I tell you that your pick is the "wrong answer"?
      We can skip this, the correct answer is to reduce the size of the Main, to reef it. Why is that the correct answer, when the other answer is equally "right"?
      Because: the testers/examinators want to know if you are able to sail your boat "safely". So, the technical knowledge about "how stuff works" is completely irrelevant for this (and many other) test(s).

      Reminds me about another story ...

      When I started to study in 1987 CS in Karlsruhe, I immediately took a job as unix programmer. There was an american post doc working on some Prolog and C integration and I asked him about how make files work. Because I was doing some C stuff and saw a make file for the first time ...

      That was easy explained and we talked about other stuff, a story he told me was an exam a friend of him took. Just shortly before the exam was over he realized that he likely would fail as he was not very confident about what he did on the tasks he did so far. But there was one thing left, a multiple choice task with something like 50 questions. So he decided to just go over it and more or less randomly check an answer. (Would not work in Germany, multiple choice questions are usually made up in a way that answering random gives you a very low chance to get any points)

      Result: he got _all_ answers wrong. How likely is that?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    20. Re:It's not entirely a lie by phantomfive · · Score: 1

      and I never had a student that could not be inspired to keep learning and brought to "black belt level", regardless of his talent. "Black belt" in quotes as many westerners have a weird idea what a "black belt" is.

      That's really great, your story is inspiring.

      --
      "First they came for the slanderers and i said nothing."
    21. Re:It's not entirely a lie by Gorobei · · Score: 1

      I want to be able to pick a page out of "The Art of Computer Programming" and have a prospective programmer explain what the page is talking about and why (or why not) the concept mentioned would be used.

      I love that idea! I'm going to try it on the next 5 people I interview.

    22. Re:It's not entirely a lie by NicknameUnavailable · · Score: 1

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

      That's easy enough:
      Are you in a programming class? You will never be a good programmer.
      Did you start programming without a class? Congratulations, you are a programmer.

    23. Re:It's not entirely a lie by HornWumpus · · Score: 1

      All the best programmers are still EEs.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    24. Re:It's not entirely a lie by HornWumpus · · Score: 1

      He likely _was_ doing them a favor. There is no group of people more self deluded than college freshman. Geniuses, every one.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  5. Education vs Training by Anonymous Coward · · Score: 1

    Formal education (i.e. a Computer Science Degree) teaches you how to think in certain ways and how to generalize problem spaces. It is not the same as job training. "Learning to code" is more akin to job training. Learning both is what makes you an invaluable resource but if you're just looking for a career and to get by then, yes, the job training aspect of "learning to code" does not require formal education and a smart, self-starter who has the job training part down is better then a dumb non-self starter who is formally educated. This is true in just about any field.

    The best scenario is a smart, self-starter, that has formal education and job training but there aren't near enough of those to go around.

  6. 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/
  7. 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?
    1. Re:Cut the fat. by thinkwaitfast · · Score: 1

      I've had half a dozen jobs as an engineer and the majority of the work, I could have done with my high school degree and stuff I'd taught myself. I've also had several high level positions in software, but have never taken a software class. Interestingly, one of my jobs was with a bunch of software people, but I was the only one who knew things like .bss and wimg bits and how caching and paging works or fixed and floating point maths (all self taught).

    2. Re:Cut the fat. by gilgongo · · Score: 1

      Mod parent up!

      --
      "And the meaning of words; when they cease to function; when will it start worrying you?"
    3. Re:Cut the fat. by kheldan · · Score: 1

      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'...

      Nice impersonation of Corporate America you're doing right there; that's my read on the exact thing they'd like to see: 100% privatization of education from kindergarted on up, turning the whole process into just a lengthy trade school, to produce the workers they want -- and that never learn anything else.

      --
      Are YOU using the TOOL, or is the TOOL using YOU? Think about it!
    4. Re:Cut the fat. by Graymalkin · · Score: 1

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

      You're stumbling into enlightenment without quite knowing it. The history curriculum in schools is not pushed by politicians or exploitive corporations as some sort of training for a career as a historian. There's no false claims of "shortages" of historians.

      There's a ridiculous idea that by forcing everyone to "learn programming" (which means different things to different people) they will somehow gain proficiency with computers. A carpenter doesn't need to know how to forge steel in order to properly use a hammer. Teaching them to force steel or to be a blacksmith isn't likely to make them a more effective carpenter.

      If you want make someone proficient with computers it's ok to just teach them that. For people that have an interest in becoming programmers a base level of computer proficiency is more important than non-programmers having extremely novice programming abilities.

      --
      I'm a loner Dottie, a Rebel.
    5. Re:Cut the fat. by quax · · Score: 1

      I've been in IT for all my working live without ever having attended a software class, I majored in physics, coding was just something you were expected to pick up.

      But I also always had a passion for history. Even as a teenage student I could have explained to Ronald Reagan (who I adored at the time) why giving Stinger missiles to Islamic warlords was a really bad idea.

      Maybe we should teach history to all students just on the off chance that one of them becomes president?

    6. Re:Cut the fat. by slew · · Score: 1

      FWIW, the very notion of "public" school as a tax payer funded development is a recent development of society. Previous notions of "public" schools simply meant that they were open to members of the public to *pay* rather than schooling only available to a certain class of people (e.g., sons or apprentices of people in a society of practitioners).

      The main reason the government got involved was that it was becoming clear that some basic forms of education were needed to supply the raw material (e.g., workers) for the new non-merchantile economy. Thus tax-payer funded basic education was started not unlike tax-payer funded road construction: a way to create infrastructure to grow the economy. The majority of tax-payers generally benefit from growth in the economy, so it's a legitimate use of government money.

      Of course now it's been going on for a while and people think of it as an entitlement or a social equalizer, and even more something that shouldn't be sway by the banal rationale of economic concerns, but that is an even more recent development and not necessarily one based on general benefit of all tax payers.

    7. Re:Cut the fat. by angel'o'sphere · · Score: 1

      Erm?
      Previous notions of "public" schools simply meant that they were open to members of the public to *pay* rather than schooling only available to a certain class of people
      In the USA? Or about what are you talking?

      When "compulsory school attendance" was introduced in the countries of Europe, "public schools" where free and still are. For what do you think I pay taxes?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    8. Re:Cut the fat. by HornWumpus · · Score: 1

      Greek and Latin? Dead languages that only train students to navigate crazy grammar rules and exceptions so they can read the pompous words of their forefathers in their original splendor.

      Yes I did a 4 year bit with the god damn jebbies. I still curse my parents for that.

      History and civics as taught to kids has always been 'comic book'. It's instructive for adults to see what the other/previous comic books say, but that doesn't mean that the old ones were any good, nostalgia notwithstanding.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  8. 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: 5, Informative

      REALLY bad advice. Unemployment for law school grads is >15% and climbing fast. 2 out of 3 are not working in the profession of law at all. Meanwhile developers are in huge demand, and no one is offshoring anything interesting.

    3. 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.

    4. Re:Agile/Scrum == hot potato by delusrexpert · · Score: 2, Interesting

      Agree 100% after nearly 15 years in IT as a professional and many years programming as a child I got out of IT the day the DBA googled the phrase "cartesian join" just after I mentioned it. I'm now a tradie after mentally taking my work home most nights and the personal time required to keep up to date with languages, algorithms, methodologies, different technologies and on and on and on I'm so glad I made the transition.

      I'm so glad that now the only thing I take home are my dirty hands and the skills set that I now require gets better on every job instead of having to spend hours of my own time trying to keep afloat. Recruitment agencies and hr don't understand your code and the IT dept aren't going to review your code and spot the ways you handled the problems you encounter but as a tradie pictures of my work speak for themselves and anyone can understand whats going on.

      I still love to code thou its in me those self-taught will understand.

    5. Re:Agile/Scrum == hot potato by zurtle · · Score: 1

      I lived with a plumber for a while. I'm quite glad he didn't bring his work home.

      --
      Couldn't stand the weather
    6. Re: Agile/Scrum == hot potato by Anonymous Coward · · Score: 1

      Well, someone's always got to get fucked. We've been fucking everyone else for a little under a century without the decency even for a reach-around. Maybe it's about time we got fucked a little for a while.

    7. Re:Agile/Scrum == hot potato by Livius · · Score: 1

      You cannot offshore a plumber, electrician

      That's what robots are for.

    8. Re:Agile/Scrum == hot potato by Anonymous Coward · · Score: 1

      I challenge you to build a robot that can bid, install and wire-up a new building.
      It will have to deal with owners, foreman and other trades.
      Fully nimble in mud yet able to not trash the interior of a semi-finished project. Ability to squeeze into crawlspaces and attics also
      Negotiation skills a must, -to stay within budget and for the supply houses and invoicing stubborn clients.

      Self driving cars would be a piece-of-cake in comparison

      -I think there's several lifetimes of tradesman needed before robots replace them

    9. Re:Agile/Scrum == hot potato by niftydude · · Score: 1

      I personally recommend people go law, accounting, or a trade. You cannot offshore ...

      Actually - an accounting firm in my town off-shores the majority of their accounting work to offices that they set up in India.

      I can see certain legal tasks (drafting legal documents, etc) also going offshore as soon as some senior partner at a law firm figures out that they will save money by doing so.

      --
      You can never know everything, and part of what you do know will always be wrong. Perhaps even the most important part.
    10. Re:Agile/Scrum == hot potato by WorBlux · · Score: 1

      Ya, when I was digging holes by hand to plant street trees, a recent law school graduate was right there beside me.

    11. Re:Agile/Scrum == hot potato by manu144x · · Score: 2

      Look at what happened (and is still happening) with furniture: the value is moved on the creative side, because robots can build all the parts required, assemble it, and ship it to IKEA. If you really need custom furniture, it's the same. A designer can design it in a CAD software, split it up into separate parts, send the file to a factory that will build the parts and ship it to the people who will assemble it. Done. He can reuse designs and just change the sizes, the colors, the software adjusts what needs to, and bam, it's shipped.

      I don't see why this can't be scaled to entire buildings? Yes, once you have the complete CAD of the entire building, and I do mean everything, humans assisted by robots that have the schematics uploaded can do the work of hundreds of men.

      I don't think it's about destroying all jobs, it's just about from a team of 100 people, you keep 10 people that operate/supervise a few robots. I don't think anybody will risk having AI building entire buildings, but saving 90% in salary costs? That's achievable, and there are new and more advances assist-type machines used every day in constructions.

      It's like a guy with 1 jackhammer can do the work of 20 people working with manual hammers. (I don't know the numbers exactly, but it's an example).

    12. Re:Agile/Scrum == hot potato by 605dave · · Score: 4, Interesting

      Sadly I think this is way too true. What are people going to do when robots can build a house or a bridge? Or when everything else turns robotic, like cars. What are people going to do? The reality is that we will have to move to a world without money because no one will be able to make any. Only those at the top will have a source of income, ownership of the automation.

      Reading that last sentence I wonder if Marx wasn't somewhat right. Those that own the means of production are going to end up with all of the power.

      --
      Be kind, for everyone you meet is fighting a difficult battle. - Plato
    13. Re:Agile/Scrum == hot potato by Anonymous Coward · · Score: 1

      The worst opinions I've heard on Slashdot over the years have been about jobs. I have a law degree and worked in the legal field for a time. It's very bleak out there. Maybe posters are thinking about previous generations of lawyers being successful, but today there are countless unemployed or underemployed law graduates. And beyond that, if you like slashdot topics, you probably have a genuine interest in coding over something like regulations and case law. Anyway, there is a lot of material online that explains what the legal job market is actually like if anyone is actually considering it.

      Meanwhile, I've met high school graduates (no, not H1Bs) making six figures in the Bay Area doing basic coding/testing. And no, this person was not a self-starter who had some open-source project on the side or who had a passion for computers. They were someone employed because of the massive amount of demand that still exists for coders.

    14. Re:Agile/Scrum == hot potato by Anonymous Coward · · Score: 1

      Read Manna short novel by Marshall Brain
      "Depending on how you want to think about it, it was funny or inevitable or symbolic that the robotic takeover did not start at MIT, NASA, Microsoft or Ford. It started..."

    15. Re: Agile/Scrum == hot potato by Slashdot+Junky · · Score: 1

      Maybe it's about time we got fucked a little for a while

      I do believe that the U.S. has been exploiting the more desperate outside its borders for a long time and not just taking advantage in a fair way of opportunities encountered in a global economy. While I do believe we need to pay the cost of these policies and, for instance, our meddling around the world, I do still try to understand why the powerful among us remain willing to weaken the U.S. through such policies and business dealings while simultaneously strengthening all of the peoples and countries that are to one day come for our collective ass. A side from true ignorance and naivety, the only explanation that makes sense is that the powerful's ass isn't to get fucked, ever. The powerful makes its money through investing, not real work, real risk, and sweat. Thus, they can make money everywhere without significant loss long-term and live anywhere. One day, the American will be the desperate if he or she exists that is exploited by the economic and political superpower of the times.

      --
      .
      Landfill Mining Co.
      Managing the (Un)natural Resources of Tomorrow
    16. Re:Agile/Scrum == hot potato by unimacs · · Score: 1

      For a group of what you would think are relatively smart people, it's surprising how many slashdot posters end up in crappy work environments. Here's what you should know. There is a certain amount of hassle in hiring an H-1B. As a company, unless you employee a lot of programmers and have an HR department equipped to deal with the red tape, it's just not worth it unless you have no alternative.

      Something else you should know. The actual cost of an employee is 1.5 to 2 x their salary. This is because of benefits, vacation, training, space, equipment, etc. This is why many companies hire contractors or contract work out. They can pay a contractor more per hour than their actual employees and it will cost them much less in the long run. What this means is that if you're savvy and OK with a certain amount of risk, you can come out way ahead by being an independent contractor.

      Having said that, as an IT directory is a smallish company, I'd rather have a full time staff person than utilize contractors, - other than to fulfill a short term need. HR agrees with me. There are good reasons for that which I won't outline here.

      Finally, if you're in a bad situation, leave. And when looking for another job, consider more than just compensation. Early in my career I changed jobs every 3 years or so. Sometimes it was just taking an opening somewhere else in the same company. It never had to do with salary. There really is a demand for good programmers, so you can be somewhat selective about where you work. If that's not true where you live now, then consider moving. Also something that I eventually figured out is that programmers can be their own worst enemies. They will work ridiculous hours of their own accord because they made completely unrealistic estimates and didn't do enough early in the project. It's not always the evil management forcing them to do it. This is what Agile can help fix if it's done right.

    17. Re:Agile/Scrum == hot potato by unimacs · · Score: 1

      Something else I should add: it's extremely expensive to replace an employee and it's a risk to replace a good one. Nothing will wake a company up more than losing its best employees. So if things are bad, talk to management. Tell them you're considering leaving and tell them why. Of course you need to be prepared to leave if nothing changes, so don't make that threat without a plan.

    18. Re:Agile/Scrum == hot potato by TemporalBeing · · Score: 1

      I personally recommend people go law, accounting, or a trade. You cannot offshore ...

      Actually - an accounting firm in my town off-shores the majority of their accounting work to offices that they set up in India.

      Please tell so we know who to avoid...they could potentially be running afoul of export control laws too...

      I can see certain legal tasks (drafting legal documents, etc) also going offshore as soon as some senior partner at a law firm figures out that they will save money by doing so.

      Again, please tell so we know who to avoid...it's also less likely as legal documents often fall into areas where they are not allowed to be exported for various reasons, and yes - anything going to any offshore (i.e foreign) company is an export and falls under export control laws.

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    19. Re:Agile/Scrum == hot potato by unimacs · · Score: 1

      The thing is you will find people in any occupation that don't know everything that you would expect them to, - even plumbers, electricians, and cabinet makers. ;)

      I'm glad you've found an occupation that you enjoy but sometimes happiness can be found just by switching employers rather than careers. Good IT departments do code reviews.

    20. Re:Agile/Scrum == hot potato by stoatwblr · · Score: 1

      "there is no such thing as an unemployed attorney."

      Offshoring is happening to these areas as well. It started about 15 years ago and has been accelerating.

      You may be right about barristers, but your garden-variety solicitor may well be using an office full of offshore talent already.

    21. Re:Agile/Scrum == hot potato by andymadigan · · Score: 1

      I'm a self-taught programmer, I've been working full-time salary positions continuously since 2007, and I haven't had a single job that's remotely similar to your description. That's a total of 5 different companies. The smaller companies seem to be at least somewhat capable of a proper development process (including the mutual respect that you call "Japanese"). I found the larger companies were great if you didn't actually feel like doing any work (which I hated, thus the jumping around).

      You are right that larger companies don't seem to care about security, but that's mostly because they don't care about the quality of their software in general.

      I'll definitely believe there are companies that are abusing the visa system, and those companies should be prosecuted aggressively (as in, liquidate the company and throw the executives in prison). But what you're describing is not a significant part of the industry I work in.

      --
      The right to protest the State is more sacred than the State.
    22. Re:Agile/Scrum == hot potato by Maxo-Texas · · Score: 1

      It's going to be very tricky for robotic plumbers and electricians.

      The code changes constantly (so a robot would have to be updated constantly- and correctly or else face massive liability). And the job is a million exceptions especially when dealing with older construction.

      I'm sure it's possible eventually- but it's probably not cost effective.

      I'm in agreement with the possibility that 60% of jobs will be automated within 40 years (matching government projections) but plumbers and electricians are not among the jobs projected to be automated.

      --
      She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    23. Re:Agile/Scrum == hot potato by HornWumpus · · Score: 1

      If things are bad, don't even consider giving management a heads up before you leave.

      If things are so-so, maybe.

      If things are really bad, consider taking all the good people and customers with you. Leave the net negative workers, PHBs, brown noses and non-paying customers.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    24. Re:Agile/Scrum == hot potato by tehcyder · · Score: 1
      WTF is a tradie?

      If you mean a tradesman, just say so.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
    25. Re:Agile/Scrum == hot potato by tehcyder · · Score: 1

      For a group of what you would think are relatively smart people, it's surprising how many slashdot posters end up in crappy work environments.

      It's just barely possible that not everyone here is the genius their parents told them they were.

      --
      To have a right to do a thing is not at all the same as to be right in doing it
  9. Geometry by Anonymous Coward · · Score: 5, Interesting

    Back In The Day, I had Geometry in High School. 10th grade.

    I don't know what others Geometry classes looked like, but ours was proofs. All proofs, nothing but proofs. We never did anything with compasses, protractors, straightedges, etc. Just proofs. Day in and day out. First 6 weeks was vocabulary, the rest of the year -- proofs.

    Strangely, at the time, we had Saturday classes -- just the way it worked. I had to go in to Geometry class on Saturday, all of the students did.

    But on those days, the teacher would basically hand out worksheets and we would work problems. These worksheets typically had 3 problems on them.

    I would finish those problems in 2 minutes. Literally, zing, zang, bing, bang, boom. Done.

    For me, proofs in Geometry were trivial. As the year advanced, we simply adde more theorems and axioms to tap in to do the proofs, but the logic -- that was all the same. Since Geometric proofs are all about logic. Damnable, inarguable logic.

    "Teacher, can I leave now?" "No! You must stay here the entire class." he'd shout at me as he was helping some other student. And we all know that student, perhaps it was you. The student who Did Not Get Geometry and proofs. They'd been sitting in that chair the entire year, and, never "grokked" it. All they can do is struggle.

    So, it was no surprise that I took to computer programming like a moth to flame. I get it. I'm good at it.

    And I know there are a lot of people who will not be. I did not know Geometry going in, heck I don't know it now -- it's been so long. But they did not have to teach me Geometry per se, they had to show it too me, show the logical relationships, how it starts, and that was it. After that, just feed me theorems. Operations that I can use.

    I have no problem with children being exposed to programming. That's how you find people like me. But I think, with the ubiquity of it today, when you could program on your cell phone if you were so inclined, the people that will do well and attend those classes, will already know what they need to know before they even go in.

    But it's like the Force. You have it or you don't. Some have it stronger than others, some develop it more easily than others. But if you don't have it, the Force won't be with you. No matter what Master Jedi you train under.

    1. Re:Geometry by sexconker · · Score: 1

      But it's like the Force. You have it or you don't. Some have it stronger than others, some develop it more easily than others. But if you don't have it, the Force won't be with you. No matter what Master Jedi you train under.

      Actually the Force permeates and binds all of us, and may even have a will of its own.

    2. Re:Geometry by Anonymous Coward · · Score: 1

      But it's like the Force. You have it or you don't.

      The Force is strong in my family. My father has it. I have it. And my sister has it.

      The sister may have it without having ever dreamed about it. Without education her potentials will go waste. And this is what education is all about, to offer the sister a chance before her potentials are completely buried. It's not about creating more programmers/doctors/engineers and it has never been.

    3. Re:Geometry by Mike+Van+Pelt · · Score: 1

      But it's like the Force. You have it or you don't. Some have it stronger than others, some develop it more easily than others. But if you don't have it, the Force won't be with you. No matter what Master Jedi you train under.

      Oh, I don't know, you could probably get an injection of midichlori... *whack* *augh!* *pow* *No, I was just joking* *punch* *aiiiiiiii* (flees from mob of angry "Episodes IV-VI fans.)

    4. Re:Geometry by Anonymous Coward · · Score: 1

      Come to the Dark Side.
      C# is one of the easiest to use languages with the best tooling.

    5. Re:Geometry by Anonymous Coward · · Score: 1

      Stop being a clueless pedantic idiot. Everyone else here understood him.

    6. Re:Geometry by Brulath · · Score: 1

      Language is usually fairly irrelevant. It's like if I wanted to write an essay on the nature of monkeys (which I don't know much about) in Esperanto (which I don't know at all). I could learn the characters and grammar of Esperanto, which is apparently not super difficult, but that wouldn't teach me anything about monkeys or how to structure essays about them.

    7. Re:Geometry by mykepredko · · Score: 1

      My grade 10 math was exactly the same: Geometry and Proofs. I always felt it helped me with the thought process for programming.

      My high school had a grade 11 course in programming (cards going into an IBM 1150) and the a language called "MLS" ("Machine Language Simulator"). The teacher was an alcoholic who really didn't care whether or not you did anything, so most of the other students were there as an easy credit and you could get banners printed by filling out your cards as each line making a line of the banner.

      I think I was the only student that took things seriously and by the end of the course I was able to demonstrate multiplication and division (the language only had addition, subtraction and instruction skip on flag values for conditional operation). I figured it out how to program the machine from the documentation.

      My mark for doing more than the rest of the class combined? 51% and I've never been sure why (although I have my theories).

    8. Re:Geometry by jafac · · Score: 1

      I agree with this Geometry/Logic Proofs/Programming thing.

      Although, I learned programming in 7th grade (self-taught; they sure didn't have classes at that time), and Geometry in 10th, I saw the relationship. (Ironically, I always shied away from Calculus because I found the symbolic representation, the summation sign, etc. intimidating. That was me, as a teen - later on, when I approached the same logic and algorithms from a computer programming perspective, I had absolutely no problem grasping the concept).

      I do think that the way math, and logic, and critical thinking skills are taught, are orthogonal to what kids need to learn, to prepare them for programming.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    9. Re:Geometry by davide+marney · · Score: 1

      I sat through the same, boring geometry class and HATED it. There was nothing to "solve", just memorize this recipe, and apply it to these problems. It couldn't have been less interesting. What use was a "proof"? What were you trying to prove, that you could memorize stuff?

      Several years later, I came across Euclid in my college philosophy class, and suddenly geometry made sense -- as a logical system of thought. Precept followed precept, and the "proof" was to follow an unbroken line of logically sound statements that led you to a logically sound conclusion. It was a beautiful piece of work, absolutely brilliant.

      --
      "We receive as friendly that which agrees with, we resist with dislike that which opposes us" - Faraday
    10. Re:Geometry by angel'o'sphere · · Score: 1

      Erm ... No idea how to treat your post.

      Geometry and proofs have nothing to do with each other. I never had to do a proof in geometry. And can't really imagine what kind of proofs there are. A clash of words? I would call the tasks "constructions".

      But I can grasp how annoying it is to sit in a geometry class when you are done after 5 minutes.

      I loved the period in my school live when we did geometry, actually that was a quite shaping experience. Contrarily to my other posts (where I mentioned that most bad students are victims of bad teachers) I really never grasped how one can not understand/grasp the simple concept of lines and circles, using a ruler and a "circle" (how is the tool called to draw a circle with?)

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  10. the majority of those who are successful ...... by avandesande · · Score: 2

    Is this even true? Most of the major free software developers have degrees.

    --
    love is just extroverted narcissism
  11. Self taught? by Anonymous Coward · · Score: 1

    Most "programmers" I know, and work with, have a formal education in software engineering or computer science. They might have been self taught before the started higher education, but that is not the same as saying that the formal training is useless. Being self taught seems like a difficult sell, at least when entering the job market - experience can do a lot. The course of higher education teaches a lot of things one usually wouldn't end learning by self-learning programming. Maths, physics, chemistry, team-work (sometimes at least).

    Aptitude is important, but developing software is a lot more than programming. It's about understanding the problem at hand, being able to talk with people, being able to deliver on promises in a timely fashion - oh, strike that last thing.

    As for teaching programming in school (before higher education): it might be important in helping people free their minds and think smarter. If it could reduce the amount of people being unable to use simple software I would be very happy. A lot of people seem unable to think logically about even the simplest of things when it comes to computers, electronics, and software.

  12. Doctors are no different by paavo512 · · Score: 2

    In the article there are a lot of comparisons to doctors. Like, how you can become a doctor by spending 7 years in a medical school, etc, whereas in programming you do not have a clear path.

    To my mind, this only proves that nobody really questions the qualification of the doctor. The patients are (or considered to be) not qualified to do that, so unless you are very bad, you can carry out a successful doctor career without really mastering the skills. I am sure in no way can all people become good doctors if they spend 7 years in medical schools, and the same applies to programmers. The only difference is that for a computer program it is much easier to see if it works and who is responsible when it doesn't.

    1. Re:Doctors are no different by jafac · · Score: 1

      If you fuck up as a doctor, people die. The human organism is a very complex, and not fully understood system. And you can't shut it down, work on it, then reboot it, or restore from backup.

      You can screw around on your $300 dell desktop with basically no consequence. Certainly not life or death.

      --

      These are my friends, See how they glisten. See this one shine, how he smiles in the light.
    2. Re:Doctors are no different by paavo512 · · Score: 2

      If you fuck up as a doctor, people die.

      Yes, the do. For example, in Switzerland it is estimated that health care errors cause 1,000-plus deaths a year.

    3. Re:Doctors are no different by angel'o'sphere · · Score: 1

      The amount of people dying because doctors fuck up is extremely high. (I personally know 3 "kills")

      Usually nothing happens ...

      The point is: for nearly everything is a "standard procedure". The doctor follows it, you die: not his fault.

      You have a strange symptom, the doctor investigates, but does not follow standard procedure (because he knows it is something 'special/different'), you die: his fault

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    4. Re:Doctors are no different by HornWumpus · · Score: 1

      MD==Memorized degree.

      Dad is a chem prof. When he gets to drinking sometimes he will talk about all the non-doctors he prevented from being out there killing people.

      It's not so much Organic, which is a more or less standard 'memorize this fat book' med school course. It was general chem. Med students needed an A. Dad gave the dumb ones a C, did they ever cry.

      The real mystery is how these kids got an A in HS chem to get into med school in the first place. Were I took chem you couldn't get an A without being able to balance a REDOX equation. But some of these prospective doctors couldn't do it at the end of college chem, they demanded answers they could memorize.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  13. Dual major by hlee · · Score: 1

    I strongly recommend for anyone considering a computer science degree to pick a dual major.

    Mine was a hybrid telecommunications engineering and computer science degree - it was very interesting to observe those of us who clearly enjoyed programming and had the knack for it would elect for increasingly more programming and computer science oriented courses, while those who didn't had many other good course options. In our course of about 35 people, about half had the knack for programming while the other half always seem to need help.

  14. 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.
    1. Re:Aptitude, Ability and Desire by Archangel+Michael · · Score: 1

      Emotions aren't logical.

      It is why certain politicians use emotional strings to garner votes. "Do it for the Children", "Right Wing Extremist", "Hater".

      --
      Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
    2. Re:Aptitude, Ability and Desire by HornWumpus · · Score: 1

      I can assure you that implementing your 'architecture' also makes the programmers want to blow your brains out.

      Spare us from these types. Just don't hire them.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
    3. Re:Aptitude, Ability and Desire by Archangel+Michael · · Score: 1

      Nazi, Communist, Feminist

      --
      Agent K: A *person* is smart. People are dumb, stupid, panicky animals, and you know it.
  15. Re:Egalitarianism by careysub · · Score: 4, Informative

    For those of you who are blessed to find this reference utterly mysterious, I hold up for you a case in point of John Roger's insightful comment on Kung Fu Monkey:

    “There are two novels that can change a bookish fourteen-year old’s life: The Lord of the Rings and Atlas Shrugged. One is a childish fantasy that often engenders a lifelong obsession with its unbelievable heroes, leading to an emotionally stunted, socially crippled adulthood, unable to deal with the real world. The other, of course, involves orcs."

    --
    Starships were meant to fly, Hands up and touch the sky - Nicky Minaj
  16. Making art is easy by Opportunist · · Score: 1

    A great sculptor (I forgot who) was asked how he makes his wonderful statues. He said "Easy. Just chip away all the marble that doesn't look like the statue".

    It's the same for programming. Yes, it's easy if you know how it's done. It's insanely difficult for people who don't.

    I've spent quite a bit of time trying to teach people how to program. It's futile. Mostly because we teach them the wrong skills. People don't need to learn how to program until they grasped the basic underlying concept of logic and problem solving. Once you taught them that, coating it in code is trivial.

    The problem is that people fail at the underlying concept.

    --
    We used to have a Bill of Rights. Now, with the rights gone, all we have left is the bill.
    1. Re:Making art is easy by Krishnoid · · Score: 1

      That's not always the case, though.

  17. Not all coding requires the same skill set by unimacs · · Score: 2

    The OP claims that most professional programmers are self taught. Certainly a lot are, - maybe even most. However I would bet that there are certain types of projects that are mostly handled by people with formal training.

    I've worked with lots of programmers, both self taught and those with CS degrees. There are certain concepts that the self taught group aren't usually proficient with, - pointer arithmetic being one of them. But a lot of coding can be done without understanding that.

    Programming is like any other skill. Some people have more of an aptitude for it than others. And like any other skill, there is more than one way to learn it. I have no formal training as a plumber but I managed to replace a ton of galvanized pipe in my home with copper about 15 years ago. That said, I don't have near the skill and knowledge a Master Plumber does.

    I had an aptitude for programming. A lot of what I've learned over the years has been self taught. I also have a CS degree. Though I've always been interested in computers, those early programming classes I had back in high school (over 30 years ago) were valuable and I may have chosen a different career had I never had that exposure.

    1. Re:Not all coding requires the same skill set by mrprogrammerman · · Score: 1

      People tend to mixup programming and computer science. There's a reason the degree isn't called programming. Programming in some ways is a byproduct of computer science. Basically the applied science. Computer science is focused more on the science and theory of computation. Understanding what problems are solvable and the best ways to solve them. Software engineering is also something different.

    2. Re:Not all coding requires the same skill set by gweihir · · Score: 1

      Pointer arithmetic? Seriously? I taught myself how to do that way before I started my CS studies.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    3. Re:Not all coding requires the same skill set by phantomfive · · Score: 1

      t. However I would bet that there are certain types of projects that are mostly handled by people with formal training.

      The stereotypical answers are creating a regular expression parser and a compiler. Hard to do those without a lot of CS theory.

      Also knowing about Big-Oh is really helpful in a lot of areas of programming.

      --
      "First they came for the slanderers and i said nothing."
    4. Re:Not all coding requires the same skill set by unimacs · · Score: 1

      Do they not teach pointer arithmetic in CS programs anymore?

      I didn't say that you need to know it in order to accomplish anything. I just said that that is one bit of knowledge that people with formal training tend to have and those without formal training tend not to. It's also much easier to grasp what's really going on with pointer arithmetic if you have a lower lever understanding of how computers execute software.

      Java virtual machines and python interpreters aren't usually something you see in embedded systems for example. There's still a lot of coding done in straight C.

    5. Re:Not all coding requires the same skill set by unimacs · · Score: 1

      I never claimed that the only people who ever learned pointer arithmetic were formally trained. I didn't say it even say it was particularly hard. Just said that it tends to be something that formally trained people know that people who weren't formally trained don't.

      I also made no claims about real world application. My career has been almost 30 years long at this point. For most of that time, pointer arithmetic was not even available in the language I was using. However, I was handed a project a few years ago that involved an embedded system. A mechanical engineer with a little bit of programming experience had attempted to tackle it first. He was trying to modify an example C program to do what he wanted but there were certain parts of it he just didn't grasp, - pointer arithmetic being one of them. That's why the project was given to me.

    6. Re:Not all coding requires the same skill set by gweihir · · Score: 1

      Not irrelevant at all, considering that buffer overflows are still one of the main security problems in software, and they result from people that have no idea how the machine they are coding for actually works.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    7. Re:Not all coding requires the same skill set by angel'o'sphere · · Score: 1

      Regardless ... you are wrong.

      Pointer arithmetic is a C specific thing.

      A very C specific thing! The term only makes sense in C or C++. No other programming language has it, nor needs it, nor uses the term/word.

      In our days students learn Java/Scala or C# in universities. All those languages don't have "pointer arithmetic" nor do they need it, nor does it make any sense that a programmer "knows what it is".

      I started to study computer science in 1987. I learned about pointer arithmetic in the K&R book about C. It was never ever mentioned in my whole career of learning programming (which started around 1983).

      So, no: a formal education is most certainly not a guaranty that you learn a certain language feature that only exists in two languages as far as I'm aware.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    8. Re:Not all coding requires the same skill set by angel'o'sphere · · Score: 1

      and they result from people that have no idea how the machine they are coding for actually works.
      No, the result from people who allocate to small buffers and don't check if the data they write into it actually fits into it.
      E.g in C/C++ "normal" strings are \0 terminated. Reading something and writing it into a buffer until you reach a \0 might overwrite the end of the buffer if the stuff you read is "to much".
      Or you are processing an image, which tells you exactly in the header that it is 300x400 RGB, so it is 300x400x3 (RGB!) bytes big, but in fact it is a 300x400 image in RGB with an alpha channel ... so its size is 300x400x4, not x3. Simple mistake ... but if you read the whole image to a certain memory address, you overwrite another 300x400 bytes.

      That works the same:
      a) on all computers
      b) all languages
      c) all processor architectures
      d) all operation systems
      e) ... should I continue?

      99% of all /. posts, "people don't know how the machine" works: are simply plain wrong

      For a buffer overflow it makes no difference if it happens on my old Apple ][ or on (not mine) my SPARC M6-32.

      It is a buffer, you write to much data into it, you write behind its end ...

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    9. Re:Not all coding requires the same skill set by thogard · · Score: 1

      Fortran, APL and Pascal all have ways of doing pointers and pointer arithmetic. They tend to be ugly but it can be done and it isn't as simple as C (or assemblie's), "Just make it an int and do whatever you want to it". Even early Basic's varptr was mostly used to load assembly code into programs but it was also used for string and floating point number manipulation.

    10. Re:Not all coding requires the same skill set by unimacs · · Score: 1

      I should probably be clear what I'm talking about. I'm talking about a CS degree and not software engineering or some other degree that focuses on managing software projects and such. Though I would agree that those still qualify as formal training and in that sense I'm wrong. Then there is a whole host of 2 year curriculums or individual classes that will teach adults various programming skills.

      As far as CS degrees go though, a quick survey of curriculums showed that they still teach operating system design and other courses that almost certainly would use C. Some course descriptions mentioned it specifically. You also have to remember that C is not just any language, it's an exceptionally important one. It's a step above assembly that many (most?) compilers, interpreters, run time environments, and even operating systems are written in. Things like micro controllers and embedded systems will often have one language choice other than assembly and that is C.

      And yes, I realize that today's students are taught Java, Scala, Schema, or something else. When I graduated in 1987, the language of choice for various programming concepts was Pascal and that's what I was taught. However, I was also taught LISP, ADA, assembly, and probably a couple of others. There was no specific class on C, but we had to learn it for our more advanced coursework, as did most everybody else I would guess.

    11. Re:Not all coding requires the same skill set by unimacs · · Score: 1

      Sorry, meant Scheme, not Schema, and Python has replaced it in a lot of institutions.

    12. Re:Not all coding requires the same skill set by phantomfive · · Score: 1

      I spent a week trying to explain my Moore Machine driven code to a non-degree code reviewer. Eventually he just pushed it through saying "I really don't understand how it works, but no matter how much I test it, it works. You'd better hope it keeps working in the future." The irony was that since I had modeled the program as a DFA with output, I could mathematically prove the output was what the input demanded.

      That's kind of strange, because a Moore Machine is one of the simpler concepts imo

      --
      "First they came for the slanderers and i said nothing."
    13. Re:Not all coding requires the same skill set by gweihir · · Score: 1

      Really, read some actual CVEs sometime. Maybe then you would not write such utter nonsense.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    14. Re:Not all coding requires the same skill set by angel'o'sphere · · Score: 1

      It would make more sense, you point out a single error in my post, and it would even make more sense to write the words out for what CVE stands. I assume, you mean this: https://cve.mitre.org/

      Point is, the machine has nothing to do with the problem, knowing how "the machine works" does not prevent people from crafting buffer overflows or other "vulnerabilities", perhaps knowing how languages work, would prevent a bit of "injections" ... and again: that has nothing to do with the machine.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    15. Re:Not all coding requires the same skill set by angel'o'sphere · · Score: 1

      I did not learn C in the university, except that I worked in a department where my goal was to port/integrate a Prolog program into a C windows environment (OpenView), that was 1987/1989 something.
      Nor did I learn C++ in university, or in other words: there was no course for C or C++

      I had operating system design, and: surprise! No C involved. Everything was done in pseudocode. But I guess if you had given a C solution to the rare programming exercises it would have been valid.
      OS is more about mutexes, semaphores and other "locks" and how to paralizing what, or need tricks in how to order disk requests, or the difference between a logical and a virtual device. There was a working group that even wrote visualizations for typical OS algorithms, e.g.reading random blocks from a disk.

      Ah, I see, you had no specific class on C either ;D Yeah, I was "taught" in Pascal, too ... however as I already learned Pascal in School I convinced my Tutor to use Modula 2 for the exercises. One semester we had a class called "Software Engineering", for some odd reason we did not only cover "Software Engineering", but touched/learned languages like SQL, Haskel, Lambda, Lisp, Prolog ... there was another one ... don't remember.

      Pretty odd as we had "Databases and Communications" a few semesters later and then we really did SQL.

      The lowest level I was "taught in a formal classes" was Fortran on a Cyber 205. A course I took in my first semester as the ordinary courses where to boring, I had learned 90% of that stuff in school already.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    16. Re:Not all coding requires the same skill set by angel'o'sphere · · Score: 1

      If people say "pointer arithmetic" they usually mean the C way. In C the compiler knows how big an object is, so if you e.g. have an array of 8 byte big objects and a pointer pointing to one of them: p = p + 1; (or shortened as p++) would increase p by 8, not by 1. Hence while you can manipulate pointers in Pascal with tagged records (is that the name, forgot it? The thing that is similar to a union in C), it certainly has no pointer arithmetic.
      No idea about Fortran, though.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  18. Let's agree to agree and disagree. by cshark · · Score: 2

    He's absolutely right... if you're talking about production floor, practical, every day professional programming skills. But it's fair to note that the majority of self taught programmers do take formal programming courses through the course of their careers, especially if they move from full stack to specializing. As you get older, you end up doing so much formal course work and ongoing education that the line between self taught and formally educated gets very blurry.

    But I digress.

    The problem with statements like this is that we as programmers assume that everyone who learns how to code is going to want to do it professionally. My first language was BASIC on the Vic 20 in 1987. We learned how to write loops, draw vector graphics on the screen, save code to a tape drive, and read bar codes by sight. I was in elementary school with 35 other New York City yeshiva kids, who I happen to know the majority of which are not programmers today.

    For me, it was the logical basis of what has become an extremely gratifying, and often enjoyable career.

    But even if it didn't work out that way, I would still think of the class as beneficial.
    Coding teaches you to walk through problems step by step. It's a skill that's absolutely invaluable in life, and it does go against the grain of what most people consider natural thinking.

    It doesn't really matter if you're trying to teach people to be production engineers or not.
    The skill is incredibly valuable to have. Even if you completely forget the grammars.

    --

    This signature has Super Cow Powers

    1. Re:Let's agree to agree and disagree. by thinkwaitfast · · Score: 1

      I think a course in physics would be even more valuable. Even on supposedly higher educated sites such as this one, most people fail at anything physics that doesn't have an associated tv program. Eg, know how a black hole works, but don't know the difference between power and energy.

    2. Re:Let's agree to agree and disagree. by cshark · · Score: 1

      Why do we all insist on learning things for professional gain, rather than for fun?

      --

      This signature has Super Cow Powers

    3. Re:Let's agree to agree and disagree. by Jeremi · · Score: 1

      Why do we all insist on learning things for professional gain, rather than for fun?

      You know what's not fun? Working non-professional, minimum wage jobs all your life. Hence the desire for professional gain.

      --


      I don't care if it's 90,000 hectares. That lake was not my doing.
    4. Re:Let's agree to agree and disagree. by cshark · · Score: 1

      I was just getting ready to blog about that.

      --

      This signature has Super Cow Powers

    5. Re:Let's agree to agree and disagree. by cshark · · Score: 1

      Fair enough.
      With all but one stint working as a janitor in a california gym when I had the insane idea that I might be burned out... I wouldn't know.

      --

      This signature has Super Cow Powers

  19. Re:Majority of successful programmers uneducated? by cshark · · Score: 1

    Well, you have now. Pleasure to meet you. I've been doing this since 1996, straight out of high-school, and I haven't stopped. I did actually spend three semesters in community college as an English major, but I dropped out when the .com boom hit me to work for a forward thinking consulting startup. The rest, as they say is history. I now posses master level proficiency in 25 programming languages, and I'm writing a book on language theory, and hotel rooms, and hookers. It's going to be a good read. Anyway, never did get around to finishing that degree.

    --

    This signature has Super Cow Powers

  20. 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?

  21. Big parts of the US college / higher ed sytems is by Joe_Dragon · · Score: 1

    Big parts of the US college / higher ed system is that way.

    Division 1 football and basketball The team only takes 20 hours a week. On paper only for the big games you have to miss class and you get lot's joke classes to fill the gaps. That voluntary team stuff is not so voluntary and it get's in the way of class.

    You need to go to college has made trade / tech schools some what of a joke and they can be better off not being tied down to the college system.

    The student loan system big banks make big bucks off that with little to no risk of a whammy. Very hard to discharge student loans even with death or disability. Much less if you end up $50K+ in the hole. With a mcjob.

    We Tech skills needed for the job! Verys a lot from way to done to a hear is how to work with X tool in X to lot's of theory with little hands on skills.

  22. CS Education by prefec2 · · Score: 2

    He is right in one thing. Programming is not easy. It is easy for programmers. However, it requires a specific mind set which includes to be able to deconstruct problems. You cannot really teach this at university. And you need to be able to tolerate frustration which is required to get an CS degree, at least at all universities I have been. And to some extend you can train that.

    However, CS education does help people to become better or even good programmers if they have the right mind set. And CS is not only programming it is also about inquiring customers, deriving requirements, features, planning, software design, combined with topics like continuous integration and delivery, software evolution, product lines, version control, documentation (real documentation not the shit most people write which contains the same information as the code) etc.
    And you should understand the application domains you code for.

    1. Re:CS Education by mrprogrammerman · · Score: 1

      And CS is not only programming it is also about inquiring customers, deriving requirements, features, planning, software design, combined with topics like continuous integration and delivery, software evolution, product lines, version control, documentation (real documentation not the shit most people write which contains the same information as the code) etc. And you should understand the application domains you code for.

      I think you're mixing up CS with software engineering. CS degrees generally don't cover those things in detail. That's the kind of thing you mostly learn on the job.

    2. Re: CS Education by prefec2 · · Score: 1

      In detail, yes you learn them in the job, but most of it is part of a 3 semester course at our university. And in the fourth semester they have a to use their knowledge, except for continuous integration and evolution.

      However, half of the students are not really up to it. These students are usually also unable to program.

  23. Re:Yep by unimacs · · Score: 1

    I'd think this would be true of any discipline. There are many reasons why those gaps in productivity exist and one of them very well be that some programmers have better training. Some are more experienced. Some manage their time better, - and yeah, some are just naturally better at it than others.

    Some folks might be excellent programmers but terrible communicators or have the misfortune of being poorly managed.

  24. Re:Majority of successful programmers uneducated? by Anonymous Coward · · Score: 2, Interesting

    I've met people like you before. I have found those like you lack severely in one area (probably some of you don't)

    I left work one day and came in the next day to find a bunch of guys, like you, still at work from the night before. They were excited because they came up with a speed up for their software. They implemented a rebalancing binary tree, but invented it themselves on the fly (Years ago before there were a lot of libraries that did this). They were so excited and explained it to me in great detail, what they did was very close to an red-black binary tree.

    Had I been there and they told me what they needed to do, I would have told them to look up red-black binary trees. They would have been done by 10 PM and gone home. Instead they spent the entire night "inventing" it and debugging all the issues involved.

    Obviously pretty smart, hard working, and everything else good you can say, but not efficient. If they had taken typical CS classes they would have known it existed already and just copied the algo. Other than not knowing some of which basic things were possible they always spent a lot of time redoing stuff they didn't need to.

    Probably wouldn't happen nearly as often today with all the libraries being used all the time.

  25. Degree vs self-taught is a bogus comparison by perpenso · · Score: 3, Interesting

    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.

    And often a greater breadth of knowledge. One of the advantages of a formal CS program is that one will most likely take classes in topics a student has no interest in. Yet those topics may be important or yield info that unexpectedly solves problem in other areas/topics. Many self taught tend to skip a topic or two and have gaps in their knowledge.

    That said, in a formal CS program there are two obvious groups. Those who are there because they have a genuine interest in coding and the problem solving it involves, and then there are those who are there because someone told them it is a good career path. While both can graduate, the former (genuine interest) tend to be far better programmers. They will learn something, or more importantly do something, just for their own curiosity. Things unrelated to class assignments, and they learn more and become more proficient.

    So the whole degree vs self-taught is sort of a bogus comparison. Many top programmers are both, degree and self-taught are not mutually exclusive.

    1. Re:Degree vs self-taught is a bogus comparison by perpenso · · Score: 1

      So the whole degree vs self-taught is sort of a bogus comparison. Many top programmers are both, degree and self-taught are not mutually exclusive.

      Actually... the people who are interested enough to learn on their own are the ones that make great programmers. They have the curiosity and drive to do it.

      Yes and no. The interest and curiosity are absolutely necessary but often insufficient. People who are purely self-taught often have holes in their knowledge. Their self-study avoided topics that are uninteresting or seem unimportant. Many need that formal environment which forces them to study such topics a little. The person whose self-study covers the full breadth and depth of a formal university program is quite rare. That breadth/depth helps one to become great and many of those with the interest/curiosity need a little external push to get there.

      Plus the university provides incredible access to hardware and software one would not have had on one's own. Many professors bemoan the number of students lacking the interest/curiosity, and are happy to assist those with the interest/curiosity. I never had a professor in charge of some equipment deny me access to it, even when what I wanted to do had nothing to do with classwork and was just personal curiosity. Professors perfectly willing to discuss some difficulty I was having even when not in a class of theirs. They genuinely want to assist and encourage those with the interest/curiosity. Also your fellow student with the interest/curiosity are an incredible opportunity, meeting in person, looking over one's shoulder when stuck on something, showing you something new and when offline being able to chat about some problem or something new. A team meeting in person can be more powerful and more educational than one only meeting online. The university environment is a rare region incredibly dense with people with the interest/curiosity.

      If one has the opportunity to go to a university they probably should, it will most likely lead them to achieving a higher skill level than they could have on their own.

      Anyone who tinkered before starting classes, or takes time to learn or at least experiment with a language not offered in their degree track, the ones that have been coding for years and finally start to formalize their education - those are the ones that make great programmers.

      Yes, its been decades since those with an interest in or curiosity for programming have had to wait for the university to start programming.

    2. Re:Degree vs self-taught is a bogus comparison by TemporalBeing · · Score: 1

      So the whole degree vs self-taught is sort of a bogus comparison. Many top programmers are both, degree and self-taught are not mutually exclusive.

      Actually... the people who are interested enough to learn on their own are the ones that make great programmers. They have the curiosity and drive to do it.

      Yes and no. The interest and curiosity are absolutely necessary but often insufficient. People who are purely self-taught often have holes in their knowledge. Their self-study avoided topics that are uninteresting or seem unimportant. Many need that formal environment which forces them to study such topics a little. The person whose self-study covers the full breadth and depth of a formal university program is quite rare. That breadth/depth helps one to become great and many of those with the interest/curiosity need a little external push to get there.

      I'm primarily self-taught and augmented by a BA in CS, and I can honestly say that anyone that is self taught typically does better than anyone holding a CS degree. In my case, I often covered the class topics before I took the class - many times in more depth than the class went into, the one exception was probably my Database and Software Engineering classes - the database class not because I had not done SQL on my own prior (I had) but because we covered the Relational Algebra and Relational Calculus mathematic domains in the class, the Software Engineering because I simply had not done much in formal software engineering (I did have a book on it already, just had not yet read it).

      So yes, give me a self-taught programmer over a degree holder any day; if the self-taught programmer also has a degree better yet, but I would not require it as they'll typically know where to go to find stuff they don't know and learn it, or at least ask.

      Finally, many companies typically will look at degree holders fresh out of college and say "well, we'll hire them but we have to retrain them" versus the self-taught programmer which will normally have prior experience in one form or another, a portfolio, etc that can be evaluated.

      Plus the university provides incredible access to hardware and software one would not have had on one's own. Many professors bemoan the number of students lacking the interest/curiosity, and are happy to assist those with the interest/curiosity. I never had a professor in charge of some equipment deny me access to it, even when what I wanted to do had nothing to do with classwork and was just personal curiosity. Professors perfectly willing to discuss some difficulty I was having even when not in a class of theirs. They genuinely want to assist and encourage those with the interest/curiosity. Also your fellow student with the interest/curiosity are an incredible opportunity, meeting in person, looking over one's shoulder when stuck on something, showing you something new and when offline being able to chat about some problem or something new. A team meeting in person can be more powerful and more educational than one only meeting online. The university environment is a rare region incredibly dense with people with the interest/curiosity.

      OTOH, many universities don't grade correctly so self-taught programmers have to be more vigilant about how the TA's score their homework, tests, etc. Case in point: The professors only taught how to use a For loop for infinite loops in the classes - preferring "for(;;){...}" - highly obfuscated compared to other methods, so when I used a While loop - "while(true) {...}" - to do the same thing the TA (who didn't know any better) took points off, my vigilance restored the points.

      If one has the opportunity to go to a university they probably should, it will most likely lead them to achieving a higher skill level than they could have on their own.

      I won't disagree that it won't add value - but the value for a self-taught programm

      --
      Truth is like the sun. You can shut it out for a time, but it ain't goin' away. - Elvis Presley (source: imdb.com)
    3. Re:Degree vs self-taught is a bogus comparison by angel'o'sphere · · Score: 1

      People who are purely self-taught often have holes in their knowledge.
      Everybody has holes in his knowledge.

      E.g. I transformed a hughe shell script into one that abstracts out its steps into functions. (Just a few days ago).
      I'm writing -- occasionally -- shell scripts since 30 years. I had jobs where My main responsibility was unix shell, operator, support etc. and maintaining scripts.
      I did not know that 'calling' exit inside of a function does not exit the script, but just the function. Because: I never used functions before, as scripts are usually so small that you simply write the code top down. (No idea what retardness is the reason why shell functions return values and now as I have learnd exit have nothing to do with 'normal' programming languages)
      Result: my attempt to make an unreadable mess of bash code more readable, turned out to lead to a majour rewrite, actually it was not worth the time I invested.
      But now as it is running again, my successor will thank me.
      Lession learned: you never learn out.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
    4. Re:Degree vs self-taught is a bogus comparison by perpenso · · Score: 1

      People who are purely self-taught often have holes in their knowledge. Everybody has holes in his knowledge.

      Holes in their knowledge with respect to likely relevant information that they would have been exposed to in a typical university program. Not holes with respect to any relevant information, of course we are always learning in the software development field. That is one of the reasons why those with the disposition to learn on their own will generally outperform those who wait until they are assigned something to learn.

    5. Re:Degree vs self-taught is a bogus comparison by perpenso · · Score: 1

      I'm primarily self-taught and augmented by a BA in CS, and I can honestly say that anyone that is self taught typically does better than anyone holding a CS degree

      I assume you are referring to degree holding without the interest/curiosity that leads to learning on one's own, which to be clear is not some temporary habit for college years, more of a lifelong habit.

      FWIW I initially learned to program with similarly minded friends, then went to school, left to work on a weird opportunity with previously mentioned friends, went back to school while working (programming) part time and finished, worked a little, went to grad school while working full time. Except for really demanding stretches of time (some school related, some work related) I generally also had some personal project exploring the curiosity of the day. 30 years into this and I'm still doing so, although at the moment its an inexpensive curiosity since its raspberry pi based.

      I think I've learned a lot from similarly minded friends, from personal projects, from the university and from work. All made great contributions.

      So yes, give me a self-taught programmer over a degree holder any day;

      Its not that simple. Just as there are many less than useful degree holders there are also many less than useful self-taught. Self-taught also includes those who are there just for the career benefits and not due to any inherent interest/curiosity. Plus there are also the self-taught who have interest/curiosity but whose studies are way too narrow.

      There are many self-taught former colleagues that I would be absolutely happy to work with again, and some I would not. And the same can be said regarding former degree holding colleagues.

      Finally, many companies typically will look at degree holders fresh out of college and say "well, we'll hire them but we have to retrain them" versus the self-taught programmer which will normally have prior experience in one form or another, a portfolio, etc that can be evaluated.

      I've had no problem screening for degree holders who possess the interest/curiosity, they too often have extracurricular work that can be evaluated.

  26. The title is lying by zJe · · Score: 4, Informative

    So the blogger uses 2 polls in his article, one his own twitter poll of 101 responses, hardly meaningful. The other is a the 2015 Stack Overflow developers survey, that survey had 21,314 respondents for the education question which is certainly better than 101. He uses the graph for education to backup his statements which has the following data:

    41.8% I'm self-taught
    37.7% Bachelor of Science in Computer Science (or related field)
    36.7% On-the-job training
    18.4% Masters degree in Computer Science (or related field)
    17.8% Online class
    16.7% Some university coursework in computer science (or related field) but no degree
    6.1% Industry certification program
    4.3% Other
    3.5% Intensive code "boot-camp" or night school
    2.2% PhD in Computer Science (or related field)
    1.0% Mentorship program

    He then goes on to say "Only a third have a computer science or related degree and nearly 42%, the largest group, are self taught."

    Turns out the percentages add up to 186.2%, the horror, some people had more than one source of education or they lied about their education. Now it's probably safe to assume that if the poll respondent had a PHD they didn't also claim a Bachelor and Masters degrees, that would mean that 58.3% of the poll have a computer science or related degree. If you include the response of some university course work it turns out that 75% of the respondents had some level of university training. It would seem that according to Mr. Hadlow's sources that university training is important.

    Perhaps Mr. Hadlow should head back to university, his math and logic skills need refreshing.

    1. Re:The title is lying by angel'o'sphere · · Score: 1

      If you studied at an university, you are self taught, no matter what degree you have afterwards.
      Because that is what the word "studying" means.

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  27. You can't fix stupid by MrKaos · · Score: 1

    That is really the bottom line here. If you want to be good at coding, you have to be smart, creative and logical. Additionally, it's also hard work so if you don't, at least, like it, you will not be able to take the pressure of the work that comes after you've overcome the frustration of something as fundamental as the semantics of coding languages.

    Of course the way to fix this issue is to triple the salary of every coder, dba, sysadmin and networking professional on the face of the earth. But that won't happen because then there isn't a way to exploit the people who truley made for doing this work by driving the cost of employing them down. It's a delicious, if bittersweet, irony that technologists enjoy and tolerate simultaneously.

    I know, it sounds elitist and politically incorrect however, that is just the reality of the situation. I didn't make it that way, the physics involved in the electronics of the machine running the kernel that compiles the code that I wrote, made it that way. The machine is ambivalent to your persona. Your warrior ways are meaningless compared to the power of the Source.

    So, after acquiring all of the above attributes and then developing enough emotional intelligence to work with other people who share these skillsets, you will find that it doesn't matter if you're male, female, old or young, nor does your race, religion or sexuality - that actually makes it more interesting (to me anyway). Just be smart and cool, then you can join our club.

    --
    My ism, it's full of beliefs.
    1. Re:You can't fix stupid by thinkwaitfast · · Score: 1
    2. Re:You can't fix stupid by MrKaos · · Score: 1

      Hilarious, thank you!

      --
      My ism, it's full of beliefs.
  28. Re:Majority of successful programmers uneducated? by ImprovOmega · · Score: 1

    Your story would be much harder to start today. It's very difficult to find programming jobs without having some sort of degree to get your foot in the door. At this point in your career you have so many years of experience that the degree is now irrelevant. It can't teach you anything you don't know (most likely).

    But what a degree does give you is a jump start. You still have to have an aptitude for programming either way, but a degree can expose you to a lot of the pitfalls that you otherwise would find out about on your own. There's another comment in this thread from a guy who talks about his co-workers re-inventing red-black binary trees for example. That's probably going to be one of the biggest areas is algorithm analysis. Knowing the tradeoffs between an O(n*lg(n)) sort vs. an O(n^2) sort and when to use one over the other. Formal definitions of inputs/output, invariants, graph theory, boolean logic, statistical analysis - all of these *can* be picked up along the way, but it really really helps if it's front loaded and you don't have to muddle through and figure it out on your own.

  29. Re: the majority of those who are successful ..... by efarng · · Score: 1

    I agree. Salary.com has some breakdowns by degree by job title
    http://swz.salary.com/salarywi...
    http://swz.salary.com/salarywi...

    Indeed.com resume section tells a different story for new york city and silicon valley if you look at the filters on the left.
    http://www.indeed.com/resumes/...
    http://www.indeed.com/resumes/...
    He based the statistic from a self-reported stackoverflow survey. The survey itself says 38% of the people self-identified as professional programmers, 46% as other, and 16% as unknown. So it looks like most non-professionals on the survey don't have a degree.

  30. "Learning to code" left as exercise for student by perpenso · · Score: 1

    Formal education (i.e. a Computer Science Degree) teaches you how to think in certain ways and how to generalize problem spaces. It is not the same as job training. "Learning to code" is more akin to job training. Learning both is what makes you an invaluable resource but if you're just looking for a career and to get by then, yes, the job training aspect of "learning to code" does not require formal education and a smart, self-starter who has the job training part down is better then a dumb non-self starter who is formally educated. This is true in just about any field. The best scenario is a smart, self-starter, that has formal education and job training but there aren't near enough of those to go around.

    I'm old, started programming when 8-bit machines wandered the land. In those days a formal CS program largely left "learning to code" as an exercise for the student. A certain amount of "self taught" was expected in a university CS program. There would often be an intro to CS class that introduces the rudimentary concepts of computer programming and introduces students to some programming language. Then off to data structures where the professor generally sticks to theory and abstract pseudo-code and its left to the student to learn on their own time the designated programming language for the class well enough to do assignments. At best the TA would reserve a little discussion time for programming examples and questions.

    But the preceding is not the "self taught" that I think is the important thing. Those with a genuine interest in programming will learn things and write code purely out of curiosity, to see if they can figure it out and do it, to try something new, etc. Things that are completely unrelated to class assignments. These are the people where formally trained and self taught combine to create some of the better programmers. The others that merely do the class assignments, who are there because someone told them its a good career path. They can graduate, some might be good but lacking that innate interest and curiosity to go learn on their own outside of assigned tasks (work or school) they probably won't be great.

    As for those who are only self-taught. Its conceivable to become as well educated in the field as someone taking the classes but to be honest such individuals are very rare. Many self-taught will have gaps because they did not study something that had no interest to them, and miss something unexpectedly important or useful.

  31. Doctors by MondoGordo · · Score: 1

    "unless you are very bad, you can carry out a successful doctor career " Frank Burns eats worms.

  32. "obvious conclusion: there are 10 populations" by Punto · · Score: 1

    you know the rest

    --

    --
    Stay tuned for some shock and awe coming right up after this messages!

  33. How the Scam Works by Livius · · Score: 1

    This obsession with teaching everyone to "program", for a seemingly unlimited range of definitions of 'program', is a fraud. It's solely to drive down the wages of programmers by convincing everyone that it doesn't require any special ability or mental discipline. Ten years from now the people studying it will realize they've been had but that will only be after a lot of corporate profits and human suffering.

  34. Woah, I don't even know where to start by iamacat · · Score: 1

    First of all, you don't need to be a programmer to benefit from programming skills. Countless small business owners benefited from custom batch files, DBase forms and putting together Excel, Access and a little VB. We should work on modern replacement for these as well as widespread literacy rather than wasting people's money on cloud apps which are not tailored to a specific business.

    Second, self-learning is a privilege of growing up with computers, stable/peaceful living arrangement and no other responsibilities. Many only get time to work on themselves only once they get into college with a loan and/or scholarship.

    Finally, self learning happens by bits and pieces. I did quite a bit of programming in middle and high school, but certainly filled in many gaps when taking dozens of classes in the college. For example, I did all my previous programming in MS-DOS and UNIX workstations or parallel clusters were not commonly available to individuals at the time.

    Even if self learning is the solution, you first need to convince recruiters of all the major employers to accept folks without a degree.

    I do believe that C.Sci degrees are ridiculously overpriced and can be completed 100% online, but still with qualified instructors, teamwork and scholarships for those who can not otherwise find money or non-work time.

  35. Comparing apples and oranges by Maxo-Texas · · Score: 1

    Highly successful and talented artists need little training.

    And yet, a much larger population of graphic designers does.

    It's really the difference between skill and talent. Most jobs need someone with skill to perform a task. Most jobs do not require a John Carmack and indeed John Carmack would find most programming jobs to be the very definition of hell.

    "Hey John, we need a new tax total on the web page. It's going to require about 8 hours of coding, 24 hours of testing, and then 6 meetings, 8 forms, a code review, unit tests, and you need to work over christmas to install it when the users are not using the web page."

    --
    She was like chocolate when she drank... semi-sweet at first and then increasingly bitter.
    1. Re:Comparing apples and oranges by jmcvetta · · Score: 1

      Most jobs do not require a John Carmack and indeed John Carmack would find most programming jobs to be the very definition of hell.

      "Hey John, we need a new tax total on the web page. It's going to require about 8 hours of coding, 24 hours of testing, and then 6 meetings, 8 forms, a code review, unit tests, and you need to work over christmas to install it when the users are not using the web page."

      This right here. This is why I want to get out of this business. Programming is easy and almost fun - but working as a programmer is a peon's life.

  36. learning skills or abstract reasoning, etc...? by countach44 · · Score: 1

    Now this is where formal education has a place. Anyone with the necessary abstract reasoning abilities and problem-solving intuition, etc... can become a self taught programmer. Formal education can help foster those skills in students that may have less aptitude in those areas.

  37. Types of People by qpqp · · Score: 1

    There are 10 Types of People.
    (The ones that understand the above sentence and the ones that don't.)

    1. Re:Types of People by Anonymous Coward · · Score: 1

      There are 2 types of humor:

      1. original
      2. yours

  38. Re:Self-taught by thinkwaitfast · · Score: 1
    I'd been working for 20 years before someone asked to see my college diploma. All previous jobs only asked for references from prior employers...and my first job I'd just continued working at my internship after graduating. When I got rehired after graduation, the conversation went something like this:

    HR: OK, we have all the paperwork done. I see you never graduated.
    Me: Yes, I have a degree in electrical engineering
    HR: OK, that me we can offer you more money
    Me: OK
    I wouldn't have risked it, but I'm confident that I could have gone an entire career without graduating from college (being in college was a requirement to get some internships).

    In fact, many people who started out working internships never returned to complete their degree.

  39. Re:Big parts of the US college / higher ed sytems by thinkwaitfast · · Score: 1

    The average balance of outstanding student loan debt for households with some debt was $25,700. The median debt was $13,000, and seventy-five percent of borrowers had less than $29,000. These burdens are relatively modest given the annual earnings of these households. The average annual wage earnings among this population was $71,700.

  40. I disagree. by Qbertino · · Score: 1

    There are certain basics you have to know. The difference between a variable and its value for instance. Assignment vs. Comparsion. Conditions, arrays etc. How to format your code and how to break down a problem into comments, terms and eventually code.

    Everyone can understand these things. The problem is: If you haven't understood these, no education whatsoever will get you anywhere near programming. If you don't know what the tab-key and the clipboard are and how and when to use them you will fail at the most basic things.

    People today don't learn the fundamentals of computing, thats the real problem. No amount of academic education will fix that, if the fundamentals aren't grasped.

    --
    We suffer more in our imagination than in reality. - Seneca
  41. This is rather obvious by gweihir · · Score: 1

    At least to anybody that can write good code and has tried to teach others. From my experience, you can give people a few pointers, tell them when to start and how to avoid obvious pitfalls. They then neatly sort themselves in people that get it and ones that do not. From my experience, about half of CS undergraduates do _not_ get it. Which makes me suspect that in the general population, less than 10% can learn to code well.

    One reason why coding is essentially self-taught in those that can do it well is that it is so extremely difficult that without doing it in your personal style, you do not stand a chance.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  42. Re:Motivation, not aptitude by gweihir · · Score: 1

    From personal observations on a lot of CS students, that is completely wrong. Quite a few highly motivated CS students fail to ever become good coders. They have the motivation but lack the aptitude.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  43. 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."
    1. Re:Love... by angel'o'sphere · · Score: 1

      I loved to code when I started it ... actually I lost that love a bit in between, but now I'm back ...
      Nevertheless most of my code the first 10 years, besides it was genial, was utter crap ...

      What was your point?

      --
      Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
  44. Widening the pool by bestweasel · · Score: 1

    What's wrong with "everyone should learn how"?

    This is not about encouraging unsuitable people into programming but about widening the pool - reaching those who would never consider programming as a career because they don't have a computer or no-one in their family has ever worked in an office or they don't know where to start and just need a little help to get going or they have a logical mind but don't know what programming is or think programming is for weirdoes.

  45. Re:Majority of successful programmers uneducated? by cshark · · Score: 1

    Hard to say what would happen today. I've found that in order to survive in the industry, you have to be somewhere on the spectrum between formal scientist and snake oil salesman. If you're comfortable enough in your own skin, and you're arrogant enough to try in the first place... I think it could still be done. The best route there, in case there are any young programmers reading would be to shoot for nonprofits and small consulting outfits. The work sucks, the hours are long, management is usually dishonest, and it's totally without appreciation. But those are jobs that look good on a resume, that there isn't usually much competition for.

    Truth be told though, the line between formally educated and self taught gets very blurry the further you go.

    --

    This signature has Super Cow Powers

  46. Re:Majority of successful programmers uneducated? by cshark · · Score: 2

    Red and black binary trees are fucking awesome!

    Now, to be fair, I'm not entirely self taught anymore... if I ever was.

    I've spent the better part of a decade and a half taking formal classes and working with mentors. I've even gone out of my way to work at companies where famous and semi-famous programmers work, in an effort to meet them and suck the wisdom out of their brains with a straw. By the way, if you're interested, that doesn't usually go over well. But most of the time, they're gracious enough to answer your questions.

    Can't stress how important it is to find mentors in this trade.
    The old crazy gray haired guys that have done things like contributing to the unix kernel, or invented on-demand tv, or the internet.

    You can probably get there on your own, but mentors will challenge and annoy you.
    If you're not challenged and annoyed, you're not learning anything at all.

    --

    This signature has Super Cow Powers

  47. My experience is different. by Lord+Kano · · Score: 1

    I know some really good self-taught programmers but many of them suffer from shortcomings due to not understanding the underlying mechanics.

    Using arrays when hashes would be better and things like that.

    LK

    --
    "Hi. This is my friend, Jack Shit, and you don't know him." - Lord Kano
  48. I learned red-black trees from a book by PeterM+from+Berkeley · · Score: 1

    Didn't need a CS education to learn *that*.

    In my opinion, CS is about the easiest of the technical topics to learn from books and via direct work with computers.

    See, computers are *designed* by humans. At some level, they *make sense* because they're a man-made creation. Algorithms designed by someone else are similar, they make sense. Computer languages are also of human design, and are made to make sense.

    Designing *new* algorithms that aren't derivative of already-invented ones, *that* is hard, but there's not much need of that for most programmers.

    Quantum mechanics? That's *hard*. That's the type of thing that a university education is useful to me for. It makes no damn sense at all. All the physical sciences are what they are, and they're not of human invention and are often not terribly intuitive.

    I used my time at the University, for the most part, to learn stuff that I couldn't readily teach myself.

    These co-workers of yours? They didn't need a university education. They needed to have read a few books!

    --PM

  49. How about as a motivation to learn math by jader3rd · · Score: 1

    Beyond arithmetic most people find all the math that they learn in school to be pointless; something a hair more useful than trivia. It's on the reasons why they're so frustrated with it. Sure a teacher could tell them about some sort advanced scientific calculation which will need it, but that's so far out of the realm of what they imagine themselves doing, it just adds to the frustration.

    But if some math classes were converted into programming classes, sure lots of students still wouldn't like it, but I imagine it'll be less frustrating, because they can at least see how it's being applied. Programming has a purposes, and they see the math being applied in the programming.

    1. Re:How about as a motivation to learn math by HornWumpus · · Score: 1

      Those people are doomed to innumeracy. Stick a fork in them and let them go, they will never have the brains to read a fair lending disclosure and will bitch about 'evil bankers' instead.

      --
      John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  50. Re:Majority of successful programmers uneducated? by Jeremi · · Score: 1

    Had I been there and they told me what they needed to do, I would have told them to look up red-black binary trees. They would have been done by 10 PM and gone home. Instead they spent the entire night "inventing" it and debugging all the issues involved.

    You're right that re-inventing the wheel like that isn't efficient, but on the other hand, once you've gone through the process yourself, you end up with very intimate and visceral knowledge of how the algorithm works -- if they had simply reused an existing implementation, the algorithm would still be largely a "black box" to them.

    Ad astra per aspera and all that...

    --


    I don't care if it's 90,000 hectares. That lake was not my doing.
  51. Re:This is an insult by KGIII · · Score: 1

    At one point in time I had a computer, with a monitor, and some RAM, and some disk space, and a printer, etc... I also had a new car in the driveway. Guess which cost more?

    *sighs* You don't even want to know what workstations cost or how expensive it was to fill a server room.

    --
    "So long and thanks for all the fish."
  52. So? by lord_mike · · Score: 1

    Not everyone is good at math, but we still teach it. Not everyone is good at science, but basic science courses are still required curriculum. The students who do well in those courses often find a career in them, but they might never have known that they would be good at something like this until they try. It's important for schools to introduce kids to programming if for no other reason than to identify those who might have further interest in the study.

  53. Re: the majority of those who are successful ..... by tgv · · Score: 1

    I can only give anecdotal data, but the good programmers in my environment, friends and (former) colleagues, all got into programming on their own initiative, mostly during secondary school. I learned BASIC age 12. Then we all got a degree: CS, Math, Engineering, Physics. I know one good programmer who had his first programming experience at uni, but he was studying languages, so it was also not part of a course.

  54. I teach students who need, but don't like like it by umafuckit · · Score: 2

    I'm in a weird situation: I teach programming to people who need it but wish they didn't. They're PhD students from life and social sciences. They nowadays have so much data that they need to program, but most of them don't really want to. They find it hard and it takes up too much of their time. The biggest mistakes I find is that their code is terribly organized. They don't plan ahead, they don't break down the problem, they don't think about code re-use, they seem to fight the process of coding rather than learn it. It's as though they don't understand what it's for (even though they have access to a lot of good example code. They seem to ignore it). They're making progress, but it's slow. Learning the language isn't their biggest problem: learning how to use it is.

  55. Teacher's point of view by Anonymous Coward · · Score: 1

    I am a teacher. I teach computer science. I think that the point of the 'teach everyone to code' idea is that we need to expose students to options. Yes, I agree with the original comment, you CAN teach yourself to program, like you CAN teach yourself to do a great many things, but you won't if you didn't even know it existed as an option. For a kid growing up in a house without a computer they have to be exposed to programming to see if they enjoy/have an aptitude for it. I don't think anyone is expecting every child to become a top class scientist, mathemetician or linguist, but we expose them to those subjects so they can live in the world around them. Some of them will be Sagan, Einstein or Tolkien, but lots will just be able to read and write for pleasure, not get short changed at the supermarket or understand their tax return. I think the point is that understanding a basic bit of code/computer science is becoming essential to life - it's not totally about expecting people to become programmers, but expecting people to have to deal with programs.

  56. Re:I remember THAT "hurdle"... apk by demonlapin · · Score: 1

    Okay...

    I'd say that the programming education system has gone badly south when it misses me. I am not and never will be a professional programmer. But I am capable of writing code, and I do have automatable tasks that I wish to accomplish, and really, that's the audience you should be teaching for: people who want to know how to do the digital equivalent of basic handyman's work. It's also why I find the Python haters so funny - I have played with it a few times, and yes, it abstracts a lot, and whitespace - but it just works. And you can put understanding why until later, or even never. Most people will never write an application where execution time matters.

  57. A certain amount of struggling is fine by PeterM+from+Berkeley · · Score: 1

    However, in a work situation where productivity is more the goal, you should do things as efficiently as possible MOST of the time.

    And that means leveraging the best of what's known.

    I've been aggravated a great deal by one of my co-workers who WOULD NOT use data analysis scripts developed by others, more or less because he didn't write them and "didn't understand them" and "wanted to learn". Basically, "not invented by me."

    I told him to USE the work that's already been done and focus on developing NEW tools that we don't already have and/or improve the existing stuff. These could be his learning examples (and yes, there were plenty of things to do that were easy enough to be learning examples.) Stand on others' shoulders so that you can climb higher. Develop new work so that others can stand on your shoulders!

    There's a time and a place to struggle learning the already-invented, for pedagogical purposes, but in a productivity environment, you leverage the best of human knowledge to get the job done as fast and well as possible.

    You don't waste your time and genius re-inventing the wheel, you develop NEW things. You also don't waste your co-worker's time and genius re-doing what they've done. It detracts from their productivity (because helping you makes them more productive) and disrespects their accomplishments.

    And it really drove me batty that the stuff this guy re-wrote was inferior to what others had already done.

    --PM

  58. Missing the point! by Anonymous Coward · · Score: 1

    Not all people who take programming courses need to become professional programmers. What's next an investigation on the fact that most people who take English classes don't become professional writers, or everyone who takes math doesn't become a mathematician.

    Talk about missing the point.

    People shouldn't be illiterate or innumerate, or illogical.

    Taking classes doesn't guarantee facility with something, but it does improve the odds.

  59. Education stats by pfg23 · · Score: 1

    From what I've read recently, it's not exactly true that the majority of programmers is self-taught. It's high, but not over 50%.

  60. Solve 2 problems... by martinfb · · Score: 1

    Anyone without the aptitude to code can be turned into "Soylent Green". Now, all the 1) remaining programmers can have an 2) endless supply of food!

    --


    Self-importance and self-indulgence is the root of ALL evil.
  61. Re: the majority of those who are successful ..... by avandesande · · Score: 1

    I think that this has to do with the perspective of 'lower tier' programmers. First of all, I want to point out that this isn't meant pejoratively. I don't have a degree and have been developing for >15 years. What I mean by this is there is a large market and need for people to develop for small businesses, usually on typical business workflows. I would suggest that many of the degreed people that work in this market may not be as motivated or talented as the ones that go on to work for wall street, silicon valley or in critical roles at a large company(lets call this first tier). For guys like me that grew up in a lower middle class family, making ~six figures with no degree working the lower tier sounds like a pretty good proposition. So perhaps some are seeing things from under the glass ceiling.....

    --
    love is just extroverted narcissism
  62. Need more time by BeemanIT · · Score: 1

    I agree completely with the author. However one of the biggest challenges is that formal education runs on a time table which some people simply need more time in certain areas. However when involved with formal education you cannot simply put a class on hold for a single person. So the person who does need more time will never get it, especially if they're going for a 4 year degree. It's funny how the educated forget how the human mind can take time to grow when learning something new.

  63. Re: so by ememisya · · Score: 1

    Serenity is important. You can't force good code out of people, nor can you trick them into it. If you enjoy understanding how logic works, what is it, and how it relates to the Universe you're going to be a good programmer. I personally believe this has a little to do with being in awe of the way existence works. If you're not curious about what lies within the infinity of space, you're not going to want to dive deep into the 1s and 0s. So there does seem to be a mindset of looking past yourself involved. Only in that serenity one can make sense of the symmetry of logic, and see the essentials of what makes things tick, then write it down. This of course is a very subjective view so it's safe to say that's how I feel about it.

  64. Re: so by thoughtlover · · Score: 1

    Parts of your comments are subjective, like having a fascination with the Universe, in general, being a factor in being a good programmer. But, I think teaching programming is no different than teaching art... you can't force good art out of someone.

    You can teach some people some of the stuff, but you can't teach all the people about all the stuff.

    --
    No sig for you! Come back one year!
  65. Even if it was easy AI will take your job soon. by dsmatthews9379 · · Score: 1

    Furthermore to be useful you can't just be a great programmer, you need to understand one or more problem spaces at an advanced level so that you are able to apply your skills to encoding solutions, otherwise you are like a poet with nothing to say.

  66. Re: Barriers to entry by Ukab+the+Great · · Score: 1

    This.

  67. Re:Majority of successful programmers uneducated? by plopez · · Score: 1

    I ask for evidence to back up a position and i am a troll....

    --
    putting the 'B' in LGBTQ+
  68. Re:This is an insult by HornWumpus · · Score: 1

    I remember staring wistfully at Textronics brochures. Dreaming of the day I could afford a monitor like that.

    Now we throw better ones away.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  69. Re: the majority of those who are successful ..... by HornWumpus · · Score: 1

    I've seen some really dysfunctional large company IT departments.

    They collect dead wood like nobodies business. Small business would send them walking in weeks.

    In my experience the divide is more between, 'software is overhead' and 'software is our bread and butter'. No matter what the size, if software is overhead the departments suck (and suck to work for).

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  70. Re:Majority of successful programmers uneducated? by HornWumpus · · Score: 1

    Months in the lab can save you hours in the library.

    The problem with the CS teaches you the algorithms argument is it's wrong. You will never know all the algorithms, you should just know were to search.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  71. Re:This is an insult by KGIII · · Score: 1

    Yip. I like to remind the kids that once upon a time I upgraded my RAM and buying 4 MB of RAM was $400 USD. My first laptop was something like $7000 except I bought some external storage (I seem to recall it was some proprietary tape format) so it was a bit more (like nearly $9000) and didn't actually have a battery in it. At least, I think that was the first one. *sighs* There have been so many over the years.

    I didn't really touch much in the way of a microcomputer until the early 1980s. I did go to a school where we used an HP 9100 in the classroom but that's not really what I'll call a microcomputer. At any rate, I was a bit old. I can imagine the temptations and frustrations for a kid during those times. I can imagine them looking at those prices and thinking they'd never be able to afford them.

    Today? I've got more compute power in my phone. I've just given away things like tablets and computers that weren't even thought of back then. Hell, I have a stack (somewhere over a half dozen) tablets that I don't even use or like. I keep trying to like that form factor but I just can't. I only have the number I have because I sent a couple off to someone that seemed interesting online.

    --
    "So long and thanks for all the fish."
  72. Re:Maybe this is akin to tossing hobbits at a wall by HornWumpus · · Score: 1

    And when they find it, they don't hesitate to waste it.

    I'll believe there is a tech shortage when they start hiring admins/assistants for development teams. If they make programmers drudge through the BS, it's obvious they have enough.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  73. Re:bullshit. by HornWumpus · · Score: 1

    Depends on how you define 'self taught'.

    I define it as 'come into your formal CS education already knowing 3 or more languages'. Admittedly a heuristic. It doesn't mean you stop leaning when you start formal college.

    I've never known a good programmer born after 1960 that learned to program in school. 100% were 'self taught' using my definition.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  74. Re:Teaching is hard by HornWumpus · · Score: 1

    WTF? Everybody is above average?

    Engineering is different. Tests are bad at predicting who will succeed. So unlike law and medical schools, 'everybody gets in'. Not everybody gets to stay.

    The thing that is 'broken' is the expectations of the kids. They apparently think they can 'just catch up' with their classmates that did apply themselves in HS.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  75. Re:Math Education: Selling People a Lie? by ksheff · · Score: 1

    we should be rallying against the local principles / head masters who say things like "Just pass him. He tries hard and he is so good at football."

    That is why high schools and colleges need to get rid of their sports programs. Unless one is in a small school, only a few people benefit from it. It would be better to spend that money on PE for all the students. The taxpayers shouldn't expect to pay for farm leagues for the NFL and NBA.

    --
    the good ground has been paved over by suicidal maniacs
  76. Re:This is an insult by HornWumpus · · Score: 1

    When I was a kid, we had things rough.

    I scrubbed pots for weeks (working on a fake ID that said I was 16), saving up for another 32k of RAM. It was $200.

    Waited an extra pay period, to afford a parity bit.

    --
    John McAfee 'It was like that time I hired that Bangkok prostitute; to do my taxes, while I fucked my accountant'
  77. Re:This is an insult by KGIII · · Score: 1

    That's funny. It really must have been tough unless your parents were loaded. My kids had it fairly well but I'd not accumulated as many bits of green paper then as I have now. They got lots of hand-me-downs as I'd refresh a couple of times a year at times (I kind of needed to, things were changing that fast). It wasn't until the 2000s that they started getting their own new computer, mid-2000s probably. They're both in their mid-20s now and came to live with me after they realized I had the better toys. (No, I seriously think that's why they came to live with me. Very, very clever and conniving monsters, the both of 'em! *grins*)

    Actually, they're good people. One's finished med school and is working in an ER children's unit. The other is supposedly still in school but he's really in Peru and sexing a very beautiful native girl while smoking a lot of weed. I can't say as I blame him. The missus and I are going to go down and see about getting him a bar/hotel combination to run and he can pay back the loan that way. He doesn't drink so it is cool.

    --
    "So long and thanks for all the fish."
  78. Weed-Out Courses by Tenebrousedge · · Score: 1

    Also, having a course function as a weed-out class is a function of grading. A friend of mine is taking a CS course where the language of choice is Python. The tests are 75% of the grade, they are on unruled paper, and you can lose enough points on style to fail the test, and it is not on a curve. And of course Python is the language where whitespace is syntactically significant. The style guide is also whatever the professor/TAs want it to be.

    Artificial tests in an artificial environment with deadlines and stresses that are not typically found in the real world, and above all programming on paper, sounds like a shit way to determine whether someone can program. CS/Programming is not that hard. It's like being a chef -- yeah, probably not everyone is going to have their own restaurant chain, but that shouldn't stop anyone from cooking, or even graduating from a culinary school. Anyone teaching programming/CS as a weed-out course has their head firmly crammed up their own ass. There's no reason to do so, and you're probably not testing actual aptitude for the subject.

    --
    Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.