Tác giả: Eric Steven Raymond, Rick Moen
Biên dịch: Hoàng Tuấn Quỳnh, Nguyễn Tiến Hải Bình, Nguyễn Minh Hương
Những gì bạn đọc dưới đây không phải là tài liệu gốc.

Một câu hỏi rõ ràng, không ỷ lại, thực sự cầu thị khiến cho câu trả lời nhận được mau chóng, xác đáng. Khiến người trả lời cảm thấy thú vị, sẵn sàng bỏ thời gian giúp đỡ. Và hơn thế nữa người đặt câu hỏi được coi trọng vì trí tuệ phong phú, chính xác, cũng như cách làm việc nghiêm túc, chân thành phản ánh qua câu hỏi
Cuối cùng hãy nhớ rằng chúng tôi muốn học được một điều gì đó từ 1 câu hỏi thông minh

1. Trước khi bạn hỏi

* Cố gắng tìm câu trả lời bằng cách tìm kiếm trên Web
* Cố gắng tìm câu trả lời bằng cách đọc tài liệu hướng dẫn
* Cố gắng tìm câu trả lời bằng cách đọc FAQ
* Cố gắng tìm câu trả lời bằng các kiểm tra hoặc thí nghiệm
* Cố gắng tìm câu trả lời bằng cách hỏi một người bạn có kỹ năng tốt
* Nếu bạn là một lập trình viên thì hãy cố gắng tìm câu trả lời bằng cách đọc mã nguồn.

2. Khi bạn hỏi

-Tránh gửi câu hỏi của bạn lên diễn đàn nơi mà nó sẽ trở thành lạc đề
-Tránh gửi một câu hỏi rất cơ bản lên một diễn đàn nơi mà chỉ dành cho các câu hỏi kỹ thuật cao cấp hoặc ngược lại
-Tránh gửi câu hỏi chồng chéo trên quá nhiều diễn đàn
-Tránh gửi thư riêng tới người không là người thân và cũng không là người có trách nhiệm cá nhân phải giải quyết vấn đề của bạn
-Các diễn đàn trên Web và IRC dành cho người bắt đầu thường có câu trả lời nhanh nhất
-Hãy viết tiêu đề một cách rõ ràng, mạch lạc
-Hãy giúp việc trả lời dễ dàng. Thông tin liên lạc của bạn cũng quan trọng như cách bạn đặt câu hỏi để được trả lời xác đáng.
-Hãy viết bằng ngôn ngữ rõ ràng, đúng ngữ pháp và chính tả
-Hãy mô tả vấn đề của bạn một cách chính xác với đầy đủ thông tin
* Mô tả triệu chứng của vấn đề hay lỗi mà bạn gặp cách rõ ràng.
* Mô tả môi trường xảy ra sự cố (máy tính, hệ điều hành, các ứng dụng và những gì liên quan).
* Mô tả các nghiên cứu mà bạn đã tiến hành để thử và tìm hiểu về vấn đề trước khi bạn đặt câu hỏi.
* Mô tả các bước kiểm tra mà bạn đã tiến hành để thử và xác định vấn đề trước khi bạn đặt câu hỏi.
* Mô tả tất cả các thay đổi về phần cứng và cấu hình phần mềm có thể liên quan tới sự cố.
-Cố gắng tốt nhất để đoán trước các câu hỏi mà chúng tôi có thể hỏi và trả lời chúng trước khi yêu cầu sự giúp đỡ.
-Dài dòng không có nghĩa là chính xác. Bạn cần mô tả chính xác và đầy đủ thông tin.
-Đừng tuyên bố rằng bạn đã tìm ra lỗi
-Hãy mô tả triệu chứng sự cố, chứ không phải những phỏng đoán
-Hãy mô tả triệu chứng sự cố theo trình tự thời gian. Manh mối có ích nhất để tìm ra cái gì đã chạy sai thường nằm ở sự kiện xảy ra ngay trước nó. Vì vậy tài khoản người dùng của bạn có thể mô tả chính xác bạn đã làm gì và máy tính đã làm gì để dẫn đến việc đã xảy ra. Trong trường hợp xử lý các dòng lệnh thì có một bản ghi các phiên làm việc (ví dụ sử dụng ngôn ngữ kịch bản) và trích dẫn khoảng 20 dòng có liên quan thì sẽ rất hữu ích.
-Hãy mô tả mục đích cần đạt được, chứ không phải các bước
-Đừng đòi hỏi được trả lời bằng thư riêng
-Hãy lược bớt các câu hỏi vu vơ. Tránh đặt các câu hỏi kiểu“Ai đó có thể giúp tôi được không?” hay “Liệu có câu trả lời nào không nhỉ?”
-Đừng đánh dấu câu hỏi của bạn là “Khẩn cấp”, cho dù nó là khẩn cấp đối với bạn. Đó là vấn đề của bạn, không phải của chúng tôi.
-Phép lịch sự không bao giờ thừa, và đôi khi rất có ích. Hãy tỏ ra lịch sự. Nên sử dụng các cụm “Làm ơn”, “Cám ơn vì đã quan tâm” hay “Cám ơn vì đã xem xét vấn đề”.
-Hãy thông báo về kết quả của các giải pháp được tư vấn (chốt lại vấn đề)
Sau khi vấn đề của bạn đã được giải quyết, hãy gửi một thông báo tới tất cả những người đã giúp bạn, để họ biết rằng vấn đề đã được giải quyết như thế nào và một lần nữa cám ơn sự giúp đỡ của họ.

