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?

45 of 408 comments (clear)

  1. Re:No by Mr+D+from+63 · · Score: 2

    can't the tech giants at least put a BASIC on every phone/tablet/laptop for kids?

    If a kid can't load a free BASIC compiler app...........then.... .well... I don't really know.

  2. One word: JavaScript by TheRaven64 · · Score: 3, Insightful

    All computers these days come with a web browser. Modern web browsers include rich debugging facilities. It's never been simpler to start writing programs. You can start with simple text output and progress all of the way to 3D OpenGL graphics or 2D vector and composited raster graphics with the canvas.

    --
    I am TheRaven on Soylent News
    1. Re:One word: JavaScript by Anonymous Coward · · Score: 2, Interesting

      Javascript has really low barrier of entry thanks to the modern browsers with built-in debugging capabilities.

      Though the problems of javascript start to raise their head once you use something as innocent as "String.startsWith" for string handling and watch "some" browsers to choke on it immediately. After that point comes the realization that you really cannot trust the browser tools to help you code cross browser compatible code.

    2. Re:One word: JavaScript by Waccoon · · Score: 2

      Between Javascript, DOM, the complete lack of built-in libraries, and tons of terrible frameworks-of-the-month, there's nothing simple about web development.

      Availability != simplicity

    3. Re:One word: JavaScript by sonamchauhan · · Score: 2

      > It's never been simpler to start writing programs.

      No, it has been simpler. Remember...?

      10 PRINT "HELLO"
      20 GOTO 10

    4. Re:One word: JavaScript by TheRaven64 · · Score: 2

      Why are you so obsessed with editing the code in the browser? That's never something I claimed - I said that you could run and debug it in the browser. That said, if you want edit the code in the browser and save it then I'd suggest you try https://jsfiddle.net/">JSFiddle, which gives you an interactive environment for JS editing and is a pretty nice place to start.

      --
      I am TheRaven on Soylent News
  3. 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.

  4. administration by sourcerror · · Score: 3, Interesting

    If someone just wants to learn to program, they shouldn't have to learn system administration first.

    I disagree with that. Being able navigate your hard drive and install programs is more important than being able to code, and should come first.

  5. It's the abstraction that makes it hard by ErichTheRed · · Score: 5, Interesting

    Ironically, the hardest thing I can think of for a _total_ newbie is drilling down through all the layers of abstraction to show what actually happens. I'm in IT and infrastructure-as-code is the same way. We have a nice easy way to program things, but it's so divorced from something that actually happens. Everything new lately has been a layer on top of another layer with the hope that it will make things easier.

    An example from my world is Azure Resource Manager. At the core, it's a RESTful API that takes in JSON configuration files and tells Microsoft's cloud back-end what needs to be configured. ARM is almost a language in its own right, and it's nearly impossible to write configuration files without some guidance. So, someone at Microsoft wrote a Node.js wrapper on top of ARM that I found out about the other day (Azure Building Blocks.) So, you have an ARM framework, written in a JavaScript framework, sending commands via insert-your-language's SDK to a RESTful interface that hides unfathomable levels of complexity behind it!

    The push to wrapperize everything is going to get to a point where some levels of complexity are permanently locked away. People who are totally new and starting out at Node.js or a similar framework will be able to make things work, but they won't know _how_ they work.

    I'll make one "get off my lawn" statement -- we've overloaded HTTPS to perform way more duties than it was ever designed to do, and chosen to write applications in browsers running JavaScript, which was also never meant to do anything nearly as complex as it does. This is why you have the endless parade of new frameworks, wrappers, etc.

  6. Re:No by 0100010001010011 · · Score: 5, Insightful

    People from the 50s would say the same thing about your life and not knowing how woodworking, plumbing, electrical wiring, cars, etc worked.

    Your life is built on abstraction. How well do you know how most of the machines that run your life work?

    I'm sure some polymath will come in here proclaiming they own a homestead, repair their own cars, build their own silicon chips, et al but the reality is that for you to get any depth in a subject you have to neglect the depth in others.

    I learned to program on Hypercard at ~14. Scratch and NodeRed look like great modern day equivalents for the same age. A 14 year old doesn't need to know how to bit bang with assembly but a high level introduction may lead them down the road of wanting to know.

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

  8. software availability and incentive changed too by isj · · Score: 3, Insightful

    Nowadays you can get pretty much any niche program you need. In last millennium access to programs was much harder, so sometimes you had to figure things out yourself. That means that people now have less need to dive into the technical details about eg. printer drivers and configuring them. Now you just download the latest driver from the manufacturer, or perhaps it worked out-of-the-box because the driver was included in the OS.

    I'm not saying it was better in the good old days. But you did have the need to be a bit technical when computers didn't do everything you wanted. And that gave some people the push to going deeper and making programs.

    Car analogy: it is harder today to become a mechanic, because the engine is typically just a big inaccessible block. No more easy access to spark plugs, carburetor, or adjusting the choke. Is that sad? Maybe.

  9. Apple by fluffernutter · · Score: 4, Interesting

    I had an Apple ][+ and I ended up in the computer industry. I don't really agree with this article. I had many friends at the time who know how to CATALOG and BRUN but I'm the only one who went on to be a developer. The reason why I got interested in developing is because my dad would buy Byte magazine and we would enter machine code programs together. This got me interested in 6502 and later C (when I got an IBM XT). It was only one or two years after the Apple ][+ came out that disks started to get formatted with the 'HELLO' menu-based entry screen anyway, I guess later when IBM XTs came out it was command line again but again that period was relatively short before windows took over.

    I guess the point here is that making technology easier to use is nothing new. It has always been just the people who want to know more who look under the hood and learn.

    --
    Laws are rules for the court, but merely a bottom bar to hit for life. Think beyond laws in your actions always.
  10. Why? by ELCouz · · Score: 4, Insightful

    Why the sudden push for kids and newborns to know how to code? .... Like this will miraculously improve their life later on...

    1. Re:Why? by AHuxley · · Score: 3, Interesting

      The money and the sale of educational software, support needs a reason to keep selling.
      Governments and the private sector are sold on the idea that everyone has to do "computers".
      The sale of the needed new better computer systems, support, robot kits, GUI, networking is then offered state and nation wide for every generation.
      People who won't and cant study are put in front of computers provided. The more they fail tests, the more new support is needed.
      The test results don't show any improvement over decades and generations.
      Political correctness and virtue signaling then provide a nice way of saying the "computer" was wrong for the people.
      So the tax payers and a private partnership invest in more and better "computers". It has to be something with the computers, the code, the teachers, the amount of funding.
      Same failed tests. Buy more advanced computers, new GUI code, robot kits, laptops, tablets.
      More failed tests.
      Fast internet. Cloud. More GUI, different code. Better teachers?
      The funding numbers per person per city and state grow with no better test results.

      Re 'Like this will miraculously improve their life later on"
      That could be seen with the spending in the UK in the 1980's. That most people would get to use a computer and be educated on a new generation of UK computers. Computers designed in the UK with new jobs building and supporting computers from fully imported low cost computer parts.
      Education and new computer jobs wins elections. Production lines and computer support jobs.
      Did it turn the UK in to some computer super power?
      People played computer games and later imported the best and most advanced US tech. US computers as needed for their work, games.

      Now the "computer" is some virtue signaling opportunity to show "everyone" is getting a free computer.
      The brand and the political leaders all get to show the funding and their private sector support for free computers for "everyone". Their brands computers, networks, software.
      The results are great for the brands and the gov. The failed test results every decade never improve so more support is always needed and sold.
      Its not the below average people that cant be educated, its the bad computers. Buy new computers, new code tech and the results will be better.
      By selling new computer to people who will never learn, more new computers will always be needed to get better results. Thats more education funding for that city, state.

      --
      Domestic spying is now "Benign Information Gathering"
  11. Are they serious? by alvinrod · · Score: 5, Insightful

    I think that they're completely wrong and that learning to program is so much easier today than at any point in history.

    First of all, there are a wealth of online resources that anyone can access with a web browser than there are loads of them that are freely available. There are loads of websites, videos, etc. dedicated to learning programming languages. Some like Python or Java have such an abundance that it's almost difficult to be able to determine which to use. On top of that, there are plenty of websites like Stack Overflow that are dedicated to answering people's questions, so you can even get by with learning on your own outside of a classroom and still be able to get some feedback and mentoring from more experienced programmers.

    Development environments are easy as hell to install. You can a one-click installer from Oracle that will install and configure the JDK and an IDE for you. Most languages don't even need an IDE at all and just require running a script you can bang together in any text editor. It can't get much easier than that. Similarly, most kids figure out how to use a GUI on their own through trial and error. Their parents certainly didn't teach them how to become proficient computer users. Cloud computing has made things like Scratch possible where children can learn programming concepts and share their programs with friends and others. I fail to see the merit in any of the points that they make.

    If programming seems hard, it's because it has become so widespread that we're trying to teach it to everyone instead of as in previous generations where people mostly seemed to seek it out and dedicate their own time and efforts towards it. It looks like the past was more successful because we don't see the people who tried and failed in the past. The old generation that seems to understand it more intuitively or didn't struggle as hard are the survivors of far more niche group.

    1. Re:Are they serious? by dgatwood · · Score: 2

      I agree that programming is drastically easier to learn today, but I think the article may also have a good point. Most computer users these days will never have an obvious incentive to program, whereas most of us did 20+ years ago.

      Sure they do. A six-figure starting salary. I'm not saying it's a good incentive, as it tends to attract a lot of people who can't code along with the people who can, but it is at least an incentive. :-)

      --

      Check out my sci-fi/humor trilogy at PatriotsBooks.

  12. RaspberryPi's Niche by 0100010001010011 · · Score: 2

    I finally started playing around with Raspbian and it's a great OS that addresses all of the above.

    It has multiple IDE's built in like Node-RED, Scratch, Python (Thonny). A command line terminal is built in as well as apt-get.

  13. Re:I agree by MightyMartian · · Score: 2

    Javascript and DOM are a helluva lot more complex an environment than, say, Microsoft BASIC circa 1982, so it's not really the equivalent at all. That's the real problem, and one that's not easily solved. It isn't so much the languages, it's the environments in which they sit that are far more complex than the home computer systems of the late 1970s and early 1980s. It really is true that if you had a Commodore, Trash-80 or Apple II, you could pretty much start programming a few seconds after you hit the On button, largely because the BASIC interpreter was right there in your face.

    Of course the downside is that traditional BASIC is a godawful language that taught a lot of bad habits that had to be beat out of you when you went to the next level and started monkeying around with Pascal, but still, I'd say about 60%-70% of what I learned about programming I learned on my shitty little TRS-80 and my uncle's Commodore 64.

    --
    The world's burning. Moped Jesus spotted on I50. Details at 11.
  14. Supply and demand by Locke2005 · · Score: 2

    Programming jobs are the easiest jobs in the world to ship offshore; most software can be written literally anywhere in the world. STEM education is still important, but you're better off training for a career like medicine or pharmacy where you literally have to be in the same room with your customer -- those jobs can't be offshored! Also, automation is going to take a lot of jobs away... shouldn't automation eliminate programming jobs too?

    --
    I've abandoned my search for truth; now I'm just looking for some useful delusions.
  15. Well, then there's always Arduino... by MindPrison · · Score: 4, Interesting

    ...which hides the framework, and lets the user use simple calls or commands to do advanced things like outputting text or graphics to almost any TFT/OLED/LCD screen you can imagine (small form factors usually, we're not talking HDMI screens here).

    And it's almost like having a Commodore-64 on a chip, lots of I/O ports, way more forgiving on the inputs/outputs than the 6526 ever was (touch this one and you'd literally say goodbye to an expensive I/O chip), the interface is ugly...but easy to use, it's free aka gratis, it's open, it's got a huge community with tons of drivers for basically any hardware you want drive/throw at it/use with it. I put a complete weather station together in 2 hours, didn't even have to find software for that, as drivers and libraries are available for almost every sensor/screen out there. It's almost like combining a commodore 64 with lego.

    I won't count Raspberry PI into this "easy" category, because albeit the raspberry is cheap, it's far from easy for kids to get started with, and if they do - the learning curve is hideous as it's almost as complex (hardware wise/programming) as a PC. With the Arduino range (especially the Nano V3 one's that can be had on ebay for a couple of dollars) are so ridiculously easy to use that your kid (or you) will be up and coding in minutes with actual real life results instead of having to learn endless libraries and code just to actually make an executable that will actually do something useful or meaningful.

    And if we look at how many gazillion Arduinos are sold on ebay by random (often totally clueless sellers that have no clue what an arduino actually is), it's literally selling like it's hot - all the time. That's gotta count for something.

    --
    What this world is coming to - is for you and me to decide.
  16. Programmer like mechanic? by tgibson · · Score: 3, Insightful

    Cars have become easier to use (GPS, stick shift is a rarity, who changes their own oil anymore). The technical innovations underlying today's vehicles certainly makes it harder for users to become mechanics. A person may be introduced to the intricacies of car repair/maintenance by a friend or relative, or by taking a training course. I don't believe making cars more mechanically accessible is going to significantly increase the population of mechanics. By and large those who become mechanics have both a knack and passion for it.

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

  18. Re:No by FatdogHaiku · · Score: 2

    ... A 14 year old doesn't need to know how to bit bang with assembly but a high level introduction may lead them down the road of wanting to know.

    And that's it in a nutshell. I get asked all the time how I learned to do the stuff I do... if you WANT to do something and you have an internet connection, you will find what you want and learn how to do what interests you. Along the way you should discover your limitations, and if you are a motivated person, how to stretch those limitations into challenges. Challenges should lead to growth. Alas this is where things seem to be broken for some people, the "If you can't do it that's OK" mantra that has been used for the last twenty or so years.
    What we need to teach is "If you can't do it, figure out another way, if that fails, ask someone that already learned what you want to know".
    The problem is teaching a wrong attitude about accomplishment...

    --
    You have the right to remain sentient. If you give up the right to remain sentient, you will be elected to public office
  19. Nonsense. by Qbertino · · Score: 3, Insightful

    It's way easyer. The incentives may be lower, that's for sure. Unreal tournament is way more fun than going through the first bits of coding, but getting into programming is easyer.

    You need an editor and a browser and perhaps an active internet connection and your good to go. All this is bog standard these days, you can even do it on a phone.

    --
    We suffer more in our imagination than in reality. - Seneca
  20. They simply do not WANT to learn. by Voice+of+satan · · Score: 3, Insightful

    I am a happy nerd.

    I love my nerd world, my nerd friends and colleagues. But there are simple stuff that doesn't go trough our thick skulls. It never came to your minds people do not learn to program simply because they do not specially desire to do so ? They do not consider it an important skill, they have no curiosity about "how it works in the inside" and often consider an electronic device that needs any intellectual effort a poorly designed device.

    I loved my commodore 64. I learned to program a little bit on it. But it is because i was curious and educated by parents that encouraged that trait. If we lived in a world where computers were ubiquitous but similar to commodore 64's, they would not learn to program because you have to to make a C64 work. They would buy consoles.

    I have similar conversations with some of my nerd brethren about maths. I mean, the few ones that more or less realize that most people know very little maths. They speak about the difficulty of some abstract concepts, the quality of the teachers, the small number of math hours at school. But they do not get that most people do not desire to become whiz kids. Eventually they find them annoying, or pedant, or arrogant. They are not curious and are not raised to become that way.

    They may be embarrassed by the social consequences of their ignorance. But it is a pecking order question for them, nothing more.

    Same kind of reasoning when talking about why people are not athletic while they have an able body like everyone else, etc...

  21. Re: I agree by WarJolt · · Score: 4, Interesting

    Start with an arduino and a couple of LEDs.
    The c/c++ is simple.

    I would imagine JavaScript closures are probably the hardest thing to grasp for someone who has never even written a for loop.

  22. Re: Apple Hypercard by SteveSgt · · Score: 2

    Hypertalk made the whole process of creating a usable program of significant complexity quite easy--easy enough for an early grade school student. Apple really, really didn't know what they had.

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

  24. What the past got right by AHuxley · · Score: 2

    Maths, more maths and maths.
    Basic, ada, pascal, logo.
    Study, learn and pass tests. More learning, more computer time.
    People who could learn, wanted to learn got computers. People who could afford computers to learn. That was what the cost of a computer did in the past.
    Programming is not getting harder. People with no skills and no ability to study are expected to use computers, robot GUI kits now.
    Kits, computers, new GUI software is been provided along with support. The results show nothing better is happening with computer education after all the decades of tax payer and private sector support.
    Find out who can study, pass a test and do math. Support the people who can do math and then the results will reflect the past generations of great results.

    --
    Domestic spying is now "Benign Information Gathering"
  25. Re:No by supremebob · · Score: 5, Funny

    Back it the day, it was as easy as typing this into your Commodore 64 when it booted up:

    10 PRINT MY SISTER IS A BUTT
    20 GOTO 10
    RUN

    Bingo, you just wrote your first program, and got the satisfaction of annoying your little sister in the process. I bet that most people's first program looked something like this as well if they started in the 1980's.

    Now, you need to download and install something like Python on your Windows PC, probably getting prompted by a few scary looking security prompts along the way, and then write something with a more complex syntax to get a similar "MY SISTER IS A BUTT" result. So, yeah, the barrier to entry is higher now.

  26. BASIC?!?!!! by javaxman · · Score: 2

    LOL!!! Look, I myself learned to write code in BASIC on a CP/M system, but really folks... it ainâ(TM)t 1984... Python or something OO at least, please... teach folks to write an Android app or something... BASIC lol...

  27. GUIs and scripting by quantaman · · Score: 2

    I don't think SDE availability is a big issue, Linux usually has gcc installed by default, XCode is fairly easy to install on Macs, and I'm sure Windows has lots of easily installed stuff.

    I think the issue is GUIs, but not for the reason he thinks. To the current kid a program isn't a real program without a GUI, and GUIs tend to be a lot tougher and more annoying to write. It just makes the gap between what a new programmer can accomplish and "real programs" that much bigger.

    I suspect the best approach for a new programmer is scripting. Just yesterday a friend expressed a desire for some bizarre set of image transformations and within an hour I learned enough ImageMagick to fire off a python script. This is partly a consequence of being a command line user, but you can automate a lot of tasks with scripts and are you are honing your programming skills at the same time. OpenSCAD is a good way to pseudo-program if you have a 3d printer. I suspect there are a bunch of games with scripting interfaces as well.

    Though for the windows user for whom the Command Line is still a foreign land I think phone apps are the easiest gateway. There's a lot of tutorials where you can get a "real program" with a graphical interface with very little effort. The main downside is that kind of coding tends to be a lot of interfaces and API calls which aren't as much fun.

    --
    I stole this Sig
  28. Backwards by zieroh · · Score: 5, Insightful

    I was a programmer when the Commodore 64 came out, and I'm still a programmer today. So I think I'm reasonably qualified to comment on this topic.

    There is in fact an increasing gulf between computer users and computer programmers, but TFA has it completely backwards. It's not getting harder to code. There are two (and only two) factors at work here:
    1. Computers have gotten substantially easier to use by non-programmers. My parents wouldn't have been able to do anything with my Commodore 64. But they can use a modern computer for normal user-level tasks just fine.
    2. The expectations of what software should do has increased substantially, which means programmers need to be able to create much more complex code to meet minimum baseline expectations. At the same time, though, modern software development has rapidly evolved over the years and now offers better tools, better frameworks, better access to information and documentation, better back-end services (e.g. "the cloud"), better debuggers, and a whole host of other improvements that allow one programmer to do more than they were ever able to do before.

    I will concede one point here: programmers today need to be familiar with a lot more different things (e.g. frameworks) than the days when they had literally no frameworks at all. That said, programmers need much less depth in their understanding of those various pieces, since documentation is literally a mouse-click away in nearly any decent IDE.

    Also, it's called "IDE". This "SDE" acronym is just bullshit and demonstrates that the author of TFA is a bit light on actual industry experience.

    --
    People who say "sheeple" have about as much sophistication as an AOL user, and in fact are probably actually AOL users.
  29. 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)
  30. Was tried in the Toronto District School Board by mykepredko · · Score: 2

    I think you're confusing what's easy for you with what it would be for somebody starting out or a public school teacher who's setting up a programming course.

    Take a Grade 8 teacher, which is a good age to start programming, who's training specialty is English, French or History, can send an email on a board supplied system, make a powerpoint or word file (or Google equivalent) as well as a FaceBook post on their phone and tell them they now have to setup a Raspberry Pi, support it with the students in the class, learn how to use the file system and now they can start programming.

    This isn't a theoretical example, somebody following your line of thought convinced the Toronto District School Board to buy several thousand (I've heard 8,000 and 80,000) Raspberry Pis for grade 1-8 classrooms and, two years later, maybe a couple of dozen of them are now being used.

    The only successful thing that was done was to convince teachers and the board that it's hard to teach programming using Raspberry Pis.

  31. Re:No by Z00L00K · · Score: 4, Insightful

    Basic of today is Python. It's decent for beginners.

    Back in the 80's computers were a lot simpler and you could assert full control over every aspect of them - and discover the actual limits of them. All you had at that time were information provided in the manuals, either for the computer or for the chips in the computers and by others - and often shared in computer magazines.

    But the problem with computers today is that even if you have the computer with even Linux installed on it you don't have full and total control over the computer. With Windows you have even less control over your computer and can only do what the great leaders in Redmond decides you should be doing. Also look at the Management Engine that is completely outside the control of the person owning the computer. And there's a huge amount of functionality that's provided only if you sign a NDA and pay a huge amount of money. The UEFI is also adding constraints to computers today that weren't an issue in the 80's.

    Today the best bet is still regardless of stated above to do development work on Linux, at least there the ability to access the code of others for learning still exists and you can make your own mistakes. The environment that's most similar to what could be experienced in the age when teenagers and even younger were starting with computers is probably the Raspberry Pi and Arduino.

    What we miss today is also all those small teams of programmers that made for the time really awesome graphic demos on Amiga and PC in ways that really looks good even today. Some of that was done by "cheating" by modifying the color palette instead of just drawing the full picture over and over again. But why waste CPU cycles on redrawing a whole picture for recurring graphics?

    --
    If builders built buildings the way programmers wrote programs, then the first woodpecker would destroy civilization.
  32. Easier. by SeattleLawGuy · · Score: 2

    And they are all harder to find than writing your first '10 print "hello"' one you calculator/C64
    Going from not having a clue about programming to writing your first simple line in any language is by far the hardest and most important step when it comes to programming.
    The rest is breeze compared to that.

    I think the rest is harder--not for any of us since we know how to do it, but for someone learning to program, debugging is incredibly frustrating and a huge barrier to entry.

    Even that's much easier, primarily because (1) stackoverflow and (2) there are MUCH better IDEs than there used to be.

    Still, kids may get frustrated more easily. Being a programmer takes a certain amount of being stubborn in the face of unparseable errors.

    --
    Real lawyers write in C++
    1. Re: Easier. by Cryacin · · Score: 2

      Horsecrap it's harder today.

      I learned C++ in 1990. Whenever I had a problem, I couldn't google it. I didn't have peers of students and professionals on demand at stackoverflow, hell no.

      I had the shitty floppy disks that came in the back of magazines, and when really desperate, programming BBS's that I would need to dial internationally to post questions on. Oh yeah, each question was like $10. Yes, back in 1990. That dial up was an expensive lunch.

      And if you want to talk barriers to entry back then? How about a computer being roughly the same price as a second hand car?

      --
      Science advances one funeral at a time- Max Planck
  33. AIDE or Swift Playgrounds by tepples · · Score: 2

    But how do you program on a phone or tablet?

    Try AIDE on an Android tablet.

    Last I heard Apple forbids programming on their phones.

    Since you heard last, Apple has loosened the policy, allowing things like Swift Playgrounds for iPad.

  34. True, but what if you wanted to do more? by rsilvergun · · Score: 2

    If your dad was an engineer, good for you. Also good for you if you were some kind of Savant or if you had a well stocked library or the dude at the computer store wasn't just some pimply faced teen but knew stuff.

    For the rest of us we kinda hit a wall on programming after the limited information we had was exhausted. It was '93 before I got my hands on copies of Computer! Gazette and learned that machine language was a thing. My teachers were all pretty useless too (and I went to a tech themed "magnet" school).

    Nowadays I can open a browser, start typing in stuff like "How to make games", find Stackoverflow and away I go. Learning to program is way, way easier.

    Now, getting a _job_ is way, way harder. H1-Bs + outsourcing means programming jobs are impossible to get without a 4 year degree (at least in the States).

    --
    Hi! I make Firefox Plug-ins. Check 'em out @ https://addons.mozilla.org/en-US/firefox/addon/youtube-mp3-podcaster/
  35. Re:No by StormReaver · · Score: 2

    And then what? A prompt is useless if you don't know what it is, and don't already know BASIC.

    Then you open the programming book that came with the computer. When I got my first TRS-80 Color Computer 2 in 1985, it came with a two hundred (approximately) page book describing how to use the computer and program it in BASIC.

    Like the C=64, the computer booted, instantly (seriously, a couple hundred milliseconds), into a BASIC-ready command prompt. Then the excellent manual walked through programming it. Nothing since has reached that level of easy. Once IBMicrosoft took over, computers became increasingly newbie-unfriendly.

    So yes, the article is correct to a large degree. That being said, though, kids nowadays are born into a technological saturation to the point where most of the things they need to do to begin learning to program come fairly easily to them. It may not be as easy as the Color Computer/C=64/Atari days were, but it's within their reach with a little assistance.

    But to drive the point home: back in the 80's, kids could do it all with NO ASSISTANCE WHATSOEVER if they were interested. The whole home computer paradigm revolved around that notion.

  36. Re:No by DontBeAMoran · · Score: 2

    Just stop. You can't be serious. Memory allocators? Memory interrupts? Memory pages? Seg faults?

    The C64 had a flat 64KB RAM directly accessible by the CPU. Really simple, none of the things you're talking about. Also, what you're talking about is for ADVANCED USERS and some of those things for x86 processors only. We're talking about people who are just learning how to program, basic concepts like variables, arrays, that kind of stuff. You can't go from zero to 100% instantly. The basics - stuff you now take for granted - have to be learned.

    We're talking about kids learning to ride a bike and you're talking about the complexities of a formula 1 engine. Just stop.

    --
    #DeleteFacebook
  37. Re:No by Hognoxious · · Score: 2

    We used to type in programs from magazines and then wonder why they didn't work.

    Most of the time we'd spot the bug. Probably learned more than if it'd just worked.

    --
    Confucius say, "Find worm in apple - bad. Find half a worm - worse."
  38. Re:Check it: by minstrelmike · · Score: 2

    Yup. Write a hello world web page in straight html. If that felt like fun, add a button and some javascript. It's pretty damned easy and there are zillions of web pages that show you how to do simple stuff.

    Pre-1995, there weren't any web pages to peruse and _if_ you had an internet connection, all you could do was ask for help on usenet which was full of foul-mouthed trolls and old fuddy duddies telling you to RTFM kind of like slashdot and wikipedia are nowadays.

    It's a lot easier to program now unless you're trying to program in java or trying to use your smartphone.