Live data from Hacker News

Learning to program is getting harder

allendowney.blogspot.com

231–240 of 422 posts

Re: Learning to program is getting harder

#231

Earlier quoted context omitted.

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

How so? Two decades ago was... 1998. You pop in Visual Studio 6.0 click a few buttons and it's done. On Linux we had gcc/g++, which came preinstalled in every distro. Even if you factor in setting up Makefiles and autoconf and friends, those are nowhere near the complexity of configuring webpack for a SPA, let alone installing everything you need for a functioning stack. We're talking days, weeks, and even months of…

> Even if you factor in setting up Makefiles and autoconf and friends, those are nowhere near the complexity of configuring webpack for a SPA, let alone installing everything you need for a functioning stack. We're talking days, weeks, and even months of tedious fighting to get everything setup.

That's an overly rosy view of the past. Makefiles are inscrutable for a newbie. We're talking hours just to figure out tabs versus spaces for indentation. Google launched in 1998 so that was barely Googleable, there was no Stack Overflow (remember expertsexchange.com?). Older C compilers utterly failed at useful error messages on trivial errors like missing semicolons, or closing strings or braces, and 1998 was before Boost, so good luck getting STL Vectors working. These days languages have hashes/dicts available as a built in data structure. If you were lucky in 1998, you had a C string library and no one had to call ::malloc (or worse, ::realloc).

