Welcome to the official web site of the free book "Fundamentals of Computer Programming with C#"

Welcome to the official web site of the free book "Fundamentals of Computer Programming with C#". It aims to provide novice programmers
solid foundation of basic knowledge regardless of the programming language.
This book covers the fundamentals of programming that have not changed significantly over the last 10 years. Educational content
was developed by an authoritative author team led by Svetlin Nakov and covers topics such as variables
conditional statements, loops and arrays, and more complex concepts such as data structures (lists, stacks, queues, trees, hash tables, etc.), and recursion
recursive algorithms, object-oriented programming and high-quality code. From the book you will learn how to think as programmers and how
to solve efficiently programming problems. You will master the fundamental principles of programming and basic data structures and
algorithms, without which you can't become a software engineer.

News and messages

The free programming fundamentals book "Fundamentals of Computer Programming with C#" (English version) is now shipping internationally for the people who want to have it as paperback (hard copy). The book is free so it is sold at the price of its printing:

6.56 EUR for the paperback copy of the C# book (1122 pages hard copy)

Shipping costs depend on the location and can be more expensive than the book itself:

The book “C# Programming Book” (ISBN 9789544007737, ISBN 9544007733) came out as also did the related videos lectures about C# and the presentations about programming with C#. We published it in different formats, including PDF, Kindle and ePub. The readers liked a lot our C# book and started reading it at once. However, only Google isn’t convinced enough that when you write “book C#” or “C# book”, it has to find the C# book website. Welcome to the free programming book for begginners and intermediate developers.

C# Book

Lots of people are looking for a good book about C# in English. They want to learn the C# language and start coding. We wrote an original “C# book”, a book about programming and developing the thinking process. It is an excellent starting point for every beginning software engineer and future .NET / C# programmer.

How to Choose a Book about C#?

If you are wondering how to choose a C# book, first answer the question, “Why am I looking for C#?” If the answer is, “I’ve been programming in Java or in PHP for five years and I want to learn C#”, maybe you will need a book about C#, which in brief explains the basic constructions in the language, object-oriented programming (OOP) and some syntax specifics. If you, however, are a beginning programmer and want to learn to code and you are already aware of the C# language, you will need a more serious book about C# programming, as well as a course in C# programming, a textbook in C# programming or video lessons in C# programming. My advice is: First learn to code and then you will easily change languages and technologies.

Why Choose Our C# Book?

There are a lot of C# books (books about the “C sharp” language) and there are a lot of books about .NET and programming. Our C# book is different, though. It is a book about programming and in-between about C#. It’s not a book about C# and in-between about programming. Our C# book teaches accurate, algorithmic, analytical, logical thinking. Programming is an art which must be mastered in depth. It’s not enough to learn the C# language or .NET Framework APIs. It’s not enough to learn PHP and MySQL to code tons of web sites. If you want to be a good programmer, you must possess in-depth knowledge about data structures, algorithms, computer architectures, operational systems, data bases, web technologies, etc. The programming language is the last thing to think about. The good programmers write with ease in all languages and when they take a good C# book, they quickly learn to program with C#.

Book C# Programming

What makes this book unique is its content. Few books teach quality programming, data structures and algorithms. Our book about C# programming teaches fundamental concepts in computer programming, which haven’t changed significantly in the last 15 years. It shows the eternal paradigms, concepts and knowledge which are valid decades after they have been thought up and described. There a lot of books about programming which describe the syntax of a given programming language and nothing more. Our work on a “programming book” teaches concepts, principles, methodology for programming problem solving and high-quality programming code. Few books pay attention to the code. When I see “Button1” and “Button1_Click”, I understand the author is not an experienced software engineer and the book is the next cheap writing in a luxury wrapping. Don’t get misled, the good books about programming teach thinking, reasoning and programming principles and not how to place a button in the form and to leave its name by default (for example Button2).

C# Book

First Steps in Programming with C#

Our book about C# programming starts with the fundamentals of programming: what a computer is, what a compiler is, what a development environment is, how .NET works, how C# works, what variables are, what the variable values are, what C# literals are, what primitive types of data are in C#, how to use operators, different types of operators in C#, how we can take out and insert data in the console, how to organize the programming logics through conditional constructions in C#, how to organize a repetitive execution programming fragments through cycle constructions, how to use arrays for storing a string of elements. The first steps in programming correspond to the first level of the “C# Fundamentals” course at Telerik Academy for Software Engineers, which is based on the C# book.

More Complicated Concepts in C# Programming

After the basics of programming, in the C# book we pay attention to some complicated concepts: notation, recursion, object-oriented programming with C#, classes and objects in .NET Framework, exceptions processing in the C# language text and images processing and symbol strings with C#, working with files through C#, etc. This part of the book about C# corresponds to the second level of the “C# Fudamentals” course at Telerik Academy for Software Engineers.

Complicated Data Structures and Algorithms and C# Implementations

At the end of the C# book, the most complicated concepts of the basics of programming are reviewed: data structures and implementation with C# and in the .NET platform. We look into linear data structures and their implementation in .NET Framework , list structures, linked list , dynamic self-stretching array, stack, tail, deck, trees, binary trees, balanced trees, black and red trees, B-trees, graphs, oriented, disoriented and weighed graphs. We study the classic algorithms for crawling tree-like structure data: breadth first search (BFS), depth-first search (DFS) and some algorithms on graphs. Then we review the data structure dictionary, associative array and multitude and their implementations in .NET. We pay special attention to the hashtables and their implementations, we study some algorithms for hashing, resolving collisions and some specifics with hashtables in .NET and C#. We compare the basic data structures in programming and analyze their effectiveness in terms of basic operations such as searching, inserting, deleting, etc. We look into important concepts of object-oriented programming such as abstraction, encapsulation, inheritance and polymorphism. We give recommendations for writing quality programming code and for effective programming problem solving with focus on testing all possible scenarios, coming from the problem. This part of the book about C# corresponds to the third level of the “C# Fundamentals” course at Telerik Academy for Software Engineers.

Book C# Programming

It’s debatable to what extent our C# book is a book about C# and to what extent it is a book about programming. The truth is, it will simultaneously teach you two things: the C# language, its syntax, program constructions and OOP. It will also teach you programming as concepts and principles – how to think algorithmically, how to solve problems, how to write quality code, to come up with algorithms, to implement them in C# and how to test them afterwards in order to be sure they are correct.