Operating Systems
Programming Languages
Microsoft Technologies
Computer Science
Software Engineering
Web Programming
Web Technologies

Contact Us | What's New | Missing Link | Feedback

C++ Language

Book Title : C++ in Action: Industrial Strength Programming Techniques
eBook download format(s) : HTM
ISBN-10 : 0201699486 
ISBN-13 : 978-0-201699-48-7 
Author(s) : Bartosz Milewski
Publisher : Addison Wesley Publishing Company (Jun 2001)
Section : C++ Language
Book Review:

Book Info
(Pearson Education) Modern guide to using C++ langugage, including how to apply it to Windows programming. Shows how to write programs for programmers, not computers. The CD-ROM features all of the source code and projects from the text. Also includes a companion Web site. System requirements not listed.

From the Inside Flap
Why This BookWhy This Book?

Indeed, why YABOC11 (Yet Another Book on C11)? There are already many excellent books describing all imaginable aspects of C11. As far as learning the language and all kinds of programming tricks, the market is pretty much saturated. This book is not a language reference or a collection of clever tricks and patterns. This book is about programming.

Teaching programming is very different from teaching a language. A programmer is usually faced with a problem that he or she has to solve by writing a programónot with a language feature whose use he or she wants to illustrate. In this book I try to show, as much as possible, how to use the language as a tool to solve programming problems.

I center the presentation around various software projects. In each project I first describe a problem to be solved. Then I discuss what the program should do, what it should look like, and how it should react to user input. Based on that I build a scaffolding that captures the structure of the program without implementing its functionality. Finally, I implement the functionality, component by component.

But programming doesnít stop there. What follows in this book is a long series of code reviews each followed by a rewrite. "How can this be done better?" is a question a programmer asks himself or herself constantly. And then another question becomes more and more relevant, "How do I write code that can be easily revised?"

In programming, as in life, there is never a single way to do something. Thatís why being able to argue about various solutions is extremely important. Programmers who donít know how to argue end up bitter and frustrated. I remember my own frustrations when faced with an argument like, "Because itís always been done like this." In this book I argue a lot. I try to find the pros and cons of every solution, and in many cases I manage to settle on something I consider "elegant." However, I never use elegance as an objective criterion. I believe that one can always uncover some very practical arguments that are hidden behind the subjective impression of "elegance." An elegant solution in many cases catches a very good abstraction or generalization. It results in code that is easy to understand, modify, and debug.

Finally, in this book I emphasize the human factor in programming. My credo is "programs are written for programmers, not computers." Programmers want to write better programs not in order to make them more understandable to computers, but to make them more readable to humans. Program maintenance is impossible without program understanding. This may seem like an obvious thing to say, but many programmers overlook this self-evident truth.Why You?

Who are you, the reader of this book? You might be a relative beginner who has picked up some programming but wants to learn C11. You might be a student who wants to supplement his or her college education. You might be a well-trained programmer who is trying to make a transition from the academic to the industrial environment. Or you might be a seasoned programmer in search of new ideas. I hope this book will satisfy you no matter which category you are in.Why Me?

Why should I, of all people, write a book about programming in C11? You, the potential reader of this book, have the right to ask about my credentials, especially because Iím not a computer scientist by education.

I have a Ph.D. in theoretical physicsómy thesis was about supersymmetric nonlinear sigma models. I used to be pretty good at calculating supersymmetric Feynman diagrams. Then, around 1986 I fell in love with computers, quit my postdoc position, and began programming.

A physicist is somebody whoís in between a mathematician and an engineer. A physicist is used to constantly moving between theory and practice. He or she is not expected to believe in a theory unless it has proven itself in practice, and will always try to generalize every aspect of experience in order to find an underlying principle. And, most of all, a physicist is not supposed to take anything for granted.

Unlike a mathematician, a physicist has to be more realistic and care more about the process than the formal theory. The process in physics is performing calculations. In programming, itís software maintenance. So, since Iím a physicist, it should come as no surprise that this book focuses more on rewriting programs than on creating them.

I started teaching C11 and writing this book in 1994, while still working at Microsoft. I took a sabbatical to visit my alma mater, the University of Wroclaw in Poland. It turned out that I would visit that institution several more times, and each visit would prompt me to write a few more chapters. At some point I started converting the book to HTML and posting it on the web. Since C11 was still evolving, I had to rewrite many chapters over and over again. For example, when STL became part of the C11 standard library, I had to go back and rethink the implementation of most code examples in the book.

A lot of techniques described in this book were developed while I was working at Microsoft, designing and leading the development of the Index Server. After that, my new company, Reliable Software, turned out to be a great lab for testing new programming methodologies. All the techniques described in this book have been incorporated into our own products. In fact, we keep rewriting our code every time a new, better idea comes along.

