00 Beginner's Lessons


I would like to encourage all the Beginner's taking this course
to post your answers to the Exercises at the end of each Lesson.
Remember that we are BEGINNERS, and our source code will not be
very elegant, or concise. In fact, we are striving to learn the
C programming language, so our goal is to make our code as easy
to read as possible. We will make mistakes! There is an old
saying: "If you don't make any mistakes, you probably aren't
DOING anything." So making mistakes is part of the learning
process. Don't be afraid to make mistakes. Also, if you see
something that someone should have done, or could be doing,
please SHOW us some source code to illustrate what you are
trying to say. For example, pointing out that the letter "y"
is sometimes used as a vowel, in a program that tells whether
or not a letter is a vowel, is not enough.... show us your
source code that illustrates how to do that! If you post a
function that does something, add a small main() `driver' that
serves as a working `example' of how the function is used.
Remember that this is a BEGINNERS course, so READABILITY is
way more important than conciseness. Use variable and function
names that clarify what values they hold, or what function they do.

We have not been introduced to the whole Standard C language yet.
So yes, there are many other ways to answer the Exercises, with
keywords and techniques that we haven't learned yet. But with
every lesson, we add tools to our toolbox, and the only way to
become a skilled tool user is to practice using those tools.
It is important to try and answer the exercises with the new
keywords, standard library functions, and concepts that have
been introduced in the lesson that the exercises are at the end of.
At this point in our journey, it is more important to use the
tools in such a way that other BEGINNERS can read and understand
how we are using a new tool. Obfuscated source code is not a
good answer, even if the C programming language allows it. Ask
yourself, "can other BEGINNERS understand my code?" before you
post it. A 'clever' obfuscated answer is not as good as an
answer that is easy to read, but not as 'clever'.

A 'clever' answer that is easy to read is THE BEST! 8^D
Please /* document */ your clever answer so we can understand
how you were thinking (and so you can remember how you were
thinking, a year from now!).

If you are having problems with ANY of the exercises, please
show us what you have done, and explain what you are trying
to do (not everyone sees these exercises the same way). I'm
sure someone here will be able to help. But please show us
that you've tried to solve the problem. Programming is all
about solving problems; so in a way, this is also a `problem
solving' course. We are just focusing on using the C programming
language to solve these problems. We are on this list so we
can get help from people who are willing to help us, without
putting us down, or telling us to RTFM, or read the Standard,
or K&R, or the GCC compiler source code, or whatever.

One thing I'd like to CAUTION against, and that is to post a
one line answer to the list with the original long post under
that one line in comments. Everything posted to the list is
being archived, and takes space, so please trim the original
post down to what is revlevant to your answer. Simple `thank
you' notes can be sent back to the person, not the whole list.

There IS such a thing as a `dumb' question: it is the question
that remains unasked. There is no such thing as a `stupid'
question! Ask questions. Be prepared to get answers! There
are some experienced programmers reading this list. Just
remember to trim your replies to what is relevant to the
discussion. I'm sure that everyone here can cut/paste, and
delete lines in an email. If not, ask me, and I'll try to
help you learn how to do it /* I use vi */.

Thanks to everyone who is taking this "course" and also to
those experienced programmers who are keeping an eye on us.

I hope this post isn't too heavy. I'm just trying to make
this "course" the best I can make it. I'd like to see more
class participation. We can all learn from each others mistakes
as well as from each other's successes!

Happy Programming!