Hello, and welcome to Simply C#!
This book is designed to teach you how to develop software using the C# programming language. I’m not assuming you have any prior knowledge of computer programming or C# - we’re going to learn from the ground up.
This book is primarily aimed at people who are just getting their start in computer programming. The ideal reader of this book might be:
My aim with this book is broad. Not only do I want you to understand how to create computer programs using C#, I also want you to understand how to write great software. As it turns out, writing great software isn’t just about knowing lots of different programming languages. It’s about understanding certain principles and applying them to whatever software development context you’re in - whether that’s creating software for an air traffic control tower, or a washing machine. This broader discipline is known as Software engineering, and this book is going to introduce some of its core principles, alongside C# programming.
If studied carefully, my hope is this book will provide you with the fundamental knowledge required to begin taking on those projects that never seemed possible before - creating a computer game, making your own website, writing a mobile app. Now this book isn’t going to teach you all the specific things you need to know to create the next Facebook, unfortunately! Instead, it’s going to focus on giving you an understanding of how software is crafted in general. This understanding can then be applied to whatever project you have in mind. You’re also going to acquire a solid grasp of C# - which is a popular programming language with many uses.
That might sound a little disappointing - you probably can’t wait to start hacking away at your dream project… Well I want to encourage you to keep that dream alive! Learn from this book and you’ll be equipped to make that dream happen. Think of this as the base camp - you need to spend a bit of time here before you can take on the mountain that lies ahead!
Simply C# consists of a series of chapters that introduce and discuss a topic related to software engineering, usually accompanied by examples in C#. After each chapter is programming exercise or two where you can practice your skills.
The programming exercises are in the form of Code Katas. This term was coined by Dave Thomas, co-author of the book The Pragmatic Programmer. A Kata is a funky name for an exercise designed to help improve your skills by introducing and explaining new concepts, then getting you to solve problems to solidify your understanding.
The Code Katas are completely standalone - you don’t need to read the chapters to complete them. So it’s possible to disregard the chapters and just use the Katas. However, you’ll certainly miss a lot useful information if you do skip the chapters! Nevertheless, completing the Code Katas alone can provide an accelerated introduction to C# if you already have some programming experience.
If possible, I recommend that you work through this book - particularly the Code Katas - with someone else. This could be a friend, a fellow student in your class, or co-worker. It doesn’t matter if the other person has more experience with computer programming than you. As long as you’re both determined to learn, you’ll find that you both learn a lot more in a pair than you would on your own. And it’s more fun!
Finally, I want this book to be as short as possible. You’ve probably seen other ‘beginners programming’ books which are about a metre thick. Don’t get me wrong - such books, when worked through with discipline, can give you a very deep understanding starting from zero knowledge. However this book is aiming to get you up and running ASAP - I want you to feel confident creating great software in C#, even if you feel like there’s still lots to learn. My hope is that once you’ve finished this book, you’ll have enough knowledge to tackle more in-depth material without feeling overwhelmed.
Simply C# is suited for self-study, or can be used as a resource to teach others at an introductory level. The Code Katas naturally lend themselves to in-class or homework assignments, as they’re self-contained and can be completed within an hour. Each chapter is designed to be as concise as possible, so make for easy further reading outside of lessons.
In order to complete the programming tasks in this book, you’ll need to download the Supporting Materials. More information can be found out about this in the Appendix.
Simply C# is a product of the Software Coach website. Software Coach is a website designed to help new programmers develop their skills. You might find Software Coach’s resources helpful as you work through the programming exercises in this book. More than that, once you’ve finished Simply C#, it’s a great place to continue your journey in software development.
In summary, the aim of this book is:
So, grab a friend, co-worker, or fellow student, and get ready to learn computer programming! Without further ado, let’s get started with our first Kata.