Một khóa học phải tham dự dành cho bất kỳ ai có ý định trở thành lập trình viên Windows! Bạn đã nghiên cứu C/C+, cấu trúc dữ liệu và lý thuyết hệ điều hành chưa? Nếu vậy, nghiên cứu các chương trình hệ thống là câu trả lời đúng đắn. Từ giờ trở đi, đó là thời gian thực!
Quản lý quy trình và kỹ thuật IPC dựa trên bộ nhớ dùng chung
Tạo và sử dụng thư viện DLL
Những điều cơ bản của lập trình hệ thống, Chúng ta sẽ đi thẳng vào vấn đề!
Nếu bạn là nhà phát triển Windows C/C++ Lập trình hệ thống bạn phải biết.
"Windows Via C/C++" của Jeffrey Richter Bạn có cảm thấy quá khó không?
Bây giờ bạn có thể hiểu cuốn sách 『Windows Via C/C++ phiên bản thứ 5』, được coi là kinh thánh của lập trình hệ thống nhưng lại khó hiểu!
Gửi đến các nhà phát triển máy chủ trò chơi và nhà phát triển ứng dụng Windows!
Những người khao khát trở thành nhà phát triển ứng dụng Windows, bao gồm cả nhà phát triển trò chơi, sẽ học C/C++ và cấu trúc dữ liệu. Họ cũng học một số lý thuyết về khoa học máy tính. Tuy nhiên, họ thường cảm thấy chỉ riêng điều đó là chưa đủ . Họ biết rằng lập trình hệ thống là một kỹ năng lập trình bắt buộc để trở thành một nhà phát triển chuyên nghiệp, nhưng ngay khi mở sách ra, họ nhận ra đó không phải là một con đường dễ dàng, và việc tự học là bất khả thi.
Giải pháp thật đơn giản! Cũng giống như việc hiểu biết ở trình độ cao bắt đầu bằng việc ghi nhớ, việc nắm vững hoàn toàn các lý thuyết và ví dụ cốt lõi làm nền tảng cho lập trình hệ thống là vô cùng quan trọng.
Vì vậy, tôi giới thiệu nó cho những người này.
Bất kỳ ai cần phát triển các ứng dụng Windows dựa trên C/C++
Các nhà phát triển ứng dụng dựa trên các công nghệ cũ hơn như MFC hoặc Win32 API
Những người mong muốn trở thành lập trình viên máy chủ trò chơi
Người học lập trình hệ thống muốn trải nghiệm lý thuyết về hệ điều hành ở cấp độ mã.
Cốt lõi của lập trình hệ thống Hãy để tôi giải thích theo cách dễ hiểu nhất!
1️⃣ Bạn có thể hiểu các lý thuyết cốt lõi như hiểu biết về môi trường lập trình đa luồng và các kỹ thuật đồng bộ hóa.
2️⃣ Bằng cách trải nghiệm lại các lý thuyết bạn đã gặp khi nghiên cứu hệ điều hành ở cấp độ mã, trình độ hiểu biết của bạn về kiến thức khoa học máy tính sẽ tăng lên đáng kể.
3️⃣ Bằng cách chủ động sử dụng các dịch vụ do hệ điều hành cung cấp, bao gồm đầu vào/đầu ra đồng bộ/không đồng bộ, bạn có thể phát triển các ứng dụng thực tế được đảm bảo có hiệu suất cao .
4️⃣ Bạn có thể tự mình hiểu được nhiều lý thuyết và trường hợp khác nhau cần thiết cho việc phát triển ứng dụng Windows, bao gồm cả máy chủ hiệu suất cao.
Khóa học này giải thích các lý thuyết cốt lõi của lập trình hệ thống một cách dễ hiểu! Không ngoa khi nói rằng cốt lõi của lý thuyết Khoa học Máy tính nằm ở hệ điều hành và kiến trúc máy tính. Các ngôn ngữ bản địa như C/C++ rất khó học vì chúng đòi hỏi một mức độ hiểu biết nhất định về lý thuyết Khoa học Máy tính. Khóa học này sẽ đóng vai trò then chốt trong việc cung cấp kinh nghiệm lập trình với các lý thuyết hệ thống cốt lõi, thiết yếu để đạt đến đỉnh cao của lý thuyết Khoa học Máy tính.
Trong học lập trình hệ thống Lý thuyết cốt lõi hoàn toàn cần thiết.
Chúng tôi đã cô đọng lý thuyết bạn cần học đến mức tối đa có thể, chỉ giữ lại những điều cốt yếu!
✅ Hệ thống bảo mật Windows
✅ Kỹ thuật lập trình đa luồng (tạo và đồng bộ hóa)
✅ Kỹ thuật nhập/xuất tệp đồng bộ/không đồng bộ sử dụng Win32 API
✅ Hệ thống bộ nhớ ảo, heap, bản đồ bộ nhớ
✅ IPC dựa trên bộ nhớ chia sẻ
✅ Kỹ thuật tạo thư viện DLL
Thực thi quy trình và kế thừa đặc quyền
Thu thập và cam kết bộ nhớ ảo độc lập cho mỗi tiến trình
Kích thước phân bổ 64KB và cấu trúc bộ nhớ trang 4KB
Học từ sách Kinh Thánh là một lựa chọn tốt, nhưng không bao giờ dễ dàng cho người mới bắt đầu. Dù nội dung có hay đến đâu, nó vẫn có thể khó hiểu. Khóa học này được thiết kế để giúp bạn dễ dàng tiếp cận những lý thuyết khó hiểu này hơn.
Hỏi & Đáp 💬
H. Tôi có phải học lập trình hệ thống để trở thành nhà phát triển ứng dụng Windows không?
Đúng vậy, bạn nhất định phải học nó. Ngay cả khi bạn chỉ đang phát triển một GUI, bạn thường sẽ cần hiểu biết vững chắc về hầu hết các lý thuyết được đề cập trong lập trình hệ thống để giải quyết vấn đề.
H. Tôi đang tìm việc và mong muốn trở thành nhà phát triển game. Khóa học này có hữu ích không?
Đối với các nhà phát triển game, lập trình hệ thống không phải là tùy chọn mà là thiết yếu. Bạn cần nắm vững những kiến thức cơ bản được đề cập trong khóa học này. Bạn cũng sẽ cần nghiên cứu các lý thuyết nâng cao hơn. Tuy nhiên, sau khi hoàn thành khóa học này, bạn sẽ có thể tự mình hiểu các khái niệm, ngay cả khi tham khảo các tài liệu liên quan.
H. Tôi có cần phải học khóa học này để trở thành nhà phát triển phần mềm bảo mật không?
Nếu bạn muốn phát triển phần mềm như V3, việc hiểu lý thuyết lập trình hệ thống là điều cần thiết. Trước khi chuyển sang phát triển trình điều khiển hạt nhân, việc hiểu lập trình hệ thống là điều cần thiết. Việc học các kỹ thuật tấn công/phòng thủ khác nhau, bao gồm cả kỹ thuật đảo ngược, sẽ rất khó khăn nếu không hiểu lý thuyết lập trình hệ thống.
H. Tôi chỉ học ngôn ngữ C và cấu trúc dữ liệu. Tôi có thể học khóa học này không?
Có, bạn có thể. Tuy nhiên, nếu bạn chưa học về hệ điều hành, nội dung có thể hơi khó. Và ngay cả khi bạn đã học ngôn ngữ C, bạn chắc chắn nên hiểu những điều sau:
con trỏ hàm
Bộ chỉ định lớp bộ nhớ và quản lý bộ nhớ
Nguyên lý chỉ định khung ngăn xếp
Đầu vào/đầu ra tệp nhị phân
💾 Vui lòng kiểm tra trước khi tham gia lớp học.
Bài giảng này có tựa đề "Lập trình hệ thống Windows - Cơ bản" và "Lập trình hệ thống Windows - Ứng dụng" sẽ được phát hành sau.
Khóa học này sử dụng Windows 11 và phiên bản Cộng đồng của Visual Studio 2022. Bất kỳ ai sử dụng hệ điều hành Windows 10 trở lên và máy tính có khả năng chạy VScode 2022 đều có thể dễ dàng tham gia khóa học.
Chúng tôi cung cấp tệp PDF và mã nguồn ví dụ đầy đủ được sử dụng trong bài giảng.
Khóa học này được thiết kế dành cho những người có kiến thức cơ bản về ngôn ngữ C và kinh nghiệm triển khai các cấu trúc dữ liệu tuyến tính như danh sách liên kết . Kinh nghiệm sử dụng các công cụ phát triển như Visual Studio trên môi trường hệ điều hành Windows cũng được khuyến khích. Để biết thêm thông tin chi tiết về điều kiện tiên quyết, vui lòng tham khảo thông tin bên dưới.
Ngôn ngữ C và cấu trúc dữ liệu, và một số ngữ pháp ngôn ngữ C++ (bạn có thể tham gia khóa học ngay cả khi bạn không biết gì về nó)
Bài giảng "Trở thành chuyên gia khoa học máy tính bằng cách ghi nhớ rộng và sâu"
Bài giảng "Lý thuyết hệ điều hành tối thiểu: Học dễ dàng với Bear Book"
Bài giảng "Lập trình C: Tổng quan chi tiết" (Kiến thức tiên quyết quan trọng nhất)
Khuyến nghị cho những người này
Khóa học này dành cho ai?
Những người có nhu cầu phát triển phần mềm điều khiển hệ thống Windows
Những người muốn phát triển phần mềm bảo mật hoặc máy chủ trò chơi
Bất cứ ai cần phát triển các ứng dụng dựa trên Windows C/C++
Cần biết trước khi bắt đầu?
Lập trình C để suy ngẫm
Hiểu cấu trúc dữ liệu
Kiến thức hệ điều hành về bộ nhớ ảo
Kinh nghiệm sử dụng các công cụ phát triển trong môi trường Windows (xem VSCode)
Xin chào Đây là
39,182
Học viên
2,382
Đánh giá
1,129
Trả lời
4.9
Xếp hạng
25
Các khóa học
널널한 개발자 TV 채널 주인장이자 30년 넘게 IT기술의 바다를 항해하고 있는 개발자 입니다. 반갑습니다. ^^
(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.
Đâ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!
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. :)