3. Hiểu câu trả lời như thế nào

Một tập tục cổ xưa và rất thiêng liêng: nếu bạn nhận được câu trả lời chỉ vỏn vẹn là “RTFM”, thì người trả lời bạn vậy nghĩ rằng bạn đáng lẽ nên Read The Fucking Manual (Đọc cái tài liệu hướng dẫn chó chết đó đi!) Người ta hoàn toàn có lý đấy. Đi mà đọc đi. RTFM có một em họ là STFW. Nếu nhận được câu trả lời là “STFW”, người nói vậy có ý là đáng lẽ bạn nên “Searched The Fucking Web” đã (Đi mà kiếm tìm trên mạng đi đã!). Người ta cũng có lý hoàn toàn. Hãy tìm kiếm trên mạng. (Phiên bản nhẹ nhàng hơn của câu nói này là “Google là bạn của bạn đấy!”) Trong các diễn đàn web, người ta cũng có thể sẽ bảo bạn tìm kiếm trong kho lưu trữ của diễn đàn.

4. Những câu hỏi không nên hỏi

Hỏi:
Tôi có thể tìm chương trình hay nguồn X ở đâu?
Trả lời:
Chỗ mà tôi tìm thấy đấy, đồ ngốc ạ – sau khi đã search web. Trời ơi, chả lẽ còn có người chưa biết dùng Google nữa hay sao?

Hỏi:
Làm thế nào tôi dùng X để thực hiện Y được?
Trả lời:
Nếu bạn muốn làm Y, bạn nên hỏi mà đừng giả định luôn bằng một phương pháp mà có lẽ không phù hợp để giải quyết vần đề đó. Những câu hỏi kiểu này thường chỉ cho thấy một kiểu người chả hiểu biết gì về X, và cũng chẳng biết vấn đề Y mình đang giải quyết là cái gì cả, và còn quá bị ám ảnh về những chi tiết về trường hợp của mình. Nói chung, tốt nhất là không cần để tâm đến những người này cho đến khi họ hiểu rõ vấn đề của mình.

Hỏi:
Làm thế nào để chỉnh sửa dấu nhắc của shell?
Trả lời:
Nếu bạn đã đủ thông minh để hỏi những loại câu hỏi như thế, bạn cũng thừa thông minh để RTFM và tự đi mà tìm hiểu lấy

