[nycphp-talk] Learning to program the right way
Gary Mort
garyamort at gmail.com
Tue Jan 24 11:11:42 EST 2012
On 1/23/2012 10:52 PM, Froilan Cajayon Mendoza wrote:
> Gary,
>
> I think the key to programming the right away is to understand the
> logic and structure of solving the problem the right way. This is
> where algorithms and data/programming structures come into play.
>
> My first-time-in-programming students sometimes get frustrated because
> the first few sessions of my programming class we talk about seemingly
> mundane non-programming problems (like describe the detailed steps
> you'd take to get from one subway stop to another and note possible
> errors). But by training them how to think and solve the problem
> logically, it is easier (relatively) for them to grasp the need for,
> let's say, a loop or a class, regardless of programming language. The
> next step is then to build on specific syntax (or lack thereof in PHP
> :)) and nuisances of the language you're teaching (enjoy your Hello
> World program), and then you can talk about the tools mentioned in
> your post.
Personally, I don't think PHP is a good "first" language, so I expect
people picking up PHP to already have covered "basics". :-)
While PHP can be run from the command line, it's biggest usage is in web
design. So learning PHP involves using MySQL, Javascript, HTML, and
CSS. Since all of that needs to be covered as well, you might as well
do it all right.
Also, "checking bad code" into version control is productive. When
someone is first learning code, they may well 6 or 7 different ways of
doing something. By the time they get to number 7, they may decide that
the third solution was the best. Without version control, it means they
will be making bad filename choices[attempt1.php, attempt2.php,
attempt3.php] or relying heavily on their editors undo function. Wheras
if they were using version control from the start, then they can revert
to the version they saved on the third attempt, and by the time their
done with the course they will have the habit of trying lots of things
and reverting code when needed.
More information about the talk
mailing list