Slashdot Mirror


Learning To Program Is Getting Harder (slashdot.org)

theodp writes: While Google suggests that parents and educators are to blame for why kids can't code, Allen Downey, Professor at Olin College argues that learning to program is getting harder . Downey writes: The fundamental problem is that the barrier between using a computer and programming a computer is getting higher. When I got a Commodore 64 (in 1982, I think) this barrier was non-existent. When you turned on the computer, it loaded and ran a software development environment (SDE). In order to do anything, you had to type at least one line of code, even if all it did was another program (like Archon). Since then, three changes have made it incrementally harder for users to become programmers:
1. Computer retailers stopped installing development environments by default. As a result, anyone learning to program has to start by installing an SDE -- and that's a bigger barrier than you might expect. Many users have never installed anything, don't know how to, or might not be allowed to. Installing software is easier now than it used to be, but it is still error prone and can be frustrating. If someone just wants to learn to program, they shouldn't have to learn system administration first.
2. User interfaces shifted from command-line interfaces (CLIs) to graphical user interfaces (GUIs). GUIs are generally easier to use, but they hide information from users about what's really happening. When users really don't need to know, hiding information can be a good thing. The problem is that GUIs hide a lot of information programmers need to know. So when a user decides to become a programmer, they are suddenly confronted with all the information that's been hidden from them. If someone just wants to learn to program, they shouldn't have to learn operating system concepts first.
3. Cloud computing has taken information hiding to a whole new level. People using web applications often have only a vague idea of where their data is stored and what applications they can use to access it. Many users, especially on mobile devices, don't distinguish between operating systems, applications, web browsers, and web applications. When they upload and download data, they are often confused about where is it coming from and where it is going. When they install something, they are often confused about what is being installed where. For someone who grew up with a Commodore 64, learning to program was hard enough. For someone growing up with a cloud-connected mobile device, it is much harder.
theodp continues: So, with the Feds budgeting $200 million a year for K-12 CS at the behest of U.S. tech leaders, can't the tech giants at least put a BASIC on every phone/tablet/laptop for kids?

5 of 408 comments (clear)

  1. Crazy talk. by Anonymous Coward · · Score: 3, Informative

    There's loads of easy ways in. Shit, scripting excel is a fine place to start.

    My fave is processing.org - those cats have made something special.

    No more tricky than programming a sinclair or a commodore. But the potential is considerably more potent.

    The big thing is that all the documentation you could ever want is there at your fingertips if you're willing to look for it. The resources available to a self motivated person that wants to program are beyond fantastic.

  2. TFA is wrong by chuckugly · · Score: 4, Informative

    Programming didn't get harder, using a computer just got massively easier. How hard is it to go to a site like http://www.compileonline.com/i..., choose a language, and start learning? If kids can find pornhub they should be able to find this if they are so inclined. People need to face the fact, not everyone will enjoy programming, and not everyone will be good at it.

  3. No, it's getting easier to use a computer by JonathanP.Bennett · · Score: 4, Informative

    They are on to something, but have it *completely* backwards. Learning to code has never been easier. At the same time, using a computer has become much much easier as well. Part of the barrier to entry of older computers was the need to know something about the computer. That barrier to entry has been removed, and people aren't learning about the machines they're using.

    I don't know what the answer is. It doesn't seem correct to intentionally make computers harder to use. Perhaps moving away from the mindset that a computer is an appliance *looks at Apple significantly* would be a decent place to start.

  4. Re:No by ShanghaiBill · · Score: 5, Informative

    Or maybe just look on the web?

    Indeed. Programming has never been easier. Here is how you start:

    1. Type "scratch.mit.edu" into your browser
    2. Start coding

  5. Re:No by Balthisar · · Score: 2, Informative

    Need the quotes for every version of BASIC that I know of. I don't remember if C=64 print command accepts space-separated variables, but you didn't define them, and even if you did, Commodore basic requires a dollar sign to indicate string variables.

    There was a POKE command that would disable RUNSTOP+RESTORE, meaning that you could call your sister a butt, and not be able to stop it, short of a power cycle.

    --
    --Jim (me)