Being a physicist makes me both a good programmer and a bad programmer. Good, because I constantly revise my techniques, search for new generalizations, and discuss every aspect of programming to death. Bad, because when I find a better solution I want to rewrite everything (I will try to convince you that itís actually not such a bad idea). Managers on my previous jobs always had problems with me, because I questioned every decision, convention, and custom. I hope the same qualities will make me a good writer.

If you, the reader, find a better way of doing something described in this book, please let me know, so I can start rewriting this book for the nth time. My e-mail address is bartosz@relisoft.Acknowledgments

I am most grateful to my students from the University of Wroclaw and from the Digipen Institute of Technology, because the best way to learn something is to teach it. Thanks go to Professor Jerzy Lukierski, who invited me back to the university to teach computer science. I am also indebted to my coworkers at Microsoft and Reliable Software, who were the first to try and improve many techniques described in this book. My wife, Pam, besides supporting me in all my endeavors, helped me edit the first chapter of this book, making it so much easier to understand. Many thanks to editors from Addison-Wesley, especially Debbie Lafferty. 0201699486P05242001

add to                 Digg!

You may use anyone of the download options

eBook VersionBuy this book from Amazon
Front Cover

Missing Link?, Report It and you may wish to  Buy  this book from amazon

Tell a Friend!

Similar Book titles in C++ Language section:
A Beginners C++
Algorithms And Data Structures in C++
An Introduction to C++ and Object Oriented Programming
An Introduction to C++ Programming
ANSI/ISO C++ Professional Programmer's Handbook
The C++ Annotations
C++ Language Tutorial
C++ Programming for Scientists
C++ Programming HOW-TO
C++ Programming Tutorial
C++ Standard Template Library (STL) Programmer's Guide
C++ tutorial for C users
C++ Tutorials
C++ Unleashed
C++?? : A Critique of C++
C++?? : A Critique of C++, 3rd Edition
Compilers and Compiler Generators: an introduction with C++
Complete C++ Language Tutorial
Coronado Enterprises C++ Tutor, version 2.2
Data Structures and Algorithms with Object-Oriented Design Patterns in C++
Download C++ Programming Book
Effective C++ / More Effective C++
Tom Swan's GNU C++ for Linux (Professional Dev. Guide)
Introduction to C++ Programming I
Introduction to Object-Oriented Programming Using C++
Object Oriented Programming
Optimizing C++
Programming in C++, Rules and Recommendations
Software Engineering using C++
Sun Studio 10: C++ User's Guide
Teach Yourself C++ in 21 Days
The C++ Programming Language (3rd Edition)
Thinking in C++, 2nd Edition (Beta)
Thinking in C++, Volume 1: Introduction to Standard C++ (2nd Edition)
Thinking in C++, Volume 2: Practical Programming, Second Edition
Who's Afraid of C++?
Programming with Class: A Practical Introduction to Object Oriented Programming with C++
C++ Library Reference
C++: A Dialog: Programming with the C++ Standard Library
C/C++ Language Reference
C/C++ Reference Zone
C++ Essentials
C++ GUI Programming with Qt 3
Industrial Strength C++: Rules and Recommendations
Applied C++: Techniques for Building Better Software
Wireless Game Development in C/C++ with BREW
C++ FAQ Lite
C++ Coding Standard Specification
Software Design Using C++
Techniques for Scientific C++
Debugging C and C++ Code in a Unix Environment
Larch/C++ Reference Manual
C++ Programming Tutorials
An Introduction to the Imperative Part of C++
C and C++ Style Guides
C++ portability guide
C++ Neural Networks and Fuzzy Logic
C++ Network Programming, Volume 2: Systematic Reuse with ACE and Frameworks
C++ Network Programming, Vol. 1: Mastering Complexity with ACE and Patterns
Language Translation Using PCCTS & C++
An Introduction to Design Patterns in C++ with Qt 4

Similar Book titles in Other sections:

Section: CS -> Compilers and Languages
Programming Languages: Application and Interpretation
Functional Programming and Parallel Graph Rewriting
Programming in Martin-Lof's Type Theory
Parsing Techniques - A Practical Guide
Advanced Programming Language Design
Show all..

Section: Data Structures and Algorithms
Concepts, Techniques, and Models of Computer Programming
Patterns for Adaptive Programming (AP)
Computer Animation: Algorithms and Techniques
Art of Programming Contest

Section: Multimedia & Game Development
Programming The Nintendo Game Boy Advance: The Unofficial Guide

Section: CS -> Theory
Tree Automata Techniques and Application
Type Theory and Functional Programming
Applicative Programming and Specification

