[geeks] Introductory programming language?

Jochen Kunz jkunz at unixag-kl.fh-kl.de
Wed Aug 31 16:28:18 CDT 2011


On Tue, 30 Aug 2011 23:13:26 -0400 (EDT)
Mouse <mouse at Rodents-Montreal.ORG> wrote:

> My sister has just expressed an interest in learning some programming.
Why? What kind of problems does she need / like to solve?

Actually I would start with some software engineering basics first.
UML, LePUS3, design patterns, ... stuff like this.
More important then actual programming is understanding the problem,
decomposing it, analyzing it, working out a solution by top-down
modeling this solution. Proper programming is more architecturing then
coding. Teaching someone programming by teaching a programming language
is the wrong way as it makes the architecturing part implicit. To know
a language is one thing. The ability to work out and express concepts
with a language is an other thing. If you know how to work out abstract
concepts and express them in an abstract, high level "language" like
UML or even plain english, it's easy to transform this to any concrete
programming langage. Programming is architecturing. Coding is only the
boring footwork.

In other words: The real problem is finding the right algorithm. It is
no problem to translate this abstract algorithm into any concrete
programming language. Programming is all about finding and developing
algorithms, to think algorithmic. Coding can be done by a trained ape.

As most books and online resources about software engineering use Java,
I would recommend Java. Maybe Smalltalk, due to its simple, clean and
orthogonal design. Also the Smalltalk syntax expresses the object
oriented paradigm like no other language. (In other words: Being
tainted by a bit of Smalltalk, every other "object oriented" language
just looks awkward and baroque to me. Especialy C--.)
-- 


\end{Jochen}

\ref{http://www.unixag-kl.fh-kl.de/~jkunz/}


More information about the geeks mailing list