HomeCoursesAdvanced Programming Techniques in D
AI-powered learning
Save

Advanced Programming Techniques in D

Gain insights into lifetimes, structs, function overloading, and inheritance. Delve into templates, pointers, memory management. Discover advanced D concepts to elevate your programming skills.

293 Lessons
30h
Join 2.9 million developers at
Join 2.9 million developers at
LEARNING OBJECTIVES
  • Learning about lifetimes of variables and type conversions
  • Understanding the concepts related to structs, classes and interfaces
  • Learning the use of templates
  • Learning about ranges
  • Understanding parallelism in D

Learning Roadmap

293 Lessons33 Quizzes8 Challenges

2.

Lifetimes, null Value and the is Operator

Lifetimes, null Value and the is Operator

Walk through managing variable lifetimes, fundamental operations, null values, and the is operator in D.

3.

Type Conversions

Type Conversions

6 Lessons

6 Lessons

Examine type conversions in D, including automatic to explicit conversions, for safe operations.

4.

Structs

Structs

7 Lessons

7 Lessons

Grasp the fundamentals of struct creation, copying, literals, and practical applications in D.

5.

Variable Number of Parameters

Variable Number of Parameters

7 Lessons

7 Lessons

Solve problems in creating flexible functions with default and variadic arguments.

6.

Function Overloading and Member Functions

Function Overloading and Member Functions

9 Lessons

9 Lessons

See how it works: function overloading, member functions, and managing const behaviors in D.

7.

Constructor and Other Special Functions

Constructor and Other Special Functions

10 Lessons

10 Lessons

Build on constructors, destructors, postblit adjustments, and assignment operators in D programming.

8.

Operator Overloading

Operator Overloading

15 Lessons

15 Lessons

Learn how to use operator overloading for custom behaviors and intuitive programming in D.

9.

Introduction to Classes

Introduction to Classes

7 Lessons

7 Lessons

Look at how classes in D offer object-oriented features, reference type behavior, and strict copying/assignment rules.

10.

Inheritance

Inheritance

11 Lessons

11 Lessons

Master the steps to create specialized subclasses, override functions, and handle abstract classes in D.

11.

The Object Class

The Object Class

7 Lessons

7 Lessons

Find out about essential member functions of the Object class in D.

12.

Interfaces

Interfaces

7 Lessons

7 Lessons

Solve problems in D with interface inheritance, static and final functions, and abstraction.

13.

destroy and scoped

destroy and scoped

4 Lessons

4 Lessons

Focus on advanced resource management techniques in D using `destroy()` and `scoped()`.

14.

Modules and Libraries

Modules and Libraries

4 Lessons

4 Lessons

Practice using modules, imports, and libraries to build structured and efficient D programs.

15.

Encapsulation and Protection Attributes

Encapsulation and Protection Attributes

5 Lessons

5 Lessons

Learn how to use encapsulation and protection attributes for safe and efficient coding.

16.

UFCS, Properties and Contract Programming

UFCS, Properties and Contract Programming

8 Lessons

8 Lessons

Grasp UFCS, properties, and contract programming principles for cleaner, more consistent code.

17.

Templates

Templates

9 Lessons

9 Lessons

Examine the creation and application of templates in D for scalable, type-independent code tasks.

18.

Pragmas, alias and with

Pragmas, alias and with

9 Lessons

9 Lessons

Break down complex ideas of pragmas, aliasing, and the "with" statement in D programming.

19.

Pointers

Pointers

14 Lessons

14 Lessons

Take a closer look at pointers, their syntax, operations, and practical applications in D.

20.

Bit Operations

Bit Operations

13 Lessons

13 Lessons

Tackle data representation, binary and hexadecimal systems, bit operations, and common uses with challenges and solutions.

21.

Conditional Compilation

Conditional Compilation

9 Lessons

9 Lessons

Master the steps to conditional compilation, enhancing flexibility, debugging, and platform-specific code in D.

22.

Function Pointers, Delegates, and Lambdas

Function Pointers, Delegates, and Lambdas

8 Lessons

8 Lessons

Break down function pointers, delegates, and lambdas to enhance your programming techniques.

23.

foreach with Structs and Classes

foreach with Structs and Classes

7 Lessons

7 Lessons

Walk through iteration and struct design in D for custom loops and nested elements.

24.

Unions, Labels, goto and Tuples

