강의

멘토링

로드맵

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!

(5.0) 34 reviews

1,024 learners

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

Reviews from Early Learners

What you will learn!

  • 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

38,674

Learners

2,263

Reviews

1,104

Answers

4.9

Rating

25

Courses

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

Curriculum

All

40 lectures ∙ (11hr 10min)

Course Materials:

Lecture resources
Published: 
Last updated: 

Reviews

All

34 reviews

5.0

34 reviews

  • wjdwlgns8096님의 프로필 이미지
    wjdwlgns8096

    Reviews 3

    Average Rating 5.0

    5

    30% enrolled

    • nullnull8537
      Instructor

      Cảm ơn bạn đã đánh giá tốt. :)

  • michaelms01255858님의 프로필 이미지
    michaelms01255858

    Reviews 3

    Average Rating 5.0

    5

    30% enrolled

    • nullnull8537
      Instructor

      Cảm ơn bạn đã đánh giá tốt. :)

  • aceoftop1975님의 프로필 이미지
    aceoftop1975

    Reviews 101

    Average Rating 5.0

    5

    100% enrolled

    (25/07/26/토 09:41) Với nhiều nội dung trong bài giảng, tôi thực sự nhận được rất nhiều sự giúp đỡ. Tôi bắt đầu nghĩ rằng đồng bộ hóa là quan trọng. Trong bài giảng, việc thầy chia sẻ những trải nghiệm thực tế trong phần lưu ý thật tuyệt vời. Cảm ơn thầy đã tạo ra bài giảng hay như vậy.

    • nullnull8537
      Instructor

      Bạn thực sự chạy một cách kinh khủng quá. Giờ thì hơi sợ một chút rồi đấy. Dù sao thì tôi cũng ủng hộ đà này của bạn. :)

  • snorobowling7201님의 프로필 이미지
    snorobowling7201

    Reviews 6

    Average Rating 5.0

    Edited

    5

    100% enrolled

    Đây là quá trình học cơ bản về môi trường đa luồng và giúp hiểu tại sao phải học các hàm nhập xuất và con trỏ hàm trong ngôn ngữ C. ====== Lần này khi học lập trình hệ thống, tôi có cơ hội ôn lại phần nhập xuất của ngôn ngữ C. (Đã xem khoảng 2 lần nhưng không có tình huống cần sử dụng nên đã bỏ qua nhanh.) Phần khó nhất là phần nhập/xuất file WIN32. Trước đó các phần kiến thức cơ bản CS và hệ điều hành OS đã quen mắt nên không khó thích nghi, nhưng phần này chưa từng thấy nên không hiểu nói gì... Không biết viết ví dụ như thế nào, sau khi ôn 3~4 lần và nghỉ một ngày thì lạ lùng thay nội dung trở nên đơn giản và dễ hiểu. Tất nhiên việc học tại sao các kiểu dữ liệu và hàm được gọi và sử dụng nhờ sự hỗ trợ của Copilot và GPT cũng là phần thưởng. === Sau quá trình trên, tôi dự định học lập trình socket - lập trình mạng. Vừa lúc ở học viện có nhiều máy tính nên có thể thực hành với 4 máy tính thì tốt(?), thấy nội dung này nên nghĩ là không thể tốt hơn để học. === Cuối cùng, tôi viết về tình huống hiện tại của mình với hy vọng có thể giúp đỡ những ai đang gặp khó khăn về tinh thần. (Hiện tại đang học backend với mục tiêu Java Spring tháng thứ 3 (dự kiến tối thiểu 1 năm rưỡi)) Hiện tại tôi đang làm việc 7 ngày/tuần từ thứ 2 đến chủ nhật. (Thứ 2-7 từ 6:30 sáng - 10:30 tối / Chủ nhật bao gồm thời gian đi lại từ 7 giờ sáng - 10 giờ tối) --- Từ tuần trước đến tuần này, tôi đã suy nghĩ rất nhiều về vấn đề tiền bạc. Số tiền kiếm được từ thứ 2 đến chủ nhật là 160, nhưng nếu bỏ học và tăng thời gian làm việc thí có thể nhận từ 260 ~ 430. Vì vậy tôi đã có suy nghĩ bốc đồng rằng thà làm việc chăm chỉ để kiếm tiền còn hơn. Nguyên nhân của sự bốc đồng đó là do hiện tại AI làm cho tiêu chuẩn ngành IT nâng cao, và mục tiêu của tôi là nhóm phát triển server, liệu GPT và AI học từ code review của các lập trình viên Google có không theo kịp không? Không biết con đường phía trước, thà kiếm tiền điên cuồng còn hơn.. Liệu tôi có thực sự đậu vào ngành này và khi tích lũy kinh nghiệm có làm tốt hơn AI không? Với những lo lắng và băn khoăn như vậy, tôi đã trầm cảm nặng. Hiện tại đã nghỉ ngơi 3 ngày cho đến hôm qua và sắp xếp lại tâm trạng. Không có đáp án đúng và vì việc học hiện tại thú vị nên cứ tiếp tục như vậy! Không biết tình hình sau này sẽ ra sao nên hãy tiết kiệm tiền tối đa! Với hướng này tôi đã vượt qua và tiếp tục học. Nói là lo lắng là do suy nghĩ quá mức để tương lai tốt hơn / vô lực là tín hiệu báo để sạc năng lượng cảm xúc. Mọi người đều vất vả nhưng hãy cố gắng!

    • nullnull8537
      Instructor

      Cảm ơn phản hồi đã thể hiện trọn vẹn những băn khoăn của một cá nhân đang sống trong thời đại chuyển đổi đầy trăn trở. Bản thân tôi cũng là một người trụ cột gia đình trung niên đang có những băn khoăn tương tự nên càng đồng cảm hơn. Tiền...thực sự rất quan trọng. Có một nghệ sĩ từng nói rằng: "Người thì đi, nhưng tiền thì vẫn ở lại..." Trong xã hội tư bản, việc theo đuổi lợi ích của bản thân là điều rất đỗi hiển nhiên. Học tập cũng là một trong những phương tiện tốt để có được năng lực cạnh tranh. Tôi mong và sẽ ủng hộ bạn tích lũy năng lực như vậy để kiếm thật nhiều tiền. Bạn sẽ làm tốt thôi. Cảm ơn bạn. :)

  • devdroidkim4116님의 프로필 이미지
    devdroidkim4116

    Reviews 2

    Average Rating 5.0

    5

    30% enrolled

Limited time deal ends in 4 days

$1,732,221.00

24%

$84.70

nullnull8537's other courses

Check out other courses by the instructor!

Similar courses

Explore other courses in the same field!