Live data from Hacker News

Learning to Code vs Learning Computer Science

shkspr.mobi

21–30 of 116 posts

Re: Learning to Code vs Learning Computer Science

#21
post #15

This is simply a (somewhat inaccurate) attempt at re-interpreting semour papert's advice that learning to program should serve as a medium/conduit of ideas but doesn't have intrinsic value, in and of itself, outside of the ideas applied and diacovered. If he was aware of papert it would've helped to see an attribution.

I regret never having heard of Seymour Papert before you mentioned him - although I did use the Logo Turtle at school many years ago.

Thank you for introducing his ideas to me.

Re: Learning to Code vs Learning Computer Science

#22
post #9

While I agree that it's important to stress the differences between code and CS, I still believe that, at an High School level, it's better to teach how to code instead of CS. Programming is a practical skill. It's easier to engage kids with it and it will probably be more useful to them in the future. It's hard enough to engage kids with practical stuff ("I'm never going to need X, I'm going to become a Y"). I just…

[deleted]

Re: Learning to Code vs Learning Computer Science

#23
In term of teaching strategy, if you separate the hands-on, try and tinker things, from the more fundamental, you end up with only half of the learning process. A good teaching format will help you learn the fundamental by connecting it to hands on building, to experiments, to the intrinsic reward of creating something. You can alternate or mix them. Most of the time you have to start with creative tinkering and foster going deeper and deeper. So: yes, and yes! :-)

Re: Learning to Code vs Learning Computer Science

#25

When you're building a skyscraper, you are not going to design every brick. The basis of teaching children how to code is making them learn how to use code as a problem-solving tool. Like this, the sorting will not be important by itself, but as means to an end. As a way to achieve greater objectives. And besides this reasoning, we have another: in CS, something is generally built on top of others. If you write a hea…

While it may be perfectly acceptable to ignore the lower-level details when first learning some new technology, or even when using it for personal use only, that sort of ignorance is not acceptable when working on systems that are meant to be used seriously.

At that point, you need to have at least a high-level understanding of each and every layer that you're building upon. If you don't, then it will come back to haunt you, whoever uses your software, and whoever has to maintain it after you're long gone.

We've all encountered, or at least heard of, the Java and Ruby programmers who use ORMs, but who refuse to learn SQL, and refuse to learn how relational databases actually work. They write their software while understanding only the highest levels of the abstractions that they're working with, and then the system ends up performing horribly. Then somebody more experienced and knowledgeable gets called in, and gets to see how the ORM is generating abysmal SQL queries, or indexes aren't being used.

It's better to know and understand than to not, especially in the long term.

Re: Learning to Code vs Learning Computer Science

#26
Valid point, but I'm more peeved by how the campaigns incorrectly interchange CS with coding with programming, which will probably lead to student confusion.

In any event, they're calling it "learn to code" for a reason. They're focusing purely on pragmatics - operating entirely within the confines of the abstraction that a language presents you. It's a mechanical skill.

The whole thing is a sham to appear progressive, anyway. I honestly do not believe computer science and programming are fit for the outdated bureaucratic classroom/routine model of schooling. We should worry more about how efficiently it will be taught, than about nomenclature.

Re: Learning to Code vs Learning Computer Science

#27
As a musician and a scientist, I wonder if music and art are better analogies than science? And what if we had the luxury to teach some things in school just because they're interesting and fun? Isn't that why most of us learned programming?

When kids learn music, they typically start out by playing an instrument, or singing. Teachers are comfortable letting theory be taught later, if ever. Even the dilemma of what programming language to teach is analogous to what instrument a kid will choose.

Re: Learning to Code vs Learning Computer Science

#28

Although I agree a broader scope is needed when teaching kids to "code", I feel there is a such a threat to digress and swing the learning pendulum in the other direction. Meaning that the kids never get filthy bugs on their hands but end up learning about Silicon Valley Entrepreneurship. Sometimes it pays to dive right in and let them lead there own way out.

(In that spirit: "there their!") Medical software is now clawing its way out of lots of bad software written by people with good domain knowledge and too little programming and CS chops. Really, the point should be to make sure the larger culture knows what it doesn't know. Imagine if many financial institutions didn't fully understand their debt instruments...that would be bad, right? (2008) Well, many companies don…

make sure the larger culture knows what it doesn't know

A million times this. I am not sure if it is possible though.

I fear that any programming training as part of basic education will only expand the number of people who feel entitled to code, because they've been exposed to it, and then commence to build absolute shit. That is already a big enough problem, with large-scale failures like the Target breaches or healthcare.gov.

Re: Learning to Code vs Learning Computer Science

#29
post #25

When you're building a skyscraper, you are not going to design every brick. The basis of teaching children how to code is making them learn how to use code as a problem-solving tool. Like this, the sorting will not be important by itself, but as means to an end. As a way to achieve greater objectives. And besides this reasoning, we have another: in CS, something is generally built on top of others. If you write a hea…

While it may be perfectly acceptable to ignore the lower-level details when first learning some new technology, or even when using it for personal use only, that sort of ignorance is not acceptable when working on systems that are meant to be used seriously. At that point, you need to have at least a high-level understanding of each and every layer that you're building upon. If you don't, then it will come back to ha…

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.
Post reply on HN