강의

멘토링

커뮤니티

BEST
Programming

/

Desktop Application

Windows System Programming - Basics

A must-take course for anyone thinking of becoming a Windows programmer! Have you studied C/C+, data structures, and operating system theory? If so, studying system programming is the answer now. Now it's time for practice!

(4.9) 39 reviews

1,078 learners

  • nullnull8537
저자 직강
win32api
C
vc++
system-programming

Reviews from Early Learners

What you will gain after the course

  • Theory on Windows System Security System

  • Multithreaded programming and synchronization techniques

  • Synchronous/asynchronous file input/output techniques

  • Virtual memory system and memory operation techniques

  • Process management and shared memory-based IPC techniques

  • Creating and using DLL libraries

The basics of system programming,
We'll get to the point!

If you are a C/C++ Windows developer
System programming you must know.

Jeffrey Richter's "Windows Via C/C++"
Did it feel too difficult?

You can now understand the book 『Windows Via C/C++ 5th edition』, which is known as the bible of system programming but is difficult to understand!

Attention Game Server Developers and Windows Application Developers!

Those aspiring to become Windows application developers, including game developers, learn C/C++ and data structures. They also study some CS theory. However, they often feel that this alone isn't enough . They know that systems programming is a must-have programming skill for becoming a professional developer, but the moment they open the book, they realize it's not an easy path, and self-study is impossible.

The solution is simple! Just as a high-level understanding begins with memorization, it's essential to fully master the core theories and examples that underpin systems programming.

So, I recommend it to these people.

Anyone who needs to develop C/C++ based Windows applications

Application developers based on older technologies such as MFC or Win32 API

Those who aspire to be game server programmers

System programming learners who want to experience the theory of operating systems at the code level.


The core of system programming
Let me explain it in an easy-to-understand way!

  • 1️⃣ You can understand the core theories such as understanding of multi-threaded programming environment and synchronization techniques.
  • 2️⃣ By re-experiencing the theories you encountered while studying operating systems at the code level, your level of understanding of CS knowledge will significantly increase.
  • 3️⃣ By actively utilizing the services provided by the operating system, including synchronous/asynchronous input/output, you can develop practical applications that are guaranteed to have high performance .
  • 4️⃣ You can independently understand various theories and cases required for Windows application development, including high-performance servers.

This course explains the core theories of systems programming in an easy-to-understand manner! It's no exaggeration to say that the core of CS theory lies in operating systems and computer architecture. Native languages like C/C++ are difficult because they require a certain level of understanding of CS theory. This course will play a pivotal role in providing programming experience with the core systems theories essential for advancing to the pinnacle of CS theory.


In learning system programming
Essential theory that is absolutely necessary.

We've condensed the theory you need to learn to the utmost extent possible, keeping only the essentials!

  • ✅ Windows Security System
  • ✅ Multithreaded programming techniques (creation and synchronization)
  • ✅ Synchronous/asynchronous file input/output techniques using Win32 API
  • ✅ Virtual memory system, heap, memory map
  • ✅ Shared memory-based IPC
  • ✅ DLL library creation technique

Process execution and privilege inheritance

Acquiring and committing independent virtual memory per process

64KB allocation size and 4KB page memory structure

Studying from Bible-level books is a good option, but it's never easy for beginners. No matter how good the content, it can be difficult to understand. This course is designed to open the way for you to more easily approach these difficult theories.


Q&A 💬

Q. Do I have to learn system programming to become a Windows application developer?

Yes, you absolutely must learn it. Even if you're simply developing a GUI, you'll often need a solid understanding of most of the theories covered in systems programming to solve problems.

Q. I'm a job seeker hoping to become a game developer. Will this course be helpful?

For game developers, systems programming isn't optional, it's essential. You need to master the basics covered in this course. You'll also need to study more advanced theories. However, after completing this course, you'll be able to understand the concepts on your own, even when you consult related materials.

Q. Do I need to take this course to become a security software developer?

If you want to develop software like V3, understanding systems programming theory is essential. Before moving on to kernel driver development, understanding systems programming is essential. Learning various attack/defense techniques, including reverse engineering, is difficult without understanding systems programming theory.

Q. I've only studied the C language and data structures. Can I still take this course?

Yes, you can. However, if you haven't studied operating systems, the content may be somewhat difficult. And even if you've studied the C language, you should definitely understand the following:

  • function pointer
  • Memory Class Specifiers and Memory Management
  • Stack frame designation principle
  • Binary file input/output

