In general, sure, that sounds like a great idea. As for the actual linked website, https://www.virtualprogrammingtutor.com/ , it's highly unclear what the deal is. Are the people requesting tutoring going to pay for this? Do the tutors get paid? Teaching programming to become a better programmer is one thing, teaching programming for free so that someone else can make money is a another thing.
I do some mentoring on Codementor.io from time to time. Scammiest thing I've seen so far: program in Africa, teaching underprivileged to code. I was willing to mentor not for free, but at about 1/3 of my rate as I was on-board with what I thought the mission was. Then they asked me to sign an NDA... turns out the org was having the kids do client work. I noped out of that.
Teach Programming to become a better programmer
51–60 of 60 posts
Re: Teach Programming to become a better programmer
#52Re: Teach Programming to become a better programmer
#53Earlier quoted context omitted.
As a child (circa easly 2000s) I was immensely confused by the analogies that online guides used to explain OOP. I ended up so confused that I just gave up for many years until a wonderful professor explained it to us in plain, concrete language. Analogies and use cases can help demonstrate _why_ something is useful, but can also obfuscate concepts.
I had almost exactly the (almost the exact?) same experience. I was 12 when I picked up a "Head First Java" at the library. The first chapters on for loops and variables were a breeze, but after a few more the book started a new program of loosely analogizing various function specifiers to real-world ontologies; all against the background of a writing style that emphasized that programmers can also write (and poorly…
There is nothing strange about that. People learn in different ways. For me the Head First books were a great alternative to the scores of dry "here is fact 1. And here is proof for fact 1. Here is fact 2. Here is proof for fact 2." books, which bored me to death and didn't help me with learning.
Re: Teach Programming to become a better programmer
#54Earlier quoted context omitted.
Absolutely what happened to me. A class is not a car, you don't explode your car when you go off road, create a SUV using the base of the car along with what's in the trunk, then do it back again when you reach a road. Analogies are a terrible way to teach. Both dogs and cows are mammals with 4 legs and a tail, but you will have an interesting experience playing catch with a cow and trying to milk a dog. I only learn…
Can you go into a bit more detail about what you mean with these special fn_for_* things? I learned OOP recently with all the animal->mammal->cat analogies, however those all seem to focus on inheritance and miss the key concept which might be summarized as “managing context”. Am I on the right track here?
Re: Teach Programming to become a better programmer
#55An even better way is to program, program and program some more. Doing ( creating software ) > teaching/explaining > doing nothing. Nothing beats solving problems yourself.
In my experience, a more valid reason to teach is that it makes you speak and stand up, which can be a kind of physical relief from sitting silently in front of a monitor all day. And also of course the joy of helping students who are interested in the subject.
Re: Teach Programming to become a better programmer
#56"if you can’t do then teach! ;)" Maybe the winking face was meant to indicate that this is tongue-in-cheek but nothing else in the article really serves to support that. I dislike this phrase in general.
Each section seemed too cursory to provide any meaningful insight. As a teacher, I'm used to having people with less expertise offer me advice like "Use real world examples if you want to be effective." So, uh, use the vehicle, car, truck, etc... analogy when discussing superclasses and subclasses. Okay. Can you provide something else that's not so superficial? And calling words like "polymorphism" mumbo jumbo doesn't really help either. It's domain specific language that you should introduce eventually while making connections (both to other content in the domain and real world phenomena). Of course using those words without sufficiently explaining them isn't enough but shying away from key vocabulary because you underestimate your student isn't the best policy either.
"So if someone is not getting what you’re saying, try rephrasing your words and approach it like it’s a challenge on your end, not theirs." I think this is a good point and could be insightful for people who haven't taught before. Anyone that engages in teaching should hopefully realize it is a skill that takes effort, practice and reflection to hone (like any skill). You won't be perfect from the beginning. Assume your students are trying their best to understand and you are both trying to work together to build the connections needed to reach understanding. But if you're going into this thinking teaching is just a thing people do and your goal is to become a better programmer, I think there are more efficient ways to achieve that. You must be willing to put the time and energy into working on your teaching before you start seeing the benefits.
"it must be clear who is leading the way." Hmm... Definitely disagree with this. In the beginning I'm leading and directing but I'm trying to build skills, confidence and motivation such that control is slowly shifted to the learner (Student-led instruction is a big buzzword (buzzphrase?) in the edu world). I want my students to become independent so that whenever they leave me they can continue learning on their own. Going from having a boss/teacher that always takes charge to the "real world" of learning and doing all on your own can be disorienting. Let the student take the reigns so they get experience making decisions on their own while you're still there to offer guidance.
Sorry if this came across as harsh, I hope it can be taken as constructive criticism as opposed to me just being mean spirited. I definitely appreciate the subject of teaching popping up on hn.
Re: Teach Programming to become a better programmer
#57Earlier quoted context omitted.
As a child (circa easly 2000s) I was immensely confused by the analogies that online guides used to explain OOP. I ended up so confused that I just gave up for many years until a wonderful professor explained it to us in plain, concrete language. Analogies and use cases can help demonstrate _why_ something is useful, but can also obfuscate concepts.
I had almost exactly the (almost the exact?) same experience. I was 12 when I picked up a "Head First Java" at the library. The first chapters on for loops and variables were a breeze, but after a few more the book started a new program of loosely analogizing various function specifiers to real-world ontologies; all against the background of a writing style that emphasized that programmers can also write (and poorly…
What you are describing is a problem I see with a lot of people who learn programming. They want to apply what they have learned in a way that is different from a few modified example. When they learn python, after chapter one or two, the most common question is: but how do I build a GUI because the command line is very foreign to them. People often don’t have enough patience, or motivation to learn a whole book and not be able to do something remotely useful. I’m glad you got into it by learning something that really interested you with computers (unfortunately this is really hard these days because everybody I know either wants to program GUIs or Games).
I know some who got into programming by writing Minecraft plugins. That allowed them to apply what they learn to something really useful and fun. But I also like Apple’s approach with Swift. Children get immediate graphical feedback of what they have written. It’s certainly not something that teenagers have a lot of fun with (because “it is silly”) but children might really enjoy learning that way. Websites are probably another good example. Writing working JavaScript and html is really easy these days and a website is useful for a lot of people.
Re: Teach Programming to become a better programmer
#58Earlier quoted context omitted.
I do some mentoring on Codementor.io from time to time. Scammiest thing I've seen so far: program in Africa, teaching underprivileged to code. I was willing to mentor not for free, but at about 1/3 of my rate as I was on-board with what I thought the mission was. Then they asked me to sign an NDA... turns out the org was having the kids do client work. I noped out of that.
Did you come across this on Codementor?
Re: Teach Programming to become a better programmer
#59An even better way is to program, program and program some more. Doing ( creating software ) > teaching/explaining > doing nothing. Nothing beats solving problems yourself.
Re: Teach Programming to become a better programmer
#60>What do they know? They know real world. So when explaining something like for example a Superclass, you can use something like a vehicle... This is good up to a point, and obviously it makes sense for absolute beginners. But eventually, when you understand programming, and just need to learn a new thing, it makes more sense to frame it in terms of actual use cases. I tried to read an explanation of JavaScript promi…
> This is good up to a point, and obviously it makes sense for absolute beginners. The way classes are explained with cars and animals has always struck me as extremely perverse, I've seen a couple of very bright students who were just baffled by what lesson they are meant to take away from the analogy. Consider: Vehicle is to Car as is Superclass is to Subclass. Vehicle is to Car as also is a string of bits is to a…