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

397 comments

  1. so by Anonymous Coward · · Score: 0

    The cake is a lie!
    Long live the cake!

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

    2. 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!
  2. 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: 0

      My condolences for your losses in your run-ins with your Agile Project Manager.

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

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

      Those who cannot teach, teach PE.

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

      Or they got bored about arguing about how many spaces makes an indent or why rewriting in xyz is the best thing ever or why I need to use framework Z when the task could have been managed in a simple C struct. My favorite is the need to reformat entire files using ones favorite prettyfier such that all future diffs are borked. HttpRequestFactoryFactorys.... I could go on for pages.

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

      What about those that can't even manage? And does this explain my boss's boss?

    10. 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.
    11. 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.
    12. 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.
    13. Re:One door it does open for the failures: by Anonymous Coward · · Score: 0

      Would you rather have those who can't, do it anyway?

    14. 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'
  3. 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: 0

      Math is hardly "procedural".

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

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

    5. 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
    6. 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.

    7. Re:Logic versus programming by everett · · Score: 2
      --
      Sig withheld to protect the innocent.
    8. 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.

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

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

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

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

    13. 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
    14. Re:Logic versus programming by Anonymous Coward · · Score: 0

      There is yet another level of developer - the one who writes software that defines hardware (FPGAs).

    15. Re: Logic versus programming by Demena · · Score: 0

      No. Programming existed for millenia before computers. Planning is programming. In a way this reflects the post. Some people plan and prepare. They can program. Some are agile, highly adaptive to circumstance. They do not plan (don't need to, they bacome parasites as needed). Just the and and cricket story again. Society needs both and the ants are always exploited.

    16. 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
    17. 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
    18. Re:Logic versus programming by Anonymous Coward · · Score: 0

      > here's a disconnect in the way people think about programming versus thinking about math and logic

      it is, but that's mostly due to the "weird" symbols that the math folks use. a program is nothing less than a very detailed formal statement akin to a formal math statement. in other words, it's mostly a difference in syntax.

      (btw that's why I like Python as a programming language - quite often there is not much difference between a proper mathematical formula and what its implementation looks like in Python).

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

    20. 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
    21. Re:Logic versus programming by NicknameUnavailable · · Score: 1

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

    22. Re:Logic versus programming by binarstu · · Score: 0

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

      From the 1999 summary (emphasis added): "It also has a lot to say about the Quality Plateau, Design Patterns, the povery of methodologies and the false goal of deskilling."

      It's nice to see that the editing standards haven't declined.

    23. 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.
    24. Re:Logic versus programming by Anonymous Coward · · Score: 0

      > I found programming to be like doing math proofs.

      Heh. I misread that as "like doing math profs."

      I just stuck to doing the math TAs when I was in school.

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

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

    27. 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.
    28. 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.

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

    30. 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
    31. 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?

    32. 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
    33. 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.

    34. Re: Logic versus programming by Anonymous Coward · · Score: 0

      A plan can be thought of as a program, but the skills and methodology to complete the two may be very different.

      Modern programs need to follow a precise and logical sequence of imperative instructions. A program iteratively evolves, but not during execution. A failure of the program is seen as a bug in the programming code.

      A plan is much more ad-hoc and often involves unwritten social contracts and impulsive workarounds. A plan often iteratively evolves during execution, and failures of the plan is not generally seen as a failure to plan.

      So someone with an inclination to make a good plan, may lack the detail-oriented nature that is required of a programmer. Heck, the detail-oriented nature of a good programmer is in many ways an obstacle to making good, overall plans.

      A great programmer may also be a great planner and a great personality all-round, but that's very very very very rare.

    35. 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.
    36. 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.
    37. 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.
    38. Re:Logic versus programming by Anonymous Coward · · Score: 0

      > One semester should be enough for a person to learn the "basics of programming".

      And the next few decades unlearning the bad lessons. My first programming course was in Scheme. I've watched a lot of brilliant people since then write a lot of absolutely horrible code since then, following the "layers of abstraction" model, using recursion by preference, and dynamically scoping their way right into the unsustainable mess that put Sun out of business with their focus on Java as a profit source.

      And lordie, do not get me *going* on how many developers who have "moved past" Perl and the unsustainable mess that is CPAN are being victimized by Maven, Artifactory, and Python's "pip" installer. What works great to just do "maven install" in a short course breaks down *really badly* in the real world.

    39. Re: Logic versus programming by Anonymous Coward · · Score: 0

      I would rather be shot than be forced to work on a keyboard arranged alphabetically. They keys are where they are because of the approximate frequency of usage. With alphabetical, you would have twice the finger strain or more.

    40. Re: Logic versus programming by Anonymous Coward · · Score: 0

      They keys are where they are because of the approximate frequency of usage.

      No, they sure aren't! Whoever told you that was selling something.

      The 15 most frequently used letters in English are: ACDEHILMNORSTUW Only 5 of those are on the home row in QWERTY.

      if you want a keyboard designed with minimal finger strain and letter frequency in mind, try Workman.

    41. Re:Logic versus programming by Anonymous Coward · · Score: 0

      We have been trying to "trick people" into thinking logically for a long time now.

      It used to be "Everyone should know math. If they know math, that will teach them to think logically, which will be applicable to every aspect of their life!"

      These days it's "Everyone should know how to program a computer. You can only program a computer by breaking things down into small logical steps, a skill which will be applicable to every aspect of life!"

      but tricking people into a way of thinking ignores the fundamental way of thinking, the one which brought us up from the dust and allowed us to conquer the world: "What is the least possible effort I can get away with using to do this?" I mean that without any sarcasm or malice. Doing things "with the least effort" is a good thing. It is a skill. And it is one of the core ideas which both Programming and Math attempt to teach.

      So if you want to teach someone logic, reasoning, and the ability to break big problems down into smaller problems, find a way to do that which doesn't involve pretending that they're learning some completely separate skill.

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

    43. 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'
    44. 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'
    45. 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.

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

    47. Re:Logic versus programming by Anonymous Coward · · Score: 0

      This sounds like a lot of work when we only need a silver bullet.

    48. 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'
    49. 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'
    50. 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.
    51. 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'
    52. 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'
    53. 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
    54. 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
    55. 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
    56. 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
    57. 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.

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

  4. 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 Anonymous Coward · · Score: 0

      My god I hope you are right then I can retire...

    4. 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
    5. 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.
  5. 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: 0

      They also need to realize that ratio *will* be very high.

      In my exp it is about 1 in 4 *can*, 1 in 20 like it. Those two groups are not inclusive of each other.

    2. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      Our entire educational system is based on the idea (lie?) that everyone is equally capable given the chance.

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

    4. 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
    5. 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.
    6. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      Yet the opposite is true with Indian programmers. Lots of education yet barely any of them can code anything without copy/pasting stackexchange. The culture of creativity vs. rote memorization is an important variable in the equation.

    7. 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
    8. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

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

      This would be good. However, if (that's IF) there is any correlation between the distribution of that aptitude with any gender, ethnic, or racial groups, you will be stomped on with the hob-nailed boots of Political Correctness.

    9. Re:It's not entirely a lie by zAPPzAPP · · Score: 0

      Still the whole 'the majority of those who are successful programmers are mostly self taught'-idea is an artifact from when there was no formal programming education and all the programmers were electrical engineers.

      Weeding out is done in any technical subject at the university level as far as I can tell.
      Still that never kept schools from teaching everyone the basics of maths, physics, chemistry and so on. And if you are on a good school and a certain subject is to your liking, you can delve deeper into it.
      I do not see why this subject needs to be treated differently.

    10. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      But, nobody is going to pay to be weeded out. Colleges are there to make money. They want to sell you an education whether you have a prayer of succeeding or not.

      I know...it "shouldn't" be that way. But I am saying it *is* that way, and this will not change.

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

    12. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      That's why they have growing Liberal Arts departments. The dean of the engineering department will be happy to make a referral if you fail calculus.

    13. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      I agree. The sooner it weeds you out, the better.

    14. 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.
    15. 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.

    16. Re:It's not entirely a lie by Anonymous Coward · · Score: 0
      I had a professor like this. The class was very challenging and we learned a lot. As a first introduction to programming as a core engineering class that everyone took. ME's, CE's, EE's, etc. We'd covered all of C in three weeks. There are, or were, only 34 constructs after all and started going into program concepts and structuring.

      After about a month, only about 10% of the class had any idea what was going on and in fact were doing quite well.

      At this point the teacher was replaced only with the explanation that it was not a weed out class. The new teacher was a graduate student and spent the remainder of the semester going over what had already been covered. This time around, most people passed but I noted that by the beginning of junior year, without exception of those that I knew personally, all had dropped out of the engineering program. It was a lot like freshman physics where, graded on a curve, 40/100 is an A and you'd have a couple students at 98%. Nobody cares about physics though.

    17. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      second that +1.

      right now the world seems to think if only we educated more students in coding skills, we'd get them a bunch at 5cents. the world will realize that you can get a bunch at 5cents already but that is mostly not what is required. Probably another cause and effect misconception...

    18. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      1 in 10 is 10%. I'd say it is more like 1% (out of a typical population in corporate IT, at least) - most folks in IT are just good at talking about it. interestingly enough the talkers usually outnumber the actual developers, and they earn more too. Still if someone get's the sack it's usually the dev team which is outsourced to far eastern shores. Management seems to think there is value in talking. Very funny indeed.

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

    20. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      It does. That's why there are no women in software development!

      *Ducks

    21. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      You can teach someone to come up with one solution but it's impossible to teach them to come up with multiple ones? What kind of bullshit is that? You can teach almost anything to almost everyone if you take the right approach (see all the 'religion' wars in every field), but if the person is going to fight you or help you the whole way is a different matter.

    22. Re: It's not entirely a lie by Anonymous Coward · · Score: 0

      Depends on where you go. "Hard" sciences - like physics and chemistry - are part of the College of Science and Engineering at the University of Minnesota, and are most assuredly not Liberal Arts degrees.

      Strangely enough, the CS dept there offers both a Liberal Arts degree and a Science degree, the main difference being the number and type of math classes required for each track.

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

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

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

    26. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      Depends on your definition of "competent". Good programmers are great listeners. Great programmers are great askers. You can spend hours trying to tell someone how to program something correctly, but a great programmer will ask a few questions and learn everything they need in a few minutes. I've seen groups of experts stuck on a problem for days, and that one "genius" programmer with no background in what they're working on, wanders over to see what the hub-bub is all about, asks a well placed question, and the problem is solved. No one says "that guy is awesome". They just shrug off the fact that all he did was ask a question. They didn't even know the answer. How smart are they?

      There may not be any "bad questions", but some questions are much better than others.

    27. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      There are many solutions to a given problem, but only a few are any good. The more complex the problem, the more possible solutions. The chance of a good solution being correctly selected depends on the competence of the programmer.

    28. 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."
    29. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      You're saying nothing with lots of words. That entire sentence is a giant tautology.

    30. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      I had a statistics instructor who was like this. He lost half his class by the 5th week, and thought that was pretty funny.

      It wasn't until several years later that I realized why he didn't care - he thought he was doing them a favor.

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

    32. 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
    33. Re:It's not entirely a lie by Anonymous Coward · · Score: 0
      Someone who does not realize the importance of what I just said does not understand the definition of "quality". In programming, quality matters... a lot. Every poor decision multiplies with other poor decisions, quickly turning into a time sink of technical debt.

      That entire sentence is a giant tautology.

      When you're talking about documents, it's called an "abstract". You start what you're going to say with a high level of what you want to say, then further elaborate. Opps, seems I did it again.

    34. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      A basic house doesn't need the creme of the crop, but it takes the creme of the crop to have the foresight to realize when you may need to start with a basic house, but it'll probably grow. Anticipating eventual needs is an important skill. Half of my job as a programmer is consulting the person making requests. They rarely understand the pitfalls and limitations of their own visions.

      I even have to do this with Senior Engineers and Architects all the time. In my experience, the ability to anticipate issues outside of your experienced problem domain is virtually non-existent. Most people are great at anticipating issues that they have experienced in the past, but almost none seem to anticipate issues that are only hypothetical in nature, primarily due to lack of experience.

      Expertise shares the same root as experience for good reason. But if you can predict issues without having to experience them, you're now a pseudo-expert without the years of experience. Many people mistake me for an expert in their own specialized field all the time and get perplexed when I tell them I have no experience and the only direct information I know is from what little they've told me and I inferred the rest.

    35. Re:It's not entirely a lie by Anonymous Coward · · Score: 0
      I love the read, but I do find it funny what the author uses as an example for why the students were doing do well.

      This was a huge shock, and it turned out that an unusual teacher was the culprit. She was a natural kindergarten and first grade teacher who was also a natural mathematician.

      All it takes to make student who are well above average is to have a genius teacher with innate inborn abilities.. What? There is a bit of circular reasoning going on, but I do get his main point. Students could do much better with better teaching.

      I also think he's conflating a few things. People have a natural ability to learn certain things no matter what. People learn how to see and hear, this is a well know fact. We all have an innate ability to see and hear, but it's still learned, and yet some can see and hear better than others and not because of physical superiority of the ears or eyes. People can self-learn to a certain natural level. To get beyond that level, you need to have focused learning. This is were a good teacher comes in. You can raise someone above their innate natural level. Some people have a much higher innate natural level than others.

      What I call "innate natural" is a combination of nature and nurture. For some reason, some people find certain things much more interesting than others. Some children show strong interest in certain things from very young ages. In my case, my mom said I had a very distinctly strong interest in how things worked since I was between 1 and 2. I had little interest to interact with other children, I had a strong imagination, I asked questions all the time. I am not going to argue if my brain is better, but my personality, which is determined by the brain, drove me to learn. Some may argue that is nature and some may argue that is nurture. It's a hybrid. My nature drove me to change my environment to enhance my learning. This is what you call a feedback loop.

      If the nature is strong enough, it can overwhelm the nurture and force the nurture to be supportive, within reason. I also think there is a threshold on this, like escape velocity. Even if someone has a relatively strong nature for something, without enough of it, they will not have enough force to overwhelm the nurture. It's only once you have enough force that the feedback loop occurs. Which is why it's rare, because the threshold for this feedback is high enough in the bellcurve .

      Going back to the original topic. I don't think I have more potential than others, I just think I have an innate self-learning that was able to bring out my potential without requiring the rare "natural teacher". The other side of the topic is when all of this learning starts. Mine started very young because I had/have an innate nature to learn. There is a lot of research saying starting young is important. It's nearly impossible to have a "natural teacher" per child that can start teaching children at extremely young ages. In the average case, nature is very important.

      Of course this could create a feedback for offspring. Persons who self teach may start teaching their children young, which can create a very good environment for learning, plus an increased chance of their offspring also inheriting the parents natural desire to learn. You can get "smart families", which seems like nurture on its face, but is actually a combination of nature and nurture that was set in motion by nature.

      I argue that while nature and nurture are important, nature is more important. Nature give you the ability to affect your environment to provide you the nurture. The main ability to humans is their ability to change their environments, and the point in evolution that we reached this threshold, we took over the entire Earth. Same difference.

    36. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      Federal financial aid regulations also put pressure on students to complete courses. There can be big financial penalties for dropping a class, depending on how early or late in the semester you drop it and how it affects your enrollment status (full-time/part-time.)

    37. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      That is what most rigorous programs do. When the college gets too for profit, they let low performers keep paying.

    38. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      > I had a professor in college who would actively and zealously apply this principle.

      Me too. His name was Jerry Sussman, and he made the freshman learn Scheme, which he helped write. Thing was, *all* the freshman at MIT at that time were pressured by their family and guidance counselors to go into programming, and the department was overwhelmed. So that course served as an early winnowing of the herds. It was exacerbated by the shortage of systems to do the actual programming, and the tendency of bad code to never terminate and suck up more resources as the problem sets became due. If you couldn't get in early, couldn't get your code to run on the first pass or at least report meaningful errors, or couldn't lie, cheat, or steal your way to getting a console, you tended to fail. Freshmen were on "pass/fail" grades, so your grade didn't exist beyond that, but it pushed a lot of students where weren't that interested in computing away to other departments that could handle them better.

      Invaluable lessons, all of them. I also tended to tick off the TA's. You know the "counting ways of making change" one, at http://rosettacode.org/wiki/Co...? The length of the programming run grows factorially? I reversed it, starting with largest coins and working my way down, which reduced run time from some ridiculous N! runtime to something like N^2, and which the TA's tried to mark my grade down for. They refused to acknowledge that I did it *both* ways, their way and my way.

      Jerry bumped my grade back up, and gave me a pretty weird look. But that lesson of "when someone insists on something stupid for philosophical reasons, give them that answer *and* the better one" has worked well for over 30 years.

    39. 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."
    40. 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.
    41. 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.
    42. 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.
    43. 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.
    44. 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."
    45. 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.

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

    47. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      Programming is different. You have to deal with debugging and failures as a normal part of operations. Most other professions don't need to design to gracefully fail, they need to be designed to not fail. And if you do fail, as long as you did everything by the book, you're fine. In many cases of programming, if you fail, your entire company has downtime and tens to hundreds of thousands of dollars per minute are lost.

    48. Re:It's not entirely a lie by Anonymous Coward · · Score: 0

      I dropped 1-2 classes per semester every semester. I still had to pay for the classes, but my financial aid never changed. As long as I dropped before mid-semester, the grade did not count towards my GPA.

    49. 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'
    50. 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'
  6. 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.

  7. Not everyone should learn to code by Anonymous Coward · · Score: 0

    Just like not everyone in the 1950s needed to learn how to make electronics.

    Different people are different. Lets not force every round block through a square, nerdy hole.

    We should TRY to teach everyone to think and problem solve though. Which is not at all dissimiliar from coding but different emphasis.

    How would the two classes be different? Oh idk. Given them a physical form of the traveling salesman (make it a board game!) one week and a tower of hanoi the next. Yes, actual physical things. Give them unsolved problems and see what they can come up with since google ain't going to help them. Etcetera, etcetera.

    These poor fucking kids will be staring at a screen for the next 50-70 years after school. Give them the pleasure of something physical first. Then those who show any aptitude for it, chain to a desk and compete with a coding factory in asia, for next to no pay (meaning 1 snack a day from the vending machine for being a good code monkey).

  8. This is an insult by Anonymous Coward · · Score: 0

    This is an insult. It is true that some have natural aptitude, but it can certainly be taught to anyone in the right circumstances. The same is true of mathematics. Of course, the cost of learning may be much too high for an individual or society to bear unless they have a certain amount of aptitude already, and a willingness to work within the constraints of personal economy.

    When I learned to program initially, it was the minimum required statements in C64 BASIC to load a disk and run basic programs. I can honestly say I was too young to form complete sentences in my native language, so the idea that anyone would have an aptitude for coding beyond basic copied statements at that point seems ridiculous to me. After that I was introduced to some DOS commands and QBASIC, which didn't get me much farther than simple text entry and character comparisons. I had not learned algebra yet so the idea of doing much more never even crossed my mind.

    This is not intended to be an autobiography but suffice to say programming is nothing but mathematics, and mathematics is nothing but a universal language of thought and order. To deny this from some because of how they were born is tantamount to eugenics.

    1. Re:This is an insult by Anonymous Coward · · Score: 0

      Programming is open to anyone who can get their hands on a $50 computer. In my area they are given away for free on craigslist. And free computers today are vastly more powerful than anything that was available for thousands of dollars when anyone over 40 was learning to program.

    2. 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."
    3. 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'
    4. 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."
    5. 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'
    6. 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."
  9. 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/
    1. Re:ahem by Anonymous Coward · · Score: 0

      yeah, i disagree that constructing programs is some kind of great talent

      it mostly just requires sufficient stubbornness to get through all the
      build environments and poor conceived change management
      software, distribution models, badly designed libraries and languages,
      borderline moronic technical management, etc etc

      if you boiled away all the crap, then maybe you're talking about something
      more approximating mathematics, but for the majority of the industry its
      7 nines of crap all day every day

  10. 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 Anonymous Coward · · Score: 0

      You can't have a nightmare if you never dream!

    2. 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).

    3. 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?"
    4. 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!
    5. 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.
    6. 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?

    7. Re:Cut the fat. by Anonymous Coward · · Score: 0

      ... all the distraction of a 'well-rounded education'...

      A well-rounded education was not a distraction, it was a rarity, provided by learning Greek and Latin. That exposed students to philosophy, civic responsibility, political debates, and possibly some military history. How many people have to learn that in university now, let alone before university? Educated people were educated first about being responsible for their society. I know jobs and the world are more complex now but one still has to be a citizen with a duty to one's neighbour citizens. The modern citizen is more educated, yet in some respects, more ignorant.

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

    9. 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.
    10. Re: Cut the fat. by Anonymous Coward · · Score: 0

      You can read the Wikipedia concerning the history of compulsory education so I won't repeat it here, but the point is that the history of taxpayer funded education has been to serve economic reason so the idea that it should never serve some sort of purpose for corporations is to not understand the history of it.

    11. 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'
  11. 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 Anonymous Coward · · Score: 0

      they ALREADY outsourced a huge # of lawyers - to automation. The vast majority of billable hours for reading thousands of pages of documents is now handled by automated scanners, OCR, and key word searches....please don't go into law without understanding a lot of it is worse than IT for debt vs returns.

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

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

      You cannot offshore a plumber, electrician

      That's what robots are for.

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

    10. Re:Agile/Scrum == hot potato by Anonymous Coward · · Score: 0

      And you just re-invented stack ranking.

      You monster.

    11. 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.
    12. 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.

    13. 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).

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

      no u

      It is never our turn to get fucked. Might be yours tho?

    15. 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
    16. Re:Agile/Scrum == hot potato by Anonymous Coward · · Score: 0

      Law and accounting is at high-risk of being automated.

    17. Re: Agile/Scrum == hot potato by Anonymous Coward · · Score: 0

      Bascically meaning you are dealing with other people's shit no matter which one of these three professions you pick.

    18. Re:Agile/Scrum == hot potato by Anonymous Coward · · Score: 0

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

      That just proves even recent law school graduates can't avoid prison work detail.

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

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

    21. 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
    22. 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.

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

    24. 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)
    25. 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.

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

    27. 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.
    28. Re:Agile/Scrum == hot potato by Anonymous Coward · · Score: 0

      It will only go as far as the general public allows. Keep in mind, people without money can't be expected (in reality) to pay it, and those with money will expect it (unrealistically) or give no aid. Eventually once the greed of those who own becomes too much to bear, the public will be forced out of necessity to redistribute the wealth again. Damn be the consequences of it, because the consequences doing nothing is the same as doing something. The only difference is how do you want to die? Starving to death, death by decease or injury, or death by trying to end the cause of your (and everyone else's) suffering?

    29. Re:Agile/Scrum == hot potato by Anonymous Coward · · Score: 0

      'Here in the US' == in your experience

      Shitty employers exist everywhere, plus there's a lot of 'follow the rules' thinking everywhere, that will lead to the sort of thing you describe.

      FWIW Agile grew out of XP which was developed in the US - so it obviously can work (and has in some of my experience).

    30. 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.
    31. 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'
    32. 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
    33. 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
  12. 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: 0

      Your post has too many words. I skipped most of them.

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

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

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

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

    8. Re:Geometry by Anonymous Coward · · Score: 0

      I always thought geometry proofs were similar skills to programming, at least the closest thing I saw from grade school.

      The kids shouldn't get wrapped up with the technicalities of programming languages and environments. My first real programming class didn't even go into the computer lab for the first half of the year! The concepts were introduced on the blackboard with fun games like getting a 'robot' to navigate a maze. We got to make up instructions and new mazes. It was a good introduction to states, decisions, looping so many useful concepts.

      I also think they should focus more on general logic, which is not boring, but is the foundation of pretty much everything.
      If they don't become programmers at least they have some critical thinking skills that can only help them through their lives.

      Don't worry about actually doing things with the computer at first. Learn the ideas in a fun way, which then happen to coincide with the ideas that are used when coding or finding solutions.

    9. Re:Geometry by Anonymous Coward · · Score: 0

      Wow, this is uncanny. I had almost the exact same experience (except no Saturday classes, yeech). 10th grade Geometry, proofs, logic, now a programmer, etc.

      I seriously think that 10th grade Geometry class was probably the most "worthwhile" class I've ever taken. It shaped me in ways I could have never imagined (no, not triangles, you idiots).

      My teacher gave extra credit on all the tests. Not only did I get a 100% on all the test, but I got all the extra credit questions too. I ended up with like a 120% at the end.

    10. Re: Geometry by Anonymous Coward · · Score: 0

      The Force is from a fictional movie. What the hell is wrong with you?

    11. 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).

    12. 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.
    13. 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
    14. Re:Geometry by Anonymous Coward · · Score: 0

      It's weird, I'm really really horrendously terrible at proofs and could barely get through Calc (or even Physics for that matter) in University.

      However, I got perfect grades with minimal effort in all of my CS, CEG, and EE courses. I worked both as a TA and as a paid intern for professors. When I took Discrete Mathematics, my professor jokingly banned me from answering questions he asked in class because I would solve them in my head as he asked while everyone else was still writing things down.

      I'm not saying any of this to brag, I really don't consider myself exceptional in any way. I'm no more than an average developer. My point is, I really don't think proofs are that great an indicator of ability to solve logic problems. There are different aspects of it, and if you try to filter on just one of them you're going to miss out on a lot of capable people.

    15. 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.
    16. Re:Geometry by Anonymous Coward · · Score: 0

      Yeah, I understand your confusion because that's a topic not covered in "math for business" classes or any others directed toward non-STEM folks like yourself. Geometry is actually nothing but proofs.

      The basis for geometry+proofs goes back a couple thousand years; go to wikipedia and search for someone named "Euclid". You won't be able to understand the actual math/proofs involved, but the background should be enough to show what you're missing.

      HTH.

  13. the have's vs have not's by Anonymous Coward · · Score: 0

    If coding a language, which it is... then everyone has an aptitude to code. ome coders just think their better than others at coding, but really it's about the task at hand.

    It's more about work tasks than software coding aptitude.

    TFA argument making it sound like those english-lit snobs... If someone said good English require high aptitudes is going to learn that they are full of themselves.

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

  14. 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
  15. 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.

  16. 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'
  17. Wisdom from Ratatouille! by Anonymous Coward · · Score: 0

    I'm sure Ratatouille wasn't the first to say it but it's the one I know.
    "Not everyone can cook, but a great cook can come from anywhere"
    That might be the standard, instead of getting everyone to code constantly, just expose everyone enough that they know if they like it.

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

  19. Majority of successful programmers uneducated? by plopez · · Score: 0, Troll

    Where is he getting these numbers? From his immediate circle of friends? I have never met a successful programmer who hasn't been educated, either directly as a CS major or taking classes after getting a degree in another field. Obviously hi is wrong. You must first get a degree and then perhaps get more training upon that.

    My position is a valid as his.

    --
    putting the 'B' in LGBTQ+
    1. 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

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

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

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

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

    6. 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.
    7. Re:Majority of successful programmers uneducated? by Anonymous Coward · · Score: 0

      General rule of thumb. All general purpose algorithms have already been created decades ago. If you need an algorithm to solve a problem, research your problem before reinventing the wheel, poorly. I don't have a CS background, but I know how to explain my problems to Google, and I get a bunch of possible answers. Then I research each possible solution and weigh the pros and cons. Most pros and cons can be categorized into "compute or space trade off" or "read performance or write performance".

      Google has nearly all of the knowledge you'll ever need. People need to learn to use it to augment what they don't know. The bigger issue is that many people have issues describing newly encountered problems in a such a way that they can't google them easily.

    8. 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+
    9. 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'
  20. 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 Anonymous Coward · · Score: 0

      Logic is only fundamental to solving logical problems. It is quite bad at solving emotional problems.

    2. 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.
    3. Re:Aptitude, Ability and Desire by Anonymous Coward · · Score: 0

      Fascinating.

    4. Re:Aptitude, Ability and Desire by Anonymous Coward · · Score: 0

      Emotions aren't logical.

      It's a basic prejudice.

      And the other half of the time you'll see plenty logic yourself in the emotions of people.

      The rest of the time, you simply didn't reflect and analyze enough the causes of their feelings, thoughts and behaviors.

      And don't forget flawed logic is still logical. There are many reasons why people make errors.

      Causes, effects and consequences in everything.

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

      Pure logic would have you stop calling them 'politicians'. They have zero consideration for the everyday life of the city. These people are just rich puppets for their other rich friends. True politicians are rare today.

      (Of course there are many reasons why you still erroneously call them 'politicians').

    5. Re:Aptitude, Ability and Desire by Anonymous Coward · · Score: 0

      "Bleeding heart", "Freedom hater", "Muslim"

    6. Re:Aptitude, Ability and Desire by Anonymous Coward · · Score: 0

      I think I'm the same way. I work as a developer, but I'd much rather work in some sort of software architecture capacity where I could just design efficient systems and let other people write the actual code. Filling in skeleton functions makes me want to blow my brains out from boredom.

    7. Re:Aptitude, Ability and Desire by Anonymous Coward · · Score: 0

      If it's logical, then it's universal and empirical. Just because you can understand why someone feels some way does does make their feeling "logical". Anger is pretty much always illogical. The Borg are logical and the individual does not matter.

    8. 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'
    9. 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.
    10. Re:Aptitude, Ability and Desire by Anonymous Coward · · Score: 0

      SJW.

  21. Self-taught by Anonymous Coward · · Score: 0

    Without being able to offer any evidence, I would claim that a lot of developers may self-classify themselves as self-taught even if they also have formal CS education. So many of the self-taught programmers may NOT have had such an easy time getting into the workforce without that education. Hence the argument about barriers to entry MAY be inaccurate.

    As a hiring manager, I'm unlikely to pay much attention to a candidate who can only claim being self-taught as a qualification. Without some sort of education or certification, or at least proof of contributing/authoring some significant code it's going to be hard to be taken seriously.

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

    2. Re:Self-taught by Anonymous Coward · · Score: 0

      Lie about it all the time. Sooner or later I'll be caught and most likely fired. But, for 120k a year. It's worth the risk. If you're good at what you do, no one has any reason to doubt it.

  22. 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
  23. 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.

  24. Shit post, no barrier to entry to /. by Anonymous Coward · · Score: 0

    What a shit post. How did this get past moderators? Are you really gonna take a submission from some jackass's blog post saying "formal education" doesn't work, and the "majority of current software development professionals are self-taught" based on some really shitty SO and Twitter polls?

  25. Do you really *want* everyone to be able to code? by Anonymous Coward · · Score: 0

    The world needs artists, psychologists, electricians, plumbers, garbage men. Not everyone needs to be able to code, and I would excellent therapists are no less skilled than excellent coders.

    Besides which, the minute everyone becomes a coder is the minute we all stop having a job. How many people would pay lawyers if they could read legal mambo jumbo? How many people would pay doctors if they could solve their own health problems?

    The world is fine the way it is. Not even needs to code, nor is coding the gold standard for being "logical".

  26. 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 Anonymous Coward · · Score: 0

      There are certain concepts that the self taught group aren't usually proficient with, - pointer arithmetic being one of them.

      Really? REALLY? You do realize that CS darling language now is Java? So what pointers are you talking about?

      Computers run on pointers, but if you learn programming using Python or Java and never expose yourself to something like C, well, then you do not know pointers anyway.

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

    3. 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.
    4. Re:Not all coding requires the same skill set by Anonymous Coward · · Score: 0

      Really? REALLY? You do realize that CS darling language now is Java? So what pointers are you talking about?

      The ones in the raw hardware on which the JVM is running, my dear boy. Java does an adequate job of hiding the gory details of what's actually happening for the average (i.e. shitty) programmer but, rest assured, what you don't know can hurt you. Quite badly, in fact. LOL.

    5. 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."
    6. Re:Not all coding requires the same skill set by Anonymous Coward · · Score: 0

      I was self though programmer before getting a software engineering degree.
      I self though myself to not do pointer arithmetic, since there are often better and faster ways of doing this.

      However in C++ cource at the polytechnic they teach pointer arithmetic like it is the thing that you should always be doing, instead of being an extreme exception.

      It went so far that I showed the resulting assembly code to a teacher of pointer arithmetic vs. table iteration, since processors have special instructions for table iteration and compilers get more hints from table iteration it was about twice as efficient.

    7. Re:Not all coding requires the same skill set by Anonymous Coward · · Score: 0

      Doing C++ and assembler pointers in my teens. It's not difficult if you just learn the language that has it properly. I'd argue, that today it's mostly irrelevant knowledge though.

      I think he means that CS and formal education may provide you with the proper background so you can take a simplistic solution into enterprise-level BS. Sometimes, it helps, but very often, the remedy can also be worse than the cure..

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

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

    10. 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.
    11. 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.
    12. 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.
    13. 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.

    14. Re:Not all coding requires the same skill set by Anonymous Coward · · Score: 0

      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.

      He knew how to do C++ quite well, better than I at the time; but, then we needed to do a problem that required basic knowledge of double-integration. Again, he didn't know how I got the right answers (he was very bright, but seemed to have a mental block concerning calculus), and so he pushed my submission through without really reviewing it.

      Finally, I noticed a bit of really ugly code. I wrote a few unit tests, and started refactoring it in my spare time. About three months later, with a lot of false starts, I submitted a "new" version of it that was clean and easy to read. He blew up that "someone" who worked there prior wrote that code, and nobody knew how it worked, so we couldn't touch it because it broke quite easily. The same mistrust, the same lack of understanding, eventually the same result.

      I went on to a great programming career (it's been nearly 20 years now). I can't find his name on linkedin, and from my attempts to reach out, he may have gone back to BestBuy (which is a shame, because he really did know C++ very well).

      What do I attribute the difference in our careers? He knew how to program, I knew how to program; but, I knew computer science. He had to figure out every already solved complicated puzzle in computer science all by himself, time and time again. My degree has given me a 60 year head start in understanding algorithms, approaches to specific problems, and knowing the limits of computation. He could get that same head start, it's not precious or rare; but, few people are motivated enough to actually do it independently. I'm not, and that's why I went to a good university, where they set the tempo.

      Yes, I was programming before, and it is a passion for me; but, there is no doubt in my mind that I would be a lesser programmer if I was content to just know how to program. The Comp Sci degree has paid off in spades.

      If you are in school, don't waste the opportunity. Learn all you can, it's a waste of your time (and life) to think of school as a four year waiting period before needing to get a job

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

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

    17. 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."
    18. 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.
    19. 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.
    20. 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.
    21. 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.
  27. 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 Anonymous Coward · · Score: 0

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

      Professional gain pays for the fun.

      Just make sure you don't direct all your time to work, you can't get that back!

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

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

  28. Education: Selling People a Lie? by Anonymous Coward · · Score: 0

    Not just for programming, it's every profession.

    Any profession can be self taught (assuming you're smart enough). It may take loner, but it can be done.

    Some people just like to waste money and be spoon fed what someone else thinks is important for the profession.

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

  30. Yep by Anonymous Coward · · Score: 0

    This is not new, and well supported by IEEE and ACM research. One paper I keep handy is this one:

    http://ieeexplore.ieee.org/xpl/freeabs_all.jsp?arnumber=291203

    The problem is the time-variation of 200:1. Some people take 200 years to do what another can do in 1. You can't "teach" past a 200 year barrier. Case closed.

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

  31. 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 Anonymous Coward · · Score: 0

      Self-taught software engineer here. I learned my best when there was a problem to solve with real benefits. Being able to do the work of 1 week of 6 data entry people for 5 minutes and the click of a button is a great power.

    2. Re:CS Education by Anonymous Coward · · Score: 0

      He is right in one thing. Programming is not easy. It is easy for programmers.

      If it was easy we wouldn't have such crappy software, most projects would be done on time instead of late, and the web wouldn't be full of people asking and seeking programming help.

      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

      That's completely wrong. Everything you listed is part of software engineering and has nothing to do with computer science. Far too many schools try to toss the two together and we end up with all these CS people who are crappy SEs and wannabe SEs for drop out because some theory they're never gonna need is too distant from what they were expecting to learn. In art classes, your drawing course isn't done in clay. CS and SE courses are screwed up like that. Go to any college that makes a distinction between the two.

      You cannot really teach this at university

      If the people at a university can't figure out how to teach a topic they're supposed to be teaching, you're at a bad university. Why oh why do people in their field always think it's some type of special skill that only a few can learn? Most of our school systems are designed for groups of people and that limits the way you can teach things, but you can teach people if they're willing to learn and you break things up in the right way for that person.

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

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

  32. We could start by telling people that it's hard by Anonymous Coward · · Score: 0

    Really, programming is the only profession I know of that consistently downplays the skill it requires. We all know that programming well is not at all easy. Sure, everybody can follow a tutorial and get instant gratification from writing a simple program that they could just as well copy verbatim from the tutorial, and then getting it to run. That's not programming. That's parroting.

    Just because I could sit down at a computer and write in 10 minutes what my fellow students had been struggling with for an hour doesn't mean that programming is easy. A musician who can flawlessly and effortlessly play a live concert wouldn't call that easy. An interpreter who can translate multiple languages fluently and correctly wouldn't call it easy. Yet somehow we think we have to tell people that programming is easy or nobody would want to do it. Even if you ignore that programming often requires deep insight into the application domain, just the basic task of writing a non-trivial program where everything it needs to do is specified in great detail is so hard that the chance of writing it bug-free is practically zero. Programmers deal with complexities that are quite simply unmatched in any engineering discipline, but we tell people programming is easy. Let's not do that anymore.

    1. Re:We could start by telling people that it's hard by Anonymous Coward · · Score: 0

      Programming is easy for everyone. You just need good teachers and languages. I will continue to say that programming is easy. What is your plan to stop me?

    2. Re:We could start by telling people that it's hard by Anonymous Coward · · Score: 0

      You can't argue and win against crazy.

  33. Episode 1 by Anonymous Coward · · Score: 0

    Ah, it appears you haven't seen The Phantom Menace yet.

    Turns out The Force is actually a by-product of microscopic symbiotes/parasites called midichlorians. Nothing mystical about it at all.

    http://starwars.wikia.com/wiki/Midi-chlorian/Canon

    1. Re:Episode 1 by Anonymous Coward · · Score: 0

      Midi-chlorians channel The Force, they don't create it.

      Didn't you even read the article you linked (or rather, failed to link)?

  34. Everything is easy, the 500th time. by Anonymous Coward · · Score: 0

    As a self taught programmer who made a career of it I strongly disagree. Anybody can learn to code. And I mean learn, not "be taught". All it takes is years of painstaking work. Wether it's done as a kid for fun or as an intern for beer money or as a hack consultant for a small fortune, all that matters is the number of hours under the belt. And having the opportunity to put in those hours is a strong barrier to entry.

    The specific mind set is experience, even for those who got it randomly.

  35. The point of education.. by Anonymous Coward · · Score: 0

    ...is not to train you to be able to do easy stuff that anyone can do. It's to give you a deep background in a subject you have aptitude for.

    It's true that the vast majority of coders are self taught. It's also true that the vast majority of coders do little more than connect pre-assembled packages together and add "Ville" to the title screen.

    Does that mean you necessarily need formal education to be a good programmer? No...but if you really are a good programmer and not a hack, you'll gravitate toward formal sources of information, whether at a school or online.

  36. Re:Big parts of the US college / higher ed sytems by Anonymous Coward · · Score: 0

    Dear God tell me English is not your first language...

  37. 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 Anonymous Coward · · Score: 0

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

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

    3. 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)
    4. 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.
    5. 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.

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

  38. 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.
    2. Re:The title is lying by Anonymous Coward · · Score: 0

      People who go to school never are 186% correct, they top out at 100%, so he's already far more advanced than those with degrees.

    3. Re:The title is lying by Anonymous Coward · · Score: 0

      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.

      I guess all those "classes" and "instructors" I had in college weren't actually "teaching" me anything.

      You should buy my new book, Teach Yourself Autodidactics.

  39. 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.
  40. 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.

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

  42. WTF? by Anonymous Coward · · Score: 0

    The first premise here - what it's all based on! - seem to have a huge flaw. Format education works just fine; the computer science degree is pretty much the gold standard. What the hell are you talking about?

  43. Re:THINK DIFFERENT just like everybody else by Anonymous Coward · · Score: 0

    See reddit.

  44. Doctors by MondoGordo · · Score: 1

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

  45. Motivation, not aptitude by Anonymous Coward · · Score: 0

    The issue isn't about aptitude, it's about motivation. If a person chooses to go into a field for money rather than because it interests them, well there you are. If the motivation isn't because it's fun, it's a lost cause in any field.

    1. 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.
  46. "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!

  47. teach by Anonymous Coward · · Score: 0

    programming, or learn it

  48. Programming is easy and makes money by Anonymous Coward · · Score: 0

    Anybody can do it. You can teach yourself, or have someone teach you. It is good for single moms too, as it can be done remotely. I encourage anyone to try programming. We need more programmers, and need to get the word out!

  49. The main reason by Anonymous Coward · · Score: 0

    The main reason businesses want everyone to code is to drive the price of coders down. I mean how much do you pay if everyone can do it? Why not train everyone on how to manage a business so that we can drive that really expensive cost of management and CEOs down instead?

  50. Why not teach everyone how to be a carpenter? by Anonymous Coward · · Score: 0

    The population is growing, there is always a need to build new houses. Let's teach everyone to be a carpenter!

    1. Re:Why not teach everyone how to be a carpenter? by Anonymous Coward · · Score: 0

      We teach people about fuse boxes. Why not programming? If you are competent, you won't feel threatened. Are electricians put out of business by accessible fuse boxes?

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

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

  53. So true by Anonymous Coward · · Score: 0

    But he glares over the even more obvious - not everyone *wants* to learn to code, it just doesn't appeal to everyone, nor should it. No one will ever have aptitude for something they have no genuine interest in, and it really is ok for different people to be good at different things.

  54. Maybe there is an advantage to formal training? by Anonymous Coward · · Score: 0

    In my experience, self trained programmers can be very proficient in their own way. But usually when working strictly on their own code.

    The problem comes in working in groups. When that happens, then issues of structure, and standards, take on greater importance.

    Again, just my experience.

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

  56. so how is this diffrente by Anonymous Coward · · Score: 0

    i dont se the difference between this and any other occupation. If you have an interest and good learning skills you can make it ibn to any occupation without any formal education. me myself have an eee degree but worked in construction, sales and a couple of other occupations witch i dont have an degree in. started at the bottom and worked my way up. Any decent company will recognize a good employee and see heir potential.

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

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

  59. anyone. by Anonymous Coward · · Score: 0

    Anyone with access to the internet can learn to code if they have the aptitude for it.

    Anyone with access to the internet can install Linux if they have the aptitude for it.

    distrowatch.com

    Ubuntu and Redhat/Fedora are the Microsoft wannabe's. The rest are great.

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

  61. 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
  62. Maybe this is akin to tossing hobbits at a wall by Anonymous Coward · · Score: 0

    One or two really good ones might stick at it.

    The whole everyone can code thing is probably a reaction to the majority of shockingly bad programmers out there, and the powers that be are desperate to find actual talent any way they can.

    1. Re:Maybe this is akin to tossing hobbits at a wall by Anonymous Coward · · Score: 0

      The talent is out there, but the employers fail to draw it because:

      1) they don't offer enough money
      2) they let HR toss out good candidates who don't pass the filters
      3) they don't challenge the people they have and invest in them

      Employers today want only rock-star talent, but at piano lounge prices.

    2. 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'
  63. Ya no sh*t. by Anonymous Coward · · Score: 0

    Uh there's a reason I didn't try out for the football team, and likewise, a reason why the jocks didn't log into my BBS during high school....

  64. 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.
  65. Teaching programming by Anonymous Coward · · Score: 0

    Maths and CS are not properly. You don't start with "Hello World" printing Basically, a problem, it's analysis, what have to be assumed (leading to multiple different solutions), translating the human problem solving into coding and data structure and these components have to be slowly introduced brick by brick. Text book writers (most contract writers) do not teach and assume the way they understand is the way every one will understand and the teachers (without working in industry and learning the practical details) , badly written text books for getting tenure and the array of problems clog the learning processes. Of course one needs to have aptitude and attitude to learn not just get a name sake CS degree.

  66. Agreed Geometry proofs = decent indicators by Anonymous Coward · · Score: 0

    See subject: I've mentioned that on /. before - I absolutely LOVED that course, & 1 time, I wasted 3/4 of a test on 1 proof that I even stayed after class + into a study hall period (which my teacher let me do) to finish it... so, grading day came, & the teacher marked me wrong. I waited till the END of the class to ask why it was wrong & we stepped thru it (after I asked he humor me we do so) - he brought in the math dept. head/chair & they BOTH agreed I had "proofed the proof" solving it a different way... pretty cool I felt.

    I ended up becoming a computer programmer professionally 1994-2008 (semi-retired now into a different line of business of my own altogether really now) but I will always feel that the ability to solve geometry proofs is a PRETTY GOOD INDICATOR of whether you'll like solving problems in programming!

    APK

    P.S.=> So, in the end? Agreed, 110% here - 'great minds think alike'... apk

  67. 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.
  68. Self-Taught vs SE vs CS by Anonymous Coward · · Score: 0

    It seems a lot of people are confusing the three, as they are not the same. All three write software. One will write software for business companies, design websites, your (no offense) mundane software. One writes large-scale software, using professional means to accomplish this in the most efficient, and sound manner. One designs algorithms for new problems and proves them correct, proves a network protocol secure/correct, writes/designs new languages and compilers, works on AI, and all the high-level abstract problems.

    One is not better than the other (one is obviously more difficult than the others) and all are needed.

    1. Re:Self-Taught vs SE vs CS by Anonymous Coward · · Score: 0

      And a lot of low-level Universities are calling their vocational programming curriculum computer science programs, to everyone's detriment.

  69. Based on my browser history by Anonymous Coward · · Score: 0

    I only hear that we need women coders.

  70. I remember THAT "hurdle"... apk by Anonymous Coward · · Score: 0

    During my CS Associates Degree work - we used MASM 5.0, Borland Turbo C++ 3.1, & Borland Turbo Pascal 5.0 - doing single unit (.pas) programs (.c & .h in C/C++)...

    Then "projects" in C++ came & I said "WTF What are ALL of these files & why won't the .c one compile fully?"

    Hence colliding with projects for the 1st time in an OOP language!

    Which lent itself to object frameworks & RAD development tools (my 1st being VB & later one that has been my fav. ever since, Delphi) to create Windows apps FAST!

    (Way faster than using resources studios & binding controls to function + procedure interfaces events the OLD stodgy manual way passing object references to them - before that, it was a huge 'framework' to build a primitive Win3.x style window as I saw guys who'd been @ it longer than me THEN doing).

    * Too bad you never used Delphi -> http://www.embarcadero.com/pro...

    (It, like VB before it, made GUI construction a snap & then the Object.Property & method that acts on it takes over - building apps is designing your interface for functionality FIRST then double-clicking each control finding the event you want to program for it (e.g. click, doubleclick etc.)).

    At 1st it seems like a HUGE hurdle (it is) but you take to it like a fish to water W/ THE RIGHT TOOLS FOR IT THAT MAKE IT EASIER (got nicer around 1993 on that way for Win16/32 devs).

    APK

    P.S.=> You'd have liked it probably, I know I do!

    Oh, here & there I'll write up a console-mode/tty term/DOS style app (I write them to be fast, pretty doesn't matter, & usually to process data for say, filters, fast from lists I import online that I build into programs hardcoded (faster than listbox loads for example) like this built in Delphi -> APK Hosts File Engine 9.0++ SR-4 32/64-bit http://start64.com/index.php?o...

    I wrote 7 small "dos type" apps to build that faster (for making false positives filters & removing bloating junk in hosts datasources have (comments))... apk

    1. Re: I remember THAT "hurdle"... apk by Anonymous Coward · · Score: 0

      Hey apk what's the link to your hosts file?

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

  71. bullshit. by Anonymous Coward · · Score: 0

    these anti-formal-education people are getting to be just as bad as fox news with their made up statistics:

    "the majority of successful programmers are self taught" is complete bullshit. successful self taught programmers are the exception, not the rule.

    1. 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'
  72. Teaching is hard by Anonymous Coward · · Score: 0

    If 30-60% of the freshman are failing a class, your education institution is broken. (Unless you think wasting that much time is worthwhile).

    Teaching requires training, too. And, since most schools hire for credentials in programming, and require minimal, if any, coursework in teaching, you get really bad teachers - who then blame it on their students.

    Of course the only good programmers are self taught, much of the coursework and curricula are junk.

    1. 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'
  73. The Chosen Few by Anonymous Coward · · Score: 0

    Hundreds of post from programmers to each other telling themselves how 'lite they are. Golly, what a surprise.

    1. Re:The Chosen Few by Anonymous Coward · · Score: 0

      yep, we are. This is a era; get used to it...

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

  75. 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
  76. 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

  77. 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'
  78. Most people go into by Anonymous Coward · · Score: 0

    programming to make money. And they suck at it. A few people do it because they love it. And those are the ones that are good.

  79. Re:Egalitarianism by Anonymous Coward · · Score: 0

    Real adults eventually move past Atlas Shrugged when they gain enough life experience to know that nothing in the book resembles anything in the real world, nor the characters anything like real people.

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

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

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

  83. Barriers to entry by Anonymous Coward · · Score: 0

    ... If the majority of current professional software developers are self taught, how can there be barriers to entry? ...

    The barrier to entry is right in front of your eyes, man !

    The biggest barrier to entry is "self taught" - ie., those who are incapable of (or won't) self-taught simply does not have the tenacity to make it in this field

    IT, unlike many other profession, does not offer much pf the 'hand-holding sessions' simply because the approach to solve a particular problem by person A might not make any sense to individual B

    1. Re: Barriers to entry by Anonymous Coward · · Score: 0

      I agree completely with this.
      Here's the reality of being a programmer: You're never going to stop learning new skills. Ever. And you're going to be learning them on your own.

      If you need a class to teach you, you're already not going to make it.

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

      This.

    3. Re: Barriers to entry by Anonymous Coward · · Score: 0

      Yes. I learnt programming/coding when I was 12. Went to uni when I was 18. Did learn very little new from uni (thought some design patterns are useful).

      Nowadays try to get other work as programming is interesting.. when you are a teen but when you become older you want to do something intellectually more demanding.

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

  85. bleh by Anonymous Coward · · Score: 0

    Because most people who apply just want to get shit done and get money. Yes they call it a shit. Programmers at heart are logical artists, but majority of people are a-holes.

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

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

  88. analogy to statistics education by Anonymous Coward · · Score: 0

    for a hundred years, statisticians have been teaching a wide range of students the null hypothesis and p values and so on
    and it is clear that a wide range of people pass the course and don't understand statistics

    you would think, that after 100 years, the statisticians would say, hey, it ain't workin, lets try something new, like stat without the null hypothesis

    same thing with programming: maybe we need a radical re think of how programming languages work

    of course, both solutions would lower the salary of the teachers, so no change is foreseen

    ps yes, there is some programming where you have to know elliptical bessels or something, but that is a tiny minority of code

  89. It's posted in my 'p.s.'... apk by Anonymous Coward · · Score: 0

    See subject & my last post you replied to - you'll find it there (as an example of a Win32/64 GUI program I did that has several DOS type/charactermode/tty term apps I did for it to build it faster on rebuilds).

    APK

    P.S.=> "Onwards & UPWARDS"... apk

  90. Math Education: Selling People a Lie? by Anonymous Coward · · Score: 0

    Many of the arguments made here could easily apply to math education. However the math education debate concluded circa 1500. Math / programming are high aptitude tasks, however the solution is not to take them out of education. The underlying problem is that more and more students are being socially promoted through lower education. These same students hit college with the idea that they are entitled to whatever degree they want. Rather than rallying against Yvette Cooper, the 'year of code' or 'hour of code' people, 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."

    However I do agree that the rhetoric saying, 'Coding is easy' is extremely unfortunate. Coding is not easy, and for that matter neither is math. Coding is worth while and as with everything that is worthwhile, coding is not easy.

    1. 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
  91. Can you stop people who want to from coding? by Anonymous Coward · · Score: 0

    If someone has aptitude and the will to code, can we stop them? Won't they naturally be drawn to it? If not, all the education in the world won't matter. Cheap laptop + Python = learning to write software.

  92. 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%.

  93. Our project seems to agree by Anonymous Coward · · Score: 0

    Our recently-completed, federally-funded project to help all small businesses get online seems to support the conclusion here. No real coding involved, but enough similarities to be relevant.

    We provided free-as-the-air, ecommerce-capable, responsive websites, based on a vastly simplified WordPress framework, to a sector of businesses struggling in our state. We had a few takers, but it was basically a complete fail.

    Why?

      - Too steep a learning curve (We'd offer quick tutorials on logging in, the difference between posts and Pages, and... lost them right there).
      - Further, too costly in terms of time and effort.

    If we were to redesign, we'd have to make it simpler then Facebook, which is still too complicated for almost anyone to write a good post on. The notion that "everyone" can code is ludicrous.

  94. 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.
  95. 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
  96. 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.

  97. Why teach programming? by Anonymous Coward · · Score: 0

    You don't need to learn programming in order to use a computer. That may have been true 30-40 years ago but is no longer the case. As a career, it turned out to be a terrible choice. Back in the '80s lots of people thought programming would be the job of the future. Those were the days of the star programmers, especially in the gaming industry. But things changed. Now, being a programmer is worse than being a garbage hauler, and I mean someone who has to carry leaking, torn open garbage bags by hand. It's that bad, and it's becoming worse. It's thankless, boring, repetitive, and the worst thing about it are the people who actually kid themselves into thinking they have it great: those who work 24/7 and will be grateful for pizza after hours. They're literally working themselves off for scrapes of food, yet they hang on because they know they're hopeless basket cases with no social skills and Out There they would be lost. In a couple of years they will be made redundant and thrown into the streets and they will snap, I tell you. Leave computers to chumps and move to management. It's only a job, it's not your life.

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

  99. True for dozens of careers by Anonymous Coward · · Score: 0

    Speaking as someone with an engineering education (electrical), you see this sort of thing in plenty of other fields.

    There are individuals who could easily teach themselves nearly any vocation given accessible resources. Many of my engineering classmates came out with a degree but little ability, meanwhile there are plenty of people showcased across cyberspace who demonstrate impressive engineering talent with no formal education.

    It's been this way since the dawn of time. Heck, some of our most important medical advances came from mavericks who simply had an interest in the subject, and that's arguably the least accessible field of all.

    You probably see more of this in software development than other fields simply because the resources are more accessible, and this is likely true because the field itself is largely focused on making information accessible in the most user friendly way possible.

  100. Most people in most jobs are self taught by Anonymous Coward · · Score: 0

    This is the truth which so many miss. You are always learning if you want to progress at all.

    Software Developers should be learning new skills from the day they start their first job. Those who don't will find themselves constantly junior and at risk of losing their jobs to cheaper employees.

    Formal education only takes you so far, and the main aim should not be to spit out a fully formed programmer, but to give people the tools and confidence to continue learning.

    So, at school, lets teach children not to be afraid of tinkering with computers, that anyone can do it if they are interested.

  101. 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'
  102. Yea, Python works but... apk by Anonymous Coward · · Score: 0

    See subject: It's a good scripting language, no questions asked, but can you do things that other more "full-blown" tools can? E.G. - Device drivers??

    * What I don't like seeing is the advent of the "cut & paste code from others' work" coder due to places like StackOverflow + Open 'SORES' - that's NOT coding - that's plagiarism, & doesn't teach what formal education does (saves you tons of time reinventing wheels or solving problems that were solved, usually efficiently, years to decades ago)... far from it.

    (That crap doesn't give one the understanding it takes to really solve problems due to knowing what's going on algorithmically, & perhaps just as importantly, knowing your OS + networking & hardware also - they help solving issues also!)

    APK

    P.S.=> Python's exactly what you called it - a good 'handyman's' tool - but there's a LOT you can't do with it as opposed to say C/C++ &/or Delphi for example... apk

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