|
Computer
programming requires a certain mindset, and if
you take the programmer's creed then it helps you to get into that
mindset early. There are three parts to the programmer's creed.
Part 1: I, [state
your name], do solemnly swear that I will read
directions carefully and follow them. This is extremely important,
because much of computer programming requires that everything be set up
perfectly for anything to work. Here is an example of what I am talking
about. In a moment we are going to go out on the Web and download the
Java compiler. In one part of the process you are going to have to
unpack a file. If you don't read the instructions and you unpack it
improperly, nothing will work. Then you are going to have to change
your PATH environment variable. If you do that incorrectly nothing will
work. Then you will be
warned NOT to unzip a
second file. If you instead unzip it, nothing
will work. Finally you will have to unzip the documentation files. If
you do that improperly you will have no documentation. Everything you
need to do will be clearly stated, but if you do not read the
directions carefully you will miss a step and nothing will work. When
things don't work, many, many people simply give up. They fail to
become computer programmers as a result. Don't let that happen to you.
Don't give up - read directions carefully. If something does not work,
assume that it's because you misread something and try again before you
blame someone
else or give up.
Part 2: I,
[state your name], do solemnly swear to read the
documentation and attempt to work out problems myself before I go
pestering someone else with questions. This is a very hard thing to do
at first because it requires discipline. Nonetheless, get yourself into
the habit of trying to solve your own problems by reading before you go
find someone and pester them with questions. The reasons this is
important are, first, because you will learn more that way, and second,
because you will gain much more respect that way. There is nothing
worse to an experienced programmer than a whiney new programmer
pestering you with questions that the new programmer could have easily
answered by reading for five minutes. On the other hand, there is
nothing more rewarding to an experienced programmer than helping a
hard-working new programmer who has done a lot of research and legwork
but is truly stuck on a tough problem. Get yourself into that
"rewarding" category and you will earn a lot of respect from the
programmers that you work with.
Part 3: I, [state
your name], do solemnly swear that I will help
other programmers once I become one. It would be impossible for you to
learn to program unless someone (like me) helped you to get started.
You will read things written by other programmers, use code created by
other programmers, ask questions of other programmers... You have to do
your part by contributing back to the community. Once you figure it
out, help others.
Part 4: I, [state
your name], do solemnly promise that I will
thoroughly document and comment my code. It will help you write better
code, and just as important, it will make it much, much easier for
other programmers to figure out what you did – or meant to do – if they
have to debug or maintain your code in the future.
Source: Maryland
Coldfusion User's Group
|
The Programmer's Creed
A programmer shall be
logical.
A programmer shall work
only for the general good.
A programmer's design
shall be efficient.
A programmer's designs
shall be powerful.
A programmer's programs
shall never be released with any problems.
If a programmer's program
has problems that are beyond his control, he
shall admit and fix them.
A programmer shall always
question the answers.
A programmer shall always
challenge what a corporation tells the
programmer.
A programmer shall make no
excuse for his own mistakes, the programmer
shall own up to his mistakes.
A programmer shall realize
that re-inventing the wheel is not necessary.
A programmer shall improve
all his programs without creating further
problems.
Source: The Programmers Void
|
Advice
Each semester, we seem to
give the same advice to students. What
follows is our collective wisdom that course staff might wish to pass
along:
+ Follow the course
procedures. With so many students, we generally do
not bend the rules, to be fair to the majority that follow them.
+ Do not assume that
because you have no experience that you will do
"the worst." Sometimes inexperienced students have been first in the
class.
+ If you have programmed
before, do not assume that this class will be
a "breeze." Sometimes an experienced person has developed bad habits,
which we must break.
+ You will take tests
without computers in front of you. So, you must
learn how to develop your programs on paper first. (Guess what industry
prefers?) Heed the programmers' creed, "The sooner to computer, the
longer it takes."
+ Programming is a skill which you must practice, just like sports and
music.
+ Go to lecture:
professors like to test what they teach!
+ Go to section: sometimes
details are left for section. Plus, waiting
to pick up work from Carpenter means that the consultants spend more
time handing back work and not answering questions.
+ Seek out help when you
are stuck lest you get even further behind.
Likely you will need to spend some time catching up, but better now
when you have the time, than later. "Save now--suffer later, or suffer
now--suffer later."
+ Retrieve all graded work. If you suspect there's mistake in your
grade, only the actual graded work will be your proof.
+ Letter Grade or S/U? If
you take CS100 S/U, under no circumstance
treat the course as a "cake walk." In the past even S/U students have
had to drop out or fail because they did not practice.
+ Attend all classes! Not
everything discussed in lecture and section
is in the book or online.
+ Wait-and-cram studying
techniques typically cause failure. You must
practice! Non-technical majors (non-engineering, non-CS) are not at a
disadvantage unless they do not practice.
+ Whatever is fuzzy before
a test doesn't usually clarify during it.
+ When all else fails, the
answer is usually "Carpenter."
Modified from: Cornell
University Computer Science Department
|
|
|