4 ms·
I have tried to teach people to code. More often than not it does not work out. It appears to me there is something intrinsic or developed at a very young age
by eof 9y ago
I have tried to teach people to code. More often than not it does not work out. It appears to me there is something intrinsic or developed at a very young age which sets a mind up to be both able and willing to think like a programmer.
Most people simply don't think that way, end of story. Some do though, I hope you picked one of them.
I wouldn't worry too much about teaching him to "code" as there are a lot of ways to be valuable in the industry in general, and helping your friend is a very good thing to do.
In any case, I think you will probably get a lot out of this . Just don't try and force a square peg down a round hole.
- ryandrake 9y agoTotally disagree. Like any skill, all that's required is motivation and practice. You don't need some genetic trait or in-born talent to become a programmer, any more than you need it to learn a foreign language, play the piano or build furniture. As the saying goes: You don't need talent to practice.
- avdicius 9y agoSorry, I cannot see this as expressing any sort of disagreement. I perhaps can learn how to play piano. If we are talking about some pieces for 6 y.o. kids. Can I learn how to play any Rachmaninov prelude or concerto? No, for me personally, this is not going to happen even if I had an infinite lifetime.
- eof 9y agoAs someone who has spent nearly 6 months in spanish speaking countries, trying to learn spanish; I think language acquisition is a similar-but-different aptitude type thing. I am just bad at parsing audio basically, I also have a hard time picking out lyrics in songs and whatnot. My spanish is terrible to this day. I definitely learned some, and can stumble around by myself without english, but no one is going to mistake me for a spanish speaker. I think programming aptitude is similar; for sure just about anyone could learn to use a loop and if statement to solve fizzbuzz type problems; but are they going to be able to modularize those control structures and come up with solutions for "real" problems? I am pretty sure not.
- cr0sh 9y ago> It appears to me there is something intrinsic or developed at a very young age which sets a mind up to be both able and willing to think like a programmer. I think it's an almost intuitive and deep understanding of cause and effect; without this basic understanding, you can't get very far. That is, IF-THEN-ELSE branch logic. Understanding this - which most people do every day, but don't do it in a concrete, thinking-it-through-before-doing-it fashion. Doing it is one thing, being able to describe and write down the process of steps is a completely other thing. I think those who have this early have an advantage in learning programming quicker than others. Some I would say have this - but for some reason or another never learn programming, or pick it up much later in life. When they do, though, they tend to advance and come up to speed extremely quickly. This might be the initial skill to discuss and teach. Ask them how they would make a peanut butter and jelly sandwich (or any other basic task of that nature - how to tie your shoes is another one); there's a surprising number of steps in the logic, and most people don't think about it when they do it - they just do it. Interestingly - for instance - in cooking there's a term called "mise en place", which is a French culinary term meaning "everything in it's place". In short, it is a method of first gathering all of your ingredients, pre-measuring them, ordering them in the order for the recipe, then using them in the proper order. It's a means of both simplifying cooking and making sure you have everything, so your not all over the kitchen, and such. This is equivalent to "initializing variables" (it makes me wonder if those who are "natural cooks" also wouldn't make good coders? Then again, I suck at cooking...) - so for instance in the case of a PB&J you'd "get the PB, get the jelly, get the bread, get the knife, open PB, open jelly" as the "mise en place" of the "making PB&J sandwich" process. Then - show how to diagram (process flow diagram, aka flowchart) the process (just use the basic symbols: boxes, diamonds, and circles). This too can reinforce and show visually the process and how the steps relate. Finally - as far as what to teach - I'd personally start with LOGO. It's a proven beginner's language, which is actually quite sophisticated and complex the deeper you get into it. If your student is visual, the ability of LOGO to show "turtle graphics" can be an interesting motivator. It's simple enough to grasp the basics immediately, but complex enough to learn the majority of basics in software development. From there, you'd probably want to move on to Python.