Section: DB -> DB / 2
Road Map to DB2 Programming

Section: DB -> Oracle
Oracle Programming with Visual Basic
Oracle PL/SQL Programming, 2nd Edition
Oracle PL/SQL Programming: Guide to Oracle8i Features
Advanced Oracle PL/SQL Programming with Packages (Nutshell Handbook)

Section: DB -> Others
Database Programming with Perl
Programming the Perl DBI
Teach Yourself Database Programming with Visual C++ 6 in 21 Day

Section: DB -> SQL
Embedded SQL Programming Guide

Section: DB -> SQL Server
SQL Server 2005 Stored Procedure Programming in T-SQL & .NET

Section: Photography
Digital Photography Expert Techniques
Shoot Like a Pro! - Digital Photography Techniques

Section: Device Drivers
Streams Programming Guide

Section: Microprocessor
Assembly Language Programming Tools for the IA-64 Architecture
IA-32 Intel Architecture Software Developer's Manual Volume 3: System Programming Guide
Programming PIC Microcontroller in C (CC5X compiler)
Programming PIC Microcontrollers in BASIC
8080A-8085 Assembly Language Programming
Show all..

Section: Peripherals
Programming guide and sample code for RTL8139 family
Serial Port Programming Information ZIP
SoundBlaster Programming Information v0.90

Section: Internet
Google Hacks: 100 Industrial-Strength Tips & Tools

Section: Advanced Java
Principles of Object-Oriented Programming in Java
Tricks of Java Programming Gurus
Practical Artificial Intelligence Programming in Java
Concurrent Programming Using Java

Section: Java Enterprise Edition
Programming Jakarta Struts
Programming Jakarta Struts, 2nd Edition

Section: Java User Interface
Programming User Interfaces with JFC
Teach Yourself Internet Game Programming With Java in 21 Days

Section: Java Language
Code Conventions for the Java Programming Language
Essentials of the Java Programming Language, Part 1
Essentials of the Java Programming Language, Part 2
Peter Norton's Guide to Java Programming
Teach Yourself Java 1.1 Programming in 24 Hours
Show all..

Section: Java Networking
Web Programming with Java
Java Thin Client Programming

Section: Java Tools
Java Programming Guide for OS/390
IMS Version 7 and Java Application Programming

Section: Mathematics
Programming for Engineers with Mathematica
An Introduction to Linear Programming and the Simplex Algorithm

Section: Miscellaneous
Michael Abrash's Graphics Programming Black Book
Microsoft RPC Programming Guide
Rf And Baseband Techniques for Software Defined Radio
Concurrent Programming in Erlang
PDF Hacks: 100 Industrial-Strength Tips & Tools
Show all..

Section: Microsoft Certifications
Programming Desktop Applications With MS Visual Basic6 MCSD training kit
Desktop Publishing with Microsoft Visual C++ 6 MCSD

