Live data from Hacker News

Learning to program is getting harder

allendowney.blogspot.com

51–60 of 422 posts

Re: Learning to program is getting harder

#51

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…

But those skills have nothing to do with computer science as a field of study - wouldn't they be more useful to teach in general education like K-12? Like I remember in middle school, we had an elective option between woodshop and CAD. The 'CAD' class was really more about performing simple automation in programs like MS Word/Excel, but that sort of thing is still useful in just about any job these days - not just pr…

in some other languages it's basically called that. "Informatik" in German. there's still the vestigial title in some department names in the US, "Department of Computer Science and Informatics".

I agree it would be a better name but I think the battle is lost, informatics now refers to an applied discipline (closely related to library science) involving building up big systems to store and organize data.

Re: Learning to program is getting harder

#52

It's getting harder because it's become fashionable to shun IDEs that make most of these issues obsolete, and have done so since at least the 90's. It's ridiculous to expect newcomers to a language and/or programming in general to slog through a 20 or 30-step environment setup process. This idea that using an IDE will discourage someone from finding out the more detailed workings of the language, compiler, etc. is no…

> It's ridiculous to expect newcomers to a language and/or programming in general to slog through a 20 or 30-step environment setup process.

It's ridiculous for anyone really. If you're not using something outside of the standard libraries, it's ludicrous to expect someone to slog through the manual setup process when they can double click an IDE icon and be ready to program in under a minute.

Not to mention the fact that a lot of those setup guides are for specific OSes and the author always seems to leave that part out. So you get to step fifteen and get a weird makefile error only to find out that that particular library is for another OS with no alternative for your own. This forces you to restart at square one with more potential added steps (eg virtual machine setup, OS setup, etc).

Re: Learning to program is getting harder

#53
I agree that it's harder to learn to program now than in 1982 (in terms of "hello world" level simple stuff - but not for advanced stuff), but I believe that it's way easier now than in 1992 or 2002.

AppleScript might be an exception in the 1992 case, but it was a fairly specialized case and only for Macs. Otherwise, today you can google stuff easily (vs needing books and such) and even Windows supports installing Linux tools out of the box.

The danger, though, is that in the future we could have fewer and fewer general-purpose computers -- iOS is not as dev friendly as OS X.

However, even on general-purpose computers, don't seem that interested in making it easier, which is sad from a professional pride point of view if nothing else. I set up Android Studio on Linux recently. It wasn't terrible, but even that wasn't a seamless experience - the emulator stuff had a few problems, including included libs that were incompatible with Intel graphics drivers, that I had to work around.

Any time you join a company and have to browse a long dev environment setup wiki or readme, you've seen us all fail. We're bandaging it as fast as we can with stuff like Docker, but that's just delaying the problem until you have to debug your container in prod. ;)

Re: Learning to program is getting harder

#54

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…

But those skills have nothing to do with computer science as a field of study - wouldn't they be more useful to teach in general education like K-12? Like I remember in middle school, we had an elective option between woodshop and CAD. The 'CAD' class was really more about performing simple automation in programs like MS Word/Excel, but that sort of thing is still useful in just about any job these days - not just pr…

I think you are trying to make some good points, but your language could have been clearer. If I'm understanding correctly you mean:

1. Treat Computer Science (CS) as a specific field, and don't dilute the curriculum with related items. 2. Introduce a course that covers these broader, non-CS items, and actually push it out beyond the audience of CS?

Did I get that right?

I think you might have meant the term "informatics" (https://en.wikipedia.org/wiki/Informatics). Depending on your position CS is either subordinate, equal, or above informatics. I have a degree from a UK university and there is a much wider spectrum degree types in this field than exist here in the US where I now live.

I'm conflicted on the original post that elicited your response. I have that background where I inherited a broken PC, a bunch of floppy disks, and some manuals. In some ways this gives me an advantage, especially given that I'm comfortable being dropped into a messy project or some problem that is debugged. I've seen lots of folks who can't handle this, but can churn out code on to need more support around the edges.

I now see more and more folks attempting things like devops and at least being able to learn some of these skills later on. I think where it stands me in better stead is problem avoidance, but even that is subjective.

Re: Learning to program is getting harder

#55

Earlier quoted context omitted.

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

The quote you're responding to is also ~2,000 years old.

It may be more recent.

https://quoteinvestigator.com/2010/05/01/misbehaving-childre...

Re: Learning to program is getting harder

#56
I'll be honest with you. Programming is actually pretty easy to learn.

As long as you have a vague idea of how logic works and are eager to learn with the right approach, you can pick it up pretty quickly.

A lot of the concepts floated around in programming have crazy sounding names but are actually not that bad.

What's really hard to learn, however, is full on software engineering.

Knowing how something works end to end. Sure, you can learn to program well in JS, but that won't translate right away to knowing how to build an awesome website.

You can be an excellent java programmer, but that won't translate right away into architecting a nice Android app.

For me at least, when I was an up and comer, these were the things that were hard to put together.

Every tutorial site wants to jump into a lot of details right away - I wish they started with a high level overview of where you'd need the language, where it fits in in the larger "app" picture (where app can be a site, an app, etc.) and then dive into the specifics.

Re: Learning to program is getting harder

#57
> Computer retailers stopped installing development environments by default

This is true, but somewhat ignores web browsers. The big ones (Chrome, Firefox, IE & Safari) all have complete and high quality dev environments.

The article is Python-centric, and so the best answer for that right now is: install Anaconda!

Otherwise, the general argument being made here is solved by JavaScript at the moment.

If you use JS to write code, there’s nothing to install, distribution is built in, it comes with the dev environment. All language and feature comparisons aside, this is the strongest reason to use JS, because it makes sharing programs with other people so insanely easy compared to any other language.

Re: Learning to program is getting harder

#59
post #20

One of the consequences of the transition from command-line interfaces such as DOS and Unix to contemporary GUIs such as macOS and Windows is we have moved from environments that do not make a sharp distinction between programmer and user to environments that make a sharp distinction. One of the nice things about command-line interfaces is being able to make powerful tools that are composed of smaller tools. Unix has…

I want a machine like that.

Re: Learning to program is getting harder

#60

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'm and older programmer. I learned how to build a computer because my parents scraped enough money to buy a computer when I was young, but not wealthy enough to get it fixed when I inevitably broke it. This was back when PCs were friggin expensive as were parts. Fellow computer friends (we had few back then) would let each other borrow hardware (parts) and whatnot, so we had to learn how to install it and configure it (IRQ's COM ports, etc), but it was fun, and without internet! It's what I liked to do in my spare time.

The funny thing is the C64 and VIC-20 were self contained, for the most part. You didn't have to add cards and swap out processors and all that. All you really had to do is know how to put wad of aluminum foil where your fuse should go when your fuse goes out. :)

When the dot boom came around, I had to learn how to not only write web sites, but I had to learn how to host a website out of my house, which includes everything you would need to host a website, which involves a lot. DNS server, mail server, database server, server admin, TCP/IP, security, and more. I still host out of my house today.

Post reply on HN