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