Live data from Hacker News

Learning to Code vs Learning Computer Science

shkspr.mobi

91–100 of 116 posts

Re: Learning to Code vs Learning Computer Science

#91
post #84
post #81

You typically find this idea of teaching abstract advanced concepts first in anyone who believes in a constructivist theory of education, which this article smacks of quite a bit. The problem with constructivism is that it really only works with beginners who stumble onto a natural talent that gave them these foundational skills, or whose parents were wealthy and educated enough to have them and teach them to their k…

I agree with you. People learn best when they can see the relationships between what they're learning and the real world. Abstract theory should be learned only after there's something for the learner to latch onto and apply it to. Think of all the best teachers you've had in life. Did they teach by throwing you head first into the water to see if you could swim, or did they start by telling a story and then slowly p…

And this makes the opposite assumption, that all people learn better this way.

From personal experience, I wilt under this approach

Re: Learning to Code vs Learning Computer Science

#92
post #81

You typically find this idea of teaching abstract advanced concepts first in anyone who believes in a constructivist theory of education, which this article smacks of quite a bit. The problem with constructivism is that it really only works with beginners who stumble onto a natural talent that gave them these foundational skills, or whose parents were wealthy and educated enough to have them and teach them to their k…

Well put.

This article also ignores the fact that Computer Science is essentially an esoteric branch of applied mathematics with a little bit of philosophy thrown in for good measure, and any attempt to teach younger kids these concepts will mostly fall flat on its face before we radically improve the quality of our STEM education, particularly mathematics. Until we do so, Computer Science will remain the domain of those with a natural affinity for it.

Re: Learning to Code vs Learning Computer Science

#93
post #12

Earlier quoted context omitted.

There are large numbers of practicing (mechanical, electrical, etc.) engineers who aren't physicists. But you have to be up on your physics in order to work as an engineer.

In my observation, engineers tend to forget their math and physics pretty quickly after getting out of school. Many are proud of it. Most of the work of an entry level engineer is CAD, troubleshooting, and bureaucracy.

I was going to say the same. Most of the engineers I know don't use any skills they learned at university, much less physics.

It's probably a misallocation of resources, using the engineering degree as a filtering mechanism.

Quite a few are drafted for management (especially of industrial plants, etc)

Re: Learning to Code vs Learning Computer Science

#94

Earlier quoted context omitted.

"When I write my HTTP Applications I don't need to understand all the Network Layers beneath it." If you want your HTTP application to perform well, be secure, be scalable, work with a multitude of browsers in unusual conditions, and be able to troubleshoot weird errors, then yes, you will at some point need to know something about TLS and TCP and IP (v4 and v6) and even Ethernet and Wifi. Similarly, architects and e…

> Similarly, architects and engineers have to understand how the materials they're planning to use are made, what their capabilities and limits are, and how they can best be used to implement their vision for a building or a bridge. They can ignore how the bricks are made and how they perform, but their structure will not last. Np, they don't. At least not to the degree that some people here think programmers and sof…

This! This is the first comment I've read in this thread that's dealt with the core issue.

We, the world, don't need millions of people who can write a good sorting algorithm. A few thousand will do. We need millions of people who can use the sorting algorithm that those thousand people wrote, to build things higher up the stack, and billions of people who can use the things those millions of people wrote to do their work.

As you go deeper in the stack, fewer people ever need to understand it, and they will be paid more and more. We don't need more computer scientists and sorting algorithms. One good solid sorting algorithm is fine. The whole idea of evolution is we build on the successful developments of previous generations. We don't need to know how a lightbulb works, we just use it to illuminate the desk while we write a paper on genetics.

I don't think we should train kids to be computer scientists — the really talented ones will do it anyway, and the number of people entering this field will continue to grow for the foreseeable future — I think we should train them to be lawyers and doctors who understand code. To a level where can throw together a solid working solution to a problem they have, without having to go to a programmer who may not have the deep subject knowledge that allows a novel solution. If the doctor can code, they can iterate on their idea in a way that just isn't possible if someone else is developing it for them.

Excel and macros etc are the beginnings of this, but it'll go further — at some point JavaScript or Python will hopefully be prevalent.

Re: Learning to Code vs Learning Computer Science

#95
post #34

Earlier quoted context omitted.

It's perfectly acceptable to not understand the low level details of seriously used systems. Isn't that what teams are for? You can trust the engineers developing infrastructure so that you don't have to worry about it. Sure, understanding the high level concepts can't hurt, but it isn't going to make a front-end developer any more productive.

> It's perfectly acceptable to not understand the low level details of seriously used systems. Yes, that's what my colleagues thought a few months ago, too, when they churned up a web UI for an embedded device. My teamwork was, apparently, insufficient to make them realize that a configuration interface that takes half the available flash space is rather large (the other half was taken by a goddamn kernel, a web serv…

Teaching kids to use calculators DOES increase their problem solving ability. They can produce the same result as someone using paper. If the problem's really advanced, they may have to use brackets correctly too. You teach the same logic whether it's on paper or not, just instead of shuffling numbers in your head, a system that's BETTER at it is doing it instead.

But the issue is, you've added the Calculator dependency to the Kid program. Whether or not that's an issue depends on whether Calculator is a well maintained and dependable project.

On the other hand, there are downsides to NOT using the easier Calculator library, and writing all the code from scratch (i.e. Memorising Mathematics systems and practicing them enough to use them at any reasonable speed) — 1) storage space and using up brainpower / focus storing micro numbers, when you could be focusing on the bigger picture algorithm, 2) speed, the Calculator library is optimised and written by experts, 3) bugs, the Calculator library is well tested, whereas it's easy for anyone to make simple arithmetic mistakes.

Re: Learning to Code vs Learning Computer Science

#96

The thing is, most software jobs today don't require much knowledge of computer science. Mine certainly doesn't. I have a both a bachelors and masters in CS, but I'm no better at my job than my coworker who has no CS education but learned to code on his own. I can't think of one time I've used Machine Learning, AI, advanced Networking concepts, advanced OS concepts, Computer architecture, etc in my day to day work. N…

It certainly depends on what industry you're working on. If your company is working with AI or optimization related stuff, etc..., CS knowledge is def. useful if not essential.

Re: Learning to Code vs Learning Computer Science

#97
post #80
post #38

Earlier quoted context omitted.

Actually, you learn your first algorithm in elementary school, you just call it "doing an Euclidean division by hand". You're first data structure comes a bit later, in middle school, with vectors. That are just the first among those that I thought of, there are many more.

My point still stands. You don't run into Euclidean division when you're running back home. You don't see vectors when you're waiting for the school bus to take you home. You never see Binary trees, when you're out playing. But you do see buildings and some being constructed. Not to mention the legos game. Aka, the abstractions to concreteness is harder in CS than in Civil Engineering. It still might be a good strate…

People see them, they just don't recognise them as that thing — and they certainly don't know what they're called.

You're right that CS has tonnes of ridiculous terminology, that gets in the way of learning. In Mathematics, most people complete high school before they ever hit the terminology. Things have simplified names, like 'divide' and 'add', which helps 95% of the population get a better handle on it.

Re: Learning to Code vs Learning Computer Science

#100
post #99
post #7

Computer science is to programming as physics is to civil engineering.

Computer science is to programming as chemistry is to baking

To extend the explanation.

Computer science and chemistry = terminology and numbers.

Baking and programming = structure, creativity and taste.

Post reply on HN