Live data from Hacker News

Learning to program is getting harder

allendowney.blogspot.com

301–310 of 422 posts

Re: Learning to program is getting harder

#301
post #291

Earlier quoted context omitted.

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…

Familiarity with how computers work arguably peaked during the early-mid PC era. The first computer that I used was an IBM 360. Basically, someone showed me how to punch cards, and how to enter my data. After submitting the job, I'd find out the next day whether it crashed, or completed properly. And after a few tries, I got my results.

But nowhere in that process did I know anything about IBM 360s, or how to program or run them. I more-or-less understood the mathematics involved in the data processing. And I could somewhat parse the Fortran. But I had no concept of anything like a directory hierarchy.

With an IBM XT 286, on the other hand, it was all in my face.

Re: Learning to program is getting harder

#302
I’m amazed to see that the reaction of many people including the op author, don’t think that this is simply the symptom of a field (ide) that haven’t evolved in thirty years.

Whenever i open a terminal to type some esoteric command line i don’t feel like a tech genius. I feel like someone living in the stone age.

Re: Learning to program is getting harder

#303

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…

have you breadboarded it out with transistors though? when was the last time you designed a board? when was the last time you laid telephone poles or dug tunnels for wires? designed fiber optics for cross ocean communications? launched a satellite for your GPS?

at some level, you're always going to be assuming the layer before reasonably works the way somebody gave it to you.

Its not cargo culting if you know where the actual dependence is, and both rails and heroku make it fairly clear what kinds of things they are doing. Even if you don't know how they're doing it, you know that without running the heroku part, you cant load the page in the browser, and without the rails part, you don't get any files you can change.

Re: Learning to program is getting harder

#304

Earlier quoted context omitted.

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…

There aren't really any clues as to how a computer works on an iphone. There isn't even a visible filesystem. It's no wonder students today have no idea how a computer works.

Wait, the previous generation had no phones at all. Do you mean that today's generation use phones instead of computers? In that case, I understand your point.

Re: Learning to program is getting harder

#305

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'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 think I'm one.

I don't think starting early or on your own is a requirement. Like in any field, intrinsic motivation is what counts (IMO).

I started programming in university at... um... 19? As a part of a physics degree. And fell totally in love with it. 20 years later I'm doing it for living and the love really hasn't faded.

Computer graphics is a demanding mistress, you really need to understand why programs and computers work.

Based on my experiences I would consider myself a pretty OK programmer.

Re: Learning to program is getting harder

#306
post #228

Earlier quoted context omitted.

Frankly, I think we would need to know what software engineering looks like, outside of the spaces where engineers (like, ones with PEs) more than developers own the project, before we start teaching it to novices. I mean, I've been getting paid for this for going on fifteen years now and I'm not an engineer . I try to build resilient, reliable systems, I try to test heavily and comprehensively...but I'm not an engin…

Completely agree. The mantle of _engineer_ is not passed on simply via a job title. Responsible engineers (i.e., those that I aspire to emulate) seem to spend non-trivial amounts of time predicting and avoiding potential-negative outcomes. They also seem to have a near-total understanding of the processes that impact these outcomes. If only I could figure out how they _know so darned much_ about everything ...

> If only I could figure out how they _know so darned much_ about everything ...

As someone with a degree in Mechanical Engineering, I'd say that your observation is mostly due to (1) several hundred years' worth of head start (2) the field not shifting under them (much) over their careers (3) intuition from interacting with the real world being applicable and (4) you're also unaware of the crazy amount of accumulated computer knowledge you have. Now, due to the changing nature of software development, a lot of that accumulated knowledge is useless, but it wouldn't be useless in a more mature field. Imagine if all of the random arcania I've had to pick up from AppleSoft BASIC, Pascal, Perl 5, Tcl, ANSI C , etc. were directly applicable in my day job using C++, Scala, and Java.

Sure, there's some overlap, particularly from ANSI C to C++, but with Mechanical Engineering the basic tool kit changes much more slowly. I learned about common steel and Aluminum alloys, polyethylene, ABS... advantages and disadvantages of each, things to watch out for.

If a Mechanical Engineer really gets to know 1040 vs 1045 vs. 4130 steel alloys, that's knowledge that's going to pay dividends for the rest of her career. It's not like 10 years ago or 10 years in the future there was/will be a massive shift away from Aluminum and steel and the majority of engineers had/have to throw out most of what they knew/know about metals and learn how to design for Nickel and Titanium alloys. 3D printing brings something new, and heat treatment and machining techniques have improved, but even 3D printed metal parts aren't fundamentally different from the powdered metallurgy that my dad's cousin was researching in the 1940s.

You're also accumulating a ton of arcane knowledge, it's just that most of it has a relatively short useful life.

There's also survivor bias. The engineers that were promoted and kept through economic downturns tended to be the ones that were really interested in their field and readily soaked it in.

Re: Learning to program is getting harder

#307
post #125

I disagree. Creating a program that meets todays' users expectations is what's harder. But learning programming by itself, is way easier. We have Python, Ruby, Javascript... We have the Web as a platform and as documentation. We have communities and cheap, fast computers. The hello world has never been easier to do. What's hard is to make a real time offline first SPA with a beautiful responsive design that uses the…

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

Yeah but we only has BASIC. Want to do some real C++ GUI programming? That'll be £1000 for the compiler please.

Re: Learning to program is getting harder

#308

Earlier quoted context omitted.

I ask this out of genuine interest... why does it matter? Why’d it piss you off?

Not OP but, it's the classic Dunning-Kruger effect, they know so little about how to use a computer that they think that using a iPhone is a skill that is equivalent. This usually isn't a problem for most people but this person is in CS, where you would expect them to have at least passing knowledge in computers to join the major.

It is a computer, of a different design.

Re: Learning to program is getting harder

#309
post #220

Earlier quoted context omitted.

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.

Right, except I wasnt using computers when I was born, and really wasnt using them well until I was maybe 24.

We are taking half a decade until my cadre is unfamiliar to me. That's insane.

Re: Learning to program is getting harder

#310
post #112

Earlier quoted context omitted.

I disagree. Having a broader skill set means you can be more creative with problems. The separation between doctors and computer science is holding both fields back. Think of machine learning and big data, we are _just now_ starting to apply those ideas to medical problems, while those problems are fundamental to our existence as a species. Computers in hospitals are a chore and a drain on doctors. They should be emp…

I see zero connections between having computer administration skills and fixing those problems. Knowing how to install and troubleshoot software would be a waste of their time. Programming on the other hand would take a significant commitment to be useful. Sure having say ~1% of doctors go down that path might be useful but for the other ~95% it would be a horrible waste of time and cost literally hundreds of billion…

If there were doctors and nurses who have basic computer literacy and entry level coding skills taking part in the acquisition and development process of the IT systems they use, I bet they wouldn't suck as much as they do.

Most specialized software systems, e.g. those that are used in hospitals or selling you train tickets, are developed by people who don't have a faintest idea how the software is used daily. This ends up being an expensive disaster more often than not.

This is why I think everyone should have basic computer literacy and programming skills. Which is not the same as everyone should be a professional quality software engineer.

Post reply on HN