Ron wrote:
Greetings,
Any recommendations on a book or online tutorial that my 15 yr old son
can use to teach himself C? At 12 he downloaded a crude level editor
for Jedi Knight called JED and taught himself how to make levels.
Awesome ones I might add. So he is bright and a self learner. What
in your opinion would be the best way for him to go? He wants to
learn using his iMac. OS 9.2.2
Thank you.
1st, you have to ask what your
objective is - are you thinking a career
for your son, or is this just a hobby
for him? There's (in my mind) a big
difference in how the matter is approached.
I'll provide my opinion on both paths...
The simpler path is the hobby path.
In this case you don't care but that he
gets enjoyment out of it. In this case
there's very little structure involved,
and the Macintosh is a fine platform
for these endeavors (this is not platform
bashing). However, in this case,
I think there's more C++ going on than
C (C++ uses many similar constructs
of C, but it _is_ a fundamentally
different language).
As far as the HOW for the above,
visit your local bookstore with him.
Amazingly, books I'd recommend:
"The C Programming Language" by Kernighan and Ritche
"The Practice of Programming" by Kernighan and Pike
Both of these books are well written
and direct and should be digestible
by your son over time.
After or along with these books,
you can focus more on his particular
platform objectives, i.e., does he want
to write a game? In which case there
are books available for the Mac using
the OS he's running that give good
insight into this subject. There are
also generic game design books, too.
Some desirable books may be out of
print, so EBAY might be a resource
in this area.
There is a real danger
here in that there many books which
are very advanced in their subject
treatment and could be discouraging.
Believe it or not, since he's a
beginner, a good book filter is YOU.
If you pick up the book and read
(parts of) it and get the 'jist'
of it, then he'll probably get it too.
At this point, some tools
will become obvious and should be
chosen at this time. Usually,
books are written with a particular
compiler and supporting tools in mind
(for a variety of sound reasons).
Also, following news groups
through Google (groups.goole.c om) can
provide a strong knowledge base for him.
After a while, and following the "feel"
of a particular group, he can post
questions to the group.
15-20 years ago, you could
do software and have many personality
defects (usually considered a plus to
hiring managers). Now, I see the
profession responding more to the
cultural climate more than ever.
Now, software people are expected to
be well rounded and fit well into
the corporate environment. If there
are activities you could interest
your son in (clubs, user groups,
peers with computer interests as well),
this would really be a benefit.
I really believe I'm only
scratching the surface here, but
here are my career thoughts. Many
of the things outlined above can
apply to a career path as well.
The main difference I can see is
the importance of developing sound
habits. As a hobby, nobody _really_
cares how a solution is implemented,
but as a profession, methodology
is very important. I'm not talking
about someone's coding style, choice
of language to program in, or operating
system one uses.
But on a practical side, I'd
look at Unix in general, and Linux might
be a way to go. Mac offers OS/X, but I
think that's taking a big step backwards
in technology. I don't know if Linux
runs on the Mac.
Sadly, I can't say where the
software industry in the U.S.A. is headed,
though it seems mostly overseas with
little hope for change since politicians
don't yet understand the strategic
importance for preserving the industry
domestically. I'm not trying to push
a political agenda, but software jobs
that seem to have the best chance of
surviving over the next twenty years are
the ones which need clearance to perform.
Just food for thought...
Hope this helps!
Stephen
eM