
Fundamentals of Computer Programming with CSharp Free Book (by Nakov & Co.)
About this book
The **[book “Fundamentals of Computer Programming with C#”][1]** provides thousands of beginner programmers with the practical knowledge and skills necessary to land an entry-level job in the software industry. It teaches the fundamental concepts of programming, data structures and algorithms, and principles for building high-quality software.
The book is **free of charge** and available for downloading as **PDF**, **ePub**, **mobi** and other e-formats, accompanies by [video lessons][2] and [presentation slides][3].
Originally written in Bulgarian by a team of seasoned software engineers and translated and edited by over 70 volunteers, the book “Fundamentals of Computer Programming with C#” teaches readers to think like programmers and write programs for **solving practical algorithmic problems**.
The book “**Fundamentals of Computer Programming with C#**” covers extensively fundamental programming topics such as data types and variables, operators and expressions, conditional statements, loops, arrays, strings, data structures and algorithms, recursion, object-oriented programming, classes and objects, exceptions handling, lambda expressions and functional programming, as well as high-quality programming code and problem solving methodology. With practical problem-solving tasks at the end of each chapter, slides and video lessons, the book is the **ultimate step-by-step guide to the amazing world of computer programming**, as well as amazing resource for instructors who want to teach programming fundamentals.
With more than 700,000 vacant IT jobs in Europe* alone, the ICT industry will need more and more highly qualified individuals to join it. Following this book and its video lessons within 3-4 months, anyone dedicating enough time to the book, videos and the exercises can **master programming**.
**After Finishing the Book You Will be Able to:**
- Define and use variables and work with primitive data types (such as numbers) - Organize logical statements, conditional statements and loops - Print on the console, use arrays, work with numeral systems, define and use methods - Create and use objects, define own classes and understand object-oriented programming (OOP) - Deeply understand data structures (like balanced trees and hash-tables) - Design efficient algorithms and solve complex programming problems
The book teaches the **C# programing language**, a modern object-oriented, general-purpose programming language. Being a simple and easy to learn, it is a natural starting point for beginners and at the same time is widely used in the software industry. Once one masters the basics of programming, they can replace C# with any other programming language.
**Why Use “Fundamentals of Computer Programming with C#”?**
- In over 1,100 pages, the book covers the never-changing basic principles and concepts in programming - It contains over 350 exercises with varying difficulty - All chapters are accompanied by video lessons, presentation slides and mind maps
In the past two years, the first edition of “Fundamentals of Computer Programming with C#” taught over 10,000 people how to code and think as a programmer. The leading author of the book, **[Svetlin Nakov][4]**, an accomplished programming trainer with nearly 20 years of experience in the software industry, used it as the main study resource for the programming fundamentals courses at Telerik Software Academy, a training center in Bulgaria that teaches thousands software developers.
**A Quote by Svetlin Nakov**
"To create software is not just writing code, it's a **way of thinking**. It's about logically organizing the work into manageable steps, to produce **high-quality software** that always works correctly and is easy to maintain. This book gives you the **algorithmic thinking** approach, vital for anyone involved in the software development, as well as basic programming paradigms like procedural, object-oriented and functional programming. It teaches not just coding. It explains you the fundamental data structures and algorithms with many real-world examples to make you not just developer, but **exceptional developer**".
**About the Lead Author**
**[Svetlin Nakov][5]** has nearly 20 years of experience as a software engineer, programmer, instructor and consultant, moving from Assembler, Basic and Pascal through C and C++ to PHP, JavaScript, Java and C#. Currently, Svetlin Nakov is the head of the "Technical Training" department at Telerik Corp. where he manages Telerik Academy, an initiative for free training of software engineers. He has achieved a bachelor’s degree in "Computer Science" and a master’s degree in "Distributed Systems and Mobile Technologies" at the Sofia University "St. Kliment Ohridski." Later he obtained a Ph.D. in "Computer Science" after defending a thesis in the field of "Computational Linguistics" before the Higher Attestation Commission of the Bulgarian Academy of Sciences (BAS).
In 2003, Svetlin Nakov received th
Subjects
- arrays
- balanced tree
- bfs
- book
- book programming
- breadth-first search
- c#
- c# book
- compiler
- computer programming
- conditional statements
- console
- control-flow logic
- csharp
- c# tutorial; programming concepts
- data types
- depth-first search
- dfs
- dictionaries
- ebook
- exception handling
- exceptions
- expressions
- files
- free
- graph
- hash tables
- linear data structures
- linked list
- list
- loops
- methods
- .net
- .net framework
- numeral systems
- programming
- programming fundamentals
- queue
- stack
- stack trace
- statements
- streams
- stringbuilder
- strings
- text files
- text processing
- tree
- tutorial
- variables
- visual studio