Watch Intro Video

Why this language?

Icons & text

  • Suitable for beginners

    The only prerequisite is knowledge of basic Python features.

  • Almost complete language lessons

    You learn almost all features of D language (except of the most rarely used or very advanced).

  • Standard library

    You learn the most important features of standard library. Yet without being overloaded into trying to learn everything.

  • Certificate of completion

    You get a masters certificate after passing exams.

  • Author's own libraries

    You learn author's own libraries that fill gaps in standard library to program as easily as in Python.

  • Learn good programming

    You learn not just to write programs, you are guided how to do it in a good way.

  • Support

    Ask instructor any questions.

  • Nonexpensive and green

    Very low energy usage by your programs. You could replace 100 servers by one!

  • Masters Thesis

    You choose a masters thesis topic completely by your own decision (you are only required to use D).

Course curriculum

  • 4

    Chapter 4

    • Tokenization

    • Tokenization

    • Exam: Syntax and tokenization

  • 6

    Chapter 6

    • Exam: Imports and Aliases

    • Imports and Aliases

    • Imports and Aliases

  • 7

    Chapter 7

    • Introduction to Types

    • Introduction to Types

    • Exam: Introduction to Types

  • 8

    Chapter 8

    • Expressions

    • Expressions

    • Exam: Expressions

  • 9

    Chapter 9

    • Literals

    • Literals

    • Exam: Literals

  • 10

    Chapter 10

    • Statements

    • Statements

    • Exam: Statements

  • 11

    Chapter 11

    • Functional Programming

    • Functional Programming

    • Exam: Functional programming

  • 12

    Chapter 12

    • Structs and Classes

    • Structs and Classes

    • Exam: Structs and Classes

  • 13

    Chapter 13

    • Cart Operations

    • Cast Operations

    • Exam: Cast operations

  • 14

    Chapter 14

    • Pointers

    • Pointers

    • Exam: Pointers

  • 15

    Chapter 15

    • Exceptions and Scope Guard Statement

    • Exceptions and Scope Guard Statement

    • Exam: Exceptions and Scope Guard Statement

  • 16

    Chapter 16

    • Templates

    • Templates

    • Exam: Templates

  • 17

    Chapter 17

    • Mixins

    • Mixins

    • Exam: Mixins

  • 18

    Chapter 18

    • Documentation Comments

    • Documentation Comments

    • Exam: Documentation Comments

  • 19

    Chapter 19

    • Unit Testing

    • Unit Testing

    • Exam: Unit Testing

  • 21

    Chapter 21

    • Static Compilation Control

    • Static Compilation Control

    • Exam: Static Compilation Control

  • 22

    Chapter 22

    • Overloading Operators

    • Overloading Operators

  • 23

    Chapter 23

    • Compile-Time Sequences

    • Compile-Time Sequences

    • Exam: Compile-Time Sequences

  • 24

    Chapter 24

    • Modules

    • Modules

    • Exam: Modules

  • 25

    Chapter 25

    • User-Defined Attributes

    • User-Defined Attributes

    • Exam: User-Defined Attributes

  • 26

    Chapter 26

    • BetterC

    • BetterC

    • Exam: BetterC

  • 28

    Chapter 28

    • Introduction to the Standard Library

    • Introduction to the Standard Library

  • 29

    Chapter 29

    • Concurrency

    • Concurrency

  • 30

    Chapter 30

    • Memoizing that is caching function result in D language

    • Memoizing that is caching function result in D language

  • 31

    Chapter 31

    • Passing parameters through structs with nullable fields

    • Passing parameters through structs with nullable fields

  • 32

    Chapter 32

    • Modify Tuple Modifiers

    • Modify Tuple Modifiers

  • 33

    Chapter 33

    • Pure Dependency Injection in D

    • Pure Dependency Injection in D

  • 34

    Chapter 34

    • Why I can’t call new from a template

    • Why I can’t call new from a template

  • 35

    Chapter 35

    • Writing thick (object oriented) D bindings for a C library

    • Writing thick (object oriented) D binding of a C library

  • 36

    Chapter 36

    • How to Make Your Programs Run Hundreds to Thousands Times Faster Without Giving up Reliability and Ease of Programming

    • How to Make Your Programs Run Hundreds to Thousands Times Faster Without Giving up Reliability and Ease of Programming

  • 37

    Chapter 37

    • What would be my choice of programming language if I was ordered to write a nuclear weapon control system?

    • What would be my choice of programming language if I was ordered to write a nuclear weapon control system?

    • Exam: What would be my choice of programming language if I was ordered to write a nuclear weapon control system?

  • 38

    Chapter 38

    • Which compiler should I use?

    • Which compiler should I use?

  • 39

    Chapter 39

    • Bibliography

    • Bibliography

FAQ

  • What is D language?

    D language is an advanced multipurpose high-performance (on par with C/C++, or sometimes much faster) and increased reliability (better than Ada in most aspects of reliability), yet feature-rich (about as flexible as Python) programming language.

  • Why should I study D?

    Develop high-performance and reliable applications or libraries faster than if you used Python. You do about the same things as if you were a Python programmer, but you get blazing fast and having much less bugs apps. Impress your employer that you know the world most advanced programming language. I will better answer when NOT to study D: only if you have a specific language required by an employer or if need some specific library not available in D. D almost absolutely well replaces C, C++, Python, Ruby, etc. It's just better than any of these.

  • Is D difficult to learn?

    In course author's opinion, D is harder to learn than Python, however much easier than C++. After you have mastered it, it's more difficult to write in it than in Python, but you will develop faster because you spend less time on debugging.

  • Does D have many libraries?

    D has a growing set of libraries, including mainly open-source ones, but it has not yet became as popular as Python, so Python has more libraries.

  • Is an author an expert?

    The author is an author of several advanced foundational D libraries, the only level above this expertise would be a compiler-developer.

  • What is the study level?

    The course is intended to be a Master of Science level course. Your certificate will have the word MASTER on it. But you indeed can take it during your Bachelor or even Associate CS studies, it is OK even for amateurs knowing only Python.

  • So, you claim D to be the very world-best programming language?

    Yes! Well, except of some special tasks: some kinds of mathematical programming, complex real-time programming tasks, task requiring nuclear technology reliability level, things inside browsers and other specialized scripts. And well, some other languages have more libraries available. D is not good for novices (that's why you are to learn something like Python or Java first).

  • If D is so good, why isn't it very popular yet?

    I think, the main reason is that the D language author renamed it from Mars to D, that was an unfortunate name choice and broke marketing. Another reason is that it's complex: you need to spend some time learning it, it is not as simple as Python. Invest your time in learning.

  • Does this course offers a degree?

    Yes! It offers a "high master", "master of advanced programming technology" certificate.

Instructor(s)

CEO

Victor Porton

Mathematician, open source developer, book author, cryptocurrency expert, philosopher.