Some good books about some areas:
1. C
For novices: <C primer> & <Practical C programming>
For ones after reading <C primer> or <practical c programming>, <The c programming language>
read it twice at least and solve every exercises carefully.
You should also pay sometime to read <pointers on C>, the last few chaps concerning about pointers
in particular.
Then you have been quite familar to C. You make little progress by reading C related books only.
but there are some: <C traps and pitfalls> <expert c programming>
2. Linux development
to develop under linux, you have to learn to use it first.
<practical guide to Fedora and red hat linux> are the best books for novice to linux
<practical guide to editors, commands and shell programming> are your next book.
Then you can begin program in Linux.
<advanced programming under UNIX environment>
Don't worry, we are not distrack from Linux. In many case, we can use Linux and UNIX
interchangably. This book is the bible. You shouldn't miss it.
Then you can begin try-it-on Linux Kernel.
<The Linux Kernel Development> should your first one.
<Understanding the Linux kernel>
<professional linux kernel architecture>
<linux device drivers>
<embedded linux development>
If you read all of these and understand fully, you can write your own a book.
3. Java
<Head first Java>
<Thinking in Java>
4. C++
<C++ Primers>
<accelerated C++>
<thinking in c++>
5. Algorithms and data structures
<Discrete Mathematics and its applications>
<Introduction to algorithms>
Then <Algorithms in C\C++\Java>, if necessary
Then <The art of computer programming>, if necessary.
1. C
For novices: <C primer> & <Practical C programming>
For ones after reading <C primer> or <practical c programming>, <The c programming language>
read it twice at least and solve every exercises carefully.
You should also pay sometime to read <pointers on C>, the last few chaps concerning about pointers
in particular.
Then you have been quite familar to C. You make little progress by reading C related books only.
but there are some: <C traps and pitfalls> <expert c programming>
2. Linux development
to develop under linux, you have to learn to use it first.
<practical guide to Fedora and red hat linux> are the best books for novice to linux
<practical guide to editors, commands and shell programming> are your next book.
Then you can begin program in Linux.
<advanced programming under UNIX environment>
Don't worry, we are not distrack from Linux. In many case, we can use Linux and UNIX
interchangably. This book is the bible. You shouldn't miss it.
Then you can begin try-it-on Linux Kernel.
<The Linux Kernel Development> should your first one.
<Understanding the Linux kernel>
<professional linux kernel architecture>
<linux device drivers>
<embedded linux development>
If you read all of these and understand fully, you can write your own a book.
3. Java
<Head first Java>
<Thinking in Java>
4. C++
<C++ Primers>
<accelerated C++>
<thinking in c++>
5. Algorithms and data structures
<Discrete Mathematics and its applications>
<Introduction to algorithms>
Then <Algorithms in C\C++\Java>, if necessary
Then <The art of computer programming>, if necessary.