The book which opened the gates to so many others....
(Thanks to Bhallu and of course Yashavant Kanetkar).
The good thing about this book is
1) Easy to understand language
2) **** Diagrams to show visually things like pointer/array indexing.****.
Helps you to literally "see" whats going on inside your pointer based code.
3) The follow up books by the author let you dive deep into the C sea....
Thank you Yashavant Kantekar Sir!!
These are some of the other good books by him:
1) Understanding Pointers In C (Book) (very good understandable data-structures book)
2) C Projects (Book w/CD) (excellent introduction to actual "Project level" Programming with C i.e you know the language but need to see the way to build up code to do something useful)
3) Unix Shell Programming (Book) (excellent shell scripting book with last chapter creating a DBMS using simple shell functions)
4) Writing TSRs through C. Excellent introduction to hardware/OS/interrupt level programming using C.
Thursday, May 14, 2009
Monday, August 6, 2007
STUB: Thinking About Testing!!
The Practise of Programming (Kernighan)
Ten Commandments of Programming.
- Unit Testing, Negative Testing, Regression Testing
- Pre/Post conditions
- Logging for better tracking of failure/status.
- Boundary Conditions
- Off-by-One error
- Checking of return values
- Catching Exceptions
- Missing structure
- Very Long input (memory allocations, buffer overrun eps. in sprintf, strcpy)
- Zero input, missing input
- Testing 80-20 (test the 20% code normally used and THEN test the remaining 80%)
- Brute Force Testing (scripting to test Combinations of Input)
- Testing Output values
- Testing Error checking (testing seldom taken branches in error-checking code)
- Code coverage (using gnu tools)
- Performance Testing (using gnu tools)
Ten Commandments of Programming.
- Unit Testing, Negative Testing, Regression Testing
- Pre/Post conditions
- Logging for better tracking of failure/status.
- Boundary Conditions
- Off-by-One error
- Checking of return values
- Catching Exceptions
- Memory leaks, Dangling pointers, NULL pointers
- Unicode
- Non-text characters
- Missing structure
- Very Long input (memory allocations, buffer overrun eps. in sprintf, strcpy)
- Zero input, missing input
- Testing 80-20 (test the 20% code normally used and THEN test the remaining 80%)
- Brute Force Testing (scripting to test Combinations of Input)
- Testing Output values
- Testing Error checking (testing seldom taken branches in error-checking code)
- Code coverage (using gnu tools)
- Performance Testing (using gnu tools)
Labels:
testing,
testplan,
thinking,
unit-testing
Wednesday, July 18, 2007
Good Articles on Internals of C++ and Unix
These are a set of articles that take a look at what happens inside C, C++, Unix internals as we compile and run our programs. The info here is invaluable to debug compile errors, runtime errors and memory issues. You can go through these in your spare time. Take a print out to read in your spare time and go through these articles.
0.What Happens When You Compile and Link a Program
1.What a Compiler Turns Your C Code Into
2. Virtual Base Classes Implementation
3. How the C++ compiler mangles/decorates function names
4. Unix And C-C++ Runtime Memory Management For Programmers
0.What Happens When You Compile and Link a Program
1.What a Compiler Turns Your C Code Into
2. Virtual Base Classes Implementation
3. How the C++ compiler mangles/decorates function names
4. Unix And C-C++ Runtime Memory Management For Programmers
Labels:
__Excellent,
c++,
in-depth,
internals,
under-the-hood,
Unix
Wednesday, July 11, 2007
BookReview: STL Tutorial and Reference Guide: C++ Programming with the Standard Template Library
A very good book on STL, though a bit dry in terms of explanation.
Very comprehensive.
I recommend going through the STL tutorials before diving into this one.
Very comprehensive.
I recommend going through the STL tutorials before diving into this one.
BookReview: Object Oriented Analysis and Design with Applications (Second Edition) by Grady Booch
THE book which opened my eyes to design, types, interfaces using OOPS/OOAD.
Till then C++ meant coding.
This book introduced how to model what you can imagine into code. Configurable, flexible, orthogonal....
The design of the book with each chapter starting with different quotations and interspersed with meaningful dry humour cartoons makes this a memorable book.
Thank you Grady Booch.
Till then C++ meant coding.
This book introduced how to model what you can imagine into code. Configurable, flexible, orthogonal....
The design of the book with each chapter starting with different quotations and interspersed with meaningful dry humour cartoons makes this a memorable book.
Thank you Grady Booch.
BookReview: The Mythical Man Month by Frederick P. Brooke
Huge insight into what makes a very big software project successful or Not....
"There is no silver bullet...." except for good management of the design and implementation.
"12 doctors can deliver a baby in 10 months..." are some quotes to remember from this book everytime your manager asks you to do yoga with the project plan.
"There is no silver bullet...." except for good management of the design and implementation.
"12 doctors can deliver a baby in 10 months..." are some quotes to remember from this book everytime your manager asks you to do yoga with the project plan.
Labels:
__Excellent,
art,
book,
C,
c++,
masterpiece,
programming,
project-management,
review,
top10
BookReview: The Practice of Programming by Brian Kernighan and Pike
"Good design is what happens when you can take out no more from your creation without breaking it". This is the philosophy of this book.
It teaches you the simple principles of (as shown on the cover)
1) Clarity
2) Simplicity
3) Generality
Thank you Kernighan and Pike for teaching these Zen like aspects of programming.
It teaches you the simple principles of (as shown on the cover)
1) Clarity
2) Simplicity
3) Generality
Thank you Kernighan and Pike for teaching these Zen like aspects of programming.
Labels:
__Excellent,
art,
book,
C,
c++,
masterpiece,
programming,
review,
top10
BookReview: The C Odessey by Vijay Mukhi
An excellent series on the many facets of C (Unix, Dos, Windows, ..., Networking, RDBMS).
This is in keeping with the spirit of inquisitiveness of a true hcaker....
An eye-opening series for a beginner in C.
Simply Amazing!!
I still remember the way he explains how a bitmap is made up by setting pixels/bits on/off.
Note: The Amazon link is only for the Network/RDBMS which is actually the most dated/obsolete of the series, but its the only one available in Amazon.
This is in keeping with the spirit of inquisitiveness of a true hcaker....
An eye-opening series for a beginner in C.
Simply Amazing!!
I still remember the way he explains how a bitmap is made up by setting pixels/bits on/off.
Note: The Amazon link is only for the Network/RDBMS which is actually the most dated/obsolete of the series, but its the only one available in Amazon.
BookReview: Inside the C++ Object Model by Stanley Lippman
One of the Best books on C++ internals/under-the-hood.
NOTE: The author was hired by Microsoft as Architect to clean up its extremely non-standard/buggy VC++ compiler to conform to the C++ Standard.
0) The original Cfront preprocessor/compiler converted C++ into C.
That means that almost every C++ code "could" be converted into C.
Note: Modern C++ compilers no longer convert to C, but it helps to make the compilation process more easy to understand. This book connects the dots.
1) Virtual tables/functions turn into simple function pointer table lookups.
Simple data structures show how this is implemented in different compilers.
2) Generated functions like default constructors etc. finally start to make sense.
3) Inheritance starts looking more like compiler controlled composition of objects.
4) Gives you X-Ray vision right from compiler data-structures to actual assembly code.
5) Watch out for the typos and the mismatch between some of the diagrams and the explanation.
You start seeing the source code "through the compiler's eyes". A lot of work from the compiler goes into making your Object-oriented code run.
A Must have book for any person wanting to really know how the compiler works with C++.
NOTE: The author was hired by Microsoft as Architect to clean up its extremely non-standard/buggy VC++ compiler to conform to the C++ Standard.
0) The original Cfront preprocessor/compiler converted C++ into C.
That means that almost every C++ code "could" be converted into C.
Note: Modern C++ compilers no longer convert to C, but it helps to make the compilation process more easy to understand. This book connects the dots.
1) Virtual tables/functions turn into simple function pointer table lookups.
Simple data structures show how this is implemented in different compilers.
2) Generated functions like default constructors etc. finally start to make sense.
3) Inheritance starts looking more like compiler controlled composition of objects.
4) Gives you X-Ray vision right from compiler data-structures to actual assembly code.
5) Watch out for the typos and the mismatch between some of the diagrams and the explanation.
You start seeing the source code "through the compiler's eyes". A lot of work from the compiler goes into making your Object-oriented code run.
A Must have book for any person wanting to really know how the compiler works with C++.
Subscribe to:
Posts (Atom)
