473,809 Members | 2,708 Online
Bytes | Software Development & Data Engineering Community
+ Post

Home Posts Topics Members FAQ

Finished a "teach yourself" book, what next?

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 ----
Nov 14 '05
33 2406
Jacob Oost wrote:
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/ansidocstor...EC+9899%2D1999
) 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
Nov 14 '05 #11
Jacob Oost wrote:
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
Nov 14 '05 #12
Jonathan Burd wrote:
Jacob Oost wrote:


<snip>

http://publications.gbdirect.co.uk/c_book/ is something I'm
going through now.

Be warned: It's an old book and not all code may be on par with
the current standard, but it has been made available online for free.

Regards,
Jonathan.

--
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
Nov 14 '05 #13
On Mon, 31 Jan 2005 02:57:33 GMT, Jacob Oost
<zo**@columbus. rr.com> wrote:
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 <g>.
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
Nov 14 '05 #14
On Sun, 30 Jan 2005 22:45:26 GMT, Jacob Oost
<zo**@columbus. rr.com> wrote:
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.deve lopment.program ming.{misc,algo rithms}
comp.sources.ga mes

Chris C
Nov 14 '05 #15
Chris Croughton <ch***@keristor .net> wrote:
On Sun, 30 Jan 2005 22:45:26 GMT, Jacob Oost
<zo**@columbus. rr.com> wrote:
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...


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
Nov 14 '05 #16
Jacob Oost wrote:
Malcolm wrote:
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).

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

Nov 14 '05 #17
Mike Wahler wrote:
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.


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 ----
Nov 14 '05 #18
Richard Bos wrote:
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


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 ----
Nov 14 '05 #19
Jason Wells wrote:
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).


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 ----
Nov 14 '05 #20

This thread has been closed and replies have been disabled. Please start a new discussion.

Similar topics

60
3987
by: K. G. Suarez | last post by:
Hello everyone. I am new to programming and my uncle gave me a copy of "C For Dummies 2nd Edition". I am up to chapter 9 right now. He probably saw me struggling with "The C Programming Language" by Ritchie and Kernigahn and felt bad. Does anyone have experience with this book? I feel that it is helping me along pretty well. But how much will this book teach me? What would be the next book to read?
35
5855
by: pandit | last post by:
is this book good for learning C ? i am a beginning programmer, Kernighan and Ritchie 2e is quite hard on me.
7
2029
by: duli | last post by:
Hi: I would like recommendations for books (in any language, not necessarily C++, C, python) which have walkthroughs for developing a big software project ? So starting from inception, problem definition, design, coding and final delivery on a single theme or application. Most of the code I have written and books that I have read deal with toy programs and I am looking for something a bit more comprehensive. For example, maybe a...
8
2711
by: ssecorp | last post by:
I first learned about OO from Java. I much prefer to program in Python though. However I am consufed about 2 things. 1. Why do I have to pass self into every method in a class? Since I am always doing why cant this be automated or abstracted away? Are the instances where I won't pass self? I imagine there is some tradeoff involved otherwise it would have been
0
10637
Oralloy
by: Oralloy | last post by:
Hello folks, I am unable to find appropriate documentation on the type promotion of bit-fields when using the generalised comparison operator "<=>". The problem is that using the GNU compilers, it seems that the internal comparison operator "<=>" tries to promote arguments from unsigned to signed. This is as boiled down as I can make it. Here is my compilation command: g++-12 -std=c++20 -Wnarrowing bit_field.cpp Here is the code in...
0
10376
jinu1996
by: jinu1996 | last post by:
In today's digital age, having a compelling online presence is paramount for businesses aiming to thrive in a competitive landscape. At the heart of this digital strategy lies an intricately woven tapestry of website design and digital marketing. It's not merely about having a website; it's about crafting an immersive digital experience that captivates audiences and drives business growth. The Art of Business Website Design Your website is...
1
10379
by: Hystou | last post by:
Overview: Windows 11 and 10 have less user interface control over operating system update behaviour than previous versions of Windows. In Windows 11 and 10, there is no way to turn off the Windows Update option using the Control Panel or Settings app; it automatically checks for updates and installs any it finds, whether you like it or not. For most users, this new feature is actually very convenient. If you want to control the update process,...
1
7660
isladogs
by: isladogs | last post by:
The next Access Europe User Group meeting will be on Wednesday 1 May 2024 starting at 18:00 UK time (6PM UTC+1) and finishing by 19:30 (7.30PM). In this session, we are pleased to welcome a new presenter, Adolph Dupré who will be discussing some powerful techniques for using class modules. He will explain when you may want to use classes instead of User Defined Types (UDT). For example, to manage the data in unbound forms. Adolph will...
0
6881
by: conductexam | last post by:
I have .net C# application in which I am extracting data from word file and save it in database particularly. To store word all data as it is I am converting the whole word file firstly in HTML and then checking html paragraph one by one. At the time of converting from word file to html my equations which are in the word document file was convert into image. Globals.ThisAddIn.Application.ActiveDocument.Select();...
0
5550
by: TSSRALBI | last post by:
Hello I'm a network technician in training and I need your help. I am currently learning how to create and manage the different types of VPNs and I have a question about LAN-to-LAN VPNs. The last exercise I practiced was to create a LAN-to-LAN VPN between two Pfsense firewalls, by using IPSEC protocols. I succeeded, with both firewalls in the same network. But I'm wondering if it's possible to do the same thing, with 2 Pfsense firewalls...
1
4332
by: 6302768590 | last post by:
Hai team i want code for transfer the data from one system to another through IP address by using C# our system has to for every 5mins then we have to update the data what the data is updated we have to send another system
2
3861
muto222
by: muto222 | last post by:
How can i add a mobile payment intergratation into php mysql website.
3
3014
bsmnconsultancy
by: bsmnconsultancy | last post by:
In today's digital era, a well-designed website is crucial for businesses looking to succeed. Whether you're a small business owner or a large corporation in Toronto, having a strong online presence can significantly impact your brand's success. BSMN Consultancy, a leader in Website Development in Toronto offers valuable insights into creating effective websites that not only look great but also perform exceptionally well. In this comprehensive...

By using Bytes.com and it's services, you agree to our Privacy Policy and Terms of Use.

To disable or enable advertisements and analytics tracking please visit the manage ads & tracking page.