Nakov's Free Books: Programming with C#, Java, JavaScript, Python and C++

Programming Basics with JavaScript

The free book "Programming Basics with JavaScript" is a modern tutorial for beginners in JS programming, which introduces you to writing JavaScript (JS) code, step by step, with a lot of practice. The book teaches how to write entry-level programming code, the JS syntax, using an integrated development environment (IDE) - Visual Studio Code, using variables and data calculations, operators and expressions, writing conditional constructs (if-else and switch-case), performing iterative logic with different types of loops (repeating blocks of code with for, while, do-while and other loop constructs) and defining and calling functions, passing parameters and returning values, problem-solving techniques and code debugging. The tasks from the exercises are auto graded in the Online Judge System. This JS book prepares readers for in-depth training in software engineering, front-end and back-end with the HTML5 platform, the JavaScript language, and the modern Web technologies.

Programming Basics with Java

The book "Programming Basics with Java" is a free Java coding tutorial, aimed at complete beginners, with video lessons and many hand-on exercises with automated grading (through an online judge system). The book leads the readers to basics of coding and solving practical coding problems with the Java language, working with an integrated development environment (IDE), using variables and working with data and calculations, operators and expressions, interacting with the system console (reading input and printing results), using conditional statements (if-else and switch-case), organizing loops (for, while and do-while) and working with methods (declaring methods, calling methods, passing arguments and returning values). The book is based on the Java programming language and the IntelliJ IDEA development environment. The book prepares the readers for a specialization in Java technologies, and a future Java developer career.

Programming Basics with Python

The free book "Programming Basics with Python" is a tutorial for beginners who wants to get into the basics of Python programming and be able to write code and solve programming problems. This book starts with writing simple Python commands, data and calculations, console input and output. You will learn how to work with PyCharm (a modern IDE for Python) and how to construct more complex program logic (control-flow logic). Find out how to work with conditional constructions (if-elif-else), loops (code repetition with for-loop and while-loop), nested loops, and defining and calling functions. The educational content in the book is provided consistently, with many code examples and exercise problems with gradually increasing complexity, with video lessons on each topic, with many, many practical exercises, and a free auto-grading system (online judge). The book provides the basics for learning the "Python developer" profession.

Programming Basics with C#

The free book "Programming Basics with C#" teaches how to write programming code at a beginner level using the C# language. It combines tutorial-style learning content with live code examples, free video lessons, and a series of practical coding exercises with increasing complexity, available for automated online evaluation. The authors are experienced developers with a rich teaching background. The book content and learning methodology is designed by Dr. Svetlin Nakov and is proven by tens of thousands of students who have successfully learned the basics of programming at SoftUni, then advanced programming, development concepts, and software technologies and started a tech job. This book and video lessons are the recommended first step when you start coding. Unlike other books, the learners gain practical skills by following the learning content and solving lots of hands-on exercises, step by step, methodically, with a carefully designed learning curve.

Fundamentals of Computer Programming with C#

The free book "Fundamentals of Computer Programming with C#" is an excellent manual to guide you through your journey of programming as a beginner. It will teach you algorithmic thinking and programming concepts in the C# language and .NET Framework. The book provides a series of programming lessons: from fundamentals of coding, using a development environment (Visual Studio), variables, operators, if-conditions, loops, arrays, lists, and strings to more complex concepts such as recursion, fundamental data structures, and classic algorithms, linear data structures, trees, and tree-like data structures, graphs, hash-tables and dictionaries, algorithm complexity, object-oriented programming principles (OOP), LINQ queries, writing high-quality code and solving problems from programming exams. If you've searched for "C# book", "programming book", "Nakov book", or "the Bulgarian C# book", you have found it. Enjoy learning programming and C#.

Practical Cryptography
for Developers

A modern practical book about cryptography for developers with code examples, covering core concepts like: hashes (like SHA-3 and BLAKE2), MAC codes (like HMAC and GMAC), key derivation functions (like Scrypt, Argon2), key agreement protocols (like DHKE, ECDH), symmetric ciphers (like AES and ChaCha20, cipher block modes, authenticated encryption, AEAD, AES-GCM, ChaCha20-Poly1305), asymmetric ciphers and public-key cryptosystems (RSA, ECC, ECIES), elliptic curve cryptography (ECC, secp256k1, curve25519), digital signatures (ECDSA and EdDSA), secure random numbers (PRNG, CSRNG) and quantum-safe cryptography, along with crypto libraries and developer tools, with lots of code examples in Python and other languages. This book will teach you the basics of applied cryptography almost free of math style, following a step-by-step approach with lots of code examples and practical hands-on exercises.

