Finished a "teach yourself" book, what next?

J

Jacob Oost

Should I get some more general books, like "advanced self-teaching," or
can I start on specialized books like "Linux game programming?"

Any book recommendations?
--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
 
M

Malcolm

Jacob Oost said:
Should I get some more general books, like "advanced self-teaching," or
can I start on specialized books like "Linux game programming?"

Any book recommendations?
C Unleashed, by Richard Heathfield and others, fills a gap between "C for
beginners" and specialised works like "3D graphics in C".

Try writing a few simple 2d games to get into the swing of games
programming. You might find that something like draughts is a bit harder to
write than it looks.
 
J

Jacob Oost

Malcolm said:
C Unleashed, by Richard Heathfield and others, fills a gap between "C for
beginners" and specialised works like "3D graphics in C".

Try writing a few simple 2d games to get into the swing of games
programming. You might find that something like draughts is a bit harder to
write than it looks.

Thanks for the suggestions. I was thinking of writing a program to
decode the cryptoquip (by counting the occurences of numbers and
comparing them to a table of the most commonly-used letters in English),
and then a text adventure engine (I have never seen the source code for
a text adventure yet, I'm curious how they do it, I imagine some kind of
multi-branching linked list).

I'm a little worried that I might need to go take a calculus class when
I eventually get into 3D! I want to make my own raytracer.

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
 
C

Chris Williams

Don't know what other programming history you have (just that you're a
geek =) ), so assuming that this is your first language--or at least
first language where the intent is to do more than 50 line
scripts--would be to get some algorithm books and to get a "Programming
for your OS" book. Just getting a hand on creating a window and
plotting pixels or moving a box shape around the window without flicker
can be tough enough when just beginning, without even getting into
complicated math.

Another fun one is a recursive function that will search through all
directories on your computer for a certain file.

-Chris
 
J

Jacob Oost

Chris said:
Don't know what other programming history you have (just that you're a
geek =) ),

A few C++ and Java classes, that's it. I'm on C now and I've forgotten
most of what I learned about C++ and Java anyway (except that I hated Java).

Once I get comfortable with C I intend to learn assembly. Programming
is a hobby for me, not a job.
so assuming that this is your first language--or at least
first language where the intent is to do more than 50 line
scripts--would be to get some algorithm books and to get a "Programming
for your OS" book. Just getting a hand on creating a window and
plotting pixels or moving a box shape around the window without flicker
can be tough enough when just beginning, without even getting into
complicated math.

I have a book laying around, "Linux Programming," and it's thicker than
my wrist. Not sure I really want to go through all of that, especially
since I'm really only interested in graphics.

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
 
J

jiggly

A few C++ and Java classes, that's it. I'm on C now and I've forgotten
most of what I learned about C++ and Java anyway (except that I hated Java).

Once I get comfortable with C I intend to learn assembly. Programming
is a hobby for me, not a job.


I have a book laying around, "Linux Programming," and it's thicker than
my wrist. Not sure I really want to go through all of that, especially
since I'm really only interested in graphics.

How broader the base of the pyramid, how higher it can become.

Make sure you keep your base as wide as possible when you start.
Focussing only on one topic right from the beginning will make you a
very narrow minded programmer. There are just to many fields,topics
that intermix...

g00dlUck..

Jig.
 
J

Jacob Oost

jiggly said:
How broader the base of the pyramid, how higher it can become.

Make sure you keep your base as wide as possible when you start.
Focussing only on one topic right from the beginning will make you a
very narrow minded programmer. There are just to many fields,topics
that intermix...

g00dlUck..

Jig.


Seriously, I could beat somebody to death with this book. But I suppose
I'll give it a try. If I get bored after the first one hundred pages
I'll switch to something else.

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
 
J

Jason Wells

Jacob said:
I'm a little worried that I might need to go take a calculus class when
I eventually get into 3D! I want to make my own raytracer.

Make that Linear Algebra(Which requires at least 1 calculus as a
prerequisite).

You will really benefit from a structured CS program if you want to do 3D
programming. You can look at my WWW to see the project I just did for my
OpenGL class.
 
M

Mike Wahler

Jacob Oost said:
Seriously, I could beat somebody to death with this book. But I suppose
I'll give it a try. If I get bored after the first one hundred pages
I'll switch to something else.

