Greg Henry's
Miscellaneous Stuff






Programmer's Creed

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

Back to topBack to top



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

Back to topBack to top



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

Back to topBack to top