Live data from Hacker News

Learning to program is getting harder

allendowney.blogspot.com

291–300 of 422 posts

Re: Learning to program is getting harder

#291

Anecdotally, what I've seen is that older programmers, in addition to being programmers, also have the skills of a computer helpdesk technician. They can debug Windows problems, hardware problems, know how to mess with the BIOS, and have no problem installing or configuring any piece of software. This helps immensely when setting up your IDE or debugging weird problems with compiling. Younger programmers seem to comm…

I agree completely --- being one of the "older programmers" --- and think it could be phrased thus: a new generation of "coders" is being forced to learn how to write instructions for the machine, when they are barely computer-literate. Having taught some introductory CS courses a few years ago, the amount of struggling with basic things like file naming, directory hierarchies, and even simple hardware use was a cons…

> Having taught some introductory CS courses a few years ago, the amount of struggling with basic things like file naming, directory hierarchies, and even simple hardware use was a constant distraction.

Or to put it the other way: users (future would-be programmers) are being distanced[sic] from how the machines work. Even at the most rudimentary level.

Frankly, I'm not surprised. Interfaces are systematically being dumbed down in the name of usability. Users may be buying powerful computers, but they are using appliances. Pieces of shiny machinery that, to all intents and purposes, work with magic. [Queue A.C. Clarke quote here.]

The immediate downside is that when the interface is dumbed down to the level of non-confusion for the large masses, the features that power users would find appealing are being stripped off.

Curiosity may have killed the cat, but what happens when curiosity itself is being killed?

Re: Learning to program is getting harder

#292

Anecdotally, what I've seen is that older programmers, in addition to being programmers, also have the skills of a computer helpdesk technician. They can debug Windows problems, hardware problems, know how to mess with the BIOS, and have no problem installing or configuring any piece of software. This helps immensely when setting up your IDE or debugging weird problems with compiling. Younger programmers seem to comm…