💾 Please check before taking the class.

  • This lecture is titled "Windows System Programming - Basics" and "Windows System Programming - Applications" will be released later.
  • This course uses Windows 11 and the Community version of Visual Studio 2022. Anyone with a Windows 10 or higher operating system and a PC capable of running VScode 2022 can easily take the course.
  • We provide PDFs and full example source code used in the lecture.
  • This course is designed for those with a basic understanding of the C language and experience implementing linear data structures like linked lists . Experience using development tools like Visual Studio in a Windows OS environment is also recommended. For more detailed prerequisite information, please refer to the information below.
    • C language and data structures, and some C++ language grammar (you can take the course even if you don't know anything about it)
    • Lecture "Becoming a Computer Science Major by Memorizing Broadly and Deeply"
    • Lecture "Minimal Operating System Theory: Easily Learned with Bear Book"
    • Lecture "C Programming: A Thorough Review" (Most Important Pre-requisite Knowledge)

Recommended for
these people

Who is this course right for?

  • Anyone who wants to develop Windows system control software

  • Anyone who wants to develop security software or game servers

  • Anyone who needs to develop C/C++ Windows-based applications

Need to know before starting?

  • C programming that is deeply reminiscent

  • Understanding data structures

  • Operating system knowledge of virtual memory

  • Experience using development tools in a Windows environment (cf. VSCode)

Hello
This is

45,739

Learners

2,567

Reviews

1,144

Answers

4.9

Rating

25

Courses

널널한 개발자 TV 채널 주인장이자
30년 넘게 IT기술의 바다를 항해하고 있는 개발자 입니다.  반갑습니다. ^^  

Curriculum

All

40 lectures ∙ (11hr 10min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

39 reviews

4.9

39 reviews

  • postbox2736님의 프로필 이미지
    postbox2736

    Reviews 2

    Average Rating 5.0

    5

    100% enrolled

    • nullnull8537
      Instructor

      Thank you for the good review. :)

  • wjdwlgns8096님의 프로필 이미지
    wjdwlgns8096

    Reviews 3

    Average Rating 5.0

    5

    30% enrolled

  • michaelms01255858님의 프로필 이미지
    michaelms01255858

    Reviews 3

    Average Rating 5.0

    5

    30% enrolled

  • aceoftop1975님의 프로필 이미지
    aceoftop1975

    Reviews 113

    Average Rating 5.0

    5

    100% enrolled

    (25/07/26/Sat 09:41) With so much content in the lecture, I am receiving tremendous help. It makes me think that synchronization is important. I think it's great that you share your experienced content in the precautions during the lecture. Thank you for creating such a good lecture.

    • nullnull8537
      Instructor

      You're running at an absolutely incredible pace. It's actually getting a little scary now. Anyway, I'm cheering for this momentum. :)

  • snorobowling7201님의 프로필 이미지
    snorobowling7201

    Reviews 6

    Average Rating 5.0

    Edited

    5

    100% enrolled

    This was a process that provided foundational study on multithreaded environments and helped me understand why we learn input/output functions and function pointers in the C language. ====== This time, studying system programming gave me an opportunity to review C language input and output. (I had looked at it about twice before, but since there was no situation where I needed to use it, I quickly passed over it.) The most difficult part was the WIN32 file input/output section. Before that, I had familiarized myself with CS fundamentals and OS operating system parts, so I had no difficulty adapting, but I had never seen that particular part before, so I didn't understand what it was saying... I didn't know how to write the examples, but after reviewing it 3-4 times and taking a day's rest, strangely the content seemed simple and I understood it. Of course, studying why data types and functions are called and used with the help of Copilot and GPT was a bonus. === After going through the above process, I'm planning to move on to socket programming - network programming learning. I happened to see content saying it would be good if I could practice with 4 computers since there are many computers at the academy(?), so I think it's perfect for studying. === Lastly, I'm writing about the situations I'm currently experiencing, thinking it might help those who are going through mental difficulties. (Currently in my 3rd month of backend study targeting Java Spring (looking at a minimum of 1.5 years)) Currently, I'm working 7 days a week from Monday to Sunday. (Monday-Saturday: 6:30 AM - 10:30 PM / Sunday: 7:00 AM - 10:00 PM including commute time) --- From last week to this week, I've been really worried about money. The money I earn working from Monday to Sunday is 160, but if I give up studying and work longer hours, I could earn 260 to 430. So I had the impulsive thought that it might be better to work intensively and earn money. The cause of that impulse was that currently, with AI, the IT industry standards themselves have been leveled up, and what I'm aiming for is server development - can't GPT and AIs that learn from Google developers' code reviews keep up with that? I don't know the path ahead, so wouldn't it be better to frantically earn money... Can I really do better than AI once I pass in this industry and build experience? I severely suffered from depression due to such anxiety and worries. Currently, I rested well for about 3 days until yesterday and organized my thoughts. There's no right answer, and since the studying I'm doing now is fun, let's go with this! Since I don't know how the situation will turn out later, let's save money as much as possible! I brushed it off in that direction and am studying again. They say anxiety is excessive worry for my future self to do better / and helplessness is a signal to recharge emotional energy. Everyone must be having a hard time, but fighting!

    • nullnull8537
      Instructor

      Thank you for the feedback that truly reveals the worries of an individual living through a challenging era of great transformation. As a middle-aged head of a family facing similar concerns myself, I can relate even more. Money...it's truly important. A celebrity once said, "People may go, but money stays..." In a capitalist society, pursuing one's own interests is perfectly natural. Learning is also one of the great ways to gain competitiveness. I hope you build your skills like that and earn lots and lots of money, and I'll be cheering you on. You'll do great. Thank you. :)

Limited time deal

$59.40

29%

$84.70

nullnull8537's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!