Bài báo Five levels of ignorance ở Communications of the ACM (số 10, năm 2000) của Phillip G. Armour nhìn quá trình phát triển phần mềm như việc nắm bắt tri thức và giảm sự ngu dốt. Lý luận của ông rằng phần mềm là phương tiện thứ năm chứa tri thức rất hay (bốn phương tiện kia là DNA, não, phần cứng các loại, và sách).
Ông chia sự ngu dốt (về vấn đề X nào đó) nói chung, và dốt trong phát triển phần mềm nói riêng ra là năm mức:
- 0OI – không dốt: để đạt mức này ta phải biết X và chứng minh được rằng ta biết X. Ví dụ: tôi biết viết blog!
- 1OI – thiếu kiến thức: để … đạt được mức dốt này thì ta phải biết là ta thiếu kiến thức về X. Ví dụ: tôi biết là tôi không biết gì về cơ học lượng tử. Đạt được mức dốt này cũng đã tốt, vì nếu có nhu cầu tôi có thể đi tìm sách vở tài liệu về cơ học lượng tử để học thêm.
- 2OI – thiếu nhận thức: ở mức dốt này thì ta không biết là ta không biết gì về X. Hiển nhiên là ta không thể cho ví dụ về 2OI nào! Tuy nhiên, thỉnh thoảng đọc sách đọc báo,đọc blog KHMT (!), tôi có thể tìm ra được nhiều thứ chưa bao giờ biết là mình không biết, và như thế tôi chuyển các thứ đó lên 1OI. Dù rằng với cơ học lượng tử nói chung thì tôi ở mức 1OI, chắc chắn là có các đối tượng cụ thể nào đó trong cơ học lượng tử mà tôi ở mức 2OI.
- 3OI – thiếu quá trình: ở mức dốt này thì ta thiếu một quá trình cụ thể để khám phá ra rằng mình đang không biết rằng mình đang không biết về X. Nói cách khác, ở mức dốt này thì ta không biết cách nào để tìm ra các thứ mà ta không biết rằng ta không biết :-).
- 4OI – siêu dốt: chữ này tôi dịch bừa từ chữ meta-ignorance, vì meta-physics người ta dịch là siêu hình (học). Ở mức dốt này thì ta không biết gì về năm mức ngu dốt.
Đến đây thì tôi không còn ở mức 4OI được nữa. (OI viết tắt của Order of Ignorance.)
Dân máy tính thường phải đọc/học rất nhiều để theo kịp sự phát triển với tốc độ ánh sáng của ngành mình. Trong quá trình này, với mỗi vấn đề X của ngành, ta sẽ chuyển dần dần từ 3OI xuống 1OI. Sau đó, nếu X là cái mà ta thật sự thích hoặc cần cho công việc thì sẽ chuyển nó lên 0OI.
Rất nhiều sinh viên và nghiên cứu sinh KHMT ở mức 3OI khi mới bắt đầu đi học. Sau đó họ tìm hiểu về quá trình nghiên cứu, quá trình tìm các vấn đề và hướng nghiên cứu mới, quá trính cập nhật kiến thức về ngành của mình, và chuyển dần các thứ lên 2OI. Để có một quá trình hiệu quả từ 3OI lên 2OI không dễ chút nào. Ví dụ đơn giản: các journals, conference nào trong ngành mình là có giá trị, làm thế nào để tìm đọc các bài trong chúng, phương pháp lọc bài đọc thế nào, vân vân.
Sau khi học được quá trình này rồi, ta có phương tiện để chuyển dần các khối kiến thức khác nhau lên 1OI. Đến khi sắp ra trường, chuẩn bị làm luận án Ph.D về cái gì đó thì (hy vọng rằng) ta đã có vài thứ ở 0OI.