Section: Microsoft C Sharp (C#)
C# COM+ Programming
C Sharp Network Programming
Programming C# (2nd Edition)
Mastering Windows 2000 Programming with Visual C++
Mastering CSharp Database Programming
Show all..

Section: Microsoft COM/DCOM/ActiveX/ATL
ActiveX Programming Unleashed
Activex Programming With Visual C++ 5
Programming Distributed Applications With COM And Microsoft Visual Basic 6.0
Teach Yourself Activex Programming in 21 Days
Learn Active X Template Library Development With Visual C++ 6.0
Show all..

Section: Microsoft .(dot) net
Applied Microsoft .Net Framework Programming
Programming Microsoft.NET
Web Programming with Visual J++

Section: Office Development
Programming Microsoft Visual Interdev 6
Programming Microsoft Office 2000 Web Components
Programming Microsoft Outlook and Microsoft Exchange

Section: Microsoft Visual Basic
Programming Microsoft Visual Basic 6
Web Programming with Visual Basic
COM+ Programming with Visual Basic
Programming VB .NET: A Guide for Experienced Programmers

Section: Microsoft Visual C++
Programming Visual C++, 5th Edition
Database Developer's Guide with Visual C++ 4, Second Edition
Teach Yourself Visual C++ 5 in 24 Hours
Visual C++ 4 Unleashed
Learn Visual C++ Now: Teach Yourself Microsoft Visual C++ the Quick and Easy Way
Show all..

Section: MS Web Technologies
Programming Microsoft Internet Explorer 5
Programming Active Server Pages

Section: Windows Development
Programming the Microsoft Windows Driver Model, Second Edition
Tricks of the Windows Game Programming Gurus (2nd Edition)
Programming Windows CE
Programming Server Side Applications For Microsoft Windows 2000
Programming Applications For Microsoft Windows
Show all..

Section: Networking
Programming Principles in Java: Architectures and Interfaces
Wireless Technology: Protocols, Standards, and Techniques

Section: GNU/Linux OS
The Linux Cookbook - Tips and Techniques for Everyday Use
Advanced Linux Programming
Introduction to Socket Programming
Teach Yourself Shell Programming in 24 Hours
Effective AWK Programming
Show all..

Section: Embedded and RTOS
Programming Embedded Systems in C and C++

Section: Solaris OS
Programming Interfaces Guide
Streams Programming Guide
Multithreaded Programming Guide

Section: OS Theory
Programming the Be Operating System
Spring Concepts, Internals Architecture and Programming
HOPE: A Programming Model for Optimism
The Art of Unix Programming

Section: Unix OS
Nextstep Programming: Step One : Object-Oriented Applications/Book and Disk
The Unix Programming Environment
Volume 7A: XView Programming Manual

Section: Assembly Language
Windows Assembly Language & Systems Programming: 16- And 32-Bit Low-Level Programming for the PC and Windows
Introduction to RISC Assembly Language Programming
Programming from the Ground Up
The Art of Assembly Language Programming
Win32 Programming for x86 Assembly Language
Show all..

Section: C Language
C Elements of Style: The Programmer's Style Manual for Elegant C and C++ Programs
Introduction to C and C++ Programming
C Programming Tutorial (K&R version 4)
Writing Bug-Free C Code for Windows: A Programming Style That Automatically Detects Bugs in C Code
Programming in C: A Tutorial
Show all..

Section: COBOL Programming
ZingCOBOL: A Beginner's Guide to Programming in COBOL
COBOL Programming Course
COBOL Programming Guide
VisualAge COBOL for Windows Programming Guide
COBOL Programming Standards
Show all..

Section: Other Programming
Ada 95: The Craft of Object-Oriented Programming
Ada 95 for C and C++ Programmers
On LISP: Advanced Techniques for Common LISP
Pascal Programming
Principles of Programming Languages
Show all..

Section: Perl Scripting
Advanced Perl Programming
Effective Perl Programming: Writing Better Programs With Perl
Practical Perl Programming
Programming Perl 5.0 CGI Web Pages for Microsoft Windows NT
Programming Perl, 3rd Edition
Show all..

Section: Ruby Programming
Programming Ruby - The Pragmatic Programmer's Guide

Section: Scripting
Practical Programming in Tcl and Tk
The Scheme Programming Language, Second Edition
Thinking in Python: Design Patterns and Problem-Solving Techniques
Tclwise - Guide to the Tcl Programming Language
The Scheme Programming Language, Third Edition
Show all..

Section: Smalltalk
Smalltalk/V Mac Tutorial and Programming Handbook
Smalltalk-80: The Interactive Programming Environment

Section: Redbooks Draft
Programming the Cell Broadband Engine Examples and Best Practices
ABCs of z/OS System Programming Volume 8
ABCs of z/OS System Programming Volume 9
ABCs of z/OS System Programming Volume 3
ABCs of z/OS System Programming Volume 10
Show all..

Section: Redbooks
Developing and Porting C and C++ Applications on AIX
ABCs of z/OS System Programming Volume 9
IBM System S Programming Guide
ABCs of z/OS System Programming Volume 7
DB2 Express-C: The Developer Handbook for XML, PHP, C/C++, Java, and .NET
Show all..

Section: Redpapers
Tips and Techniques for Using TCP/IP on i5/OS
Techniques to Build a Diskless Boot Linux Cluster of JS21 Blades
DataPower Problem Determination Techniques
The IBM Mainframe Today: System z Strengths and Values
Strengthening Your ESB with WebSphere Service Registry and Repository
Show all..

Section: Redpapers Draft
Techniques to Build a Diskless Boot Linux Cluster of JS21 Blades

Section: Software Engineering
How to Design Programs: An Introduction to Programming and Computing
Programming from Specifications
Reusable Software Components: Object-Oriented Embedded Systems Programming in C
Little Purple Book (Vol. 2) Testing - Implementation Techniques
Reasoned Programming
Show all..

Section: Web Programming
Web Client Programming with Perl
CGI Programming on the World Wide Web
CGI Programming Unleashed
Special Edition Using Perl 5 for Web Programming
Web Programming Unleashed
Show all..

Section: XML, XSL & UML
Introduction to XML Programming
XML Programming: Web Applications and Web Services With JSP and ASP

Similar Books from Amazon :

Tell a Friend!

©2008 - Home - Privacy Policy - Program Policy, Terms and Conditions