Основи на програмирането със C#

Книгата “Основи на програмирането със C#” е отлично съвременно ръководство за старт в програмирането с езика C#, насочено към напълно начинаещи. Тя запознава читателите с писането на програмен код на начално ниво (basic coding skills), синтаксиса на езика C#, работа със среда за разработка (Visual Studio IDE), използване на променливи и работа с данни, оператори и изрази, работа с конзолата (четене на входни данни и печатане на форматиран текст и числа), използване на проверки и условни конструкции (if, switch-case), конструиране на програмна логика чрез цикли (for, while, do-while, foreach) и работа с методи (деклариране и извикване на методи, подаване на параметри и връщане на резултат). Всички примери в книгата са базирани на езика за програмиране C# и средата за разработка Visual Studio. Книгата е официален учебник за безплатния курс за напълно начинаещо “Programming Basics with C#” в Софтуерния университет (СофтУни) и подготвя читателите за приемния изпит в СофтУни, където програмирането се изучава задълбочено. Книгата е само първа стъпка към професията C# / .NET разработчик и дава начални умения по писане на програмен код.

Принципи на програмирането със C#

Книгата “Принципи на програмирането със C#” е отлично съвременно ръководство за навлизане в програмирането и алгоритмите с платформата .NET и езика C#. В нея се разглеждат серия уроци по програмиране – от основите на програмирането, среда за разработка, променливи, оператори, масиви и цикли до по-сложни концепции като рекурсия, фундаментални структури от данни и класически алгоритми, списъчни структури, дървета и дървовидни структури, рафи, хеш-таблици, оценяване сложността на алгоритми, принципи на ООП (обектно-ориентирано програмиране), абстракция, наследяване и полиморфизъм, lambda изрази, LINQ заявки, конструиране на качествен програмен код и решаване на изпитни задачи. Към книгата са разработени лекции във вид на презентации и видеоуроци, водени лично от Светлин Наков, които са отличен самоучител по програмиране на C#. Авторите на книгата провеждат регулярно безплатни курсове по програмиране на C# за начинаещи в Софтуерния университет (СофтУни). Книгата дава много стабилна основа за усвояване на професията C# / .NET софтуерен инженер.

Основи на програмирането с Java

Безплатната книга “Основи на програмирането с Java” е учебно пособие за навлизане в програмирането с езика Java, насочено към напълно начинаещи, с видео уроци и система за автоматично оценяване на кода от решенията на задачите за упражнения (online judge system). Книгата повежда читателите към писането на програмен код на начално ниво и рашаване на практически задачи, с правилата и синтаксиса на езика Java, работа със среда за разработка (IDE), използване на променливи и работа с данни и изчисления, оператори и изрази, взаимодействие с конзолата (четене на входни данни и печатане на резултати), използване на условни конструкции (if-else, switch-case), цикли (for, while, do-while) и работа с методи (деклариране на методи, извикване и подаване на аргументи и връщане на стойност). Използват се езикът за програмиране Java и средата за разработка IntelliJ IDEA. Книгата е официален учебник за безплатното обучение “Programming Basics with Java” в СофтУни и подготвя читатели за по-задълбочено наблизане в Java програмирането, специализация в Java технологиите и бъдеща кариера като Java софтуерен инженер.

Основи на програмирането с Python

Книгата “Основи на програмирането с Python” е безплатен самоучител за начинаещи за навлизане в основите на програмирането с езика Python, който последователно, търпеливо и структурирано повежда читателя към писането на програмен код и решаването на задачи по програмиране: от прости команди, изчисления, конзолен вход и изход и работа със среда за разработка (IDE) до конструиране на по-сложна програмна логика (control flow logic), организирана с условни конструкции (if-elif-else), цикли (повторение на код с for-loop и while-loop), вложени цикли, с дефиниране и извикване на функции. Учебното съдържание в книгата се предоставя последователно, с много примери и задачи, с плавно нарастваща сложност и с постепеннно надграждане, с видео уроци към всяка тема, с много, много практически упражнения и с безплатно достъпна система за автоматично оценяване на решенията на задачите за упражнения (online judge system). Книгата дава базови познания по програмиране за по-нататъшно обучение по професия "Python developer".

Основи на програмирането с JavaScript

