Beefy Boxes and Bandwidth Generously Provided by pair Networks
Just another Perl shrine

Re: Learning how to program (for youngsters of any age)

by rchiav (Deacon)
on Aug 03, 2001 at 17:46 UTC ( #101977=note: print w/ replies, xml ) Need Help??

in reply to Learning how to program (for youngsters of any age)

Actually, I think you were referring to my comment about teaching my brother(15) C.

I think your observation about someone finding it not fun and then never choosing to "upgrade" is appropriate for some. What I think it important is evaluating the person and determining what language would be most appropriate for them. In your son's case, GameMaker might very well be the most appropriate thing for him. You're probably the best judge of that. I don't think that anyone else could profess to know your son better than you. But that doesn't mean that something like GameMaker is appropriate for everyone learning how to program.

For instance, in my brothers case, I think he'd actually get bored with something like GameMaker. My first thought as far as a programming language was something like VB, because it's graphical, quicker to develop GUI's and the editor reduces the need to look up syntactical things. But the downside was that he wouldn't know what was really going on. If he was younger, I might have introduced him to VB, but not where he is now.

There were quite a few things I took into consideration (and I think that others should take into consideration when trying to introduce someone to programming). The first was (and I hate to use the term), IQ. That's not the exact term I'm looking for, but it's as close as I can come at the moment. I might just be biased, but I consider him to be extremely bright. At 15, he has logic and deductive reasoning skills beyond people I've worked with. Straight A student who's taking the AP math and science courses for the grade above him. Math and general logical thinking has always come naturally to him.

Next was his general disposition towards problem solving. He loves solving problems. You could even say he thrives on it. So there isn't a need to introduce him to problem solving, just to show him how people go about that when designing a program.

Next was taking a look at where he might go with programming. I knew that he was planning on taking a C++ class next year (this fall now) in school.

With all of that, I felt that C would be the place to start. So far so good. He has a pretty good understanding of pointers and malloc and that's what I was hoping for. Now, when he's using any other language, he'll know that there's much more that goes on behind the scenes. I'm a firm beliver that you should, at some point, teach a person the building blocks. When I've taught anyone about general PC functionality, I always start with DOS. Down to the level of what really happens when you turn the computer on. I think things like that go a long way to demystifiying the process. But again, that might not be for everyone.

So I guess my point is that there's probably no one language that is appropriate to teach everyone. As with anything, the material should be adapted to the audience by figureing out what is going to give you the best distance/mileage ratio.


Comment on Re: Learning how to program (for youngsters of any age)
Re2: Learning how to program (for youngsters of any age)
by pmas (Hermit) on Aug 03, 2001 at 18:54 UTC
    You are glad you have brother this bright - and you are right.
    I agree with you completely. If he is already a programmer, and his interest is to know exactly how computer works in detail level, C is excellent language - is is basically assembly language on steroids. I remember how I felt after couple of courses and programs in assember, when I got my hand on C. C, and Big Blue C book (written with wit - almost as Camel book is) was like a godsend! Perl is the mostly same, plus excellent string capabilities, minus need to declare types of everything. Then, what is your reason not to introduce perl? I know perl debugger is not as good, but new free Open Perl @ might solve this problem. OTOH, learning pointers C-way makes sense, if he plans taking C++ classes. Also, getting used that all variables should be declared and have certain type, is good. Laziness can come later.

    As always, find out what the job is, and then use right tool.

    To make errors is human. But to make million errors per second, you need a computer.

Log In?

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://101977]
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others meditating upon the Monastery: (12)
As of 2014-09-23 18:46 GMT
Find Nodes?
    Voting Booth?

    How do you remember the number of days in each month?

    Results (238 votes), past polls