|go ahead... be a heretic|
RE: Perl as a first languageby tenatious (Beadle)
|on Aug 22, 2000 at 06:03 UTC||Need Help??|
The language is not the issue, or it shouldn't be.
The thought processes, the discipline, and the math are what
When I was first learning basic on an apple II (Ctrl-b got you into basic, from assembler or some other equally useless language), I had a math teacher who told me, "Pursue algebra and it will make you a better programmer, pursue programming and it will make you a better mathematician." It's true enough... How many times do you perform a simple assignment or a join/grep/split that you couldn't have done without algebra?
When you are first starting out, it's critical that you predeclare your variables and comment your work. If you don't, you don't think about what you are doing long enough to remember it. Putting into plain English what you are doing makes it clear to yourself what you have to do with a given sub or function. It's particularly useful when you start to do OO stuff where you've got to be really careful about what each class and object does.
The other idea is the thought processes. I have noticed that some people just do not understand that a computer only does what you tell it to do. How often have you heard the complaint, "My computer is possessed!" ... (ehem... except when it really was, by BO...) The point is that all the frustration with "teaching" a computer to do what you want it to do, can be avoided if you sit down and think through each step calmly realizing that each statement is telling the machine to do something in a particular way to a particular thing.
In my opinion, these are all things that can be taught before a child starts to program. If your children are old enough to begin using numbers, spend time with them drawing clock faces with one hand, ask them to count at all times, do their math homework with them, stretch them beyond what their school is willing to teach, play them in games of chess when they get old enough, make an effort to spend time with them doing intellectual work. It is an effort that you will be rewarded from as their concentration grows. First of all, it will teach concentration and attention to detail, second of all, they will remember the time that you spend with them... and it will be a positive reinforcement kind of thing. Mostly, if you show that it matters to you, they will likely make it matter to them.