Unions, Labels, goto and Tuples

8 Lessons

8 Lessons

Examine unions, labels, goto, and tuples for efficient memory, control flow, and versatile data handling.

25.

More Templates

More Templates

14 Lessons

14 Lessons

Grasp the fundamentals of D's comprehensive template system for flexible, efficient code generation.

26.

More Functions

More Functions

8 Lessons

8 Lessons

Deepen your knowledge of function attributes, safety, and compile-time execution in D.

27.

Mixins

Mixins

7 Lessons

7 Lessons

Follow the process of using mixins in D for flexible code generation and scope management.

28.

Ranges

Ranges

19 Lessons

19 Lessons

Build on ranges to enhance data handling and flexibility in D programming.

29.

static foreach and Parallelism

static foreach and Parallelism

11 Lessons

11 Lessons

Step through static foreach and parallelism for efficient, parallelized code execution in D.

30.

Message Passing Concurrency

Message Passing Concurrency

12 Lessons

12 Lessons

Walk through message passing concurrency in D, focusing on threads, messages, and exception handling.

31.

Data Sharing Concurrency

Data Sharing Concurrency

6 Lessons

6 Lessons

Examine data sharing, race conditions, synchronization, atomic operations, and concurrency in D programming.

32.

Fibers

Fibers

9 Lessons

9 Lessons

Enhance your skills in managing state and execution flow using fibers for efficient concurrency.

33.

Memory Management

Memory Management

10 Lessons

10 Lessons

Take a closer look at memory management techniques, garbage collection, allocation, and alignment in D programming.

34.

User Defined Attributes (UDA) and Operator Precedence

User Defined Attributes (UDA) and Operator Precedence

5 Lessons

5 Lessons

Follow the process of using UDAs for flexible programming and understanding operator precedence.
Certificate of Completion
Showcase your accomplishment by sharing your certificate of completion.
Author NameAdvanced Programming Techniques inD
Developed by MAANG Engineers
ABOUT THIS COURSE
D is a multi-paradigm programming language that combines a wide range of powerful programming concepts from the lowest to the highest levels. It emphasizes memory safety, program correctness, and pragmatism. This course will teach you advanced D concepts, so it’s recommended to get the basics down. In this course, you will start by learning lifetimes, structs, function overloading, and inheritance, all crucial concepts for advanced D developers. In the second half of the course, you will learn about templates, pointers, memory management, and more. If you’re looking to take your D programming to the next level, then this course will find you well. By the end of this course, you will be well equipped to take your D experience and start creating your own applications.
ABOUT THE AUTHOR

Ali Çehreli

Having fun programming in the D programming language in the Autonomous Driving division at Mercedes-Benz Research and Development, North America.

Learn more about Ali

Trusted by 2.9 million developers working at companies

These are high-quality courses. Trust me the price is worth it for the content quality. Educative came at the right time in my career. I'm understanding topics better than with any book or online video tutorial I've done. Truly made for developers. Thanks

A

Anthony Walker

@_webarchitect_

Just finished my first full #ML course: Machine learning for Software Engineers from Educative, Inc. ... Highly recommend!

E

Evan Dunbar

ML Engineer

You guys are the gold standard of crash-courses... Narrow enough that it doesn't need years of study or a full blown book to get the gist, but broad enough that an afternoon of Googling doesn't cut it.

S

Software Developer

Carlos Matias La Borde

I spend my days and nights on Educative. It is indispensable. It is such a unique and reader-friendly site

S

Souvik Kundu

Front-end Developer

Your courses are simply awesome, the depth they go into and the breadth of coverage is so good that I don't have to refer to 10 different websites looking for interview topics and content.

V

Vinay Krishnaiah

Software Developer

Built for 10x Developers

No Passive Learning
Learn by building with project-based lessons and in-browser code editor
Learn by Doing
Personalized Roadmaps
The platform adapts to your strengths & skills gaps as you go
Learn by Doing
Future-proof Your Career
Get hands-on with in-demand skills
Learn by Doing
AI Code Mentor
Write better code with AI feedback, smart debugging, and "Ask AI"
Learn by Doing
Learn by Doing
MAANG+ Interview Prep
AI Mock Interviews simulate every technical loop at top companies
Learn by Doing

Free Resources

FOR TEAMS

Interested in this course for your business or team?

Unlock this course (and 1,000+ more) for your entire org with DevPath