Книгата “Основи на програмирането с JavaScript” е съвременен самоучител по програмиране за напълно начинаещи, с който навлизате в писането на код с езика JavaScript (JS) стъпка по стъпка, с много практика. Книгата запознава читателите с писането на програмен код на начално ниво, JS синтаксиса, работа със среда за разработка (IDE), използване на променливи, изчисления и обработка на данни, оператори и изрази, използване на условни конструкции (if-else, switch-case), изпълнение на повтаращата се логика с различни видове цикли (повторения на блокове с код с for, while, do-while и други конструкции) и дефиниране и извикване на функции, подаване на параметри и връщане на стойност, техники за решаване на задачи и дебъгване. Тази JS книга се използва като официален учебник за безплатния курс “Programming Basics with JS” в Софтуерния университет (СофтУни) и подготвя читателите за по-задълбочено обучение по софтуерно инженерство с HTML5 платформата, езика JavaScript и съвременните уеб технологии.

Основи на програмирането със C++

Книгата “Основи на програмирането със C++” е безплатно практическо ръководство за навлизане в програмирането за напълно начинаещи с езика C++, което изгражда базови умения за писане на програмен код (basic coding skills) чрез добре структурирана учебна програма с плавна крива на учене, съчетана с голямо количество практика и решаване на стотици задачи по програмиране. Практическият обучителен подход, базиран на постоянно писане на код и практически упражнения с плавно нарастваща сложност гарантира изграждане на трайни умения в програмирането и рутина в писането на програмен код, търсенето на проблеми и дебъгването на кода. Книгата се използва като учебник в C++ курсовете по основи на програмирането в СофтУни, но е само старт по пътя към професионалното програмиране. Препоръчваме на читателите, които се запалят по програмирането от тази книга, да продължат да изграждат уменията си в професионалните програми за обучение на софтуерни разработчици в СофтУни.

Въведение в програмирането с Java

Книгата “Въведение в програмирането с Java” е безплатно ръководство по програмиране на Java с уроци, задачи за упражнения и насоки за решения. Тя обхваща в детайли основите на езика Java, синтаксис, оператори, изрази, променливи, използване на условни конструкции, масиви, списъци, цикли, колекции, работа с бройни системи, методи, рекурсия и рекурсивни алгоритми, обектно-ориентирано програмиране (ООП), класове и обекти, наследяване, йорархии от класове, абстракция и полиморфизъм, шаблонни типове (generics), работа с изключения (exceptions), обработка на текст и символни низове, работа с потоци и текстови файлове, структури данни, списъчни структури, стекове, опашки, двоични и балансирани дървета, графи, речници, хеш-таблици и множества, сложност на алгоритъм, ефективност на различните структури от данни, принципи за изграждане на качествен програмен код и методология за ефективно решаване на задачи по програмиране.

Интернет програмиране с Java

Книгата „Интернет програмиране с Java” е едно отлично безплатно въведение в най-важните аспекти на програмирането с Java за Интернет. В нея се обръща внимание на проблемите на многонишковото програмиране и синхронизацията, разработката на Java приложения, които комуникират по протоколите TCP/IP, създаването на Java аплети, комуникацията между аплет и сървър, разработката на Web-приложения с технологиите Java Servlets и Java Server Pages (JSP) и изпълнението им на сървъра за Web-приложения Tomcat. Книгата е била официален учебник за дисциплината „Интернет програмиране с Java”, преподавана от Светлин Наков и ръководения от него екип във факултетa по математика и информатика на Софийски Университет „Св. Климент Охридски” през 2004 г.Книгата е предназначена за всички, които се интересуват от разработка на Интернет-ориентирани приложения и програмиране на Java.

Програмиране за .NET Framework

Книгата "Програмиране за .NET Framework" е първата чисто българска книга за Microsoft .NET технологиите. Тя представя на читателя в последователен, структуриран, достъпен и разбираем вид основните концепции за разработка на приложения с .NET Framework и езика C#. Книгата обхваща в детайли всички основни .NET технологии като набляга върху най-важните от тях – ADO.NET, ASP.NET, Windows Forms и XML уеб услуги. По качество на изложения материал книгата се отличава с високо професионално ниво и превъзхожда повечето преводни издания по темата. Тя е отлично структурирана, а стилът на изложени ето е лесен за възприемане. Информацията е поднесена с много примери, а това е най-важното за един софтуерен разработчик. Настоящата книга е отлично учебно пособие както за начинаещи, така и за напреднали читатели, които имат желание и амбиции да станат професионални .NET разработчици.