Re: Programming - Where to start



Andy said:

<snip>

So what would your recomandation be?

Step 1: divorce yourself from any idea that there is such a thing as a
"best" platform or a "best" programming language.

Step 2: learn to design programs. Here are some exercises for you:

(a) document the process of making a cup of coffee, such that a master
chef could follow it. (This one's easy, so I'll do it for you:
"Just make the coffee, Floyd".)
(b) document the process of making a cup of coffee, such that someone
could follow it even if they've never heard of coffee before.
(c) document the process of making a cup of coffee, such that someone
could follow it even if they've never heard of kettles, coffee-
makers, teaspoons, cups, or worktops.
(d) document the process of making a cup of coffee, such that an
English-reading robot could follow it.
(e) imagine you have a voice link to a person in another room. You
can't see them, but you can talk to them. They have been given
a set of thirty cards, each with a different number on it.
They are allowed to examine only two cards at a time, and can
compare the values on those cards. There is enough space on
their work surface for 31 cards. Talk them through the process
of sorting the cards into ascending numerical order.

That should be enough to get you started on the road to thinking
algorithmically.

Step 3: ignore any and all advice on this forum or anywhere else about which
programming language to choose, since pretty well everybody has an axe to
grind. Instead, get yourself down to a really good bookshop, and haul at
least a dozen different books off the shelf, chosen from the programming
languages section, each book covering a different language. For example,
you might get books on Ada, Basic, C, C++, C#, Haskell, Java, Lisp, Pascal,
Perl, PHP, and Python. (Or whatever.) Picking up each book in turn, spend
60 seconds flicking through it. Then put it in one of two piles, based on
whether the program examples look merely scary or absolutely terrifying.
Aim to split the books evenly (so don't be too quick to stick it on the
"terrifying" pile. This will take you 12 minutes altogether. Put the
terrifying books back on the shelf, and go back to the half dozen remaining
books. This time, spend two minutes on each book - read a few paragraphs,
some from the beginning, some from the middle somewhere. This will take you
another 12 minutes or so. Reject half the books as a result of this
process. That leaves you with three. Let these three be your language
choices. Write them down in a diary or some other safe place, and leave
without buying any books.

Step 4: learn how to program in Pascal. It's a teaching language, designed
specifically to be easy to learn. When you've done that, forget Pascal,
since hardly anyone uses it in the Real World. It's done its job by helping
you to acquire programming skill. Now it's time to learn a proper language.

Step 5: dig out your list, and get yourself back to the bookshop. Repeat the
process from Step 3. This time, you'll have a bit more understanding about
what you're reading, but go through the whole process again. At the end,
you should be left with three books. Consult your list - any match? If so,
that's your language of choice. Otherwise, just buy all three remaining
books and learn all three languages. (One at a time!)

Step 6: write hundreds and hundreds of programs. Whenever you get an idea
for a program, write it down, and code it up as soon as you get the chance.

Step 7: start reading the newsgroups relevant to your chosen language(s).
Learn who the experts are, and read their advice avidly. Put that advice
into practice. And always be ready to learn new stuff.

Step 8: you're probably about ready to go be a programmer in the Real World.
Have fun!

--
Richard Heathfield
"Usenet is a strange place" - dmr 29/7/1999
http://www.cpax.org.uk
email: rjh at above domain (but drop the www, obviously)
.



Relevant Pages

  • Re: Lispers computing bookshelf: share your favorites
    ... The Art of Computer Programming by Donald E. Knuth ... Topics in Advanced Language Implementation by Peter Lee ... Object-oriented Software Construction by Meyer (still one of the best books ... no matter how bad your Lisp code works, you still don't need to go through ...
    (comp.lang.lisp)
  • Re: Book suggestions
    ... Below is a list of C books currently on my bookshelf that I would ... "Expert C Programming" by Peter van der Linden ... you apply the language, rather than the language itself - network ... from it in the same way I and others would recommend K&R2. ...
    (comp.lang.c)
  • Re: K&R2 Still good?
    ... Why is that old books like, Effective C programming, are still ... A computer language that changes rapidly and radically ... (Many of the same issues pertain to operating systems, ...
    (comp.lang.c)
  • Re: C Prog. book recommendation
    ... > I also need a recommendation for some good programming reference ... I've been told that the O'Reilly Safari books are good, ... Brian W. Kernighan & Dennis M. Ritchie, _The C Programming Language_, ... excellent language reference. ...
    (comp.programming)
  • Re: "continue/next" for "loop"
    ... >> I might be out of coffee, but I do not find an elegant way to skip the rest ... "Saving keystrokes is the job of the text editor, not the programming ...
    (comp.lang.ada)