(btw, I'll use 'older' and 'younger' as a sort of statistical reference, not implying a strict age separation exists and all on either side are clones of a prototype) I recognize this. My 'younger' colleagues can't install a computer from scratch, a get completely stuck on the slightest network issue. But I don't thin it is related to education. The 'older' programmer had to squire these skills by necessity as it was…

The youngest guy on my team refuses to reinstall his development environment like the rest of us when new major platform changes occur. Then every few months complains when his environment causes an error in the build.

Re: Learning to program is getting harder

#293
post #89

Earlier quoted context omitted.

>We have Python, Ruby, Javascript... We have the Web as a platform Can you explain how any of those things makes learning programming easier?

A generation ago, many (most?) apps were C++ for Win32. That means wndprocs, LPARAM, pointer casts everywhere. No STL, buggy templates. Dialog resources, manual layout of controls. Build the app for both * A and * W, ship unicows for win95 support. Crashes on machines without IE4. A lot of that was just incidental complexity and is covered up now.

A generation ago, many (most?) apps were C++ for Win32.

I think there was far more VB being written than C++, at least at the sites I visited.

Re: Learning to program is getting harder

#294

Earlier quoted context omitted.

Actually reading error messages is an apparently very rare skill. Almost always, if you just google what it tells you, you'll hit something... Yet I constantly see people automatically click through popups milliseconds after they appear, only to fume about things not working. It takes a surprising amount of effort to get them to do it over and slow down long enough to figure out what went wrong.

i would just like to get error messages that actually said something more than something went wrong. yea, no shit something went wrong, i already know that, but what and why and how do i fix it are questions i want answered. i know the code knows what went wrong, so just tell me.

Why i love the older parts of Linux, but hate the more recent DE centric stuff. Because the older, unix derived, stuff will tell you front and center what went wrong (unless it is so wrong that all the kernel can do is barf a hex dump of the memory region on screen).

The newer stuff will come up with unhelpful messages or just an eternally spinning pointer, and yet they are supposedly bringing Linux to the desktop. F that.

And i wonder how many times now i have fed a Windows error code into a search term and found a bunch of people asking all manner of channels (both Microsoft and otherwise) for help and get nothing (W10 don't like the card reader on a tablet i have, and all i can find is that maybe, just maybe, MS screwed up the driver. But Intel seems to no longer provide any usable chipset bundle...).

Re: Learning to program is getting harder

#295

Earlier quoted context omitted.

You can make a rails app and run it in heroku within an hour into your first tutorial. You can get an interactive JavaScript environment in any web browser. I cut my teeth on c++ on lab computers. I was crap at it. The compilation and debug cycle was slow and frustrating. I couldn't Google for answers on anything. It's easier than ever to start programming, without any question, and so many batteries are included eve…

> You can make a rails app and run it in heroku within an hour into your first tutorial. How long does it take to actually understand what all of that does? I can claim to understand it, sure--but I'm also thirty years old and I've been getting paid for this stuff for the last fifteen. (Not, like, random POKEs into memory to make syscalls, for sure, but I understood why stuff like SCREEN 13 worked, along with the gen…

It's "and" not "or" here. The new easy highly abstracted stuff doesn't prevent people from digging deeper, it's just one more potential entry point.

There is nothing stopping anybody from digging into lower level languages now, in fact that is also easier than ever with open source IDEs, free compilers, fast processors, ubiquitous documentation, and helpful communities too. The mere existence of a totally open source operating system like Linux and its ability to function on commodity PCs and embedded devices is huge.

You can argue (and I believe this is the point of the article) that people don't bother going deeper because for most computing purposes interacting with very high level abstractions of really complex systems is sufficient (and indeed becoming the norm), which leaves users at a loss when asked to grok lower levels of abstractions. It's also true that there is now more complexity and there are simply more possible things to learn, making it less likely that any individual has the time to develop deep knowledge of all of the systems they use.

Those assertions may well be true, but I'd argue they are not the same thing as it being harder to learn anything in particular. It's daunting, maybe, because of the sheer possibility space, but all of the knowledge is out there and the tools are better than ever.

Re: Learning to program is getting harder

#296

I think it's just a matter that most people use Windows, and programming software is optimized for linux. I once wrote up all the steps required to get youtube-dl working on windows. https://news.ycombinator.com/item?id=11453506 Which is quite similar to what you need to do to install a programming language. Nontechnical people will get stuck on things like changing path variables, because they have no idea what that…

Programming certain software is optimized for Linux, but with VS Code and VS Community Edition, and the robust project templates that come out of the box, users can easily get basic C# programs working for free in console apps or even windows store apps with powerful debugging and intellisense tools. When someone is learning to code, C# can get them there quickly and easily once they discover the correct docs.

If you feel programming is optimized for Linux, that’s because it’s your preference. And a valid one at that! Its just going to tint your view a bit.

Re: Learning to program is getting harder

#297

Anecdotally, what I've seen is that older programmers, in addition to being programmers, also have the skills of a computer helpdesk technician. They can debug Windows problems, hardware problems, know how to mess with the BIOS, and have no problem installing or configuring any piece of software. This helps immensely when setting up your IDE or debugging weird problems with compiling. Younger programmers seem to comm…

Interesting, I'm old enough to have grown up before the scourge of Wintel PCs in the 90s. Had a Commodore Vic-20 instead. You'd hit the power button and about 5 seconds later a BASIC interpreter started. There was no complicated debugging to be done to get it working.

Still, I learned to manage/hate computers by the Win '95 era and grow to love them again by the time Linux became tolerable about 10 years later.

Re: Learning to program is getting harder

#298

Anecdotally, what I've seen is that older programmers, in addition to being programmers, also have the skills of a computer helpdesk technician. They can debug Windows problems, hardware problems, know how to mess with the BIOS, and have no problem installing or configuring any piece of software. This helps immensely when setting up your IDE or debugging weird problems with compiling. Younger programmers seem to comm…

  I think this is a side effect of teaching programming as a career skill.
My guess is that you don't even have to go as far as "computing" in order to see the negative effects of this. I've had a couple of encounters where I helped out a peer that was stuck in a particular problem merely by applying some basic deduction. And I had those situations both with fellow students and later on in the workplace.

In all those situations, the underlying problem was that the person in question didn't have a firm grasp of the programming language they were using, but seemed to program in terms of "patterns" -- they knew how a for loop has to look like, but as soon as there was a slightly more nuanced problem (say a parsing expression in Boost.Spirit), they weren't able to see how the underlying syntax was treated by the respective language.

While I get that it's almost impossible (and certainly impractical) to learn every edge case in most modern programming languages, I couldn't help but think of cargo cults.

Edit: On second thought: OTOH, it seems to me that it isn't helpful to view what a software engineer does merely as "programming" in this regard. I don't see a problem if, say, an electrical engineer is missing said "computing" skills, but they are in their way to complete a program. Many modern professions benefit greatly if the respective person is able to program (maybe only in a specific language, e.g. Matlab or LabView), but that doesn't mean they have to know their working machines inside out.

Re: Learning to program is getting harder

#299
post #124

Earlier quoted context omitted.

It's not. Installing a C++ tool chain two decades ago is much harder than any current environment.

For decades, "development tools" was a (relatively) standard bit of kit on any Linux distro; in fact, you needed it to compile basic software you needed to run on the machine. These days, every environment/framework has a different distribution method/model involving running random shell scripts or learning git or whatever. For example, on OS X (I imagine this is harder on Windows, possibly easier on Linux) Python: T…

I thought it would be easy on windows but was baffled how bad the instructions on the python website are. The getting started guide still caters for windows xp and choosing py2 vs py3 is still considered a good decision for beginners.

1. browse to python.org 2. get confused whether to choose python 2.7 or 3.6 3. get confused wheter to choose gzipped sourced tarbal, XZ zipped source tarbal, embeddable zip file x86-64, embeddable executable installer x86-64, embeddable web installer x86-64, and then repeat all those options for x86. T___T 4. open installable, press next a few times. Last time i did this there were some confusing options to select there also, like wheter to use %APPDATA%, add to PATH or not.

On linux: sudo apt install python3

Re: Learning to program is getting harder

#300
This article lacks any depth! It is easier than ever to program and get started. 5 minute tutorials are available on almost anything and sometimes delivered by 8-9 year old kids.

Even low-level stuff are easier to pick up thanks to the explosion of readily available information and IDEs. No one is using Arduino? Perhaps it is true that newer generation is just less keen to put an effort to study anything outside of the norm of but learning old and new technologies has never been easier.

Post reply on HN