Hỏi:
Tôi có thể dùng chương trình chuyển đổi file Bass-o-matic để chuyển một văn bản AcmeCorp sang dạng Tex được không?
Trả lời:
Cứ thử đi rồi biết. Nếu đi mà làm thế, a. có lẽ đã có câu trả lời rồi, và b. không làm mất thời gian của người khác.

Hỏi:
Chương trình/cấu hình/lệnh SQL của tôi không chạy

Trả lời:
Đây không phải là một câu hỏi, và tôi chả thấy thú vị trong khi chơi trò Đoán mò ra câu hỏi của bạn là gì – Còn đầy thứ khác phải làm. Khi nhận được những thư kiểu này, phản ứng của tôi thường là:
* còn có gì để nói thêm không?
* thế à, hy vọng là bạn xử lý được nó rồi
* thế đây là thứ mà tôi cần biết hay sao?

Hỏi:
Máy tính chạy Windows của tôi đang bị trục trặc. Ai giúp tôi được không?
Trả lời:
Có chứ, quẳng xừ cái mớ Microsoft vào thùng rác và cài một hệ điều hành mở giống như Linux hay BSD. Chú ý: bạn có thể hỏi những câu hỏi có liên quan đến các máy cài đặt Windows nếu đấy là một chương trình có bản chính thức dành riêng cho Windows, hoặc chương trình để giao tiếp với các máy chạy Windows (ví dụ như Samba). Đừng ngạc nhiên khi nhận được câu trả lời là lỗi đó là do Windows gây ra chứ không phải là bản thân chương trình, vì thật sự Windows nói chung chả đáng tin cậy nên chuyện đó là thường thấy.

Hỏi:
Chương trình của tôi không chạy. Tôi nghĩ rằng X bị hỏng.
Trả lời:
Có khả năng bạn là người đầu tiên phát hiện ra một khiếm khuyết rõ nhận thấy như vậy trong hệ thống và trong các thư viện mà hàng trăm hoặc hàng ngàn người đang sử dụng, nhưng khả năng khác lớn hơn cả là bạn đang hoàn toàn chả có chứng cớ gì hết. Nói có sách, mách có chứng, những lời tuyên bố khác thường như vậy cần những chứng cớ đặc biệt để chứng minh. Khi đưa ra những ý kiến như vậy, bạn cần phải chứng minh bằng những tài liệu rất rõ ràng và có giải thích tường tận về trường hợp lỗi này.

Hỏi:
Tôi không cài đặt được Linux hay X. Ai giúp với?
Trả lời:
Không, tôi cần phải trực tiếp truy cập vào máy tính của bạn để giải quyết vấn đề này. Hãy đi mà hỏi nhóm những người sử dụng Linux tại nơi bạn ở. (Đây(15) là danh sách các nhóm sử dụng Linux) Lưu ý: Câu hỏi về cách cài đặt Linux có thể phù hợp khi bận hỏi trên diễn đàn hoặc nhóm thư của một phiên bản Linux cụ thể, và vấn đề này thuộc về phiên bản đó; hoặc có thể hỏi kiểu câu hỏi này trong diễn đàn của chương trình này. Trong trường hợp đó, hãy nhớ miêu tả chính xác và cụ thể lỗi gặp phải. Những trước tiên hãy tự tìm hiểu thật kỹ càng, về “linux” và tất cả những phần cứng thấy khả nghi.

Hỏi:
Làm thế nào để lấy mật mã root/lấy đặc quyền/đọc email của người khác?
Trả lời:
Bạn thật là một thằng thấp hèn khi muốn làm những việc như thế và quả thật là ngu ngốc khi hỏi hacker giúp việc đó.

5. Câu hỏi hay và dở

Hỏi dở: Tôi có thể tìm các tài liệu về Foonly Flurbarmatic ở đâu?
Hỏi kiểu này sẽ nhận được trả lời là “STFW”

Hỏi hay: Tôi đã tìm “Foonly Flurbamatic 2600” trên Google, nhưng không kiếm được thông tin nào bổ ích. Không biết ai có thể chỉ cho tôi chỗ tìm được các tư liệu lập trình cho thiết bị này không?
Câu hỏi này đã được STFW rồi, có vẻ như là anh ta gặp rắc rối thật