No offense intended, but that attitude makes me
question whether you have sufficient motivation
to learn to become a good programmer. A mere
hundred pages of a single book about a single
topic is an extremely small fraction of what you'd
need study. Especially if one of your goals is
something as complex as 3D graphics.

$.02,
-Mike
 
R

Richard Bos

Jacob Oost said:
A few C++ and Java classes, that's it. I'm on C now and I've forgotten
most of what I learned about C++ and Java anyway (except that I hated Java).

Have you read "The C Programming Language", 2nd edition, by Brian
Kernighan and Dennis Ritchie? It's _the_ book on C.

Richard
 
C

Chris Croughton

Thanks for the suggestions. I was thinking of writing a program to
decode the cryptoquip (by counting the occurences of numbers and
comparing them to a table of the most commonly-used letters in English),
and then a text adventure engine (I have never seen the source code for
a text adventure yet, I'm curious how they do it, I imagine some kind of
multi-branching linked list).

A numboer of them use a "game engine", which is an interpreter. Do a
Google search for "infocom" and "frotz", I know there is C source for
that (for Linux and DJGPP among others). But the code is not very
readable as I recall. Somewhere there is code for the original
"Colossal Cave" adventure as well...

(I note your email address, Infocom were the people who did Zork among
others.)
I'm a little worried that I might need to go take a calculus class when
I eventually get into 3D! I want to make my own raytracer.

If you want to do 3D (or even 2D) "real world" type programs then
calculus is rather useful. In fact if you're interested in any
mathematical modelling of "real world" stuff I'd advise it, if only so
you know what other people are talking about!

Writing a raytracer (or interactive games for that matter) is more about
knowing 'tricks' or shortcuts and algorithms than about raw mathematics,
bacause the 'obvious' (to a mathematician) route generally takes ages.
At the very least, you'll need to know about things like Fast Fourier
Transforms and other numerical methods, which aren't likely to be
covered in normal math classes (below degree course level, anyway).

Which is all off topic here, because it's about algorithms rather than
which language they are written in. Some newsgroups which may be more
helpful:

comp.games.development.programming.{misc,algorithms}
comp.sources.games

Chris C
 
C

Chris Croughton

Once I get comfortable with C I intend to learn assembly. Programming
is a hobby for me, not a job.

It's both for me said:
I have a book laying around, "Linux Programming," and it's thicker than
my wrist. Not sure I really want to go through all of that, especially
since I'm really only interested in graphics.

Unless you want to stick with one system (Windows, X, whatever) then
look at some of the already written multi-platform graphics libraries
which present a common interface to the application (and like swans
paddle furiously underneath).

If you want X graphics (Linux and other Unices) look at the O'Reilly
books on X programming (they're thick as well!), email me off-group for
some examples of libraries and books (it's off-topic here).

Chris C
 
J

Jonathan Burd

Jacob said:
Should I get some more general books, like "advanced self-teaching," or
can I start on specialized books like "Linux game programming?"

Any book recommendations?

I can only recommend some of what I have read or am reading.1):
* The C Programming Language, 2nd edition, Kernighan and Ritchie
* C Unleashed, Richard Heathfield, Lawrence Kirby, Ben Pfaff,
Jack Klein, et al. (This is one awesome book and is written
by people including c.l.c. regulars.)
* The ISO/IEC 9899:1999 C Standard (Buy the PDF for $18
from here:
http://webstore.ansi.org/ansidocstore/product.asp?sku=INCITS/ISO/IEC+9899-1999
) or get the n869.pdf and n869.txt files from one of the
links in my sig.
* Practical C Programming, 3rd edition, Steve Oualline
* Apart from these, there are several good articles
available on the Internet and USENET (all good reading).
There are too many of those to enlist here, so I'll leave that
to Google. (Look for articles by Richard Heathfield,
Chris Torek, Eric Giguere, Bruce Dawson, Peter Seebach,
David Goldberg, etc.)

-----
1) Stay away from anything written by Herb Schildt.
There are innumerable errors in his books (even entire
chapters are wrong!). ("Teach Yourself..." Is that the
one written by the same clown?)
-----

Regards,
Jonathan.

