[Tutor] where to start?

Bruce Sass bsass@freenet.edmonton.ab.ca
Fri, 26 Jan 2001 13:55:41 -0700 (MST)

On Fri, 26 Jan 2001, Gary Kekich wrote:

> I'm interested in programming but I'm entirely new and would like to know the best way to start.

Just do it, really... there is no substitute for actually firing up an
editor/interpreter, writing some code, then figuring out why it doesn't
do what you expected it to.  Start hacking other people's code first,
gradually move from simple modifications of existing features to adding
new features... in no time you will be making a mess of code that is
100% your own.  ;)

Programming is a matter of reducing a problem to its core components,
defining the relationships between them, then using that information to
manipulate the pieces in a manner that solves the problem. 

That last line is often referred to as "coding", and it is usually
pretty simple if you did a good job of the tasks in the first two lines. 
What makes coding simple is that there are only a few concepts to
learn[1], what makes it appear difficult is that there are a lot of ways
to apply those concepts and each problem (class) will best be handled by
a particular "way"... and so we have different programming languages.

I have to say it is best to start by doing all of these at the same time
(because none is more important than the others):

- Learn about logic, not just AND, OR, NOT, XOR, but also about
  sentential, predicate and modal logic.  Sentential logic is what you
  generally write lines of code with, predicate logic is often the basis
  of the structure of a solution, modal logic will help get your head
  around the whole OOP thing and `step back' from a problem.

- Check out "the way" of several languages; look at the patterns in
  command structure in and between languages, form reasonable opinions
  about why the basics have been implemented in the way they have been,
  think about what makes a particular language suitable for a given

- Play with some languages.  E.g., see how many different error messages
  you can generate.  It sounds backwards, but if you understand how to
  make an error at will, you should also know how to avoid it.

In general, once you get to serious problem solving...
Don't write any code unless you have no other choice, procrastinate
as long as possible with the stuff you think you have no choice about...
saves on bloat, `re-inventing the wheel', and helps see the core
components of a problem.




[1] The basic concepts of programming are: assignment, retrieval, 
testing, and looping, all using integers -- everything else is a
combination or special case of these four things.