Hỏi dở: Code của chương trình foo không compile được. Sao nó lại bị thế nhỉ?
Người hỏi câu hỏi này đổ lỗi cho người khác đã làm sai. Đúng là thằng ngốc.

Hỏi hay: Code của chương trình foo không compile được trong môi trường Nulix phiên bản 6.2. Tôi đã đọc FAQ, nhưng không thấy có nhắc đến vấn đề nào liên quan tới Nulix. Đây là bản ghi lại quá trình compile của tôi, có phải tôi đã làm gì sai không?
Anh ta đã chỉ rõ môi trường làm việc, đã đọc FAQ, chỉ ra lỗi và anh ta không đổ lỗi của vấn đề của mình là do người khác. Anh chàng này cũng đáng được quan tâm đây.

Hỏi dở: Bo mạch chủ của tôi bị làm sao ấy. Ai giúp tôi với được không?
Hacker Bất Kỳ sẽ trả lời bạn như thế này: “Được rồi. Thế em có cần thay tã và bón ăn luôn thể không?” kèm theo là nút delete xoá phăng thư của bạn.

Hỏi hay: Tôi đã thử X, Y và Z trên bo mạch chủ S2464. Khi không chạy được, tôi lại thử với A, B và C. Có một triệu chứng rất lạ khi thử với C. Rõ ràng “florbish” là “grommicking”, nhưng kết quả lại không như mong đợi. Cho hỏi các nguyên nhân thường gặp gây nên “grommicking” trên bo mạch chủ Athlon MP là gì? Có ai có biết nên thử kiểm tra với cái gì nữa để tôi có thể xác định rõ hơn nguyên nhân vấn đề?

Ngược lại, người này có vẻ như là đáng để trả lời. Anh ta đã thể hiện sự thông minh trong quá trình giải quyết trục trặc chứ không thụ động chờ đợi câu hỏi rớt từ trên cây sung xuống.

6. Ngu ngốc và thông minh

Ngu ngốc:
CỨU! Màn hình không làm việc tốt trên máy tính xách tay của tôi!

Thông minh:
XFree86 4.1, Con trỏ chuột bị méo mó, Fooware MV1005 vid. chipset

Thông minh hơn nữa:
Con trỏ chuột trong XFree86 4.1 (dùng chipset Fooware MV1005 vid.) bị méo mó

Ngu ngốc:
Tôi liên tục bị lỗi SIG11 khi biên dịch nhân, và cho rằng có một vết rạn nhỏ trên các vi mạch của bo mạch chủ. Đâu là cách tốt nhất để kiểm tra điều này?

Thông minh:
Cái máy tính tự lắp lấy của tôi dùng K6/233 trên bo mạch FIC-PA2007 (VIA Apollo VP2chipset) – với 256MB Corsair PC133 SDRAM – bắt đầu thường xuyên bị lỗi SIG11 khoảng 20 phút sau khi bật máy trong lúc đang biên dịch nhân, nhưng không bao giờ bị trong 20 phút đầu. Khởi động lại máy cũng không làm khởi động lại đồng hồ nhưng để máy tắt qua đêm thì có. Đẩy hết dữ liệu từ bộ nhớ sang phân vùng hoán đổi cũng không giúp gì. Sau đây là bản ghi của phiên biên dịch tiêu biểu.

Ngu ngốc:
Làm thế nào để có được công cụ chọn mầu trong chương trình FooDraw để lấy được giá trị thập lục phân của màu RGB?

Thông minh:
Tôi đang cố thay bảng mầu trong một hình ảnh với các giá trị khác mà tôi đã chọn. Ngay bây giờ cách duy nhất mà tôi thấy có thể làm là sửa từng bảng mầu một nhưng tôi không làm sao dùng công cụ chọn mầu trong FooDraw’s để lấy một giá trị thập lục phân của màu RGB.