Live data from Hacker News

Learning to program is getting harder

allendowney.blogspot.com

111–120 of 422 posts

Re: Learning to program is getting harder

#111
I'm afraid a very important point was missed.

What is it that's being programmed?

Commodore 64 programmers were never interested in "Bayesian Statistics" and "Digital Signal Processing". Their main interest was pretty much related to systems programming in one way or another.

Today's "programmers" expect to do crazy things like carry out statistical analysis on megabytes of data, in a matter of minutes, with all kinds of insightful plots, and animations and what not. (Same goes with DSP).

Today's programmers are NOT asking for what Commodore 64 programmers were asking for. They're asking for way way more.

Not that there is anything wrong with that. But who's is to provide such shiny interfaces to future Bayesian-statisticians and Digital-signal-processors?

- System programmers do massive research to automate for today's programming demands, workflows, and activities. And a lot of people are working in this space. But it's full of information overload without a clear winner.

- Or one of their own takes a hit for the team, transitions into system level programming, and uses his past experience to create usable interfaces, processes, workflows, and associated software. It's not an easy task.

I think now we're talking about something I've been struggling with for many years, a computational science workflow software. Again there are hundreds of projects in this space but that makes it even worse. How do you chose between them? Someone says he/she uses Sumatra and it works for him/her. But it may not work for someone else. Someone else says you should follow Cookiesutter Data Science guidelines. But that's also addresses on a small aspect of the overall problem. Etc, etc. The there are the emacs diehards who claim you can do everything in emacs so why leave emacs. Well I can do everything in linux + shell + C so why leave linux + shell + C? (point being emacs only let's you do everything by becoming an OS in itself).

I don't have a solution.

I'm working on this problem in my spare time from a very very different meta level angle. But that is a massive research project and cannot be finished in a matter of a couple years, much less without funding.

Re: Learning to program is getting harder

#112
post #27

Earlier quoted context omitted.

There are a lot of useful skills. Teaching people how to fix a flat tire would also be rather useful. Basic computer administration falls into that huge category of useful skills that are not worth teaching to a general population who have completely viable alternatives. Specialization is extremely valuable for society and having more competent doctors etc is worth doctors having a more narrow focus.

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 billions of dollars over time.

Re: Learning to program is getting harder

#113
post #76

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…

But the learning curve of getting an environment setup to do that is steeper.

As hard as clicking one link: https://repl.it/

Re: Learning to program is getting harder

#114

I don't understand this viewpoint at all. There's a breathtaking amount of tutorials, Q/A (stackoverflow), forums, chats, that can get someone started with a fraction of the effort it took for me to learn programming 20 years ago. There are one-click installers for programming languages and for IDEs. There are entire free books online to learn specific languages or frameworks. I think people have gotten lazier and th…

As relatively young person I agree. Many people my age and/or younger expect quick results and don't really have the patience to see something through. But like with any other facet in life, if people take shortcuts they totally deprive themselves of vital experiences that are necessary for them in the long run if they want to experience any decent amount of success. Especially if they are wishing to learn something…

I'm not that old, 33, but I think I recognize that I wasted a lot of my youth being paralyzed by the thought of failing, when really it is the most successful people who start out by failing. A lot. It is important to get comfortable with failing, and to separate one's failure in trying something from the thought of personal failure. That is "I failed because I need to learn more," versus "I failed because I'm not good enough."

Re: Learning to program is getting harder

#115
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.…

Asymptotic notation is defined using limits. In fact a lot of concepts in CS involve limits, convergence, etc.

The problem is that most calculus courses were devised before the widespread availability of Wolfram Alpha and focus too much on hand computation rather than understanding of the subject.

Re: Learning to program is getting harder

#116

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…

You couldn’t have said it better, I had the same kind of learning path as you did and I believe it makes everything a lot easier to understand since you can clearly see the full spectrum of what you are dealing with while programming and usually it helps open new doors so you can explore a problem from a different angle since you have a deep knowledge of your stack available to you from the start.

Re: Learning to program is getting harder

#117
post #27

Earlier quoted context omitted.

There are a lot of useful skills. Teaching people how to fix a flat tire would also be rather useful. Basic computer administration falls into that huge category of useful skills that are not worth teaching to a general population who have completely viable alternatives. Specialization is extremely valuable for society and having more competent doctors etc is worth doctors having a more narrow focus.

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 think you would be familiar with what it takes to become a doctor v/s a software engineer, education wise, but let me reiterate:

For a doctor: 1. 4-5 years Bachelors degree 2. A Masters Degree (at least 2 years) 3. Residency (at least 2 years? And this is working weird shift at hospitals and whatnot)

For a SE: Degrees are optional. Perhaps a Bachelors.

So if you require the same amount of rigor from SE's, that's probably gonna scare off many who don't want to spend the better part of their youth buried in books.

And since there is such a huge demand for SE's who don't need to know OS fundamentals, there is no push for having more rigor in the curriculum.

Maybe I'm being too pessimistic. I would certainly like there to be more generalists. But that would require the same kind of attention to credentials that doctors are put through. And I think a vast majority of current engineers are opposed to more formal education.

Re: Learning to program is getting harder

#119

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

? Ant and Maven work fine in my IDE

Re: Learning to program is getting harder

#120

Earlier quoted context omitted.

The manual didn't tell you anything. The books didn't tell you anything. They scratched the surface, which if you knew nothing might have seemed profound, even mind-blowing, but if you were trying to do anything non-trivial you were left grasping for answers. I tried to build games on the C64 using BASIC and, while I had some success, the results were always limited by the fact that it was in BASIC, it was going to b…

Why didn't you just buy the Commodore Programmers Reference Guide[0]? It had an entire guide to C64 machine language, and circuit schematics . The book even tells you to buy the 64MON cartridge if you're serious about programming in assembly. This book wasn't rare. A friend of mine had it, we lived in the middle of nowhere. These programs and cartridges were not rare. I had multiple catalogs for buying these things a…

Funny... I didn't even know that book existed until I was a few years into learning how to program my C64. I honestly thought you were supposed to figure things out by randomly PEEKing and POKEing addresses to see what they did. I had complete tech illiterate parents and no mentors existed to point me in the right direction.

I remember visiting some other kid who had a C64, and his dad had given him the Programmer's Reference Manual. He never opened it and didn't care about programming at all (he just used the thing to play games). I cracked that book open and my mind was blown!

Post reply on HN