The Cache: Technology Expert's Forum
 
*
Welcome, Guest. Please login or register. September 16, 2019, 09:25:37 PM

Login with username, password and session length


Pages: [1]
  Print  
Author Topic: Teaching someone programming  (Read 3641 times)
arms
Expert
****
Offline Offline

Posts: 235



View Profile
« on: November 11, 2007, 10:50:40 AM »

i will possibly be teaching/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 pearl, 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 learning 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
Logged
nutballs
Administrator
Lifer
*****
Offline Offline

Posts: 5627


Back in my day we had 9 planets


View Profile
« Reply #1 on: November 11, 2007, 11:54:33 AM »

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 learned 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 Learned programming at a fundamental level.

moral of the story. The best way to teach is to figure out how your student learns.

Beyond that, good luck, have fun.
Logged

I could eat a bowl of Alphabet Soup and shit a better argument than that.
arms
Expert
****
Offline Offline

Posts: 235



View Profile
« Reply #2 on: November 11, 2007, 12:18:27 PM »

moral of the story. The best way to teach is to figure out how your student learns.

good answer.
i'm kind of a hands on learner too. i'll learn more doing it myself than listening to someone talk.
i'm not going to be teaching 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.
Logged
perkiset
Olde World Hacker
Administrator
Lifer
*****
Offline Offline

Posts: 10096



View Profile
« Reply #3 on: November 11, 2007, 12:33:38 PM »

My first teaching 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 teaching 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 do something.

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

Code:
<?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 learning rather than logical-abstract memory).

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

It is now believed, that after having lived in one compound with 3 wives and never leaving the house for 5 years, Bin Laden called the U.S. Navy Seals himself.
jammaster82
Lifer
*****
Offline Offline

Posts: 666


Thats craigs list for ya


View Profile
« Reply #4 on: December 28, 2007, 07:21:12 AM »

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 machine 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...
« Last Edit: December 28, 2007, 07:24:30 AM by jammaster82 » Logged

The watched pot, never boils... But if you walk away from it , the soup burns.  What gives?
vsloathe
vim ftw!
Global Moderator
Lifer
*****
Offline Offline

Posts: 1669



View Profile
« Reply #5 on: December 28, 2007, 01:57:50 PM »

Language isn't so relevant to teaching. I was "taught" in C but hardly learned 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.
Logged

hai
perkiset
Olde World Hacker
Administrator
Lifer
*****
Offline Offline

Posts: 10096



View Profile
« Reply #6 on: December 28, 2007, 05:19:31 PM »

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

Wink

Logged

It is now believed, that after having lived in one compound with 3 wives and never leaving the house for 5 years, Bin Laden called the U.S. Navy Seals himself.
Pages: [1]
  Print  
 
Jump to:  

Perkiset's Place Home   Best of The Cache   phpMyIDE: MySQL Stored Procedures, Functions & Triggers
Politics @ Perkiset's   Pinkhat's Perspective   
cache
mart
coder
programmers
ajax
php
javascript
Powered by MySQL Powered by PHP Powered by SMF 1.1.2 | SMF © 2006-2007, Simple Machines LLC
Seo4Smf v0.2 © Webmaster's Talks


Valid XHTML 1.0! Valid CSS!