News for hackers. Stuff that matters.
Re:Teaching how to code is broken by __mharrison__ on Friday January 14, 2022 @01:58PM (#29938592)
(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 the data and when they learn some of the tricks to slice and dice, summarize, and visualize, they are off to the races. They dig right in.

Teaching as the article suggests is very difficult because examples that appeal to some or boring or confusing to others. I'm not saying it won't work, but there are cons as well. When I'm teaching with my "canned data", I try to mix in a few different datasets from different areas so students can see that the ideas are generally adaptable.

Re:Teaching how to code is broken by lawl on Friday January 14, 2022 @02:18PM (#29938998)
I always thought the best way to learn programming is to find a program you want to create, and then figure out how to make that happen.

This is still how i learn (most effectively) today. If i want to learn a new language or something, i write something that i always wanted to write in it anyways. That way it doesn't get boring.

I think what you're describing might be similar in that canned-data is not interesting.

Re:Teaching how to code is broken by Cupertino95014 on Friday January 14, 2022 @07:03PM (#29942171)
This is true. You do have to watch for the "adult piano beginner" syndrome, though.

I'll explain: many piano teachers won't take adult beginners, purely because they have unrealistic ideas of how good they're going to be. They want to play a Chopin Etude or the Goldberg Variations or a Brahms Intermezzo, and don't want to spend time struggling with Clementi.

Well, sorry. You won't be that good for a long, long time, if ever. It could be that some beginning programmers also have wild ideas of doing a game as good as GTA, all by themselves.

Re:Teaching how to code is broken by jimz on Saturday January 15, 2022 @01:58AM (#29944301)
I find the comparison really odd as someone in the opposite position - I had formal classical piano training from 8 years old until I gave it up during college, and later learned how to code entirely through copying other people's code and Stackoverflow in my mid 20s. Piano to me feels much more like a sport, in that there's a very visceral, physical aspect to playing, and in turn a ton of effort goes into optimizing everything from where your fingers should be placed to how hard or soft one is striking a key. Practicing is effectively comparable to training for some sort of non-team sport much more than anything else. I don't have perfect pitch, but learning how to read music is a very small part of the whole experience, and I would think that as an adult someone learning piano will find the physical aspect, particularly the finer motor elements, to be the primary hinderance to being really great. Writing code is entirely different in that it feels much more like learning a subject matter, and there's neither something akin to the apotheosis of the particular thing you're working on that you aim to emulate, nor hard boundaries as to determine your proficiency through performance. It's cool if your code doesn't work when you test it, you can fix that. It just feels like apples and oranges in the experience.

If you're picking up basketball at age 30, I hope you know that you're never going to be anywhere nearly as good as Curry, or Lebron. But you can definitely pick up a subject matter and become an expert later in life. Heinrich Schliemann essentially began his archeological career at age 36 and yes, basically excavated Troy in the worst way possible, but managed to actually excavate Troy. That's the difference between an adult piano learner and an adult code learner, I think.

Re:Teaching how to code is broken by Cupertino95014 on Saturday January 15, 2022 @12:37PM (#29948372)
> If you're picking up basketball at age 30, I hope you know that you're never going to be anywhere nearly as good as Curry, or Lebron

Well, I hope so, too. However, in basketball, the really good players aren't even going to let you play with them, so you're forced to play with people your own level. In music, you're constantly hearing 8-year-olds who are better than you will ever be.

I believe it's the motor skills, and the plasticity of the brain. Personally, I memorize pieces with no effort at all, but sight reading is a bitch for me and always will be.

Re:Teaching how to code is broken by oriolid on Saturday January 15, 2022 @01:01PM (#29948630)
In music there's also the stubborn belief that anyone who's older than 8 is too old to learn, and the idea that the goal of music lessons is to train professional musicians and anyone over 8 is not going to be ready at college age and has to pick a different job anyway.
Re:Teaching how to code is broken by Cupertino95014 on Saturday January 15, 2022 @01:06PM (#29948665)
No, I don't think there is. In my area (heavily Chinese), parents seem to believe, fervently, that children should learn an instrument. Especially girls.

Lots of parents think it's important for their kids to learn music, actually, with no thought that they'll become professionals. In fact, most of them would be horrified if that happened.

Re:Teaching how to code is broken by oriolid on Saturday January 15, 2022 @04:35PM (#29950534)
From my perspective that's some kind of weird Chinese thing. For a different view, you could for example look at the discussion at https://music.stackexchange.com/questions/120433/why-don-t-p.... It's a long thread, but search for "professional" and you'll find the same by multiple posters. There's also an interesting conflict of interest between students, their parents and music schools.
Re:Teaching how to code is broken by Cupertino95014 on Saturday January 15, 2022 @08:24PM (#29952361)
My teacher had 12 adults and 28 kids. We had our recitals separately. The adults were maybe 9 white & 3 Chinese.

But one time I saw the student list for the kids. Every single one was Chinese.

Re:Teaching how to code is broken by Cupertino95014 on Saturday January 15, 2022 @10:32PM (#29953006)
Just got around to looking at that Stack Exchange thread, and I'm reminded why I dislike that site so much:

It's full of PLPs (Pedantic Little People, or you can substitute a different P-word for "people"). And why is it full of PLPs? They get little brownie points for answering, and when you get to certain levels, then you're allowed to do even more! So they compete with each other and downvote your answer for, well, pedantic reasons.

I suppose this site has some of that, but it's not nearly as obnoxious.

Anyhow: I finally found a teacher who played standards, and actually studied with George Shearing! But they're few & far between.

Re:Teaching how to code is broken by oriolid on Sunday January 16, 2022 @04:34AM (#29954579)
Yes, music.stackexchange is pretty bad. Did you find any of the parts where someone writes that the classical teaching style is for training professional musicians or at least developed in the time when it was?
Re:Teaching how to code is broken by Cupertino95014 on Sunday January 16, 2022 @11:28AM (#29957315)
Regrettably, my visceral reaction to that site kept me from reading very far.

But yeah, conservatories are definitely that. "You, too, can get an expensive education and then struggle to compete with 200 other kids just like you for the the very few paying gigs in classical music!"

Re:Teaching how to code is broken by oriolid on Saturday January 15, 2022 @03:13AM (#29944730)
Have you tried formal computer science training? Learning programming through copying from StackOverflow sounds to me like about as good idea as learning piano by watching Synthesia videos on Youtube.
Re:Teaching how to code is broken by Cupertino95014 on Saturday January 15, 2022 @12:33PM (#29948342)
... and yet that's how people do it these days. I hate that, personally.
Re:Teaching how to code is broken by wruza on Saturday January 15, 2022 @07:19AM (#29945819)
That's how I stop myself every time a desire to buy a guitar shows up. I'd like to play some solos from Ten Years After, Iron Maiden, or Dire Straits, but then I realize that this will take forever to learn, and my middle age issues wouldn't help with that either.
Re:Teaching how to code is broken by chmod600 on Friday January 14, 2022 @04:34PM (#29940738)
But you need some concept of what kinds of problems are solvable with a computer before you could really be inspired to program one.

And more than that, you need to have a concept of the difficulty of a given problem for a beginner or expert. Obviously a beginner will be wildly off, but probably needs some concept of the level of difficulty.

For example, lots of people have motivation to write a game. But few have the level of obsession to follow through with it. Maybe they should do a basic iPhone convenience app or something first instead.

Re:Teaching how to code is broken by WalterBright on Friday January 14, 2022 @06:20PM (#29941867)
> you need to have a concept of the difficulty of a given problem for a beginner or expert

I thought writing a C++ compiler would be just some new keywords and member functions, and would take 3 months.

10 years later...

Re:Teaching how to code is broken by Bjartr on Friday January 14, 2022 @07:03PM (#29942175)
> But few have the level of obsession to follow through with it.

If the goal is to release a complete product, then you're right that that's a problem. However, if the goal is learning, half a game is a great way to learn about a variety of systems and how to program for them!

Re:Teaching how to code is broken by paulryanrogers on Friday January 14, 2022 @05:27PM (#29941369)
It's a matter of scope and expectations. Leave your epic space opera in your dreams and take baby steps using easier tools and concepts. Once you find some fun try product-izing it.
Re:Teaching how to code is broken by muzani on Friday January 14, 2022 @10:38PM (#29943313)
I used to teach from the "program you want to create" angle, because that's how I learned programming. (JS/MEAN bootcamp)

The problem was that about 95% of my students didn't have a program they wanted to create. Some just wanted a hobby. Some wanted a better job. Some wanted to do a startup and manage a team, but they didn't really know what kind of startup to do. One guy joined because he made discord bots and thought node.js was cool, but learning loops started to get boring for him.

Re:Teaching how to code is broken by erwincoumans on Friday January 14, 2022 @02:30PM (#29939156)
Yes, learning is much easier if you have motivation. How do you motivate kids, if they rather play games rather than coding (and they even ignore in-game scripted coding such ad Minecraft or Roblox coding)?
Re:Teaching how to code is broken by majormajor on Friday January 14, 2022 @06:55PM (#29942107)
Heck, I'm employed to write code and I'd still rather play games. Just I get paid for the code, and not for playing the games.

But you will do better teaching-wise if you do find something that has intrinsic motivation, not turning it into a chore.

It just might not be the right time! They've basically got until they are 18-20ish to decide to get into it. The programming books my parents gave me after 8th grade never interested me. The 11th grade programming class didn't either. The junior year of college tangentially-related course where I was like "oh I could write a program to help with this homework!" That did the trick for me.

So just keep trying, see if you can find programming-related aspects of other hobbies. And just try to focus on them learning things around those hobbies or obsessions, even if it doesn't seem to have a practical application. Get in the habit of going deep on subjects and practicing learning.

Re:Teaching how to code is broken by xmprt on Friday January 14, 2022 @04:26PM (#29940670)
Try a game like Factorio or Satisfactory. Even just Minecraft can be good enough to train their problem solving and critical thinking skills.

They don't need to start with redstone to learn to code. They should play the game and naturally realize that redstone is a way to solve their problem (like making an automatic sliding 2x2 door) and then solve it.

I feel like those skills will take you much further in life because now you have an extra tool to solve problem no matter what field you end up going into. And since programming is so powerful, it's often one of the best tools for the job so kids will naturally pick it up.

Re:Teaching how to code is broken by tialaramex on Friday January 14, 2022 @08:57PM (#29942863)
The trouble I had in Factorio is that it's deliberately not giving you very powerful tools in order to be a better game. The authors do not want you to skip their fun game by solving a tricky optimisation problem yourself instead.
Re:Teaching how to code is broken by MonaroVXR on Friday January 14, 2022 @06:48PM (#29942067)
Not sure if Factorio would work, because I played it and it didn't work for me.

But.... I can finally program.

Re:Teaching how to code is broken by meristohm on Friday January 14, 2022 @06:08PM (#29941771)
My feeling, from ~eight years as a mostly-highschool math and science teacher plus parenting as my main work these last few years, is that this motivation to learn is best established very early on, hence my support for universal birth-to-three support (I’m in the USA) in the interest of minimizing adverse childhood experiences (ACEs/trauma) and teaching parents how to cultivate a growth mindset. Intrinsic motivation is powerful. I was not a beneficiary of such care, and have done a lot of re-learning, especially around what I’m feeling, and being okay with not doing “perfect”.
Re:Teaching how to code is broken by protomyth on Friday January 14, 2022 @08:48PM (#29942805)
One of the other places birth-to-three programs pay for themselves is to catch physical (e.g. hearing) problems early. That allow for correction and minimizes the affects in learning, reducing cost in later schooling.
Re:Teaching how to code is broken by wobbly_bush on Friday January 14, 2022 @03:18PM (#29939819)
> How do you motivate kids, if they rather play games rather than coding (and they even ignore in-game scripted coding such ad Minecraft or Roblox coding)?

Do such kids need to start with regular programming languages? Wouldn't visual languages be a simpler starting point for them to get motivated?

Re:Teaching how to code is broken by __mharrison__ on Saturday January 15, 2022 @01:46AM (#29944232)
I have pretty strong opinions on the "best way" to learn as well. My posts discusses the pros/cons of do it yourself projects.

https://www.metasnake.com/blog/learn-python-2021.html

Re:Teaching how to code is broken by asleepawake on Friday January 14, 2022 @02:28PM (#29939139)
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 programming in python but admittedly do not know much about the internals so my mental model is pretty weak!

[1]: https://justjavascript.com/ [2]: https://css-for-js.dev/

Re:Teaching how to code is broken by hexane360 on Friday January 14, 2022 @02:40PM (#29939285)
One way I've found is to dig into C/C++ extensions to Python. The Python C API reference is very helpful: https://docs.python.org/3/c-api/index.html

It can be quite fun to implement a simple data structure (tree, queue, etc.). in C and bind it to Python.

Otherwise, you can get a lot of dirty details by reading the source to complicated/magical libraries (e.g. pickle).

Re:Teaching how to code is broken by mynameismon on Saturday January 15, 2022 @06:42AM (#29945649)
I can confirm this works.

I was struggling to find why does a = [1, 2, 3] a = b b = b + [1] return a different value as compared to b += [1]

Looking into the source code, everything became clear. The + operator returns a pointer to a new list np containing all the elements from a and b, while += merely appends and returns a pointer to the original list

Re:Teaching how to code is broken by TuringTest on Saturday January 15, 2022 @03:06AM (#29944673)
> Having a good mental model of a language seems like one of the fastest ways to be more productive in that language.

True, but teaching s programming language is different than teaching programming.

Diving into a new language is something you do if you already understand how computers work and how to turn requirements into code. But to first acquire that understanding as a beginner, it's not enough to be introduced to the specifics of any particular language, which is what the article is talking about; you need to clarify what is the role of a programmer in understanding a problem and finding ways to model it as a group of data structures and functions that live in the computer.

Re:Teaching how to code is broken by touchngthevodka on Friday January 14, 2022 @03:09PM (#29939662)
Have you tried Fluent Python? It really helped to level up my knowledge of the language.
Re:Teaching how to code is broken by __mharrison__ on Saturday January 15, 2022 @01:11AM (#29944024)
(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 by bear8642 on Friday January 14, 2022 @11:24PM (#29943519)
Feel this mental model approach is part of the appeal of Scheme and SICP as you start with simple replace model but near the end (still exploring chapters 4,5) you get shown how to build an interpreter which forces you to know how it all works because otherwise it doesn't.

Feel that's sentiment get more now - it's *not* magic but the fact that everything works given it's all illusions is magical

Re:Teaching how to code is broken by istjohn on Friday January 14, 2022 @08:48PM (#29942803)
There is a truly excellent series of lectures on YouTube from a college course on the Python interpreter internals. But I can't for the life of me find it. One resource I can recommend though is pythontutor.com. It's a tool that will step through your code snippet and show how the code maps onto the internal representation.
Re:Teaching how to code is broken by raincom on Friday January 14, 2022 @02:32PM (#29939194)
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.
Re:Teaching how to code is broken by WalterBright on Friday January 14, 2022 @06:24PM (#29941891)
> grade-driven teaching

I've never understood the modern theory that one can master a subject yet not be able to answer questions about it.

Re:Teaching how to code is broken by jodrellblank on Friday January 14, 2022 @07:11PM (#29942235)
/watches straw man fall over without putting up a fight.

Would you rather work with someone who added a major subsystem to one of your compilers for fun or someone who had never coded but could recite the ISO standard by heart? Who believes the former person “would not be able to answer questions about [the subject]”?

If measurements tend to become targets over time then the goal of “develop expertise” measured by “pass a test” shifts to a goal of “pass the test”, and the test is limited to what you can ask hundreds of students in a couple of hours, and they’ve seen practise papers and last year’s papers and you can’t talk to them, and you can’t see them work or the results of their work.

Is that then a good way, to develop and validate their expertise? Is it the best available way?

Re:Teaching how to code is broken by WalterBright on Friday January 14, 2022 @07:19PM (#29942274)
> Who believes the former person “would not be able to answer questions about [the subject]”?

All the people who believe that "teaching the test" is not real knowledge.

For example, would you hire a lawyer who flunked the bar? How about consult a physician who couldn't pass his medical boards? How about get on an airplane with a pilot who flunked flight school, but "really knows how to fly"?

And yes, there are bad tests. But there are also good tests, and they work. Personally, I've never encountered a person who mastered a topic but couldn't get a good grade in it.

Re:Teaching how to code is broken by nexuist on Friday January 14, 2022 @10:07PM (#29943171)
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 there was a surgeon who has completed 10,000 successful surgeries but never went through med school? What if there was a lawyer who won major cases with no law degree? Or a commercial pilot who successfully flew for years on a fraudulent license and only stopped flying because he got caught? (That last one actually happened a few months ago).

If you could choose, would't you pick the surgeon with a wildly successful track record over the recently graduated med school student who has never done a surgery outside of residency?

Re:Teaching how to code is broken by WalterBright on Friday January 14, 2022 @10:12PM (#29943190)
> 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.

Re:Teaching how to code is broken by nexuist on Saturday January 15, 2022 @12:33AM (#29943855)
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 <2000 hours flight experience.

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 by WalterBright on Saturday January 15, 2022 @12:50AM (#29943926)
> 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 by WalterBright on Friday January 14, 2022 @10:10PM (#29943177)
I don't buy for a minute you'd choose a lawyer who didn't pass the bar, etc.
Re:Teaching how to code is broken by nexuist on Saturday January 15, 2022 @12:27AM (#29943823)
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.
Re:Teaching how to code is broken by WalterBright on Saturday January 15, 2022 @01:12AM (#29944034)
I don't believe such a lawyer couldn't pass the bar.
Re:Teaching how to code is broken by jodrellblank on Saturday January 15, 2022 @03:26PM (#29949909)
Take all 8 billion human shapes, four right angle corners and straight sides is the test, all sides the same length is expertise. You're saying that all squares are definitely rectangles, which I agree with. I'm saying all rectangles aren't necessarily squares. Then it feels like you're saying there aren't many more rectangles than squares, citing that there are unquestionably squares. Unstated I'm suggesting there are a lot more rectangles than squares, by Sturgeons Law 95% of tests are crud, so there are far more people who passed a test than there are people who passed a test and have expertise. There are so many people in IT with coworkers who passed MCSE or A+ tests but cannot do what the test said they can do that it has become a meme, for one example.

That 5% of tests are rigorous and accurately identify squares is not really something I question, but I might question that the people who pass them were "taught to take the test" and nothing else.

(Would you say 7 years of degree, medical school, hospital residency, rotation around departments, counts as "teaching to the test", i.e. "an unhealthy focus on excessive repetition of simple, isolated skills ("drill and kill") [which] limits the teacher's ability to foster a holistic understanding of the subject matter."? - from https://en.wikipedia.org/wiki/Teaching_to_the_test )

Re:Teaching how to code is broken by WalterBright on Saturday January 15, 2022 @05:58PM (#29951311)
If you cannot answer questions about a subject then you haven't mastered it, holistic or not.
Re:Teaching how to code is broken by jodrellblank on Saturday January 15, 2022 @06:46PM (#29951678)
Again you're repeating the assertion "if you have expertise you can answer questions", "squares are rectangles", which isn't the point of contention.

It's the other way which is in question, "if you can answer questions, does that mean you definitely have expertise?". Is being able to answer questions the same as having expertise? Are there people who CAN answer questions but have no expertise? If so, how many?

Referencing your other pilot comment, is being able to say what action you should take in an emergency, the same thing as having the calmness and presence of mind and judgement to actually take that action in an emergency instead of locking up and forgetting and panicking? Certainly the pilot who does act well in an emergency could tell you about it, but can all the people who can tell you about it, do it?

Re:Teaching how to code is broken by WalterBright on Sunday January 16, 2022 @12:07AM (#29953560)
Please read carefully. I never said passing a test is proof of mastery. I said failing the test means no mastery.

Putting it in terms of logic, (A implies B) does not mean that ((not A) implies (not B)).

Re:Teaching how to code is broken by jodrellblank on Sunday January 16, 2022 @10:19PM (#29962981)
You absolutely did say passing a test is proof of mastery, and you cited lawyers and doctors passing tests as evidence, and you said "there are bad tests, but there are good tests and they work", with emphasis.

I passed German at school, despite being unable to speak German. Anybody who spoke German could have tried to have a conversation with me and see that I couldn't, that would be a good way to judge my supposed skills. Any test which is not that, any test which is a proxy to that, or a way to judge that with less effort, is worse than doing that. Teaching me to answer the questions they were going to ask on German grammar, or recite the sentences they were going to expect me to recite, is even worse.

Of course people with absolutely no skill fail tests more than random, who would question that.

Re:Teaching how to code is broken by ZephyrBlu on Friday January 14, 2022 @11:04PM (#29943421)
> For example, would you hire a lawyer who flunked the bar?

It's not about hiring a lawyer who flunked the bar. It's more like, how many lawyers are bad lawyers despite passing the bar.

I don't know about law specifically, but in my experience a lot of people who pass tests don't have deep understanding. Vice versa may also be true depending on the test.

Re:Teaching how to code is broken by WalterBright on Friday January 14, 2022 @11:27PM (#29943533)
It's about the virtual certainty that those who didn't pass the bar are bad lawyers.
Re:Teaching how to code is broken by majormajor on Friday January 14, 2022 @06:59PM (#29942146)
I think you've got that backward. I think parent poster is complaining about teaching methods where the belief is that "answering questions" -> "mastery." "Grade-driven teaching" here refers more to the "all we're gonna do is give you homework and a test." It's like industrialization of teaching - no mentoring or individual conversation, just tests and reading material. When you've got 1 teacher and 20-40 kids, it's about all you can do.

Lots of passing of tests from short-term memorization that's then promptly forgotten.

Re:Teaching how to code is broken by jodrellblank on Friday January 14, 2022 @07:27PM (#29942333)
What’s interesting to me is that I’m tue internet you’ve got loads of students and loads of more experienced medium people meeting on stackoverflow and forums and right there where there is individual connection and back and forth, the experts keep trying to silence it because they want only expert discussions about advanced topics.

Like the companies that will help you leave as a customer because at least you leave with a good feeling and might come back, versus the companies which make it hard so you hate them forever. Experts go round Internet forums with a “fuck off lazy noob” attitude then wonder why the forum is in decline and empty with only noobs traffic, and then blame it on the noobs, because they are overrunning the site and that must be driving the “good people” out.

Mentoring and individual communication happens all over, but it looks like “doing their homework for them” which is verboten.

If they don’t learn from your answers, you might, other readers might.

The fix for “eternal September” is not “duplicate question” it’s that the older questions and answers need to be deleted, forgotten. The important bit is the development of ideas in the questioner and answerer, not the production of paperwork.

I suspect there is room for a huge forum/site based around these ideas that would combine collaborative editing, live examples, questions, and push new people not on “how to ask a good question” but “how to engage in a back and forth discussion” in some way.

This has been a disjointed blog post in a comment.

Re:Teaching how to code is broken by WalterBright on Friday January 14, 2022 @07:24PM (#29942315)
I've forgotten the material from many courses I've taken. But I've also discovered that the knowledge quickly returns if I retake a course on the same material, far quicker than it took the first time. The knowledge is still there, it just needs some WD-40 to break it loose again.

And yes, doing column buckling problem sets in college enabled me to size the jackscrew for the 757, as it was a column buckling problem.

Re:Teaching how to code is broken by majormajor on Friday January 14, 2022 @08:47PM (#29942800)
I don't know anything about column buckling, but if you'd cranked out a bunch of column buckling problem sets and not paid any attention to when/where it would be applicable, would it still have helped you later? If you had forgotten the exact technique, would you have been able to check a reference book anyway?

Do you think memorizing names and dates of people and events from World War I gives much mastery of history? Or would memorizing the names of standard library functions and the academic definition of `pointer` and `recursion` give you much mastery of C?

(The flip side of this is folks I've worked with who will immediately say "this is the Command Pattern" or such and jump to writing a bunch of code that either is massive overkill and/or just breaks down when the real world introduces some edge cases.)

Re:Teaching how to code is broken by WalterBright on Friday January 14, 2022 @10:06PM (#29943160)
I knew how the column buckling equations were derived, therefore I knew when they were applicable and when they weren't.

As for checking a reference, I knew that "column buckling" was a thing. Before I studied it, I didn't know the concept even existed, and would have no idea how to look up something I didn't even know existed or what it might be called.

> Do you think memorizing names and dates of people and events from World War I gives much mastery of history?

How are you going to understand WW1 without knowing who Ludendorff was? I know that if you don't know names and dates and events, you cannot have a mastery of history. You don't have any framework to hang analysis or understanding on.

> Or would memorizing the names of standard library functions

Nobody does that. But I will say that if you can't name any of them, I guarantee you don't know squat about C.

> and the academic definition of `pointer` and `recursion` give you much mastery of C?

I wonder how many C experts you know can't answer a question about what a pointer is.

Re:Teaching how to code is broken by __mharrison__ on Saturday January 15, 2022 @01:13AM (#29944041)
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.