Follow Slashdot stories on Twitter


Forgot your password?
Education Programming

Learning To Program Is Getting Harder ( 408

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?
This discussion has been archived. No new comments can be posted.

Learning To Program Is Getting Harder

Comments Filter:
  • by TheRaven64 ( 641858 ) on Saturday February 17, 2018 @02:06PM (#56143108) Journal
    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.
    • That's what I was thinking too - it's not that programming as a whole has become harder, just a lot more diverse and specialized. Yes learning to write some scalable Erlang/Mongo based server application is harder than what we had to do growing up. But they don't have to start there, and if they get really into programming they can go there if they want which is better than what we had when I was a kid (we used to have to compile with a *preprocessor* step you young whippersnappers).

      Even if you didn't lik

      • 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

    • Re: (Score:2, Interesting)

      by Anonymous Coward

      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.

    • I can see Javascript being a good way to be introduced to basic programming for the reasons that you state.

      The problem with Javascript is it's terrible execution model for catching run time errors (it basically doesn't which makes it harder for students to see and debug their mistakes), it's event driven execution which doesn't work in a way that follows any other model and going from simple programming to even using it in web pages requires a step function in understanding and learning that requires a lot

    • 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

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

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

      10 PRINT "HELLO"
      20 GOTO 10

  • Crazy talk. (Score:3, Informative)

    by Anonymous Coward on Saturday February 17, 2018 @02:12PM (#56143160)

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

    My fave is - 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.

  • administration (Score:4, Interesting)

    by sourcerror ( 1718066 ) on Saturday February 17, 2018 @02:12PM (#56143164)

    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.

    • by SeaFox ( 739806 )

      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.

      I was going to post the same thing. Computer stills are like building a pyramid: you need to have a solid foundation before you start building the layer above. I work in support, and what really grinds my gears is people with advanced issues with specific websites, printing, or VPN connections who, when you try to give instructions to, are revealed to not know how to copy and paste text, or even manipulate interface elements by mouse dragging.

      People who haven't mastered the skills of one of those free commu

  • And yes, you are right. But you are not seeing it for what it is: part of the general complexity growth in all things that must eventually lead to some sort of collapse. Programming is harder, but EVERYTHING is harder. And it will become harder and harder until there is a "Black Swan" of some kind collapsing everything.
  • by ErichTheRed ( 39327 ) on Saturday February 17, 2018 @02:14PM (#56143176)

    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.

  • My first computer was a Radio Shack Color Computer. It came with two great tutorial manuals for coding in Basic.

    There is a lack of material written at that level. Almost all I write in, anymore, is in Vbasic and Vensim (Systems Dynamics, I realize it is a bit obscure). Vensim has a great walk through; However, most of the manuals are either too complicated for beginners; or they don't take the user to the point where thy can do something productive.

    As a teacher, I would love to find something, a bit more ap

    • That's one thing Radio Shack had going for it, it had great manuals. My first computer was a TRS-80 MC-10 (a piece of crap with a 6803 processor and 4K built-in, though I had the 16k expander pack), but the manual was fantastic. And that really is part of the problem. A lot of programming languages have high level documentation, basically designed for those who already know how to program. It would be really nice if someone would come up with the kinds of manuals Radio Shack used to.

      • You're probably the first person in the world that I've ever run into that had the same first computer as I did. It was a piece of crap compared to my friends' Commodores, but it was way more awesome to have computer than not have.

        Thanks to its implementation of BASIC not having a DEF FN, I learned what computer and mathematical functions were in third grade, because, you know, I had to know how to make "Star Trek" typed in from the red book work without functions.

        • My first "real" program was written on the MC-10. A semi-functional Pac-man clone that used the semigraphic GET and PUT instructions. I got it to the point where I could move the "Pacman" (just a yellow block) around a maze and gobble up other blocks, but the semigraphics on the MC-10 and the Color Computers was so sucky that if a yellow block touched another colored block, it would turn it yellow. Still, as far as I got it, it was still pretty cool.

  • TFA is wrong (Score:5, Informative)

    by chuckugly ( 2030942 ) on Saturday February 17, 2018 @02:16PM (#56143192)
    Programming didn't get harder, using a computer just got massively easier. How hard is it to go to a site like [], 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.
  • by isj ( 453011 ) on Saturday February 17, 2018 @02:16PM (#56143196) Homepage

    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.

  • Some of us grew up with those command line machines and we still know command line to this day. Plus programming - you had to write your own software back then and it meant understanding how to break problems down into codeable pieces.
  • Apple (Score:5, Interesting)

    by fluffernutter ( 1411889 ) on Saturday February 17, 2018 @02:17PM (#56143212)
    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.
    • 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.

  • Why? (Score:5, Insightful)

    by ELCouz ( 1338259 ) on Saturday February 17, 2018 @02:17PM (#56143216)
    Why the sudden push for kids and newborns to know how to code? .... Like this will miraculously improve their life later on...
    • I think you have raised the true root of the problem. What is the tech industry doing to motivate kids to want to be developers one day? Large companies seem to forget that they must compete for workforce as kids come out of school and decide what they want to do in life. Unless a kid grew up in Silicon Valley, they probably don't even know someone who has a secure, successful job in computers. Heck, right now plumbing looks a lot better.
    • Re:Why? (Score:4, Interesting)

      by AHuxley ( 892839 ) on Saturday February 17, 2018 @03:20PM (#56143636) Journal
      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.
  • Are they serious? (Score:5, Insightful)

    by alvinrod ( 889928 ) on Saturday February 17, 2018 @02:18PM (#56143218)
    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.
  • by 0100010001010011 ( 652467 ) on Saturday February 17, 2018 @02:19PM (#56143228)

    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.

    • Raspberry Pi is Linux and it's cheap AF. Also reasonably well supported if you know how to use apt-get and pip. What's not to like?
    • 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 c

      • The Raspberry Pi, great as it is, still involves some up-front complexity in a lot of ways that people don't expect. Sure, it's easy to open a terminal and run Python, but knowing what you need to do in order to type and run a program is a barrier without a manual and icons set up on the desktop.

        But if someone bought Raspberry Pis and just handed them to teachers without setting it up for a specific purpose, that's just an idiot move by the administration. This isn't the 90s when people bought PCs for eve

  • by Locke2005 ( 849178 ) on Saturday February 17, 2018 @02:29PM (#56143292)
    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?
    • Only ine who is not confident in his craftmanship is concerned about jobs getting off shored.
      There are plenty of development that can't be easy offshored, e.g. stuff that relies on local laws as e.g. energy production and trade in the EU.
      And on top of that there are plenty of countries where it is fun to work, if my job would be 'off shored' I would 'follow' the job and work in a similar job off shore, nothing is easier than that in our times.

  • Step one, see title.

  • by MindPrison ( 864299 ) on Saturday February 17, 2018 @02:29PM (#56143298) Journal

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

  • by tgibson ( 131396 ) on Saturday February 17, 2018 @02:30PM (#56143310) Homepage

    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.

  • ... microsoft has made an idiocracy through getting rid of the command line based section of the OS as it's own thing largely. Old operating systems like MS-dos and other programs like games, etc should be required part of any computer course so they actually learn to trouble shoot computers and actually have a course in computer history. Some enterprising company should really make a whole virtual machine that emulates what it is like to run early computer software and configure a virtual computer insid

  • by Jonathan P. Bennett ( 2872425 ) on Saturday February 17, 2018 @02:34PM (#56143340)

    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.

    • Using a computer and the motivation to be forced how it works are different, if you think back to the original generation of techies they were pretty much forced to learn via how the OS was structured closer to a programming language via command line. Many kids will never learn about 640K memory limits, etc. Nor the history of computing. There's nothing there to force you to learn what is actually going on. As tedious as say early dos and win 3.1 were it forced people to learn or else you couldn't reall

  • I think it's easier. I'd kill for Google and YouTube to get answers and tutorials when I learned BASIC. All I had was my C64, the programming manual and curiosity. Complete games were just a wall of text, even those that were actually readable and not just lots of PEEKs and POKEs to memory addresses. The difference is that the software I looked up to was also made by one or few developers with rather crude graphics and sound. Particularly something like Lazy Jones [] with lots of mini-games, I could make somet

  • Programming on a computer is easy enough to set up. But how do you program on a phone or tablet? Last I heard Apple forbids programming on their phones. I don't know of any way to develop an app on an Android phone either. You can't even script at the command line because there isn't one.

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

  • Nonsense. (Score:4, Insightful)

    by Qbertino ( 265505 ) <> on Saturday February 17, 2018 @02:44PM (#56143420)

    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.

  • by Voice of satan ( 1553177 ) on Saturday February 17, 2018 @02:44PM (#56143426)

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

  • When people genuinely value learning and knowledge and achievement, then children learn. They don't complain about it being too hard, they talk about how it was hard but they put in the effort and learned it anyway. Or they talk about how they put in the effort but they still weren't able to master the material, but they were able to accomplish something else instead. They encourage each other.

    If you want learning, then value it socially. When you have conversations, are they about how you learned a new

  • by AHuxley ( 892839 ) on Saturday February 17, 2018 @02:49PM (#56143454) Journal
    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.
    • I agree with a part of your statement, but what's missing is giving students a chance to see what programming is and whether or not they like it/can do well at it.

      What's needed are platforms that appeal to all students to at least give programming a try and work at a level that all teachers can support.

  • I agree that the C64 was certainly a great place to start, but in those days computers were fairly useless and the games pretty crappy by our standards. Go a bit further back and all was more so.

    Therefore you could make a little program that might actually do something cool. Plus computers were a novelty so making them do anything was cool.

    If you started to get a bit serious you could reasonably make a game or a program that others might use. Not a blockbuster, but something interesting. Get 5 friends a
  • 20 years ago. Buy a book: []
    Learn to program.

    Today. Believe it or not it is still possible to: Buy a book and learn to program! []

    Contrary to popular opinion, people did learn things in the days before web-enabled-group-assignments. Now we have teachers ready give you the answers to any hard questions so that your sense remains at permanently elevated levels.

  • by javaxman ( 705658 ) on Saturday February 17, 2018 @03:02PM (#56143526) Journal
    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...
  • The only difference is that today you can do with programming immeasurably more than you could in the past when pac-man was state of the art. Building the same level of software has to be simpler today using modern tools.

  • by quantaman ( 517394 ) on Saturday February 17, 2018 @03:13PM (#56143594)

    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.

  • 1) Git is horrible for introductory usability. Just today I saw a tweet from a veteran programmer who complained about not remembering how to roll back a commit and needing to Google it.

    2) Overly complex object libraries. No, you don't have to inherit 12 different levels. And "Hello World" should not be a hundred-line program.

  • I was a programmer and DBA for many years. I learned on command line interfaces, so I have a good understanding about directories and files. Even with that knowledge, sometimes I find it hard to find files in a GUI system. I currently use a Mac. If I use the Terminal program, I sometimes have a hard time locating the files. I can do it, but it is often a pain. I also have the same problem when using windows systems.

    Likewise for my Android phone. Moving a file from my Mac to my phone or vice versa is a real

  • When cars and aircraft were first invented, someone with modest mechanical talent could modify or even build one in their garage. Now they are so sophisticated that its very difficult for a non-expert to make any useful improvements.

    Going back further, when people used dug-out canoes and rafts, a little training would let someone build a boat. Later it became a job for experts.

    This may just be what is expected for a mature engineering field.

    BTW - people *can* do home-made modified cars, planes and boats,

  • Any language like Python or Javascript comes with tons of libraries. I also grew up in the C64 and did some easy BASIC programming. Opening and reading a text file? no clue. Doing that with Python? open( "blah.txt","w").
    There's also this thing called the internet now. It's been around for the public for almost 25 years. If you want to learn how to program, just google it.
    Try learning BASIC with a reference book and no internet and see what happens when you want to do something different than reading in so
  • anyone learning to program has to start by installing an SDE

    When you start with a false premise, the rest of what you say is suspect.

  • Backwards (Score:5, Insightful)

    by zieroh ( 307208 ) on Saturday February 17, 2018 @03:26PM (#56143680)

    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.

  • The problem isn't that learning to program is getting harder, it's actually slightly easier. But the approach to teaching it is wrong. If you want to teach the mass of students (a bad idea, by the way) then you need to introduce them to programming with something like Scratch, or Logo and turtles. The assembler level is totally the wrong place for anyone these days. An IBM 7094 or Z80 or I6502 was relatively simple. Even the M68000 wasn't too bad. But modern processors are just to complex to be a reas

  • I only agree that learning to program is harder in our days because languages are more complex and tools as well. E.g. persistance annotations etc.

    One the other hand:
    1) is wrong. Worst case you have to download an IDE, there is nothngi to install. Linux and Macs come with IDEs/programming languages pre installed, e.g. Python.
    2) is wrong. Modern IDEs give you information, what exactly would they hide? Folding away doc comments?
    3) what has that to do with programming? And we all know where the information o

  • When demand was low, the handful of people for whom programming was exciting were all that was needed. Now, demand is very high, and learning to program will be quite difficult for the masses need to fill this demand.

  • Like many others, here. I once wrote commercially useful software "Lessor II "that booted off a 5.25 " floppy. The original floppy floppies! Don't want to draw flames by identifying which standalone, language it was written in. Many could boot from the A: drive and a ROM'd motherboard (ahhh... "Motherboards"...sigh) It solved a business problem and licensed for over $1,000. Recently I have tried to develop within the newer Frameworks environments, and found it frustrating to developing with NPM,alw

    • frustrating to developing with NPM,always downloading some knucklehead's newest contribution to an already good enough to begin development codebase

      That's the NodeJS community for you. Half the people are developing some whizbang new framework, yet have no real applications of their own under their belt. Total amateur hour.

      I wonder if anyone will catch on that developing software that is semi-connected is not much more difficult than 24/7 connected cloud software, yet way more robust. Being able to operate my business while systems are temporarily offline, yet quickly sync them back on when connectivity is reestablished just makes good sense. Businesse

  • No, Computer Science programs in school are ruining it. Their idea of "programming" is "what the fastest way to solve (X)", when (X) is an already solved problem that we could all just go look up. Or, alternatively, they'll give you a specific name of an algorithm, and ask you to reproduce it. How many people memorize every single array sorting algorithms by their names, and can reproduce them purely off memory?

    In the real world, these are already solved problems, AND those problems are very well documented

  • Programming is probably becoming harder because computers are far more complex than they were in the days of Commodore 64. In order to be a good programmer you have to understand how to write software that can take advantage of multi-processor and multi-core systems. The article is wrong that programmers should not have have strong system administration skills. True masters of BSD and Linux are both competent systems admins and developers. Good developers must understand how their computer operates. In fact
  • I think something like QBasic should have been bundled with Windows and installed by default not unlike other basic utilities like Calculator (calc.exe) and Notepad. Installing it after the fact is not ideal but acceptable too. There were a lot of quick and dirty bits of work that people could throw together in a few lines of BASIC back in the day. Kind of the point of a computer is to have it do tedious repetitive work with only a few instructions.

    But don't forget, every PC, tablet, and phone has a JavaScr

Man is the best computer we can put aboard a spacecraft ... and the only one that can be mass produced with unskilled labor. -- Wernher von Braun