PhuThoDien
Senior Member
Đố vui có thưởng – Mindset Rebuilding (Phần đáp án đã sửa lại – một bài học thực tế về Mind Observer) (độ khó 3)
Mình sẽ kể ra 1 câu chuyện trong thực tế, trong chính dự án mình đang làm luôn. Đây là 1 ví dụ của Mindset Rebuilding. Các bạn sau khi đọc câu chuyện, hãy comment trích dẫn lại 3 câu trong câu chuyện mà thể hiện rõ ràng nhất về kỹ năng Mindset Rebuilding. 1 phần quà 100K bằng tiền mặt sẽ thuộc về bạn.
Câu chuyện như sau
Dự án của tôi code bằng ngôn ngữ C, có khoảng 2Gb source code. C là 1 ngôn ngữ rất dễ gặp memory leak. Vì vậy, như trước đây chúng tôi vẫn hay làm, chúng tôi luôn cố gắng review source code thật kỹ trước khi merge vào nhánh master. Định kỳ, chúng tôi lại chạy code bằng tool Valgrind để phát hiện memory leak trong trường hợp hệ thống hoạt động bình thường. Tuy nhiên, trong source code có những đoạn if – else – goto mà chỉ nhảy vào khi hệ thống gặp lỗi gì đó, hệ thống test của chúng tôi không thể cover hết được. Chúng tôi muốn đảm bảo rằng không có memory leak trong những luồng đó.
Chúng tôi bàn luận với nhau, dự định sẽ chọn ra 1 số file code quan trọng, chia đều cho các thành viên trong nhóm – khoảng 20 người, chúng tôi sẽ dành ra khoảng 3 tuần để cùng nhau review. Việc review source code trong 3 tuần có vẻ sẽ rất nhàm chán và dễ bỏ sót lỗi. Vì vậy, chúng tôi nghĩ đến việc sẽ cho AI để review.
Chúng tôi cùng nhau bàn bạc, tìm cách làm thể nào để AI có thể phát hiện được memory leak trong source code C, các bạn biết rồi đấy, ngôn ngữ C nếu dùng để phát triển project lớn thì nó sẽ khiển luồng code rất phức tạp. Đây không phải là mảnh đất phù hợp cho AI.
Cuối cùng, chúng tôi đề ra phương án như sau. Đầu tiên chúng tôi sẽ tự nghĩ xem, bản chất khi mình review code để tìm memory leak, đầu mình hoạt động như thế nào. Chúng tôi nhận ra 1 số pattern trong đầu mà chúng tôi hay dùng để phát hiện memory leak. Bao gồm:
Các bạn hãy comment trích dẫn ra 3 câu trong bài viết mà theo bạn đánh giá, chúng liên quan nhất đến kỹ năng Mindset Rebuilding, giải thích tại sao. Mình sẽ đánh giá và kết luận vào lúc 10h tối. Chúc mọi người chơi game vui vẻ.
Câu hỏi mở: Theo các bạn, ngoài Mindset Rebuilding, trong câu chuyện này có thể hiện ý nghĩa của Identity Realignment không? Tại sao?
Đáp án Cập nhật sáng hôm sau – một bài học thực tế về Mind Observer
Đoạn văn đáp án ban đầu bị xen lẫn 1 ít cảm xúc của mình. Nguyên nhân là do mình bỏ nhiều công sức ra viết nhưng các bài viết vẫn bị lệch với người đọc. Sau khi dùng Mind Observer để quan sát lại bản thân, mình đã sửa lại 1 ít về câu chữ, đưa bài viết về hướng trung tính, phù hợp với mục đích chia sẻ kiến thức.
Cảm ơn mọi người đã comment trả lời rất nhiệt tình nhé. Mục đích của mình khi đưa ra mini game này, là muốn mọi người thấy 4 kỹ năng AI ở những bài trước, tuy đọc thì rất trừu tượng nhưng phần ứng dụng thực tế thì lại sát sườn với công việc hàng ngày. Tại sao chúng trừu tượng thì lát mình giải thích sau.
Vậy, mấu chốt của việc Mindset Rebuilding ở trong bài viết là gì?
1. Đội ngũ lập trình viên đã nhận ra hiện tại, AI có thể thay họ làm 1 số việc trong dự án, miễn là họ chia nhỏ và giải thích được cho nó hiểu.
2. Họ nhận ra rằng, có những loại công việc trước kia họ vẫn nghĩ là phức tạp, ví dụ như review code để tìm ra memory leak, thực ra lại có thể chia ra thành từng bước đơn giản, để cho AI có thể làm được 1 cách máy móc.
Hai điểm thay đổi tư duy ở trên là cốt lõi nhất. Chỉ cần thay đổi điểm này về mặt tư duy, tự họ sẽ tìm ra giải pháp để thực hiện nó. Ví dụ như nhóm có thể cắt ra 1 người chuyên nghiên cứu về AI để áp dụng xử lý công việc trong dự án, hoặc thuê thêm người trẻ vào để đảm nhiệm việc này.
Các bước mà họ thực hiện để đẩy phần việc Review code cho AI, ví dụ như ngẫm lại về cách mình làm, chia nhỏ các bước, mô tả.... Chúng gọi là giải pháp thực hiện, giải pháp là phần nổi, được quyết định bởi tư duy. Kiểu như nếu như đội nhóm đã nhìn ra việc Review code AI có thể làm tốt hơn con người, kiểu gì họ cũng sẽ tìm ra giải pháp.
Cách giải mini game này thế nào:
Câu chuyện trong game, được chia làm 2 tầng. Tầng vỏ là giải pháp, cách thức thực hiện. Tầng lõi là sự thay đổi về tư duy. Giải pháp thì rất dễ nhận biết và học theo, nên hầu như ai cũng thấy.
Vậy sau khi thấy được giải pháp, làm thế nào để phát hiện được tư duy? Mẹo ở đây là chúng ta sẽ đặt tiếp 1 câu hỏi để đẩy tư duy xuống 1 tầng nữa. Câu hỏi đó là: Tại sao tự nhiên họ lại nghĩ ra giải pháp đấy.
Ở ngoài đời, khi bạn thấy 1 Senior đưa ra cách debug, fix bug. Bạn học lại theo kiểu pattern, dạng lỗi đó thì làm như vậy. Nếu làm thế, bạn mãi mãi là người đi sau. Vì bạn chỉ học được lớp vỏ, mà ko học được cái lõi tư duy của người Senior kia. Muốn học được lõi, bạn phải đặt ra câu hỏi, tại sao anh/chị lại nghĩ ra cách fix đó, hoặc các bước debug đó.
Chúng ta thường ngại học tư duy tầng sâu, vì chúng trừu tượng và học vất vả. Các kỹ năng ở tầng bề mặt thì hấp dẫn hơn vì chúng trực quan, học nhanh dễ áp dụng. Nhưng với xu hướng của AI, những loại công việc ở tầng bề mặt như code, test, viết tài liệu... Dần dần sẽ bị thay thế bởi AI. Vì đặc thù của AI vốn dĩ phù hợp với những loại công việc kiểu này.
Các khóa học dạy về prompt, ChatGPT... nhiều nơi dạy theo kiểu pattern, form mẫu. Người học dễ áp dụng, dễ hứng thú, nhàn cho người dạy.
Về câu hỏi mở, có identity realignment trong đây ko?
Câu trả lời là có 1 ít, ở mức độ nhẹ. Đó là đội ngũ lập trình viên đã biết chấp nhận giới hạn của mình về mặt sinh học. Họ biết rằng nếu review 1 file code C khoảng 10k line, họ có thể làm tốt hơn AI, nhưng nếu phải review 10, 20 files, họ thua AI. Họ thua ở đây không phải vì trình độ, mà vì bộ não của họ là 1 bộ não sinh học, nó biết mệt mỏi, ghét sự nhàm chán, có thể bị nhầm lẫn...
#huumanAISymbiosis
Mình sẽ kể ra 1 câu chuyện trong thực tế, trong chính dự án mình đang làm luôn. Đây là 1 ví dụ của Mindset Rebuilding. Các bạn sau khi đọc câu chuyện, hãy comment trích dẫn lại 3 câu trong câu chuyện mà thể hiện rõ ràng nhất về kỹ năng Mindset Rebuilding. 1 phần quà 100K bằng tiền mặt sẽ thuộc về bạn.
Câu chuyện như sau
Dự án của tôi code bằng ngôn ngữ C, có khoảng 2Gb source code. C là 1 ngôn ngữ rất dễ gặp memory leak. Vì vậy, như trước đây chúng tôi vẫn hay làm, chúng tôi luôn cố gắng review source code thật kỹ trước khi merge vào nhánh master. Định kỳ, chúng tôi lại chạy code bằng tool Valgrind để phát hiện memory leak trong trường hợp hệ thống hoạt động bình thường. Tuy nhiên, trong source code có những đoạn if – else – goto mà chỉ nhảy vào khi hệ thống gặp lỗi gì đó, hệ thống test của chúng tôi không thể cover hết được. Chúng tôi muốn đảm bảo rằng không có memory leak trong những luồng đó.
Chúng tôi bàn luận với nhau, dự định sẽ chọn ra 1 số file code quan trọng, chia đều cho các thành viên trong nhóm – khoảng 20 người, chúng tôi sẽ dành ra khoảng 3 tuần để cùng nhau review. Việc review source code trong 3 tuần có vẻ sẽ rất nhàm chán và dễ bỏ sót lỗi. Vì vậy, chúng tôi nghĩ đến việc sẽ cho AI để review.
Chúng tôi cùng nhau bàn bạc, tìm cách làm thể nào để AI có thể phát hiện được memory leak trong source code C, các bạn biết rồi đấy, ngôn ngữ C nếu dùng để phát triển project lớn thì nó sẽ khiển luồng code rất phức tạp. Đây không phải là mảnh đất phù hợp cho AI.
Cuối cùng, chúng tôi đề ra phương án như sau. Đầu tiên chúng tôi sẽ tự nghĩ xem, bản chất khi mình review code để tìm memory leak, đầu mình hoạt động như thế nào. Chúng tôi nhận ra 1 số pattern trong đầu mà chúng tôi hay dùng để phát hiện memory leak. Bao gồm:
- Tập trung nhìn vào những điểm thoát của hàm. Như return mã lỗi, câu lệnh goto, exit().
- Tại từng điểm thoát 1, chúng tôi sẽ nhìn lại toàn bộ những memory mà chúng tôi đã cấp phát ở trong hàm, xem chúng đã được free chưa.
- Sau khi kiểm tra ở trong hàm, chúng tôi kiểm tra đến những memory được cấp phát ở con trỏ global. Tại tất cả các điểm mà chương trình có thể kết thúc, chúng đã được free chưa.
- Các hàm allocate memory sẽ có tên là A(), B(), C()...
- Các hàm free memory sẽ có tên là C(), D(), E(),...
- Function có thể kết thúc thông qua các câu lệnh như: return, goto...
- Chương trình chính có thể kết thúc thông qua các câu lệnh như: return trong hàm main, exit() tại bất cứ điểm nào trong source code.
- Nếu 1 memory bất kỳ được allocate bởi bất cứ hàm nào trong (1) thì nó phải được free bởi (2), nếu không sẽ bị memory leak.
- Thực hiện phân tích source code, bằng cách đọc từng hàm 1, kiểm tra trước khi hàm kết thúc, có memory leak không.
- Kiểm tra các câu lệnh return trong hàm main, hoặc trước các câu lệnh exit() tại bất kỳ điểm nào trong source code, các con trỏ được cấp phát bộ nhớ có bị memory leak không.
- Kết quả phân tích đưa ra bằng dạng bảng, cột 1 là tên hàm, cột 2 là tên file và số dòng gây memory leak, cột thứ 3 là mô tả ngắn về nguyên nhân gây lỗi
Các bạn hãy comment trích dẫn ra 3 câu trong bài viết mà theo bạn đánh giá, chúng liên quan nhất đến kỹ năng Mindset Rebuilding, giải thích tại sao. Mình sẽ đánh giá và kết luận vào lúc 10h tối. Chúc mọi người chơi game vui vẻ.
Câu hỏi mở: Theo các bạn, ngoài Mindset Rebuilding, trong câu chuyện này có thể hiện ý nghĩa của Identity Realignment không? Tại sao?
Đáp án Cập nhật sáng hôm sau – một bài học thực tế về Mind Observer
Đoạn văn đáp án ban đầu bị xen lẫn 1 ít cảm xúc của mình. Nguyên nhân là do mình bỏ nhiều công sức ra viết nhưng các bài viết vẫn bị lệch với người đọc. Sau khi dùng Mind Observer để quan sát lại bản thân, mình đã sửa lại 1 ít về câu chữ, đưa bài viết về hướng trung tính, phù hợp với mục đích chia sẻ kiến thức.
Cảm ơn mọi người đã comment trả lời rất nhiệt tình nhé. Mục đích của mình khi đưa ra mini game này, là muốn mọi người thấy 4 kỹ năng AI ở những bài trước, tuy đọc thì rất trừu tượng nhưng phần ứng dụng thực tế thì lại sát sườn với công việc hàng ngày. Tại sao chúng trừu tượng thì lát mình giải thích sau.
Vậy, mấu chốt của việc Mindset Rebuilding ở trong bài viết là gì?
1. Đội ngũ lập trình viên đã nhận ra hiện tại, AI có thể thay họ làm 1 số việc trong dự án, miễn là họ chia nhỏ và giải thích được cho nó hiểu.
2. Họ nhận ra rằng, có những loại công việc trước kia họ vẫn nghĩ là phức tạp, ví dụ như review code để tìm ra memory leak, thực ra lại có thể chia ra thành từng bước đơn giản, để cho AI có thể làm được 1 cách máy móc.
Hai điểm thay đổi tư duy ở trên là cốt lõi nhất. Chỉ cần thay đổi điểm này về mặt tư duy, tự họ sẽ tìm ra giải pháp để thực hiện nó. Ví dụ như nhóm có thể cắt ra 1 người chuyên nghiên cứu về AI để áp dụng xử lý công việc trong dự án, hoặc thuê thêm người trẻ vào để đảm nhiệm việc này.
Các bước mà họ thực hiện để đẩy phần việc Review code cho AI, ví dụ như ngẫm lại về cách mình làm, chia nhỏ các bước, mô tả.... Chúng gọi là giải pháp thực hiện, giải pháp là phần nổi, được quyết định bởi tư duy. Kiểu như nếu như đội nhóm đã nhìn ra việc Review code AI có thể làm tốt hơn con người, kiểu gì họ cũng sẽ tìm ra giải pháp.
Cách giải mini game này thế nào:
Câu chuyện trong game, được chia làm 2 tầng. Tầng vỏ là giải pháp, cách thức thực hiện. Tầng lõi là sự thay đổi về tư duy. Giải pháp thì rất dễ nhận biết và học theo, nên hầu như ai cũng thấy.
Vậy sau khi thấy được giải pháp, làm thế nào để phát hiện được tư duy? Mẹo ở đây là chúng ta sẽ đặt tiếp 1 câu hỏi để đẩy tư duy xuống 1 tầng nữa. Câu hỏi đó là: Tại sao tự nhiên họ lại nghĩ ra giải pháp đấy.
Ở ngoài đời, khi bạn thấy 1 Senior đưa ra cách debug, fix bug. Bạn học lại theo kiểu pattern, dạng lỗi đó thì làm như vậy. Nếu làm thế, bạn mãi mãi là người đi sau. Vì bạn chỉ học được lớp vỏ, mà ko học được cái lõi tư duy của người Senior kia. Muốn học được lõi, bạn phải đặt ra câu hỏi, tại sao anh/chị lại nghĩ ra cách fix đó, hoặc các bước debug đó.
Chúng ta thường ngại học tư duy tầng sâu, vì chúng trừu tượng và học vất vả. Các kỹ năng ở tầng bề mặt thì hấp dẫn hơn vì chúng trực quan, học nhanh dễ áp dụng. Nhưng với xu hướng của AI, những loại công việc ở tầng bề mặt như code, test, viết tài liệu... Dần dần sẽ bị thay thế bởi AI. Vì đặc thù của AI vốn dĩ phù hợp với những loại công việc kiểu này.
Các khóa học dạy về prompt, ChatGPT... nhiều nơi dạy theo kiểu pattern, form mẫu. Người học dễ áp dụng, dễ hứng thú, nhàn cho người dạy.
Về câu hỏi mở, có identity realignment trong đây ko?
Câu trả lời là có 1 ít, ở mức độ nhẹ. Đó là đội ngũ lập trình viên đã biết chấp nhận giới hạn của mình về mặt sinh học. Họ biết rằng nếu review 1 file code C khoảng 10k line, họ có thể làm tốt hơn AI, nhưng nếu phải review 10, 20 files, họ thua AI. Họ thua ở đây không phải vì trình độ, mà vì bộ não của họ là 1 bộ não sinh học, nó biết mệt mỏi, ghét sự nhàm chán, có thể bị nhầm lẫn...
#huumanAISymbiosis
Sửa lần cuối:
. Cá nhân em từng làm sơ sơ về AI/LLM thì thấy bản chất nó là mô hình thống kê:

