Forming a group of grammatically correct sentences in the English language by combining verbs, nouns, and other language elements is relatively easy compared to the task of constructing sentences that together form a spellbinding, classical novel.
C#, like any other programming language, also consists of a basic set of language elements. To form valid C# "sentences," these elements must be put together according to C#'s rules of syntax. This is relatively easy compared to the task of creating a group of C# "sentences" that together form a successful, robust, and bug-free program.
Not only does this book teach you C#'s language elements from the ground up, it also explains their optimal use and shows you how they are combined to form robust and valuable programs. The latter is achieved by including proven fundamental programming techniques (with an emphasis on object-oriented programming) as part of the introduction of the C# language. To maintain this dual focus and to avoid any superfluous distractions, only the parts of .NET directly relevant to C# are discussed. Accordingly, this book is not about .NET's ASP+, Web Services, or Win Forms but about making you a proficient C# programmer.
This book is targeted at the beginner and requires no mathematical skills other than some simple algebra. An absolute beginner should read the book from cover to cover.
If you've had limited experience with another programming language, you can still benefit from this book. In that case, you might want to concentrate only on the .NET and C# related parts in Chapters 1 and 2 and skip the discussions about abstraction and encapsulation (if your experience include object-oriented programming) in Chapter 3.
Learning a new programming language is, in my view, best facilitated by combining several different teaching tools, so that any one aspect can be viewed and attacked from different angles. Consequently, this tutorial not only contains the basic text describing the various C# elements but also a generous number of figures, source code examples (with accompanying sample output and analysis), case studies, Note boxes, Tip boxes, Common Pitfall boxes, Syntax boxes, and review questions (with answers located in Appendix A, "Answers to Quizzes and Exercises").
It is important to realize that learning to program is not about learning a lot of dry theory and concepts by heart. Instead, it is about experimenting, learning from mistakes, unleashing your creativity, and having fun. As a result, each chapter ends with a set of programming exercises with which you can experiment, test, and improve your skills.