There have always been major component upgrades if you choose to get distracted. Circa 1998... remember that whole mess with 2.2 vs 2.4 Linux kernel? How about upgrading Debian versions was and that fun with incompatible versions of libc? i386 vs x86_64? STL? How about rewriting to use Boost (version 1 came out in '99)? Getting Boost to build in the first place was at least a multi day adventure.

As a newbie, setting something up on a modern stack is actually pretty easy - because that's no longer something to setup by hand. Clone the tutorial repo, grab their docker container or `npm install`, and you're up and running.

Re: Learning to program is getting harder

#232

"If someone just wants to learn to program, they shouldn't have to learn system administration first." I may disagree. Even though that's maybe an old school opinion I think every developer should at least understand his own development environment (including the OS), potentially also aspects of the target environment. The reason is because (1) the abstraction between the OS and an(y) (sofisticated) SDE is still leak…

Every good developer should understand these things, but I don’t think it’s reasonable to demand them from beginners.

I learned to program in Borland Turbo C on DOS, and later in Visual Studio 97. Both were full-featured IDEs, at least by 90’s standards. I’ve only started to learn Windows internals & system administration on my first job in 2000. If knowing system administration would be a prerequisite, I’m not sure I’d become a professional programmer.

Re: Learning to program is getting harder

#233

Earlier quoted context omitted.

I've never met a good programmer that wasn't (at least initially) self taught. Presumably they exist, but I've never met one. I do agree though, I find when I'm teaching my juniors I sometimes have to give a little history lesson as part of it (things like why 8.3 filenames).

I thought 8.3 filenames were obsolete, even on Windows? Do your juniors even have any idea what you are talking about?

It is quite obsolete, but we can still use them in modern windows for legacy program support.

As for whether such legacy program exist anymore it is a mystery.

Re: Learning to program is getting harder

#234

Earlier quoted context omitted.

> I think people have gotten lazier My only response is this famous quote: "The children now love luxury. They have bad manners, contempt for authority; they show disrespect for elders and love chatter in place of exercise"

Yeah, I realize how it sounds. Angry old man yells at cloud.

Your pun was underappreciated.

Re: Learning to program is getting harder

#235
post #125

Earlier quoted context omitted.

> The hello world has never been easier to do. We also used to have BASIC pre-installed on a lot of different systems, and were able to write a GUI just by writing to the frame buffer directly. A helloworld was just: 10 PRINT "Hello, World!" I learned to program in BASIC, with just the on-disk manuals. I can't say that it's easier today - I didn't need anything extra back then, and had a snake game up and running in…

Today's modern and accessible example (in Chrome) is to hit ctrl-shift-i, then type out `console.log('Hello world!')`. Users these days browse the web, so having Chrome/Firefox/Edge isn't anything extra. It may take a bit longer to write snake though; games these days have user accounts, achievements, and multiplayer. Kids these days have something better than get_ch; a mouse! It's way easier today with all the free,…

> Kids these days have something better than get_ch; a mouse!

Had that too. Had full GUIs from tracking mouse movement and writing to the framebuffer.

Our software is more complex, so programming it is.

Let's go with JS, as getting up to basic game design is still fairly simple in it.

Scanning for keycodes is done by a callback, so you need to have a basic idea of scoping, objects, and functions before you can get started. Didn't need any of that in the past, because BASIC's procedural model was dead simple.

Then to draw, you have to either learn about the DOM or the canvas, you can't just POKE and PEEK til it works.

There's nothing wrong with using Python or JS or whatever, but the complexity to get going is much higher than my childhood. For good reasons, but still more complex.

Re: Learning to program is getting harder

#236

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 know plenty of younger programs who can diagnose their own problems, so the generalization doesn't hold so well.

I think the issue is more about experience and need: when we were learning to program, we HAD to do those things. For the younger generation, it is totally possible to get by without because the ecosystems are so much easier, coupled with a lot of online knowledge that they can access quickly, which was mostly missing in our age.

On the other hand, those young programmers that are faced with a complex ecosystem will usually learn how to deal with it. Heck, with the web and its many step backwards in programming environments (e.g. try debugging in Chrome!), many things are actually harder for them and they acquire skills that I didn't need!

Re: Learning to program is getting harder

#237

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…

Personal anecdotes here. I never occurred to me that people who could program couldn't do some sysadmin stuff to some extends until I work a small contract in a company. A day I was to demoing something there was a problem, so I fired Powershell to to some command line stuff... and someone asked "why do you have IT skills?". At first, I didn't even understand the question, I mean, installing systems, playing with VM, and the like was my daily bread, so I thought it was the some for every programmers...

Another day, I went to the local of the university's CS student association. I was excited about what I did the previous day so I told after entering: "yesterday I installed FreeBSD in a virtual machine and did XX". One people replied by what is a virtual machine, and another by what is FreeBSD. I explain to them briefly then left wondering where the people actually interested by the field were. It turns out I met some of them a few months/years later. Both mostly self learners, one with formal training in theology and the other a musicology.

Re: Learning to program is getting harder

#238

Earlier quoted context omitted.

I agree with your observation, but I don't agree with your diagnosis of the cause. I think it's mostly down to the increasing abstraction and ease of using software. When I was a kid, I wouldn't have described "computing" as a hobby, but just getting certain games to install and run on my parent's cheap Gateway PC would require a lot of fiddling around. My younger siblings have no more or less interest in computing t…

> but just getting certain games to install and run on my parent's cheap Gateway PC would require a lot of fiddling around Ah, that brings me back to memories of boot floppies in order to change the memory settings of the system.

IRQ conflicts! Holy mother of hell IRQ conflicts! particularly when dealing with those early gen Sound Blasters -- and trying to get that Roland MT32 you borrowed from the greasy weirdo in your big brother's band hooked up and pumping out that sweet, sweet midi

Re: Learning to program is getting harder

#239

Earlier quoted context omitted.

Maybe programming isn't, but perhaps finishing something is? Because while the hands-on-the-keyboard, moment-to-moment writing of code is almost certainly easier than ever, actually making a thing out of that is nowhere near as simple as it used to be. Building a nontrivial thing in QBasic was really, really easy. Building a nontrivial web app--whether it's strict server-side PHP or strict client-side JavaScript or w…

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 general constructs of the language.) On the other hand, I pretty much fully understood how QBasic worked and its interactions with DOS at age 5. I was able to parlay that into C and C++ and into understanding how the thin virtual machine there, simultaneously into PHP and Java and how those actually worked by relating them back to lower-level concepts I'd picked up...

Cargo-cult monkeying about doesn't adequately, to me, replace understanding and insight--and "just make a Rails app and push it to Heroku" is fundamentally cargo-culting. If you don't understand how your tools work, you don't understand what you're doing. (I've written everything from CPU emulators to Rack frameworks to prove that I do understand what I'm doing.) I started doing that literally from the jump as a kid, and the systems were built so that it was something you could easily do.

Re: Learning to program is getting harder

#240
post #220

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 am 31 years old. Reading this makes me feel like a million years old.

perfectly normal - it's quite overwhelming to think about how much computing has changed in the last 30 years.
Post reply on HN