--
C-FAQ: http://www.eskimo.com/~scs/C-faq/faq.html
C Library: http://www.dinkumware.com/refxc.html
C99 Standard Draft: http://www.open-std.org/jtc1/sc22/wg14/www/docs/n869/
Common C Programming Errors:
http://www.drpaulcarter.com/cs/common-c-errors.php

Email: "jonathan [period] burd [commercial-at] gmail [period] com" sans-WSP

"We must do something. This is something. Therefore, we must do this."
- Keith Thompson
 
?

=?ISO-8859-1?Q?Bj=F8rn_Augestad?=

Jacob said:
Should I get some more general books, like "advanced self-teaching," or
can I start on specialized books like "Linux game programming?"

Any book recommendations?

Some must-reads are:
- The Practice of Programming, by Kerighan&Pike.

- Code Complete, by Steve McConnell. I haven't read the second edition,
but customer reviews on Amazon indicate that it still is an excellent book.

- Programming Pearls is also very good, but maybe not ideal for beginners?


Bjørn
 
R

Richard Bos

Chris Croughton said:
A numboer of them use a "game engine", which is an interpreter. Do a
Google search for "infocom" and "frotz", I know there is C source for
that (for Linux and DJGPP among others). But the code is not very
readable as I recall. Somewhere there is code for the original
"Colossal Cave" adventure as well...

But not, originally, in C. Advent was written in Fortran. The original
Infocom games were written in ZIL, which was a kind of MDL, which was a
Lisp-like language. I've no idea what their 'terps were written in.
Modern ZMachine games are often written in Inform, which is not
Lisp-like at all, but a slightly C-like, somewhat object-oriented
language; modern 'terps are often written in C, and, on-topically, in
theory one could probably write a primitive but conforming 'terp in ISO
C alone.

Richard
 
D

Default User

Jacob said:
Thanks for the suggestions. I was thinking of writing a program to
decode the cryptoquip (by counting the occurences of numbers and
comparing them to a table of the most commonly-used letters in English),
and then a text adventure engine (I have never seen the source code for
a text adventure yet, I'm curious how they do it, I imagine some kind of
multi-branching linked list).


Depends on the text-adventure game. The most common ones are the ones
based on a sort of virtual machine. Then the code is actually written
some sort of language the virtual machine uses. One of the most popular
is Inform, which was sort of reverse-engineered from the system Infocom
(Zork et al) used many years ago.

Naturally, if you are doing your own game, you need not do it that way.
Your goal would be to develop skills, not write games as efficiently
and portably as possible.

Text games are well-suited for this task. You would need to deal with
most of the common software engineering issues: data storage, data
management, input parsing, decision-making, error-handling, all that
good stuff.



Brian
 
J

Jacob Oost

Mike said:
No offense intended, but that attitude makes me
question whether you have sufficient motivation
to learn to become a good programmer. A mere
hundred pages of a single book about a single
topic is an extremely small fraction of what you'd
need study. Especially if one of your goals is
something as complex as 3D graphics.

I have the sufficient motivation to become a good programmer in software
that interests me, which is mainly graphics. While I do want to learn
more advanced C stuff, I'm not sure I want to go through an 800 page
book on general Linux programming at this moment. What's the harm in
putting it off, especially if it is just "an extremely small fraction"
of what I need to study?

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
 
J

Jacob Oost

Richard said:
Have you read "The C Programming Language", 2nd edition, by Brian
Kernighan and Dennis Ritchie? It's _the_ book on C.

Richard

I'd like to get it if I can find it for cheap.

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
 
J

Jacob Oost

Jason said:
Make that Linear Algebra(Which requires at least 1 calculus as a
prerequisite).

Actually I'm not in college or anything, I just have some books on
programming. I've learned algebra and calculus, but forgotten a lot of
it. I prefer to study at home rather than in a class room. I've
already learned more in a few weeks than I did in months of classes.

--

----- BEGIN GEEK CODE BLOCK -----
Version 3.1
GAT d? !s !a C++++ UL+ P L++ E- W+ N+ o-- K- w--
O- !M !V PS-- PE++ Y+ PGP- t++>++++* 5? !X-- R- tv b++ DI+ D++
G e !h !r !y
...... END GEEK CODE BLOCK ----
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,768
Messages
2,569,574
Members
45,051
Latest member
CarleyMcCr

Latest Threads

Top