[Tutor] Tutor list introduction, goals, ideals...

Magnus Lyckå magnus@thinkware.se
Thu May 15 18:45:02 2003


At 09:37 2003-05-14 -0700, M wrote:
>Hello everyone:

Hi, and welcome.

>Which brings me to this question: If you were just starting out learning 
>your first programming language (or, perhaps, /when/ you first started 
>out, etc.), what might you do to get involved or, at least, self-educate 
>with a goal toward getting involved? That is, what might your initial 
>programming attempt be aimed at accomplishing? Should a person just pick 
>any old thing (e.g., a simple text editor) to work at, or is there 
>something better to start with?

Many of us are scratching an itch... writing code because
unless we write it, there is something that will continue
to annoy us. That's a really good motivator! :)

Isn't there anything which you'd like to do that you can't
today? And it really just a simple little thing that you
maybe do manually time after time, and would like to get
done automagically?

I started to write plenty of Python when I was a C++
programmer, to reduce the manual labour. Generated code
from a CASE tool wasn't quite right and had to be adjusted
slightly after every run. I didn't like to do search and
replace over and over again... Test files had to be
written, tests run, and the result evaluated. Writing
scripts for those things made life much easier, and above
all, less boring.

I'd say: Start small, and try to build the code in such a
way that it might be of some kind of use, or at the very
least testable, in very small increments. Try to run the
code after every handful of lines, and while it might not
be useful at every stop of the way, try to see that it run
so well that you can always keep track of its state.

Some people (and even more teachers) still program in the
spirit of the 60's and 70's where you sat with a bunch of
paper cards and punched them, and then left them to the
computer operator and returned the next day to get an
error message from your run... It's not like that now. Being
able to get instant feedback on your achievements and your
mistakes makes you much more productive than if you try to
write a lot before you try it for real.

I'd also suggest that you write your first programs like
simple filters, just reading and writing text. Don't mess
with GUIs to start with. A GUI is something you attach to
working application logic, nothing that you mix with your
logic.

If you liked The Pracmatic Programmer, you might like "The
Unix Philosophy" by Mike Gancarz. It's rather much a book
in the same spirit. See
http://www.thinkware.se/cgi-bin/thinki.cgi/UnixPhilosophy
for more about these ideas.

And while Hunt and Thomas have written a great book, I imagine
it might be a little to much to try to consider all they say
as you begin programming. I imagine that you will start to
appreciate what they wrote in time though, and probably go
back to the book again when you have more real world experience
to relate their writing to. At least for me, it seems to be
tough to really grasp all they say without getting your feet
wet...

Good luck!


--
Magnus Lycka (It's really Lyckå), magnus@thinkware.se
Thinkware AB, Sweden, www.thinkware.se
I code Python ~ The shortest path from thought to working program