Slashdot Mirror


Better Tools For Programming Literacy

waderoush writes "Adam Wiggins, co-founder of Heroku, agrees with anthropologist Bonnie Nardi that programming isn't just for geeks. The problem, he says, is that today's tools for teaching programming are woefully inadequate. In a commentary, Wiggins argues that there are two major gaps preventing programming tools from being accessible to beginners: 1) they're too fussy, requiring extensive setup, and 2) they're focused on the technology rather than everyday tasks. A good tool for learning programming, Wiggins argues, would emulate an Excel or Google Docs spreadsheet – beginners would be able to fire it up instantly, and would be able to get useful things done right away. (He's dismissive, though, of visual programming tools that 'attempt to hide logic behind a point-and-click interface.') 'Broad programming literacy is crucial in a world increasingly made of computers,' Wiggins says. 'Despite common stereotypes, programming is not out of reach for the average person,' as long as the tools are easy to set up and specialized on the programmer's task."

65 of 317 comments (clear)

  1. Yes, it is out of reach by Anonymous Coward · · Score: 5, Informative

    People can't program the VCR clock. (For the young ones: Back in the old days we called the Tivo "VCR". Just like everything must have a camera today, back then everything had to had a clock, and it had to be set manually.) You can barely teach (most) people algorithms that aren't completely linear. If you think you can teach them to develop algorithms, you need to get back in the trenches and deal with normal people. Developing programs means to understand problems in depth and to correctly answer a lot of "what-if" questions about complex systems. Normal people actively try to avoid doing that kind of thinking.

    1. Re:Yes, it is out of reach by eulernet · · Score: 4, Insightful

      This is because people are not interested into the problem, they are only interested by the solution.

      And this is true for everybody: personally, I don't really care about how my car works, I just want that it works.
      When it does not work, I go to a garage to solve my problem.

      Trying to simplify programming will only give a false sense of expertise, because REAL programming is tough: it's about solving abstract problems.

      No matter the difficulty of the subject, there will always be people who are interested in understanding, and people who don't care (even if it's simple).
      So I would prefer that, instead of training people who don't care about programming, we train people who are interested into programming.

      And the best tool to make people interested into programming is games, because a lot of programmers started programming because they wanted to write their own game.

    2. Re:Yes, it is out of reach by slimjim8094 · · Score: 4, Insightful

      The VCR clock was required to set up a scheduled recording, so hardly pointless. People wanted to be able to do that, but couldn't because they couldn't figure it out. I think the gp's example holds

      --
      I have developed a truly marvelous proof of this comment, which this signature is too narrow to contain.
  2. I agree that programming is not for geeks by gweihir · · Score: 5, Insightful

    It is a far more demanding task that "geek" would qualify you. It requires talent, education and experience. Those that gripe about the tools do not get it or have never gotten beyond toy examples. Sure, a better tool helps. But when you create software (as opposed to slapping together some disaster waiting happen), the direct level of skill needed to use the tools is actually a minor concern. In fact, the language used is a minor concern, the problem is what matters. Insofar I even agree with the article. But refusing tools that are a bit complicated is the hallmark of somebody that does not get it.

    Case in point: Pen and paper are exceedingly difficult to use for writing. Yet we spend years on every person to qualify them to use it. Yet compare the complexity of pen&paper on one side, and a computer on the other side. Anybody expecting the computer to be easier to use just has no clue at all.

    All that "simple" to use tools for software creation do is cause even more really bad programs to be written, as suddenly everybody and their grandmother thinks they can do it. Like giving calligraphy pens to amateurs. Sure, they can produce some smears, but they cannot produce anything worthwhile.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    1. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 5, Insightful

      Bullshit. Programming still is *piss-easy* compared to our actual mental abilities. Everyone of us does all the stuff you need for it in daily life anyway:

      Everyone of us uses the concept of identifiers (think variables), when we say “he" instead of "Jim", or even "Jim" instead of shoving that person in front of your eyes.
      Everyone of us uses the concept of sequences of commands, when making a to-do list.
      Everyone of us uses has no problem with including tasks into that to-do list, that themselves are a set of steps one could write down somewhere else.
      Everyone of us is able to say "Do this 10 times.", "Do this for all people in the room.", or "Until you have at least $1000, keep on saving.".
      Everyone of us is able to make lists, use property lists (dating site profiles, etc), handle tree structures (company hierarchies, file systems), and even more complex ones.
      Everyone of us uses grouping (think modules) all the time in daily life. It's part of how our brain works, to group things into classes.
      Everyone of us can use and understand the concept of expressions, when we read and write recipes. (Which essentially are programs: dinner = [(simmerFor (10 min) (add [cream,whiteWine,(dried chickenBroth),nutmeg,(piecesOf broccoli),salt,pepper,garlic] (fried (chopped chickenBreast)))) + ((cookedIn saltWater (8 min)) tagiatelle), readyMadeGarlicyFriseeSalad ].)
      You do the next one.

      There is absolutely nobody with a normal working brain who can't program. With the right interface and presentation, your grandma can program medium-sized software packages, no problem.

      And most importantly: There's nothing wrong with small shitty scripts grown from one-off one-liners.a

    2. Re:I agree that programming is not for geeks by JaredOfEuropa · · Score: 4, Interesting

      Don't confuse programming with software engineering. The latter does require a good deal of talent, education and experience. But programming? I agree with the author that many people can learn, given the opportunity and the right tools.

      Case in point: my high school taught a (somewhat unusual) computer class; this was in the mid-80s in what you might call a good high school (the Dutch high school system is divided in levels, the highest being "pre-university education" which was the level of my high school). The class consisted of some basic computer science (what is a computer, CPU, I/O bus, etc) as well as hands on programming in BASIC. This was a mandatory class which meant that we had a mix of geeks and non-geeks sitting in, but pretty much everyone was able to grasp the basic concepts of computing, logic, and programming, to the point were students were able to translate simple problems into working programs. Does this produce useful programmers? No, but it helps getting more people interested in the field, and in my current line of work I can see a clear difference between people who have had such a basic education in computing, and those who haven't. For people in IT who aren't actual software engineers, it's still useful to know a little bit about computers and programming.

      To achieve this, having the right tools is important. Complex tools may be necessary when writing complex software, and a software engineer refusing to master complex tools because they are complex is silly, but for a beginner, complexity distracts them from what they are actually learning: writing a program. That's why BASIC is still a good tool for teaching laymen about computers; it might not be a very elegant language with stuff like GOTO, but beginners can have a working program up and running in minutes, doing simple input and output. Contrast that with something like C, which requires you to set up and master a compiler first, which is no easy task for someone just starting to program.

      Your example of writing is a good one. Like programming, this too is something worthwhile to teach to the masses, and many are able to gain a basic proficiency in it. But you woudln't give a calligraphy pen (or a complex programming tool) to an amateur, you give them a BIC pen (or something like BASIC) so they can master the basics of the art without having to learn advanced tools as well.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    3. Re:I agree that programming is not for geeks by martin-boundary · · Score: 3, Insightful
      No. Writing is an excellent example here.

      Think about ALL the people in the world. There are billions of people who've learned to write, but how many of those can _really_ write a letter if they have to? I'll accept even people who write with bad grammar and spelling mistakes. All I want is people who can write an actual letter that is sufficiently intelligible to serve a simple purpose.

      Well? I expect less than half of those who have learned to write are actually able to do so. And if they can't even write a letter after having been taught the alphabet, neither can they write a program if they would be taught BASIC..

    4. Re:I agree that programming is not for geeks by slim · · Score: 4, Insightful

      You could learn to do cryptic crosswords. Most clues are modelled around a handful of patterns; general knowledge is a barrier, but you can allow yourself Wikipedia.

      Your grandma could learn to program; it might not be worth it, depending on her age and ambitions.

      All of these skills are learnt, learning takes time, and it's an opportunity cost. If I'd spent less time learning to code, I might have spent it learning to draw, or practising guitar, and I'd be better at those things. That's not about mental ability; it's about choice of specialisation.

    5. Re:I agree that programming is not for geeks by Anonymous Coward · · Score: 3, Insightful

      But you must understand the concept of "identifiers". Before you are 9-10, the name of your mother is useually just "Mom"... but so is everyones mother is named "Mom"... So now it is "joeys mom"... which is not "my mom"... and neither is a correct identity.

      Concept of a sequence of commands - not until you are told "No" long enough. The problem is not the concept of a sequence, but one of generating a sequence. And doing it properly is hard. It takes over twenty years for people to write a sequence of words correctly... even then they will do it wrong. As for a "to do" list - how many times are things left out. BTW, a "do do" list isn't ordered - it is a random list of things to do with no specific ordering implied.

      But saying "Do this 10 times" is frequently an exaggeration... and therefore not really done. Especially when 5 is enough. Or it really needs to be done 20 times... or even forever. And "keep on saving" always has an exception you don't expect.

      Nearly everyone handles lists.. If they can read. And comprehend what they read. Not everyone comprehends organization into trees. That is why you still fine people with thousands of files in one directory (which is also promoted by the worst operating system ever foisted off on the world).

      The same problem applies to grouping. Modules are not general. And they are not understood by people that do not understand tree structures either. Programming modules are founded in mathematics... and most people do not understand mathematics either.

      expressions... Right... Like, you know, really. As if... But people DON'T understand logic, for the most part. And how many times are recipes are "for disaster". It takes a decent cook to understand recipes in the first place. A recipe does not include directions on how to use utensils, or even the names of the utensils. And you expect the unknowing to be able to write a recipe? And your recipe is not understandable - what are [( for? and what is chopped chiekenBreast - 1 inch size, 1/2 inch, or is that 1/4... And your recipe would not be understood by a chef.. Did you write it in LISP?

      As for programming - it takes discipline, logic, understanding limitations, understanding the language...

      And there is a problem with crappy scripts grown from one-off liners - when someone else has to fix them. Or you forgot what it was for and have to fix it yourself.

    6. Re:I agree that programming is not for geeks by JaredOfEuropa · · Score: 2

      I'm thinking of the other half, the billions who have learned to write and are now able to write something useful. And how many of those billions got inspired to write something great? Likewise, I think it is worthwhile to expose more people to computer science and programming. It gets more people interested in the subject, and a sizable portion of students should be able to learn something useful from a beginners course, even if they never actually do any serious programming later. Programming teaches logic, expression of thought, and troubleshooting: all useful skills in many other fields. Just like I took biology in high school; I never did anything with it later in life (certainly not professionaly), but the knowledge still comes in handy every now and then. That's what a well rounded education is about. Vocational training is something else entirely.

      With that said, I agree that not everyone is going to be able to learn. But it doesn't require any exceptional skills or traits either.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    7. Re:I agree that programming is not for geeks by gweihir · · Score: 4, Insightful

      You fail to see the problem. What you describe is the "primitives" of a simple programming language. Understanding them does not help you write software of any meaningful complexity. Your argument akin to saying somebody that can carry around a brick and put it somewhere is able to build a house that is comfortable and durable. Not so, rather obviously.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    8. Re:I agree that programming is not for geeks by gweihir · · Score: 4, Insightful

      As I said, there is a mechanical component, namely interfacing the tools. It is a minor part of the whole. You can learn to play the guitar all you like, you will never be a good jazz-guitarist or guitar composer unless you have quite a bit of talent. Sure, you can plunk the strings and may even be able to play sheet-music with some degree of accuracy. But that is not worth a lot.

      The architecture and design of software is not something you can learn this way. Algorithmic is not. And the real-world problem analysis skills required to have your software actually solve a problem are not either.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    9. Re:I agree that programming is not for geeks by gweihir · · Score: 2, Insightful

      I am not confusing them. A reasonable programmer needs at least some software engineering skills. Otherwise you get people that write unreadable code, use the wrong algorithms that break systems because they just do not understand what goes in and the characteristics are, etc. Sure, once you have a detailed flow-diagram, putting that into code is just a mechanical exercise. But who do you think fills in the details here? A software engineer? Unlikely, far too expensive and then they could fire the programmer and have a secretary do the final step.

      Also case in point: If the programmers cannot handle the tools and you say everything that actually requires understanding of the machine, the problem, the solution architecture and design and some a bit harder to use tools, what competencies are left for a programmer? Is a programmer in your view just a hired moron doing the job of a per-processor?

      As to BASIC: That just leads to people that think they can program, but cannot. Even worse.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    10. Re:I agree that programming is not for geeks by martin-boundary · · Score: 2, Insightful
      While I agree that it is worthwhile to _expose_ as many people as possible to programming, I think you are being overenthusiastic about the expected success rate.

      Programming teaches logic, expression of thought, and troubleshooting: all useful skills in many other fields.

      Yes, except... writing teaches logic and expression of thought too, in a much more freeform and forgiving way. It doesn't even need a computer, just a pen and paper. The fact is that as a civilisation, we aren't doing that well on the simpler problem of writing, why should we do better with the more complex task of programming?

      With that said, I agree that not everyone is going to be able to learn. But it doesn't require any exceptional skills or traits either.

      Statistically, I've got to disagree with that statement.

    11. Re:I agree that programming is not for geeks by txibi · · Score: 2

      Everyone of us is able to say "Do this 10 times.", "Do this for all people in the room.", or "Until you have at least $1000, keep on saving.".

      Well you think that every one is able to understand that, but I know at least a person with a PhD in Law that is unable to understand the concept of "FOR" or a "WHILE", and we were 2 computer engineers and PhD in computer science trying to explain it...

    12. Re:I agree that programming is not for geeks by slim · · Score: 4, Insightful

      But TFA isn't about everyone becoming Donald Knuth.

      Millions of people derive great satisfaction from mediocre guitar skills (I know people who get a lot of pleasure from their guitars, who can hardly keep rhythm). There's a class of people who could get value from *very* basic programming skills.

      Difficult problems are difficult to solve, and require talent, experience and insight.
      Easy problems are easy to solve, and don't require as much talent, experience or insight.

      Example: an artist using Photoshop decides he needs 20 layers in progression of shades. Creating each layer takes 8 mouse clicks, including a fiddly colour dialogue. Or, he could write a for() loop in some scripting language or other, and create the layers in a few seconds -- and add the tiny script to their arsenal for reuse.

    13. Re:I agree that programming is not for geeks by JaredOfEuropa · · Score: 2
      You're talking about professional programmers, in which case I agree that you don't become one by using a few simple tools and doing a few courses.

      A programmer is someone who writes computer programs; any stricter definition is just elitism. If you can come up with (not just copy)
      10 print "hello world"
      20 goto 10

      , you're a programmer, even though you're just a beginner. So is the guy with the smarts to write a few VBA snippets to tart up his Excel spreadsheet. These are just hobbyists or guys writing bits of personal software to help them do their work, but they're still programmers, and what they are doing serves a useful purpose.

      As to BASIC: That just leads to people that think they can program, but cannot. Even worse.

      Worse than what? The problem is not crap hobbyist programmers; but the people who hire them to program professionally. If they remain hobbyists or write tools for their personal use, it shouldn't bother you.

      --
      If construction was anything like programming, an incorrectly fitted lock would bring down the entire building...
    14. Re:I agree that programming is not for geeks by slim · · Score: 2

      Your argument akin to saying somebody that can carry around a brick and put it somewhere is able to build a house that is comfortable and durable. Not so, rather obviously.

      And again, you're not allowing people to be non-experts.

      Not everybody can architect a house. Almost everyone can learn enough in a day to build a garden wall.

    15. Re:I agree that programming is not for geeks by gweihir · · Score: 2

      Indeed. You have to get the view a program has of the world, i.e. the abstraction used. Unless you understand that, nothing can help you. And by now I am convinced from experience that this cannot actually be taught, most people are just not equipped mentally to understand it.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    16. Re:I agree that programming is not for geeks by TheRaven64 · · Score: 2

      There are two hard concepts in programming, and your list doesn't cover either of them. These are recursion (induction, for the theoreticians) and pointers (indirection, for the theoreticians). The idea of a pointer as something that is a name for a name for a name for a thing, at arbitrary number of levels of indirection, and that you can work with these instead of with identifiers (which are a single, fixed layer of indirection) is something that a lot of people, even those enrolled on computer science degrees, have problems with. The idea of induction is also one that a lot of people struggle with. The concept that you can define something for a simple case and then define it for every subsequent case by defining a rule that simplifies it by one step is the other concept that a lot of people struggle with.

      Generally, people who grasp those two concepts in their first year have no problems completing their degree. Those that fail, tend to drop out. If you can understand them, then everything else is easy, but any list of everything that a programmer needs to know that misses them is flawed, to say the least.

      --
      I am TheRaven on Soylent News
    17. Re:I agree that programming is not for geeks by gweihir · · Score: 2

      An ad hominem argument, the hallmark of a mind that fails to come up with any good argument and knows it.

      And no, you cannot teach everybody how to read and write. Not even in the western world. Oh, you can teach letters and words, but there is something called "functional illiteracy" and it is not rare. Wikipedia puts it at 14% of all adults even in the US. And programing is far harder than reading and writing.

      I also have to say I am not at all scared about "the masses" finding out how easy it is to program. I am scared about all the damage they will do when trying to. And it has already started, e.g. with businessmen automatizing things using spreadsheets that bypass any organizational requirements for documentation, software quality, maintainability and even backup. These are disasters waiting to happen.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    18. Re:I agree that programming is not for geeks by Half-pint+HAL · · Score: 2

      Everyone of us uses the concept of identifiers (think variables), when we say “he" instead of "Jim", or even "Jim" instead of shoving that person in front of your eyes.

      False friends. Pronouns (he, she) etc are a closed set (think "keywords", not "variables"). And pronouns, like names, are fuzzy, context-sensitive references. It is precisely these linguistic constructs that make variables hard. We're not used to the fixed, uncompromising nature of an instatiated variable, and we're not used to the idea of strict scoping and overwriting of variables. I can talk about three different Jims without ever once making an explicit assignment declaration to the label "Jim".

      Everyone of us uses the concept of sequences of commands, when making a to-do list.

      But that would be a semantic list, not a procedural list. Far more like HTML than programming, and not much like that either.

      Everyone of us uses has no problem with including tasks into that to-do list, that themselves are a set of steps one could write down somewhere else.

      "Could", not "does". We're still in semantic mode. The idea that we have to spell every single step out for a process that a human mind has rationalised as elementary is counter-intuitive.

      Everyone of us is able to say "Do this 10 times.", "Do this for all people in the room.", or "Until you have at least $1000, keep on saving.".

      Yet we don't normally put in explicit and unequivocable block markers to say which exact step(s) to do 10 times -- again we rely on semantics to make it obvious what needs to be repeated.

      Everyone of us is able to make lists, use property lists (dating site profiles, etc), handle tree structures (company hierarchies, file systems), and even more complex ones.

      Funny that your example for a property list is a computer-based example, because we're normally not quite as neat as the internet would like us to be. Most profiles are incomplete anyway.

      Tree structures are very rare in most people's world, and most people use computer filesystems as a collection of flat or very shallow systems -- notice how Windows has "My Documents", "My Pictures", "My Music" etc. Within that most users will only go one or two layers down ("My Documents\University assignments","My Pictures\Christmas 2012" etc).

      Everyone of us uses grouping (think modules) all the time in daily life. It's part of how our brain works, to group things into classes.

      But our groupings are unclear, multiple, overlapping and interfering. Our structures are often self-contradictory and our brains handle the contradiction. OO has been fighting with this since the beginning, experimenting with classes, prototypes, interfaces, multiple-inheritance etc etc trying to create a means of reconciling computers' inherent anal retentiveness with human fuzziness.

      Everyone of us can use and understand the concept of expressions, when we read and write recipes. (Which essentially are programs: dinner = [(simmerFor (10 min) (add [cream,whiteWine,(dried chickenBroth),nutmeg,(piecesOf broccoli),salt,pepper,garlic] (fried (chopped chickenBreast)))) + ((cookedIn saltWater (8 min)) tagiatelle), readyMadeGarlicyFriseeSalad ].)

      Expressions like that are very abstract and actually quite difficult. A recipe is not written like that because most people would be incapable of understanding it. We go to incredible lengths to render a simple sequence of steps into a prose-like form that a human can accept.

      --
      Got them moderator blues I blieve I walk out the do', With these mod-points I been gettin', I 'most never post no mo'
    19. Re:I agree that programming is not for geeks by HeckRuler · · Score: 3, Insightful

      All I want is people who can write an actual letter that is sufficiently intelligible to serve a simple purpose.

      Dear mom,
      We're out of milk.

      for(x=0; x!=100; x++)
      if(cell(x,1) == 5)
      cell(x,2).value = "good";


      What? Do you think programming or writing are some sort of high art that the plebs can't comprehend? Doesn't my letter serve a simple purpose? Doesn't it convey a thought? Doesn't the for loop perform a function?
      No, most people will never be professional programmers, or write "moderately complex" software. Because they don't have to.

      but how many of those can _really_ write a letter if they have to?

      No true scotsman fallacy. Get off your high horse.

      I expect less than half of those who have learned to write are actually able to do so.

      That's because you have an EXTREMELY jaded and cynical outlook on humanity. Go talk to some people.

    20. Re:I agree that programming is not for geeks by Jmc23 · · Score: 2

      He didn't write that monstrosity in Lisp. I can barely understand it and Lisp is the only thing I understand.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    21. Re:I agree that programming is not for geeks by Jmc23 · · Score: 2
      Perhaps, the problem lies that most of the abstractions are created by programmers, and let's face it programmers have a unique way of thinking that's a bit different than the rest of the population.

      Coupled with the fact that these ad-hoc abstractions are usually developed incompletely, don't model the real world, and are frequently mired in tedious details it starts to become very clear why regular people are left out of programming.

      Seriously, programming language syntax is confusing and arbitrary. Pretty much the only language that doesn't get bogged down in tedious details, doesn't have inconsistent syntax, allows for easy construction of your abstractions, and is to some extent built upon something that everybody understands, a list, is Lisp.

      Now, the really strange thing is that most programmers can't grok Lisp! They get so lost in the details of their abs and algos that they need the jailed syntax and protection against stupidity that 'popular' languages foist upon them to keep them on track.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    22. Re:I agree that programming is not for geeks by gweihir · · Score: 2

      I agree with you on Lisp. The core language is strikingly elegant. I did some smaller work with it way back and really enjoyed it. I think the problem that most programmers have with Lisp is that if you do not understand recursion, it is very hard to get anywhere. That said, I am all for teaching (core) Lisp in school. You cannot get much more pure and simple than that. And maybe it will motivate the few that have the talent to go into software afterwards.

      However, as soon as you bring libraries in, Lisp is a mess. For example, the Emacs Lisp manual has > 1000 pages and that is just for programming an editor. I have heard bad things about Lisp libraries from people working with it in automated theorem proving as well, as random crashes, inconsistent runtime, the garbage collector collecting too much or too little, etc. That was 20 years ago though, maybe things have gotten better.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
    23. Re:I agree that programming is not for geeks by Jmc23 · · Score: 2
      I'll admit the library problem in Lisp still exists today, though probably not in the same way. There are so many abandoned libraries out there it's hard to tell what to use. Though just a little bit of experience with Lisp brings an understanding of the library problem. You see, it's just too easy to write your own solution. I've spent probably 3x the time looking up libraries than I spend writing exactly when I need after finding out it doesn't exist.

      I wouldn't use Emacs as an example. Most good lisp libraries that I use have documentation or dictionary on one page. There's a lot with no documentation, but a quick look at the source and you realize the documentation would probably come out larger than the source.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    24. Re:I agree that programming is not for geeks by locofungus · · Score: 2

      if(milk.quantity == 0) {
        pick up purse
        put on coat
        put purse in coat pocket
        open front door
        go out of front door
        close front door
        take purse out of coat pocket
        take key out of purse
        lock front door
        put key in purse
        put purse in coat pocket
        walk to car
        take purse out of coat pocket
        take key out of purse
        unlock car door
        open car door ...
        put milk in fridge
        close fridge door
      }

      Dear computer.
          5 is the good value.

      MOM: ABEND. Key does not fit in lock.

      Non programmer. Of course I *$%^&ing meant take the front door key out of the purse to lock the front door. What idiot would take a car key out of their purse to do that.

      Computer programming requires a pedantry that the vast majority of people are unwilling to tolerate. Even socially well adapted (good) programmers tend to bring a pedantry to social situations that at best, non programmers find quaint and amusing and some find unbearable.

      Tim.

      --
      God said, "div D = rho, div B = 0, curl E = -@B/@t, curl H = J + @D/@t," and there was light.
    25. Re:I agree that programming is not for geeks by Lodragandraoidh · · Score: 2

      I am scared about all the damage they will do when trying to. And it has already started, e.g. with businessmen automatizing things using spreadsheets that bypass any organizational requirements for documentation, software quality, maintainability and even backup. These are disasters waiting to happen.

      This is no worse than what 'professional' programmers are already doing to those same end users through zero-day exploits and bugs that confound easy use of their computing systems.

      Why not build automation tools instead that not only allow end users to handle some of their own automation without shooting themselves in the foot - but also ties those solutions into the enterprise systems as well? Geez guys - this is not rocket science. For that matter, we could also create tools that limit what application programmers can do to avoid the security pitfalls - and make programming faster and more accurate even for the professionals who shouldn't be doing systems level programming anyway.

      What I keep hearing is laziness, fear, and some amount of greed talking. Computers weren't designed for your private amusement. They are tools for the greater good - that is currently causing as much lost time and suffering as not having the computers would have in the first place. We need to do something about this.

      --

      Lodragan Draoidh
      The more you explain it, the more I don't understand it. - Mark Twain
    26. Re:I agree that programming is not for geeks by Hognoxious · · Score: 2

      Don't peddle your whiny excuses onto others.

      Don't sell your excuses onto others.

      WTF is that supposed to mean, you cretin?

      --
      Confucius say, "Find worm in apple - bad. Find half a worm - worse."
    27. Re:I agree that programming is not for geeks by plover · · Score: 3, Informative

      I'll give it a shot.

      There are two primary contributing factors to problems with respect to badly written software. One is that it's generally difficult to look at the software externally and determine its quality. I'm not an automotive engineer, but I can look at a 1980 Chevette, take it for a test drive, and determine that it was built from duct tape, bubblegum, and staples, and was not a well made vehicle. The same is less possible with software, which often doesn't offer those externally visible clues; and it's even more of a problem for non-developers to see its quality (or the lack thereof.)

      The other half of the problem is that providing solutions of any kind (not just software) enable further external dependencies upon those solutions. The fact that it's a software solution may make some people believe that it's reliable in ways that it is not.

      For example, a beginner programmer might write up some home automation code that turns on a light when the garage door opens. They might then extend it to make it dial a phone and play a recording when a button is pushed. And that's absolutely a great thing, because the kid is starting to learn.

      The problem starts when Uncle Joe, who is not a software engineer, says "that's really neat, now give that button to Grandma so that if she falls she can push it and we'll go help her out." But the beginner's software might have a hidden fault that causes it to only execute when the garage door is open, which it was throughout its limited testing. What has been created is a program that externally looks good, and so it gets reused, but has had insufficient testing and is in no way well-engineered or ready for production use. And nobody involved in the project understands that until it's too late.

      Not recognizing that the software is bad, someone then created an external dependency on that bad software. Grandma might fall when the garage door is closed, she pushes the button instead of dialing the cell phone because she believes the button will work, and instead goes unrescued for too long.

      This is of course a contrived example, but it's amazing how much bad code is woven into so many different places in the real world, with so many dependencies on it. And once you add those dependencies, it's often very hard to change them. Believe it or not, I've heard the management equivalent of "We can't take the button away from Grandma now, what if she falls again? It makes her feel better."

      This is not saying its bad for people to create software. What is bad is that people don't understand that what they've created is of low quality.

      --
      John
  3. Pure Data by pedestrian+crossing · · Score: 4, Informative

    I just started experimenting Pure Data, and it is an example of an environment that does this quite well. Although it can be very complex when you dig down into it, it's very easy to get started with and create useful objects without the "fuss" that TFA talks about.

    --
    A house divided against itself cannot stand.
    1. Re:Pure Data by gweihir · · Score: 3, Informative

      Although it can be very complex when you dig down into it.

      This is the problem with trying to simplify ("abstract") anything; you make the simple things easier and the slightly-less-than-simple things nearly impossible.

      Something Microsoft also excels at in their products. As soon as you leave the narrow area of what they expected you to do, configuring Windows gets more cryptic than Linux kernel programming. You should always make things as simple as possible, but not more than that. This is one example of where the limit was crossed. With that, people are tricked into thinking they understand the problem, when in reality they do not. This prevents learning, realistic self-assessment and will produce any amount of fundamentally broken software.

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  4. What is it with this idea nowadays by Shinmera · · Score: 5, Insightful

    It seems to me that a great deal of people have this idea in their heads that any and everyone is able to do any and everything. This is bollocks.
    Furthermore, blaming the inability to get interested in something or to cross a certain difficulty barrier on the tools is just laughable.

    If one can't take the first step in programming and get acquainted to the tools, he won't be able to make the later steps either. It takes commitment and interest. Reducing the first barrier won't bring a lot better programmers, it will bring in a lot more bad programmers that get stuck half way through and don't really help anyone.

    1. Re:What is it with this idea nowadays by HungryHobo · · Score: 3, Informative

      bullshit. some don't admit it but there's a hurdle to start programming, knowing where to start.

      it can be as simple as sitting down with someone for 30 minutes, showing them how to write a bash script, save it, make it executable and run it. 10 more minutes for the idea of looping and a few more giving them a list of good sites to read when they're trying to figure something out.

      6 months later I get an email from the guy asking esoteric questions about specific frameworks and has become his offices translator for when the needed to ask for software.

      You are everything that's shitty about the industry. I'm glad I don't have to work with anyone as toxic as you.

    2. Re:What is it with this idea nowadays by Shinmera · · Score: 2

      It doesn't really take knowing where to start. I didn't know either when I began, I just picked a book that I found interesting and started reading it, following the examples in the book, etc.

      Sadly I've made the opposite experience. I've tried to get a couple of people into programming, but it just didn't work out, even giving them a very simple start wasn't helping their interest. Sure, there's definitely people around there that are just waiting to be shown something until they can flourish, but I'm quite convinced that they'd make the start themselves sooner or later anyway. The fact that the tools aren't easy enough has nothing to do with this.

      And you did prove my point quite nicely. This guy did have the commitment and interest to get acquainted with the tools and even pick up everything else himself to get further into programming. That's awesome! But just the same, this won't happen to everyone else and having easier tools doesn't make more people suddenly fall in love with programming.

    3. Re:What is it with this idea nowadays by jbolden · · Score: 2

      It will create people with basic computer literacy. A good deal of education is about creating people with exposure to a topic but far short of professional knowledge.

    4. Re:What is it with this idea nowadays by Hentes · · Score: 2

      I don't think he means more professional programmers, but more people who understand programming. Just like it's great that every person nowadays learns to read. They don't all become linguists, but having that skill is an advantage regardless. I just don't think that people have a chance to understand programming without understanding the mindset of math first, so in my opinion if you want to teach people to code you should first teach them logical thinking.
      But while all people could benefit from learning it, not all of them are committed enough to jump through all the barriers at the beginning. I know many who were, but even for them simple friendly advice where to start could have saved months of torture. And I know many who weren't interested until someone showed them Javascript or a Python interpreter. Having to learn how to use a complicated IDE and toolchain just to write "hello world!" is an overkill. In fact, I've met people who learned programming at university, and were totally lost without their IDE. Seems to me like knowing how to write code with just a text editor and compiler is a skill in itself, and too much reliance on the tools can just as well make you a bad programmer.

    5. Re:What is it with this idea nowadays by Jmc23 · · Score: 2

      Which is a little wierd when you think about it. If statisticians know so much about stats why'd they focus on a stats package that can give you incorrect results? Even the inventor says it was a mistake, but he couldn't grok Lisp at the time, so came up with R.

      --
      Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
    6. Re:What is it with this idea nowadays by gweihir · · Score: 2

      How uneducated are you? "Talent", "intuition" are not excuses, they are very real. Maybe read up on the research before dismissing fundamental things that have been known for a long time indeed?

      --
      Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  5. Re:STOIC Platform by wonkey_monkey · · Score: 2

    Turn spreadsheets into mobile apps

    Not exactly a practical environment for most programming needs. Beside which, you should never trust anyone who scales their website images. Ew!

    --
    systemd is Roko's Basilisk.
  6. Pointless article by gigaherz · · Score: 4, Insightful

    He's saying programming is not as simple as Excel because programming doesn't have an equivalent of the SUM() function that does almost all the work for you when you are new to it.

    Yet, excel never tells you that you have to use the SUM function, or that A:A means the whole A column, or that $1$3 means it shouldn't change the row/column when spreading the formulas. But he wants the development environment to somhow not require knowledge of how a loop works, or what an array is?

    The problem isn't that programming is harder than Excel, at least not if you use a full-featured IDE with a decent language, like Visual Studio with C# 4.0. You can learn to drag a few controls to a new window, double-click on a button, and write something like "MesageBox.Show(textBox1.Text);" in seconds. No knowledge of arrays or functions necessary.

    Programming is NOT harder than excel, and there ARE tools that make it as easy as possible. Anything else requires "visual programming" which he states he doesn't want, either. But of course, excel doesn't "hide the logic" from you, right?

    The fact is, you need some basic knowledge to do any job. Excel requires knowing the syntax and function names, so does general-purpose programming, just like you need to know the parts of a car, and their use, if you ever want to build one from scratch.

  7. Re:So what they're really asking for... by TapeCutter · · Score: 4, Informative

    Like an old boss of mine used to say, "They want a fucking big red arrow that points to the answer"

    --
    And did you exchange a walk on part in the war for a lead role in a cage? - Pink Floyd.
  8. Re:Problem-solving... by mwvdlee · · Score: 3, Insightful

    Considering that a basic devkit like Eclipse (sufficient to write a lot of Java code) can be set up by downloading, unzipping and double clicking on the file with the colorful picture, I can only concur.

    --
    Slashdot social media options: AIM, ICQ, Yahoo, Jabber and Mobile Text. Why no MySpace?
  9. Re:Won't work by hugetoon · · Score: 2

    Worked for me :D

  10. Re:So what they're really asking for... by slim · · Score: 4, Interesting

    I'm not sure he knows what he's asking for, but I think I know what might address his concerns, and it's basically more embedded languages in apps that people use.

    Lots of people learned simple procedural programming with Word/Excel macros. Record a macro, look at the code generated, amend it. Now some people do it with VBA, but I'd say that VBA is more hidden than the old macro language was.

    He says people respond "OK, that's cool but what could I use it for?" - and the answer is anything repetitive or mundane that you find yourself doing at a computer. If you find yourself repeatedly going through the same sequence of clicks, a coder thinks "I want to automate this loop". A non-coder just accepts the drudgery.

    The Raspberry Pi version of Minecraft can be automated with Python. Anyone who's laboriously built something brick-by-brick, click-by-click in Minecraft out to be impressed by a few lines of Python doing the same job in the blink of an eye. We need more apps that work like that. We need to get to the point where people demand it.

  11. Programming by ledow · · Score: 4, Interesting

    I have to agree. I've always said that 50% of modern programming is having the right tools, and the right tools configured correctly.

    Introduce someone to C. Now explain that even though C is standardised, there's no "standard" way to compile a C program, to port a Makefile, to have a program compile the same everywhere without manual work ensuring so, or even to start debugging. And then show then a Visual C++ project file and tell them they have to manage it and make sure it works even if their primary platform isn't Visual C++.

    It can get horrendous. Sure, most Linux installs come with gcc set up and you can compile a basic C file and get a basic executable (called a.out with NO OUTPUT to tell you that, for stupid historical reasons, which still blows my mind), but anything beyond that and you're learning the tools more than the language.

    I personally have a deep-set hatred of Makefiles. I honestly can't stand them as a programmer and avoid them like the plague. I get the C preprocessor inside-out and can fancy macro tricks that amaze even me, but I can't be bothered with Makefiles and their separate, unrelated, horrendous syntax. But as a user, they are great when I just want to make a simple change and then recompile without fussing about where my compiler path is, etc. All their alternatives? I have the same problem, but at least plain Makefiles work the same everywhere if they are well-written.

    Even IDE's only mask those same details and thus cause more problems. Standard debugging of a problem for a beginner is to google the error messages from the compiler / linker because it really is that atrocious to try to understand what they actually mean.

    I have a large C project on the go at the moment. It's several dozen code and header files and the same again in associated resources, etc. It took me an hour to work out how to stop it uploading the resource files to the SVN repository and even now I can break it when I add a new resource file without meaning to. It's a nightmare that only compiles because the IDE generates a hidden makefile, runs it through MinGW's make tools and then runs MinGW's gcc to get it to compile / link. I gave up about the five-object-file mark of trying to compile it myself but in other projects with other people's code, I've literally deleted the Makefile and wrote a bash script to do the job instead, they were that horrendous to understand.

    Debugging is also a major bugbear. I know how to load a file into gdb, set a breakpoint, execute it and inspect variable values. Manually. And that's it. I don't even know what half the commands on the menus are supposed to be used for or the correct syntax to make them work and it's not like I haven't tried. Debugging is best done through an IDE that does it for you (still using gdb) and even then the tool doesn't get everything right (I often get out-of-sync line numbers when single-stepping through a program in Eclipse).

    I have taught beginners programming since I was a teenager, and it's only got harder. If I was to write a book on, say, C now, I would feel obliged to supply a disk and include a chapter on how to find the compiler setup program, how to install it, etc. so that I could be consistent throughout the book knowing they were using the same tools and the same versions so I could show them how to debug, etc. Just saying "compile this hello world" can be a book in itself, depending on their background, experience, and computer setup.

    I frequent a C programming board and most of the problems I see are people using obsolete tools (e.g. Turbo C presumably because it's "free" and their instructors were trained on it), or no tools at all (i.e. no capability to debug, manually typing in compile-lines, etc.).

    The next most common set of problems is not understanding how to use those tools or interpret their errors ("_main is undefined", etc.). The next set is not understanding how to write something that doesn't give a compile warning/error (usually because they've star

    1. Re:Programming by ledow · · Score: 2

      To answer both above questions, I'm using C as an example. Almost all modern languages (including anything in .NET, even the more modern Visual Basics, Java, etc.) suffer from the same problems.

      Python would also be included on my list. Hell, the programs I see written in python often bundle their own runtime copy of the entire Python interpreter when distributed because there's no way to guarantee what the end-user has and your program just might not work unless they have the right version. It's not as easy to setup a nice Python development environment as you make out.

      Google Python, end up on download page with about 30 downloads on it (all of which are python and the "official, latest, stable" one of which is half-way down the page), if you pick the "nice" MSI it installs into the root of C:\ (come on, this is looking like MinGW installation already! If I move it, do I get a ton of path issues like MinGW too?). That gives me IDLE (apparently the "Python GUI" according to the icon it creates, in preference to the "CLI" icon it also creates), which leaves me at a >>> prompt in the Python Shell and where even typing "help" has been programmed to be unhelpful (it ONLY tells you to type help() - nice waste of a few lines of code there!). How do I save the program, distribute it, etc.? Sure, you can work it out or follow a tutorial if you NEED to learn but if you just WANT to learn, there's no hint, nothing. Your shining example, Python, leaves me at a shell prompt. This is exactly the kind of thing I'm talking about. That was acceptable in the 80's when every byte counted and the instruction manuals were printed with every copy, but not any more.

      Imagine you want to load in a Python program you've been given, how do you go about it, what do you do, will it run (I guarantee you that it's not a definite yes, because I've had python programs in the past that crashed when another python interpreter of a different breed / version was present and stealing file associations - I've seen Python messes that rival Cygwin multi-installations for issues). And that's before we even get into things like, say, installing a third-party Python library to integrate with.

      And Java suffers similar problems. Hell, just the whole JDK/JRE and classpath installation issues are enough to blow a lot of beginner's minds.

      Some people really don't know what it's like to try to be a self-taught programmer these days. You will spend more time learning the tools than the language, and that's NOT how it used to be. I can't ever remember having to look up something back in the BASIC days that was due to how I'd installed the environment. Again, I don't use BASIC as a shining beacon of perfection, just a particular example to highlight things.

      Just because people want to be programmers doesn't mean we should forgo user-friendliness in their tools. And simple things, like decent GUI's that don't just run CLI tools with horrendously strict syntaxes and obscure errors, should be present.

      What the article is hinting at is that programming should be like office applications. Open the program, open a project or create a new one, get left at the point where you can just type in a program, then "save" or "compile" it and give the end result to either another programmer (if you saved) or a random end-user (if you compiled) and have things work. This isn't about dumbing down programming itself (which is dangerous) but making the programming IDE's as nice to use as Word or Excel. I don't claim to know a thing about advanced Excel functionality, but I can damn well open a spreadsheet someone else has made and not run into non-programming problems with it no matter how complex it is.

  12. Stop whining by Mister+Liberty · · Score: 2

    I taught myself programming. Nerds will be.
    The rest just enjoy yourselves with twitter.

  13. It's not the tools by Anonymous Coward · · Score: 3, Insightful

    This has been tried so many times before. The simple fact is that most people can't program.

    Simpler tools, or better tools, can ease the incidental burden of having to work with a program.

    What they can't ease is the cognitive load of having to remember patterns, and abstract objects, and nested function calls. Most people can't deal with this.

    Mr Wiggins has probably forgotten, as I have, the difficulties one faced and overcame when one first learned to program, and so he's forgiven for thinking that if we just made the environment simpler anyone could do it.

    I'd argue that python at the shell is pretty simple, but most people can't or aren't motivated to do even that.

    This thinking is like saying "a full piano is too difficult, so if we give people a little toy piano they'll be able to learn to play".

    1. Re:It's not the tools by slim · · Score: 3, Interesting

      This thinking is like saying "a full piano is too difficult, so if we give people a little toy piano they'll be able to learn to play".

      When I was young I had a little Casio keyboard with auto-accompaniment. It allowed me to experiment with chord progressions using major, minor, major 7th and minor 7th chords, before learning to play those chords manually. It's not a bad thing. 30 years later, I'm able to transcribe chord progressions almost without thinking - something a number of my musical friends find astonishing.

      Perhaps I'd have developed that skill without the dumbed down learning tool - but it definitely lowered the barriers to entry.

  14. Re:Problem-solving... by feedayeen · · Score: 5, Insightful

    Considering that a basic devkit like Eclipse (sufficient to write a lot of Java code) can be set up by downloading, unzipping and double clicking on the file with the colorful picture, I can only concur.

    You are missing a few steps, like installing the JDK and possibly installing the JRE, figuring out what the heck this workspace thing is. The Hello, World example you copied from the Internet also doesn't work because the package doesn't match. Congratulations, Hello, World compiles in Eclipse, but you want to see it as a standalone program. You click on your .java or .class file, 'Windows can't open this file'. After googling the problem, you find out that you need to run it from the command prompt by typing "java hello.class" so you become comfortable with cd.. until you get to your workspace and find the 'bin' folder. You try it, 'java can not be found or recognized'. Now you have to add the jdk to the path.

  15. Re:So what they're really asking for... by telchine · · Score: 4, Funny

    Other requirements from what I gather are a one-click install and a Microsoft Bob equivalent to ask what you want to achieve.

    Maybe they could reintroduce Clippy... "I see you're writing a kernel!"

  16. Re:Monkeys and typewriters by fizzer06 · · Score: 2
    Given enough time, a monkey banging at random on a keyboard will produce the complete works of Shakespeare.

    What about our deadline?

  17. why most programmers suck by anyaristow · · Score: 2

    You've hit on why most programmers suck. They think programming is about syntax and logic. Kinda like a carpenter who thinks his job is about hammers and saws.

  18. Re:literacy is good by Lumpy · · Score: 2

    Problem is most are a PITA to set up for the more interesting things. Compiler for a boring PC? easy. but writing code for embedded processors like a Microchip or TI MSP430 are 90X more fun and satisfying than writing yet another twitter client. Setting up those compiling environments are a royal huge PITA. In fact last night I blew 4 hours getting it all set up for the MSP430 on ubuntu, the only distro that has most of what I needed in a repo so I can just apt-get it all. and learned that Ubuntu 12.10 is a steaming pile of advertising riddled crap. so now I need to start again and try debian or slackware and do most of it by hand.

    The tools needed all rely on thousands of obscure libraries that are poorly documented as to what is needed. Hell to just compile the openchronos-ng example project for the TI Chronos dev platform I had to hun down 2 obscure Python libs to install.

    Why cant this stuff be rolled up in a statically linked blob that makes it easy for the casual guy to download and run?

    --
    Do not look at laser with remaining good eye.
  19. Danger! Keep out of the reach of children! by erroneus · · Score: 2

    Putting programming within the reach of every-day people is to harm [further] things in two ways:

    1. Adds to the complexity of knowledge of users and thus creates additional potential for things not working.
    2. Reduces further the power and flexibility of most programming which results from the need to reduce the risks of #1.

    The kind of high-level programming we are doing today is more "black box" dependant than ever before. When I learned to code, it was BASIC first but then quickly into assembly language for some popular motorola processors. In that realm, I learned to write pretty much everything about how to get input to how to send output. Admittedly there were stll black boxes, but the black boxes were essentially "interacting with the OS" which is one black box we need.

    But when the very language we write in is a black box I begin to worry more and more about the mentality of programmers who don't understand the underlying details of what really goes on. I recall someone saying "why do checks this way? use REGEX!" I was like "uhm... what do you think regex routines are doing???" Once again, black box dependency obscures people's understanding of what computers are actually doing.

    I'll get off my soap box now, but I will close with this: The problems with today's software is programmers who don't understand computers. This division of "hardware guys and software guys" is ridiculous... every bit as ridiculous as the idea of separating the head from the body (mental and physical) in the practice of medicine.

  20. Re:Bullshit by slim · · Score: 2

    `Hello World` in Java is one line, excluding stuff that the IDE does for me. While I do hate it when IDEs generate screeds of boilerplate code, I think Java keeps it to a minimum, and I like what Java makes explicit. I wouldn't say it was an ideal beginner's language though.

    Hello World is one line in Groovy, Python, Ruby, Perl. Ruby and Python are languages I might recommend to an absolute beginner.

  21. Re:So what they're really asking for... by kestasjk · · Score: 3, Insightful
    Why not hire someone to fill the place within the organization? I interact with a lot of people on a day to day basis who are very smart and knowledgeable within their fields, but when it comes to automating some mundane task or sharing information in a structured way it's outside of their area of expertise.

    There are three possible approaches in that scenario:
    • They learn how to script / code themselves (most of them won't have the time/stamina, and even if they did they wouldn't be able to share the results so you get duplicated effort)
    • They hire an external company to write the software for them (but the overhead of dealing with another company that doesn't know your business and needs formal requirements can be huge, and you can still get the duplicated effort / lack of sharing)
    • You have an in-house team (3 people for 1500+ employees does the job for us), that manages custom software for specific purposes. They can direct people's requirements to either being 3rd party, having too high cost / reward, or requiring in-house software. With access to all the existing databases, with intimate knowledge of the business, with ties to various departments within the business, they have not only the skills but also the business knowledge, the access, and the relationships, to ensure that necessary software can be developed quickly, efficiently, and then propagated to any other staff / projects which need the same thing.

    You can't have an in-house team that tries to reinvent the wheel and write software where it's unnecessary, that's pure waste, but for a large organization having a small team that can take care of things that really do need to be done in-house can give a big competitive advantage.

    --
    // MD_Update(&m,buf,j);
  22. Re:So what they're really asking for... by slim · · Score: 2

    You're thinking about too large a scale of program. If it's big enough to ask a team (or even a lone programmer) to do, it probably does need a 'real' programmer.

    Think more along the lines of typing. In the 1970s, companies had a typing pool. Nowadays almost everybody does their own typing.

    I think lots of people would benefit from the ability to write simple scripts -- the kind many /.ers would consider throwaway.

  23. Why Can't Programmers.. Program? by gweihir · · Score: 4, Interesting

    Jeff Atwood has some very nice observations about this from the real world. Also highly entertaining:

    - http://www.codinghorror.com/blog/2007/02/why-cant-programmers-program.html
    - http://www.codinghorror.com/blog/2010/02/the-nonprogramming-programmer.html

    One claim is that 199 out of 200 people applying for a coding job cannot code at all. The examples given are hilarious (or deeply depressing) and there is every reason to believe the observations described. Some of the links are also eminently worthwhile.

    --
    Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
  24. Programming as a liberal art by dkleinsc · · Score: 2

    I know, that sounds like a contradiction in terms, but one of my college profs made a good case for the concept.

    The value of learning programming for non-programmers is not "I have to get that *@$% computer to do what I want". It's "I have to learn how to break down a large problem into simpler smaller problems, until I know how to solve it." and "I have to recognize the adjustments and adaptations that humans naturally make when solving problems." And as a side effect, it also teaches the important lesson that some problems cannot be solved by convincing people around you to believe in nonsense.

    --
    I am officially gone from /. Long live http://www.soylentnews.com/
  25. Re:So what they're really asking for... by Canazza · · Score: 2
    --
    It pays to be obvious, especially if you have a reputation for being subtle.
  26. Re:This guy has it backwards by Jmc23 · · Score: 2

    Seems you've never met Lisp have you?

    --
    Don't complain about syntax, grammar, or spelling. There is no.hell like input on android.
  27. No, it is not out of reach by firewood · · Score: 2

    Programming at a professional competancy might be out of reach. But programming badly isn't that hard. As in:

    10 print "my sister is ugly" : goto 10

    Back in the days of the TRS-80, Commodore Pet, Apple II and BBC personal computers (et.al.), millions of kids could turn on their personal computer and start typing in Basic right away, usually using stuff copied off of a magazine article... at first. But then they could modify their programs and crash them in a million different ways. That caused learning, and very likely ending up producing a generation of people with much higher basic computer literacy than in the general population than today (not including professional techies).

    Don't confuse a professional level of understanding with computer literacy. No one confuses the kid who could (back in the day) (mis)use their chemistry sets to blow things up in their backyard and singe their eyebrows off, with National Medal of Technology prize winners. (Or could you?).