R. Clayton (rclayton@monmouth.edu)
(no date)
What are you doing this summer?
Learning to program (or learning to program well) is like learning to play a
musical instrument. What do you do when you're given a new piece of music and
you struggle and fight your way through it the first time? Do you toss the
music and go on to the next piece? No, you go back and play it again. And
again, and keep practicing it until you can play it well.
You should write programs the same way you would practice music. Once you
write a program, don't toss it aside and go on to the next program. Look at
the program and ask yourself "how is this program bad?" and "how can I fix it
to be less bad?" Then rewrite the program so it's less bad. And then look at
it again, and rewrite it again, and so on.
Go back and redo the first assignment. Most of you know more now then you did
when you wrote the first assignment, so it should be easy to figure out why
your program's bad, and it also should be easy to re-write it to be better.
Once you've done that a couple of times for the first assignment, go on to the
second assignment, and so on.
This recommendation applies to everybody in class, not just those who didn't do
too well. A program either works or it doesn't, and if it does one thing wrong
then it doesn't work (as I asked one of your colleagues: "how much would you
pay for a program that core dumps on this input?"). Much like being a
professional musician, being a professional programmer means you have to
practice to keep up your skills.
I mentioned a couple of times in class that informal code reviews are a
valuable way of judging programs. Because I'll be around for the summer, I'm
willing to hold informal weekly (or biweekly) code reviews. The way it would
work is everyone involved would rewrite each assignment and then meet to
present and explain their code. Everybody else would critique it. If you're
interested, send me e-mail with a couple of preferred two-hour time slots for
meeting times.
This is a completely informal seminar; it's not in the registration system and
you can't sign up for it and you won't get credit for it and it won't show up
on your transcript. It also won't effect the grade you got in 509. If you're
interested in improving your programming skills, then please attend.
Otherwise, have a good summer.
This archive was generated by hypermail 2.0b3 on Fri May 09 2003 - 15:30:05 EDT