[Tutor] tutor

bhaaluu bhaaluu at gmail.com
Sat Jul 14 22:14:51 CEST 2007


Greetings,

I'm enjoying this discussion.

On 7/14/07, Alan Gauld <alan.gauld at btinternet.com> wrote:
> Hi,
>
> > books with maximum outside help, and others can't learn from books
> > at all, they need to have their hands held from the first step to
> > the
> > final destination.
>
> IMO Anyone in that position is never going to be able to program
> at any level of competency. Its a simple fact that to program at
> anything beyond the most basic level you will need to read
> manuals/references etc. If you can't read and learn you will
> struggle to learn enough of anything to progress.

Reading and comprehension are fundamental skills.

I can show someone how to cut a wooden board with a saw,
and join the pieces with a hammer and 10p nails,
to make a bookcase. That doesn't require reading.
They just need to watch me, then do it themselves until
they get it right. It takes a little time to learn if they've
never done it before, but it doesn't require reading.
They can load books on the bookshelf. That doesn't
make them literate. If they want to build anything more
complicated than a bookshelf, then reading is a handy
skill to have!
But computer programming requires reading. The programmer
has to be able to read in order to write a program. Why?
Because documenting a program is something that every
programmer should do, and if you can't read, how can you
possibly WRITE documentation? =)

>
> > and crossword puzzles. I'm usually able to learn from books with
> > minimal help. Even so, in the beginning, the documentation for a
> > new computer programming language is somewhat difficult to follow.
>
> I'm intrigued by that statement. What do you find challenging?

All of it seems complicated at first because I'm not familiar with the
nuances of the new language. As you've noted, the language docs
are written for experienced programmers, and may not be suitable
for learning from. As I gain familiarity with the language, things that
seemed over my head when I first started, start to make sense.
I didn't understand anything at all when reading the OOP docs. Why?
I'm completely new to OOP, and I don't have a good grasp of the
vocabulary yet. However, as I'm reading more, and doing more
examples, I'm feeling more comfortable with the documentation.
That is not to say that I understand it yet. But it isn't quite as
difficult to read the docs as it was, say, a week ago. As a hobbyist,
I do my programming in my spare time. I do not have a CS background.
Sometimes, documentation assumes a certain level of understanding.
Often, I'm never able to understand certain things.

>
> Once you learn one language and understand the basic concepts
> then learning a new language is usually a very straightforward
> process.
> After all there are relatively few new things to learn:
>
> How the basic control strucctures are done:
>     Sequences (including overall program structure)
>     Loops
>     Branches
>     Modules( ie. procedures/functions, later to include OOP if
> relevant)
>
> How I/O is done - reading input and writing output, and file handling
>
> Data structures supported:
>     numbers, strings, boolean, collections
>
> Those can usually be learnt in a morning and after that
> its a matter of gaining experience writing (and reading) code.

Not everyone can pick things up as fast as some people do.
I usually start out slowly. But the things I do learn, I try to learn
well. I type in a lot of code, and I run a lot of code that others
have written, to see what it will do. I agree that the basics are
pretty much the same for most computer programming languages.
One of the first languages I learned was a dialect of Lisp, a
functional programming language called Logo. I was pleased to
find a Logo interpreter written in Python a couple of days ago.
What a treasure! =) [Only a hobbyist like me might think so?]
(For more information about Logo, see:
http://www.cs.berkeley.edu/~bh/  )

>
> I generally expect someone at work (not a hobbyist) to be fairly
> fluent in a new language within a week. I would never send
> someone who can program on a training course for a new
> language (except for C++!)

I would expect nothing less from a professional programmer!
Why the exception for C++ ?

>
> > use Internet search engines to look for relevant code snippets.
>
> This is fine but has a danger that you wind up stitching
> together snippets without really understanding how they
> work. This leads to a debugging nightmare!

Yeah, I know, right? =)
I got into the computer programming hobby shortly after buying
my first computer. I'd download code snippets from BBSes and
run them on MS-DOS. It could be very dangerous! Plus those
ancient Borland compilers...

>
> > I can often learn how to solve a particular problem by studying
> > source code that is already working, and modifying it to suit
> > myself.
> >
> > http://www.google.com/codesearch/advanced_code_search
>
> That is the best way to do it IMHO. It ensures you pick up
> language idioms, find interesting shortcuts and once you
> start to see whays to improve the code you know you've
> pretty much got on top of things!

This is okay if you already know how to program a little bit.
However, if you really don't understand the fundamental
concepts of computer programming, it probably won't help
much.
Plus, this way requires that the student know HOW TO READ! =)
Yes, we're back to that little snafu again... reading (and comprehension).

>
> > Computer programming is a a literate activity. If one can't
> > read, a book is no good.
>
> Indeed. Some folks tried to introduce purely visual
> programming some years ago but the limitations of
> not using text were so high that most efforts would up
> in a strange hybrid experience of limited value.
> (One such experiment was Borland's ObjectWindows - did
> anyone else ever use that?)

Was that the one that used objects like old flowchart symbols
to design a program? I may have seen pictures of it somewhere,
but never actually saw it in person. =)

> --
> Alan Gauld
> Author of the Learn to Program web site
> http://www.freenetpages.co.uk/hp/alan.gauld

BTW, your book is helpful as well!
Happy (Python) Programming!
-- 
bhaaluu at gmail dot com


More information about the Tutor mailing list