Live data from Hacker News

Teaching how to code is broken

neil.computer

191–200 of 258 posts

Re: Teaching how to code is broken

#191

Earlier quoted context omitted.

Lawyers who lose cases, physicians who couldn't save their patients, and pilots who have been in plane crashes still get to work in their occupation after the fact. Experience rules over all. In your examples all those people never got to practice their craft. Lawyers can't practice law without a bar, physicians can't perform surgery without a medical license, etc. But software development isn't like that. What if th…

> pilots who have been in plane crashes still get to work in their occupation after the fact. Most of them are too dead to continue to work, and the rest usually get fired if the crash was due to pilot error. And no, I don't believe you're going to fly with a pilot who flunked out of flight school.

Notice that I said “pilots who have been in plane crashes” and not “pilots who caused plane crashes.” This goes along with the theme of the lawyer losing the case, the surgeon losing the patient, etc. Sometimes you can do everything right and still everything goes wrong. Which is to say that the experience gained from these events makes these people better practitioners; it doesn’t matter what school they went to or what test they took if they gained real world experience practicing their craft.

No, I wouldn’t fly with a pilot who flunked out of flight school, but I would certainly fly with a pilot who’s flown for 10 years without a license over a pilot with a brand new PPL and Maybe for better perspective we can try this exercise: let’s say there’s a world renowned brain surgeon in, say, Norway who has worked for decades and performed tens of thousands of surgeries. No mistakes! Tens of thousands of happy stories!

But wait. Our intrepid surgeon can’t practice in the US because she didn’t go to medical school here! If she wanted to operate on a patient in the US mainland, she’d lose to a doctor who just exited residency!

If you were the patient who needed brain surgery, who would you pick? The world renowned expert or the guy who just finished training? Your logic dictates that the guy with the credentials wins out for no reason other than they went through whatever process to obtain those credentials, regardless if there are better metrics or methods to judge occupational success by.

Re: Teaching how to code is broken

#193

I am surprised no one mentioned the now-classic How to Design Programs https://htdp.org/2021-11-15/Book/index.html , which was one of the first intro textbooks to actually take in account some education research. Since then, there is https://dcic-world.org/2021-08-21/index.html by some of the same people with substantially more education underpinning it. The blog post has some good ideas, but really we can do so much…

*substantially more education research

Re: Teaching how to code is broken

#194

Earlier quoted context omitted.

> pilots who have been in plane crashes still get to work in their occupation after the fact. Most of them are too dead to continue to work, and the rest usually get fired if the crash was due to pilot error. And no, I don't believe you're going to fly with a pilot who flunked out of flight school.

Notice that I said “pilots who have been in plane crashes” and not “pilots who caused plane crashes.” This goes along with the theme of the lawyer losing the case, the surgeon losing the patient, etc. Sometimes you can do everything right and still everything goes wrong. Which is to say that the experience gained from these events makes these people better practitioners; it doesn’t matter what school they went to or…

> Our intrepid surgeon can’t practice in the US because she didn’t go to medical school here!

That's not my position. My position is if he was that good, he would pass the medical examinations.

> pilot

I'm not a pilot, but my dad was, other family members are, and I worked at Boeing designing the 757. Actually flying an airplane is rather simple. Most of pilot training is about handling an emergency.

These days, emergencies in the air are very rare. You may never have one in a career. But if you do have one, trying to learn how to deal with it on the job is a good way to die.

If someone really did fly 10,000 hours, but still cannot pass the certification test, he's a fool and you're a fool to fly with him.

Also, please do not confuse "did not take the test" with "flunked the test".

P.S. I have some training materials my dad had to learn. You're not going to learn that stuff by just flying around. Much of it is things that are learned about the airplane by expert test pilots, like how fast can you fly it without tearing the airplane apart. Do you think a pilot ought to know that speed before he gets in the cockpit? How about questions like how much runway do you need with a specific amount of airplane gross weight and altitude of the runway? I remember getting on a plane in Colorado and the pilot threw our luggage out, saying it was too much weight for the altitude, and it would arrive with the next flight. Do you want to fly with the pilot who couldn't make such computations? It doan' matter how good at flying he is if the airplane won't lift off the runway.

Re: Teaching how to code is broken

#195
Do both. You need the vocab - variables, types, methods, classes, etc. And then the application - deck of cards, real life inheritance, etc.

It's a highway, if you teach mainly the high level mental theory, they'll get it, and won't know how to implement it. They won't be able to associate the syntax to the logic of the theory. Inversely, if you teach only the syntax and implementation, they don't understand the theory and have a very difficult time applying that code in other ways. The problem of "take this loop that does this with the data and make it do something else.".

The solution to this is simple. Practice, and purpose. You just have to get the brain used to all the funny symbols and ways of doing stuff. The best way of doing that is for the learner to care and have a goal for doing it. Self taught programmers before uni will breeze through the intro classes, while new students struggle heavily. The self taught had a purpose to make things on their own.

Re: Teaching how to code is broken

#197

Earlier quoted context omitted.

> This is especially important in CS especially when boys are encouraged from a young age to do "techy" and "geeky" things in ways that girls usually aren't. Just be aware that this is not everyones experience. Many places boys are held back and girls are pushed forward. And then afterwards boys gets told they are somehow "privileged" and would never be were they are if it wasn't for "male privilege". Obviously this…

This seems entirely created out of thin air.

[deleted]

Re: Teaching how to code is broken

#198

(Disclosure: I do corporate training (Python and Data Science) for a living.) I generally don't teach coding to newbies, so a lot of the coding I teach is correcting poor mental models and teaching features (somewhat) unique (or different) in Python. My best Pandas courses have been when the client opts to use their data for the course (instead of my canned data). The students are already subject matter experts with…

Having a good mental model of a language seems like one of the fastest ways to be more productive in that language. Do you have any recommended resources for developing a strong mental model of python? For reference, Dan Abramov’s course JustJavascript [1] provides an amazing mental model of JavaScript, and Josh Comeau’s css for js developers [2] course provides an amazing model for understanding css. I have 5+ years…

(Disclosure: This is my content).

Why thanks for asking yes I do: I recommend my book, Illustrated Guide to Python 3 [0].

Yes, I teach "professional" Python programmers who lack a lot of the fundamentals. It is so easy to get my with Stack Overflow style of programming these days. (Plus a lot of my students don't want to be "programmers" they use Python as tool to get some job done.)

0 - https://store.metasnake.com/

Re: Teaching how to code is broken

#199

Earlier quoted context omitted.

I don't buy for a minute you'd choose a lawyer who didn't pass the bar, etc.

I would certainly choose a lawyer who didn’t pass the bar provided they have won 10,000 cases in the past. Although I would settle for 1000-2000, etc.

I don't believe such a lawyer couldn't pass the bar.

Re: Teaching how to code is broken

#200
post #47

(Disclosure: I do corporate training (Python and Data Science) for a living.) I generally don't teach coding to newbies, so a lot of the coding I teach is correcting poor mental models and teaching features (somewhat) unique (or different) in Python. My best Pandas courses have been when the client opts to use their data for the course (instead of my canned data). The students are already subject matter experts with…

Any teaching, training, has to hook with the experience of students. Otherwise, it will lead to cramming, etc; that's what we see in grade-driven teaching. You are doing a great service by using the client data to solve "mini-problems" of your students.

Yep, a lot of mini-problems that are generally relevant. I also show "real-world" code for every concept. Then they can see how this is applied in the Standard Library or other popular Python libraries.
Post reply on HN