arms

i will possibly be

teach

 ing/training someone to program, at least getting them started. i'd like to

teach

  them in a way that would make moving to other languages easier.
i'm trying to decide between

php

 ,

python

 , or java.
myself, i started with java, then

pear

 l, then

php

 , and

python

  on my own.
i plan on getting them familiar with html & css first but after that i'm  not sure.

php

  is relatively easy and may feel more practical to the person

learn

 ing  it as it's uses are clear. for example generating a web page vs some program that does something. but i wonder if

programming

  in the enviroment of a web server would make transition to other languages and enviroments harder.

python

  is clean and concise, less typing is required, and the interpreter is great to test things out and play with. but

python

  has less obvious commonalities with other popular languages such as lack of braces, semicolons, use of whitespace to define scope etc..

java has lost my love. it is a good place to hammer in object oriented

programming

 . it's syntax has alot in common with other languages (a switch to c# is trivial). but it is far less practical.

any thoughts or suggestions? were you self taught or did you

learn

  in school? have you taught any one

programming

 ?

thanks

nutballs

I have no advice on HOW to

teach

 .
BUT
I have entire rants worth of how not to

teach

 .

actually short version is, I was "taught"

programming

  for many years, never

learn

 ed a damn thing until... I got a professor that said, "you aren't actually going to

learn

  anything from me are you?" I then spec'd out a project, presented it to him, and didnt come back to class except for when I had a question about something I was stuck on.
Result: Got an A and

Learn

 ed

programming

  at a fundamental level.

moral of the story. The best way to

teach

  is to figure out how your student

learn

 s.

Beyond that, good luck, have fun.

arms

quote author=nutballs link=topic=615.msg4157#msg4157 date=1194807273

moral of the story. The best way to

teach

  is to figure out how your student

learn

 s.


good answer.
i'm kind of a hands on

learn

 er too. i'll

learn

  more doing it myself than listening to someone talk.
i'm not going to be

teach

 ing computer science and my "student" is bright so i don't think i'll really have much difficulty. high level

programming

  is really just like playing with lego.

perkiset

My first

teach

 ing experience was to

teach

  5th and 6th graders to program and

Apple

  ][ in about 81, and then from 81 - 86 I owned a portion of a computer school in Irvine, CA and was the director of curriculum.

IME, the traditional methods of

teach

 ing

programming

  are shit. It might mean something to a math major to start by coding the mean, median, mode and standard deviation of a set of numbers, but normal people want it (the computer) to <i>do something</i>.

Back in those days, it was simple graphics routines - today, it's web pages. IMO, if you can hide from the the complexity of the server and the browser and simply get to the notion of Hello World using absolutely pure

PHP

  ie.,

<?

php

 

print 'Hello World';

?>


You'll get the notion of instructions down rather quickly. The first tough thing is always variables. Use the "bucket" analogy, andwork code that is extremely clean and clear and demonstrates how variables as simply repositories. Don't touch scope, global or anything like that yet.

The next toughy is functions - the notion that this one word "does something." Start with functions that are extremely well named and their action is simple - like trim() and str_pad() - stay away from things that are deep like date functions (which are deceptively complicated) as well as things that require knowledge of something else like DB or preg_ functiuons.

As soon as the most fundamental of concepts are established, go straight away to a first task - because everything is remembered better in the context of solving a problem (concrete experiental

learn

 ing  rather than logical-abstract memory).

Hope this helps - ping back if you want more of my drivel Applause
/p

jammaster82

Someone taught me to program this way in a language
that they actually wrote themselves in an archaic jedi
language called Delphi.  It hid complexity from the user beautifully
and included commands like 'parse' and 'compileandexecute'
and had some simple looping structures, subroutine functions but
was pseudocompiled down to

mac

 hine level speeds but that did
an awesome job of liberating my mind from the technicalities of
<? :: !! != ==  kinds of stuff....  free to see the basic constructs
of all programs....  able to flow gently and swiftly from thought to
computation like the last leaf on the first december breeze...

and unlike visual basic, it worked!

maybe some mySQL stuff too?  a newbie can quickly get comfortable
with data and it even includes looping, flow control etc...

vsloathe

Language isn't so relevant to

teach

 ing. I was "taught" in C but hardly

learn

 ed a thing. I'm not really a math guy but math stuff clicks instinctively if I can see it rather than reading about it in a text book.

I agree with what The Perkster said. Simple simple. The basics are you ever really need to remember. Everything else you can look up.

perkiset

quote author=jammaster82 link=topic=615.msg4501#msg4501 date=1198851672

Someone taught me to program this way in a language
that they actually wrote themselves in an archaic jedi
language called Delphi.  It hid complexity from the user beautifully
and included commands like 'parse' and 'compileandexecute'
and had some simple looping structures, subroutine functions but
was pseudocompiled down to

mac

 hine level speeds but that did
an awesome job of liberating my mind from the technicalities of
<? :: !! != ==   kinds of stuff....  free to see the basic constructs
of all programs....  able to flow gently and swiftly from thought to
computation like the last leaf on the first december breeze...


Applause


Perkiset's Place Home   Politics @ Perkiset's