Live data from Hacker News

Teach Programming to become a better programmer

zeroequalsfalse.press

31–40 of 60 posts

Re: Teach Programming to become a better programmer

#31
If you don't consider yourself talented, but you make it a profession, you can make it work and become successful, but if you have the talent, and you aren't a professional, then there's nothing you can do and everything will end in failure.

I've learned that lesson the hard way I think. I read the Pragmatic Programmer early in my career but I don't think I understood it very well.

Re: Teach Programming to become a better programmer

#32

An even better way is to program, program and program some more. Doing ( creating software ) > teaching/explaining > doing nothing. Nothing beats solving problems yourself.

There is a cliche in the martial arts world... that there is a large difference between 10 years of practice, and one year of practice repeated 10 times.

Be careful as you "program, program, program" of which one of those you are doing.

Re: Teach Programming to become a better programmer

#33

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.

Re: Teach Programming to become a better programmer

#34
>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 promises that used Shake Shack as an analogy and I think there were too many levels of indirection to understand it. Meanwhile, there's a Google developers post that explains it using image loading and that one clicked pretty much right away.

Re: Teach Programming to become a better programmer

#35
post #34

>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…

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.

Re: Teach Programming to become a better programmer

#36
This is what I do, I teach stuff to become better at it because trying to explain it to someone else makes you think of it as a designer where you have to reframe.

Reframing opens up the potential to understand both as an end user and as a manipulator(creator).

Once you see both sides, it becomes clearer.

Re: Teach Programming to become a better programmer

#37
post #35
post #34

>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…

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.

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 learned what a class is and why it matters after writing a bunch of C spaghetti code trying to keep track of special_fn_for_strings, special_fn_for_ints, special_fn_for_big_ints, etc. You can teach that way quite easily if you have more than a week to do it in.

Re: Teach Programming to become a better programmer

#38
post #37
post #35

Earlier 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.

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…

Some would argue that OOP and class hierarchies are orthogonal concepts, so any analogy with biological taxonomies is bound to leave you unenlightened for a long time.

Re: Teach Programming to become a better programmer

#39
post #5

I'd advise people to not teach if they don't understand the source material very well, it can lead to spread of misconceptions which can make the concepts more confusing for the students rather than less. I feel this is often left out of these discussions. You can always pretend to teach yourself to navigate the concepts though, when learning the first time yourself.

I've found that when a developer on my team is tasked with explaining something to another team member, they themselves get a much better grasp of the topic. When we are doing work we often do "what works" to complete the job. Somehow, becoming responsible for someone else's knowledge forces some people to understand their own limitations.

> I've found that when a developer on my team is tasked with explaining something to another team member, they themselves get a much better grasp of the topic.

Tightly related, rubber duck debugging: https://en.wikipedia.org/wiki/Rubber_duck_debugging

Re: Teach Programming to become a better programmer

#40
The "Lead and Take Charge" point is an interesting one, which I don't entirely agree with (if I'm reading it correctly).

I mentor weekly (codebar) and sometimes find myself not knowing the answer to a question. When that happens, I'm honest about my position, and then show the mentee how I go about figuring out the answer. After a couple of times I get them to suggest an approach to answering it. By doing this, I cede control. The point, after all, it to make myself redundant as a mentor!

Post reply on HN