Author: Svetlin Nakov
January 13, 2014
After years of hard work the free book “Fundamentals of Computer Programming with C#” was finally published (in September 2013). The free C# book comes with free video lessons, presentation slides, mind maps, exercises, guidelines and exercise solutions to help learners to study the foundations of computer programming and trainers to teach newbies in programming, C#, data structures, algorithms, logical thinking and problem solving.
It was amazing project accomplished by my team of 80+ volunteer contributors (authors, editors, translators and many others). The book was originally written in Bulgarian language and based on the Java platform, later translated to C# and improved and finally translated to English.
C# Book – Free Programming Tutorial (Book + Videos)
The free C# programming book consists of 1122 pages: from basic concepts like variables, expressions, statements and loops to advanced topics like recursive algorithms, hash-tables, balanced trees and high-quality code.
The free book “Fundamentals of Computer Programming with C#” (http://www.introprogramming.info) is a comprehensive computer programming tutorial that teaches programming, logical thinking, data structures and algorithms, practical problem solving and high-quality code construction with many examples in C#, exercise assignments and solution guidelines.
The C# book comes with free video lessons, presentations, mind maps, practical exercises and solutions. Learn programming by watching video lessons and practicing computer programming. This is an efficient modern approach to start learning software development.
Comprehensive Programming e-Book for Beginners, Intermediates and Experienced Developers
This free book on fundamentals of programming teaches the major programming concepts and way of thinking needed to become a skillful software engineer and the C# language in the meantime. It is a strong start for anyone who wants to become a great developer. It teaches not just the programming language syntax, but how to design algorithms and solve practical problems.
The free programming book is good for beginners and intermediate-level developers who want to put a solid base for a successful career in the software engineering industry. Even experienced developers could fill their gaps in the fundamentals of programming, data structures, algorithms and high-quality code design.
Free C# Programming Book – Read Online
The free book on programming fundamentals (the Bulgarian C# book) covers the basic concepts of programming, the C# language, Visual Studio and basic APIs of the .NET Framework, object-oriented programming principles (OOP), as well as advanced topics like hash-tables, graphs and recursion.
The free programming book consists of 26 chapters for beginners, intermediate programmers and experts. Read online the free computer programming book by Svetlin Nakov and his team:
- Chapter 1. Introduction to Programming
- Chapter 2. Primitive Types and Variables
- Chapter 3. Operators and Expressions
- Chapter 4. Console Input and Output
- Chapter 5. Conditional Statements
- Chapter 6. Loops
- Chapter 7. Arrays
- Chapter 8. Numeral Systems
- Chapter 9. Methods
- Chapter 10. Recursion
- Chapter 11. Creating and Using Objects
- Chapter 12. Exception Handling
- Chapter 13. Strings and Text Processing
- Chapter 14. Defining Classes
- Chapter 15. Text Files
- Chapter 16. Linear Data Structures
- Chapter 17. Trees and Graphs
- Chapter 18. Dictionaries, Hash-Tables and Sets
- Chapter 19. Data Structures and Algorithm Complexity
- Chapter 20. Object-Oriented Programming Principles
- Chapter 21. High-Quality Programming Code
- Chapter 22. Lambda Expressions and LINQ
- Chapter 23. Methodology of Problem Solving
- Chapter 24. Sample Programming Exam – Topic #1
- Chapter 25. Sample Programming Exam – Topic #2
- Chapter 26. Sample Programming Exam – Topic #3
Read the free programming fundamentals book here: http://www.introprogramming.info/english-intro-csharp-book/read-online/. We are a non-commercial team, so no registration is required. Just read the C# book for free.
C# Videos – Free Programming Video Tutorial
The free programming fundamentals book is accompanied by 27 free video lessons on C# programming (42 hours), free C# presentation slides (27 PPTX presentations) and mind maps, as well as hundreds of exercises with solutions and live examples.
The free C# programming videos are a comprehensive video course on computer programming fundamentals and C# programming. Sites like PluralSight and Linda.com provide paid C# video lessons. Why not learn C# and programming concepts for free? Just try. No registration, no email, nothing is required. We operate under a non-commercial project and thus every resource we build is free.
Technologies Covered in the C# Book
The main book intent is to teach concept, not technologies. We teach you to think like a developer, to solve problems, to construct algorithms, to write solid code, to test efficiently, to think about the performance, choose the right data structures and algorithms, use the object-oriented principles correctly, to write high-quality classes and methods, use exception handling correctly, to process string text efficiently, to use recursion correctly, to use advanced data structures like self-balancing search trees, hash-tables and graphs to solve complex real-world problems, etc.
C# Presentation Slides – Free C# Resources for Trainers
If you are a trainer, speaker, university professor, school teacher or just a person who wants to teach others how to program, you have a great free resources to provide programming and C# lessons. The entire book content is presented in condensed form as free presentation slides (in PowerPoint format) and homework exercises ready-to-use by any trainer (non-commercially).
We provide for free, under the Creative Commons Open-Source License (CC-Attribution-NonCommercial-ShareAlike) all our C# programming presentation slides (PPTX presentations) + live demos, exercises and solution guidelines + reference videos.
Svetlin Nakov and other trainers teach C# and programming fundamentals for many years in his courses in Sofia University, Technical University of Sofia, New Bulgarian University, National Academy for Software Development, Telerik Software Academy and Software University, using the C# programming book and especially the presentation slides and live demos coming with the free C# book. Over 5000 students have passed live programming training (as of January 2014) using our C# programming trainer’s resources (C# slides, C# live demos, C# book and others).
C# Source Code Examples
The book is accompanied by free C# source code examples for each book chapter, ready to be opened in Visual Studio to simplify playing with the code. You may experiment how the code works, modify and play with it. It is highly recommended that you run the sample code while reading the book chapters and play with the code: try changing the code, try extending it, try breaking it, even rewriting it in a new fashion.
The source code examples illustrate the book content in practice. Most of the sample code comes with live video demonstration as part of our free C# programming video lessons distributed with the book.
Mind Maps of the Book and the Free C# Lessons
Do you use mind mapping? Mind maps are tools to improve your memory and learning by using diagrams to visually represent the most important information by using words with associations and images. To improve your learning process a team of volunteers created an interactive mind map on the C# programming fundamentals book that represents the entire book with ability to drill-down into its chapters and zoom-in / zoom-out over the information and its associations:
You can read the book or watch the free video lessons and revise what you have learned from time to time through these mind maps and this will ensure better understanding, better memorization and more efficient learning process. Just try the C# book mind maps, it is free.
The Free C# Programming e-Book Comes in PDF, ePub, Kindle, DOC, DOCX, HTML and Other eBook Formats
The free book on fundamentals of computer programming and C# comes free in many modern e-book formats. The book was originally written in MS Word (in DOCX format). Later it was exported as PDF, which is the recommended format that opens on all modern large screens devices. Additionally the book was published as HTML to allow publishing it on the book’s official web site: http://www.introprogramming.info/english-intro-csharp-book/read-online/.
A real challenge was to export the book in high-quality e-book formats like ePub and Mobi (Kindle). The high-quality export was done the following way: first the ePub format was exported from MS Word using Calibre. Then the epub file was manually edited and significantly improved in Sigil. The HTML and CSS behind the ePub archive was converted to modern HTML5 responsive layout and now the C# book epub opens correctly and with good quality at any screen resolution (from 320 x 200 to very large screens) in all modern e-book readers.
The Kindle version was really a pain. The mobi format used in Kindle devices is hard to be managed. As of October 2013 there is no mobi editor available anywhere. The book was converted from epub to mobi through Calibre and the results is acceptable quality Kindle ebook. Some tables, layout and source code are incorrectly formatted but this cannot be easily fixed. Sorry, Kindle readers, try the PDF version if your device can read PDF!
We highly recommend the PDF version of the free C# book because it is correctly formatted, opens everywhere and the links inside work correctly. The epub / mobi versions could display incorrectly portions of the text, images, tables and source code examples.
Download the free C# book in many formats from it web site: http://www.introprogramming.info/english-intro-csharp-book/downloads/.
C# Book Project Sponsors
The team behind this volunteer-driven open-course project wants to thank to the sponsors who helped this free C# book, video lessons and presentation slides to be published in English and distributed freely.
Initially Tеlеrik and Tеlеrik Sоftwаrе Аcаdеmу helped us with volunteers and internal resources, helped to attract authors and contributors and supported the publishing of the Bulgarian version of the C# book:
Superhosting.BG provided a rock-solid hosting platform for our web site:
The Bulgarian Association of Software Developers (BASD) provided resources and volunteers to help us with this open-source project with significant social impact over the software development community:
The Bulgarian C# Book in Amazon, Google and Other Bookstores
After its publishing the free book on programming fundamentals with C# was shipped to the biggest bookstores across the world. Where possible, the book was offered as free download. Some bookstores work with paid books only so we uploaded the book as paid entry with the link for free download in its description:
- The Free C# Programming Fundamentals Book in Amazon
- The Free Intro C# Book in Google Books
- The Free Book on Programming Fundamentals with C# in Scribd
- The Ultimate C# Programming Fundamentals Book in SlideShare
- The Bulgarian C# Programming Book in Goodreads
- The C# Book at The Pirate Bay
C# Programming eBook Mobile Apps
We even created an Android mobile application for the free C# programming book: C# Programming Book for Android.
The Android app is designed to easily locate the C# book assets:
- Read the book online
- Watch the C# programming videos online
- See the PowerPoint C# slides for each book chapter
- Browse the C# book mind maps
- Download the C# book in many formats (ePub, PDF, DOCX, …)
- View the Bulgarian C# and the Bulgarian Java books online
- Learn more about the book and its accompanying resources
C# Programming Book: The Paperback Edition
The “Fundamentals of Computer Programming with C#” book (English version) has been published in hardware form (as paperback) under the ISBN numbers: 978-954-400-773-7 (9789544007737) and 954-400-773-3 (9544007733). The book is sold as paper-copy (paperback) in the publisher’s online store which ships internationally. The price of the paper copy of the C# book is 6.56 EUR. The shipping for Bulgaria is 2 EUR but international shipping is more expensive then the printed book itself.
The Team Behind the Free C# Book Project
The C# Fundamentals book was an amazing project done by amazing team! More than 80 people contributed to this open-source / open-knowledge project: to build a high-quality book for programming beginners that lays the foundation for becoming a skillful software engineer.
Originally the programming fundamentals book was written in the period 2008-2009 in Bulgarian for the Java language and platform. The original team of Java authors, editors and contributors was the following (in alphabetical order): Boris Valkov, Danail Aleksiev, Hristo Todorov, Lachezar Bozhkov, Luchesar Cekov, Marin Georgiev, Mario Peshev, Mariyan Nenchev, Mihail Stoynov, Nikolay Nedyalkov, Nikolay Vasilev, Petar Velev, Radoslav Ivanov, Rumyana Topalska, Stefan Staev, Svetlin Nakov, Teodor Stoev, Veselin Kolev, Vladimir Tsanev and Yosif Yosifov. The team was lead by Svetlin Nakov who managed to motivate all the contributors to write their chapter of the book and to catch up with the deadlines.
Later, in the period 2009-2011 the Java fundamentals book was translated to C# (in Bulgarian language). In fact it was not just a direct translation, but the book was significantly revised and improved during its adoption to the C# language, the .NET platform and the Visual Studio IDE, even new chapters were written. The team was lead by Svetlin Nakov and Veselin Kolev who both put a lot of effort to guide the process and retain the high-quality of the content. The Bulgarian C# book was published in June 2011. The team of the Bulgarian C# authors, editors and contributors to the Bulgarian C# book project was the following (in alphabetical order): Dilyan Dimitrov, Doncho Minkov, Hristo Germanov, Iliyan Murdanliev, Marin Georgiev, Mihail Stoynov, Mihail Valkov, Mira Bivas, Nikolay Kostov, Nikolay Nedyalkov, Nikolay Vassilev, Pavel Donchev, Pavlina Hadjieva, Radoslav Ivanov, Radoslav Kirilov, Radoslav Todorov, Stanislav Zlatinov, Stefan Staev, Svetlin Nakov, Teodor Bozhikov, Teodor Stoev, Tsvyatko Konov, Vesselin Georgiev, Veselin Kolev, Yordan Pavlov and Yosif Yosifov (partially shown on the image below):
The English translation of the Bulgarian C# book started in January 2012. The project was organized and the team was lead by Svetlin Nakov. The book was split into 42 pieces (chapters and parts of chapters) and each piece was assigned to a different volunteer translator (mostly students from Telerik Software Academy). Some translators were doing well their jobs and was awarded additional pieces of the book to translate. Finally each chapter was reviewed by a different team member to clean-up the translation mistakes and laxities. After that a long period of detailed review was passed to ensure the highest book quality. Many people were involved. Svetlin Nakov put enourmous effort to clean-up the translation style, the book content and formatting. He also reviewed a few chapters and improved their content, rewrote a few examples, fixed hundreds of bugs and updated the content to C# 4.0 and .NET 4.5 and Visual Studio 2012. Many other people helped the English C# book to be prepared with high quality and to clean-up translation bugs (George Georgiev, Ivaylo kenov, Ina Dobrilova Aneliya Stoyanova, Hristo Radkov, and others). The project of C# book translation from Bulgarian to English took the period from January 2012 to September 2013.
The full change logs of the C# book development (for the Bulgarian and the English version) are available at the C# book project repository at Google Code: https://code.google.com/p/introcsharpbook/source/list.
Big Thank to All C# / Java Free Programming Book Contributors!
Dear colleagues, big thank you! It was amazing project and it became reality due to all of you, who voluntarily worked on these free C# and Java programming books, who didn’t sleep to do their job, to catch the deadline. Big thanks to all these contributors (given in alphabetical order): Alexandra Mileva, Alon Rotem, Aneliya Stoyanova, Angel Angelov, Atanas Valchev, Blagovest Buyukliev, Boris Valkov, Boyan Dimitrov, Danail Aleksiev, Dilyan Dimitrov, Dimitar Bonev, Doncho Minkov, Doroteya Agayna, Dyanko Petkov, Franz Fischbach, George Halachev, George K. Georgiev, George S. Georgiev, Georgi Mitev, Georgi Todorov, Georgi Vaklinov, Hristo Germanov, Hristo Radkov, Hristo Todorov, Iliyan Murdanliev, Ina Dobrolova, Ivan Nenchovski, Ivaylo Dyankov, Ivaylo Gergov, Ivaylo Kenov, Jasmina Stoyanova, Kristian Dimitrov, Kristina Nikolova, Lachezar Bozhkov, Lachezar Tsekov, Lora Borisova, Marin Georgiev, Mario Peshev, Mariyan Nenchev, Martin Gebov, Martin Radev, Martin Yankov, Mihail Stoynov, Mihail Valkov, Mira Bivas, Momchil Rogelov, Nedjaty Mehmed, Nencho Nenchev, Nikolay Angelov, Nikolay Kostov, Nikolay Nedyalkov, Nikolay Vassilev, Pavel Benov, Pavel Donchev, Pavlina Hadjieva, Petar Velev, Peter Nikov, Radoslav Ivanov, Radoslav Kirilov, Radoslav Todorov, Rumyana Topalska, Stanislav Vladimirov, Stanislav Zlatinov, Stefan Staev, Svetlin Nakov, Teodor Bozhikov, Teodor Rusev, Teodor Stoev, Tihomir Iliev, Todor Mitev, Tsvyatko Konov, Vasya Stankova, Ventsi Shterev, Vesselin Georgiev, Vesselin Kolev, Vesselina Raikova, Viktor Ivanov, Vladimir Amiorkov, Vladimir Stanev, Vladimir Tsanev, Vladislav Karamfilov, Yoan Krumov, Yordan Pavlov, Yosif Yosifov, Zhelyazko Dimitrov. You are a great team, a real heroes!
Project Roadmap: What Comes Later?
No one knows what comes later! I am tired of working on this family of programming books. It took 6 years of hard work to build the Bulgarian Intro Java book, the Bulgarian Intro C# book and the English Intro C# book. I learned a lot on how to lead teams of volunteers, how split the work between the team members and how to define scope and deadlines, how to manage the risks, how to fix wrong work and missed deadlines. It was a great experience to work with 80+ volunteers over the years. Than you!
Possible next steps for this project could be the following:
- Update the free Java book to the latest Java version (it was written in 2008 for Java 5)
- Translate the free Bulgarian Intro Java book into English
- Write a C++ version of the programming fundamentals book
- Split the book into smaller pieces (1200+ pages is too big, right?)
- Record Java video lessons following the book (in Bulgarian and English) and Java PowerPoint slides
I cannot guarantee anything of the above will ever happen, but I hope to find an energy and good teams of volunteers to move these projects forward again and give more and more for the developer’s community.
The C# Book Fan Club
Become a fan of the free C# / Java programming fundamentals books and help us to promote these books, video lessons and other great resources for programmers-beginners throughout the world.
- Vote +1 in Google+ for the C# / Java fundamentals free books web site.
- Share this publication in your Facebook / Twitter / Google+ profile.
- Write a blog post about the free C# fundamentals book and videos in your blog. You may find images and informational texts in the book’s SVN repository here.
- Write a book review in Amazon / Google Books / Goodreads, …
- Recommend to your friends the C# book and videos.
You may find the social share / like buttons at the top right corner of the book’s site home page.
The official Facebook page for the free C# fundamentals book is located at: http://facebook.com/IntroCSharpBook.
Happy reading, video watching, problem solving and playing with C# and Visual Studio with the “Fundamentals fo Computer Programming with C#” book.
Become a skillful software developer, start with the free C# book and videos.
Tags: .NET framework, abstraction, algorithm complexity, algorithms, annonymous types, arrays, associative arrays, Authors, balanced tree, BFS, Book, book programming, breadth-first search, C#, C# book, C# book translation, C# mind maps, C# PPTX slides, C# presentations, C# tutorial; programming concepts, C# videos, classes, code formatting, code quality, code refactoring, cohesion, combinatorial algorithms, compiler, computer programming, conditional statements, console, constructors, control-flow logic, coupling, CSharp, data types, depth-first search, design patterns, DFS, dictionaries, ebook, encapsulation, enumerations, exception handling, exceptions, expressions, extension methods, fields, files, free, free book, free videos, fundamentals of programming, generics, graph, hash tables, high-quality classes, high-quality code, high-quality methods, inheritance, interfaces, Kolev, lambda expressions, linear data structures, linked list, linq, list, loops, methods, Nakov, namespaces, NET, numeral systems, object oriented programming, objects, OOP, polymorphism, presentations, problem solving, problem solving methodology, Programming, programming book, programming fundamentals, programming videos, properties, queue, recursion, searching algorithms, self-documenting code, sets, sorting algorithm, stack, stack trace, statements, static members, streams, stringbuilder, strings, svetlin nakov, team, text files, text processing, tree, tutorial, UML, variables, Veselin Kolev, videos, virtual methods, Visual Studio