Live data from Hacker News

Learning to program is getting harder

allendowney.blogspot.com

81–90 of 422 posts

Re: Learning to program is getting harder

#81
post #69

Earlier quoted context omitted.

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…

When I went to college, CS required 3 semesters of Calc and 3 semesters of Physics. It's almost as if CS was trying to fill in some hours. Calc and Physics are great and all, but very narrowly applicable. The only benefit is how it works your brain (and a good weed out course). I would ditch that and concentrate only on computer related issues. Database would be a big one that is usually missing. Networking as well.…

I've found that some universities have a program like this -- replacing the calc, physics and higher-level math with more hands-on classes. At my university, a BA in CS was like this, while a BS maintained the rigorous math requirements. I've also seen programs labeled Information Systems that's similar.

Not sure I agree with whole-scale removal of it though. I have to use calculus every once in a while in my job. While I never integrate by hand, I certainly need to know what integrals and derivatives are and how/when they are applied.

Re: Learning to program is getting harder

#82

Earlier quoted context omitted.

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

So, it's a short paraphrase of what ancient people used to write? That's good enough to me, and way better than I expected.

Re: Learning to program is getting harder

#83
post #61

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…

Jesus christ, this. I was doing free online course recently and guess what the forum was full of: self proclaimed geniuses that discouraged beginners from using IDE "notepad is enough". In java mind you, just about the worst language to write in notepad. Of course they struggled with homework.

Yes, I remember people who would say that. I guess they felt it made them look smart.

Re: Learning to program is getting harder

#84

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 absolutely agree with your first few paragraphs. As a hobbyist before I was a professional (Linux desktop since '95), I'm surprised when I meet people who have a technical skill but not a hobbyist background. I first encountered it with Oracle DBAs who sometimes were amazing at Oracle but had rudimentary Unix skills, and that's becoming more commonplace as people do things like phone app development but without the background "we" expect (whether rightly or wrongly).

That said, my background as a Sysadmin/Ops person also landed me in my own silo. I don't have much programming experience, and running production systems means NO, the environment does NOT give you access to wide-open CPAN, RPM, pip, whatever downloads. It's a regimented release process where someone upstream has to provide the relevant dependancies and you don't just go around installing stuff, running services, etc.

As a result of my background and not being a developer, on HN I hear of new languages/frameworks/libraries/methodologies on a daily basis. Things that, clearly, a large number of readers hear must already be familiar with, even though many of them will be out of fashion in 6 months.

And then the process to install a lot of these things is "oh, just pipe a wget of this script into bash, RPM install this, pip install that, don't worry, it's all quite safe for your system..."

In many ways, it feels like worlds are diverging.

Re: Learning to program is getting harder

#85
post #69

Earlier quoted context omitted.

When I went to college, CS required 3 semesters of Calc and 3 semesters of Physics. It's almost as if CS was trying to fill in some hours. Calc and Physics are great and all, but very narrowly applicable. The only benefit is how it works your brain (and a good weed out course). I would ditch that and concentrate only on computer related issues. Database would be a big one that is usually missing. Networking as well.…

I've found that some universities have a program like this -- replacing the calc, physics and higher-level math with more hands-on classes. At my university, a BA in CS was like this, while a BS maintained the rigorous math requirements. I've also seen programs labeled Information Systems that's similar. Not sure I agree with whole-scale removal of it though. I have to use calculus every once in a while in my job. Wh…

Yes, Information Systems type degrees are close, but at my school they weren't strong on programming, instead required Accounting I+II, Finance, Marketing, Management, Business Ethics and that sort of thing.

My wife got her CIS degree a few years ago and they seem to have improved a bit. She had multiple programming courses in several languages along with more advanced CS courses and database courses.

Re: Learning to program is getting harder

#86
post #65

Earlier quoted context omitted.

> 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 Modern IDEs often require an hour long install, and then you turn them on and are faced with 10,000 buttons and 50 windows, they aren't simple either. I have had good success with making beginners people sit through a 30 minute dev environment set up process, in video form. No co…

VS Code is modern ide. And I would really like to know which IDE takes an hour long install. Because I tried multiple on windows and they all required download, double click and that was it.

Visual Studio (proper) has famously long installation times. VS2017 provided a significant installation time decrease but was still on the order of 30 minutes for my company-issued MBP.

Re: Learning to program is getting harder

#87

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…

Surprisingly I think I'm the first to disagree.

I find a modern IDE comes with so much implied mental baggage that new users can get completely overwhelmed. Sure, languages which require complex build environments almost demand one, but in simpler environments it can be a lot easier to reduce the cognitive load in a simplified environment.

One can do a lot of programming and learning with just a simple editor (Nano?) and a Python-like environment (repl, interpreter). With quality online notebook-style environments, we can now accomplish an outrageous amount with very little time or cognitive overhead devoted to build tooling.

As professionals, we ought to be familiar with the underpinnings of our tools though. It can be really painful trying to work with a colleague who's afraid of getting low level to really understand their build issues. I've worked with people who actually become visually agitated when I open up a command line.

What's worse (I see less of this these days) are those who are so coupled to their IDEs that they don't use proper build tools - limiting reproducability, CI integration, etc. This was a real problem back in the earlier Java days before Ant/Maven/etc came around.

No need to shun an IDE - I certainly don't, but one needs to understand how it works otherwise you risk having incorrect (overly simplified) mental models about how your programs are built and run.

Re: Learning to program is getting harder

#88
The fourth option, developing on the cloud and stay there, looks like a good way to lose whatever freedom we had left.

Would the cloud provider let me write pen testing tools? Would it let me put profanities in my comments? Would it give reports of my work sessions to my boss? Would it get a licence to my code?

I'd rather go dinosaur.

Re: Learning to program is getting harder

#89

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…

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

Re: Learning to program is getting harder

#90

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

I think you're exactly right. I learned my way around computers as a kid because I wanted to do the same stuff that kids today want to do. Play games, prank my brother, talk to random people online. And I just followed that thread until it got me what I wanted. That thread involved some basic shell programming, learning what IRQs are, the difference between TCP/IP and IPX and what they did, how to setup the modem so call waiting wouldn't interrupt the connection, dealing with the rather technical nature of early IRC, usenet, BBSs. I wasn't trying to learn computers, it just happened along the way, and pursuing the same goals today won't teach you anything along the way.
Post reply on HN