Đặt một câu hỏi thông minh như thế nào ?

Published by Việt Coding on

Đặt một câu hỏi thông minh như thế nào

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

Mục lục

1     Các bản dịch
2     Miễn trừ trách nhiệm
3     Giới thiệu
4     Trước khi bạn hỏi
5     Khi bạn hỏi

5.1                      Hãy chọn diễn đàn cẩn thận

5.2                      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

5.3                      Bước kế tiếp, hãy sử dụng các nhóm thư của các dự án

5.4                      Hãy viết tiêu đề một cách rõ ràng, mạch lạc

5.5                      Hãy giúp việc trả lời dễ dàng

5.6                      Hãy viết bằng ngôn ngữ rõ ràng, đúng ngữ pháp và chính tả

5.7                      Hãy gửi câu hỏi bằng định dạng dễ hiểu

5.8                      Hãy mô tả vấn đề của bạn một cách chính xác và với đầy đủ thông tin

5.9                      Dài dòng không có nghĩa là chính xác

5.10                 Đừng tuyên bố rằng bạn đã tìm ra lỗi

5.11                 Khổ nhục kế sẽ không giúp giải bài tập về nhà

5.12                 Hãy mô tả triệu chứng sự cố, chứ không phải những phỏng đoán

5.13                 Hãy mô tả triệu chứng sự cố theo trình tự thời gian

5.14                 Hãy mô tả mục đích cần đạt được, chứ không phải các bước

5.15                 Đừng đòi hỏi được trả lời bằng thư riêng

5.16                 Hãy dứt khoát với các câu hỏi của bạn

5.17                 Đừng hỏi các câu hỏi trong bài tập về nhà

5.18                 Hãy lược bớt các câu hỏi vu vơ

5.19                 Đừ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

5.20                 Phép lịch sự không bao giờ thừa, và đôi khi rất có ích

5.21                 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 đề)
6     Hiểu câu trả lời như thế nào

6.1                      RTFM và STFW: Làm thế nào để biết rằng bạn đã thực sự gặp rắc rối

6.2                      Nếu bạn không hiểu…

6.3                      Khi bị đối xử một cách cục cằn
7     Làm thế nào để không cư xử như một kẻ thất bại
8     Những câu hỏi không nên hỏi
9     Câu hỏi hay và dở
10          Nếu bạn không nhận được câu trả lời
11          Làm thế nào để trả lời có thể giúp ích cho người hỏi
12          Nguồn tài liệu liên quan
13          Các đóng góp

1.    Các bản dịch

Các ngôn ngữ mà văn bản này đã được dịch ra: tiếng Việt(1) , Trung Quốc, Séc, Đan Mạch, Ét-tô-ni-a, Pháp, Đức, Do Thái, Hungary, Ý, Nhật Bản, Ba Lan, Nga, Tây Ban Nha, Thụy Điển, Thổ Nhĩ Kỳ. Nếu bạn muốn sao chép, làm mirror, dịch thuật hay trích dẫn tài liệu này, vui lòng đọc chính sách về bản quyền.
[separator]
2.   Miễn trừ trách nhiệm

Rất nhiều các trang web dự án đặt liên kết tới tài liệu này trong mục làm thế nào để được trợ giúp. Điều đó rất tốt, đó là giá trị sử dụng mà chúng tôi mong đợi – nhưng nếu bạn là webmaster tạo ra các liên kết như vậy thì vui lòng đặt gần đó lời báo trước rằng chúng tôi không phải là dịch vụ hỗ trợ cho dự án của bạn! Khi không có thông báo đó, chúng tôi sẽ liên tục bị quấy nhiễu bởi những tên ngốc tưởng rằng chúng tôi đã xuất bản tài liệu này để ám chỉ rằng công việc của chúng tôi là giải quyết các vấn đề kỹ thuật của cả thế giới. Nếu bạn đọc tài liệu này vì cần sự giúp đỡ và bạn bước đi với cảm giác rằng sẽ được tác giả trực tiếp giúp đỡ thì bạn chính là thằng ngốc đó. Đừng đặt các câu hỏi cho chúng tôi. Đơn giản là chúng tôi sẽ phớt lờ bạn. Chúng tôi ở đây để chỉ ra cho bạn cách có được sự giúp đỡ từ những người thực sự hiểu biết về phần mềm hoặc phần cứng mà bạn đang gặp phải, nhưng 99% sẽ không phải là từ chúng tôi. Trừ trường hợp bạn biết chắc chắn rằng một trong các tác giả là chuyên gia về lĩnh vực mà bạn đang quan tâm, thì vui lòng hãy để chúng tôi yên và tất cả sẽ hạnh phúc hơn.
3.    Giới thiệu

Trong thế giới của hacker(2) , loại câu trả lời mà bạn nhận được cho các câu hỏi kỹ thuật của bạn phụ thuộc vào cách bạn đặt câu hỏi cũng như là vào sự khó khăn để nghĩ ra câu trả lời. Tài liệu này sẽ hướng dẫn bạn cách đặt câu hỏi để có khả năng có được câu trả lời vừa ý cao nhất. Hiện nay việc sử dụng phần mềm mã nguồn mở đã trở nên phổ biến, bạn có thể có được câu trả lời từ các người dùng có kinh nghiệm khác hơn là từ các hacker. Đây là một điều tốt; người dùng thường có chút gì đó dễ thông cảm hơn cho các thất bại mà những người mới sử dụng gặp phải. Mặc dù vậy, cư xử với các người dùng có kinh nghiệm như đối với hacker theo cách mà chúng tôi đề nghị ở đây sẽ thường là cách hiệu quả nhất để có được câu trả lời có ích từ họ. Điều đầu tiên cần ghi nhớ là hacker thực sự thích các vấn đề hóc búa và các câu hỏi hay, đòi hỏi nhiều suy nghĩ. Nếu chúng ta không làm thế, chúng ta sẽ không có mặt ở đây. Nếu bạn đưa ra một câu hỏi thú vị để nghiền ngẫm chúng tôi sẽ rất biết ơn bạn; các câu hỏi hay không những là sự kích thích mà còn là món quà thú vị. Các câu hỏi hay giúp chúng tôi phát triển sự hiểu biết và thường giúp khám phá ra các vấn đề mà chúng tôi không để ý hoặc chưa từng nghĩ tới. Trong giới hacker, “Hỏi hay lắm!” là một lời khen nồng nhiệt và chân thành. Mặc dù vậy, từ lâu hacker đã nổi tiếng với cách cư xử như thù địch hoặc kiêu ngạo trước những câu hỏi thiếu suy nghĩ. Đôi khi có vẻ như chúng tôi đối xử một cách thô lỗ với những người mới bắt đầu hoặc những người kém cỏi. Nhưng điều này không thực sự đúng. Điều chúng tôi làm, một cách không thương tiếc, là căm ghét những kẻ dường như không sẵn sàng suy nghĩ hay làm bài tập ở nhà của họ trước khi bắt đầu đặt các câu hỏi. Loại người như vậy thật là phí thời gian – họ chỉ biết lấy mà không biết cho lại, họ làm phí thời gian mà chúng tôi có thể dành cho các câu hỏi khác thú vị hơn hay dành cho người đáng có câu trả lời hơn. Chúng tôi gọi loại người này là “những kẻ thất bại (losers)” (và vì các lý do của lịch sử mà thỉnh thoảng chúng tôi viết là “lusers”). Chúng tôi nhận ra rằng rất nhiều người chỉ muốn dùng các phần mềm chúng tôi viết mà chả quan tâm gì đến việc học các chi tiết về cách viết các chương trình như thế. Với phần lớn mọi người, máy tính chỉ đơn thuần là một công cụ, một phương tiện cho một mục đích nào đó; họ có điều khác quan trọng hơn để làm và cuộc sống quan trọng hơn để sống. Chúng tôi thấu hiểu điều đó và không mong mọi người quan tâm đến các vấn đề kỹ thuật đã làm cho chúng tôi say mê. Vì vậy, cách trả lời của chúng tôi được làm cho phù hợp với những người thực sự quan tâm và sẵn sàng tham gia tích cực trong việc giải quyết các sự cố. Điều này sẽ không thay đổi. Và cũng không nên thay đổi; nếu sự việc thay đổi thì chúng tôi sẽ trở nên kém hiệu quả trong những việc mà chúng tôi có thể làm tốt nhất. Phần lớn chúng tôi là những người tình nguyện. Chúng tôi tranh thủ thời gian trong cuộc sống bận rộn để trả lời các câu hỏi và nhiều lần chúng tôi bị chìm ngập trong các câu hỏi đó. Vì vậy chúng tôi chọn lọc một cách không thương tiếc. Cụ thể là chúng tôi cho vào sọt rác các câu hỏi từ những người có vẻ là một kẻ thất bại nhằm mục đích sử dụng thời gian trả lời câu hỏi của chúng tôi một cách hiệu quả hơn, cho những người tỏ ra là thành công. Nếu bạn thấy thái độ này là đáng ghét, ghê tởm hay ngạo mạn, hãy xem lại các trách nhiệm của bạn. Chúng tôi không yêu cầu bạn phải quỳ gối trước chúng tôi – mà thực tế là chúng tôi không mong ước điều gì hơn là đối xử công bằng với các bạn và chào đón các bạn đến với nền văn hóa của chúng tôi, nếu như bạn cố gắng biến điều đó trở thành hiện thực. Nhưng đơn giản là sẽ không hiệu quả nếu chúng tôi cố gắng giúp những người không sẵn sàng giúp chính bản thân mình. Không biết thì không có vấn đề gì, nhưng hành động ngu ngốc thì không thể chấp nhận được. Vì vậy không nhất thiết phải thành thạo về kỹ thuật mới có được sự quan tâm của chúng tôi, mà nhất thiết phải tỏ ra là có năng lực, nhanh nhẹn, chịu khó suy nghĩ, có óc quan sát, sẵn sàng là một thành viên tích cực trong việc phát triển một giải pháp. Nếu bạn không thể sống với sự phân biệt đối xử này, chúng tôi khuyên bạn là trả tiền cho dịch vụ hỗ trợ thay vì yêu cầu hacker tặng cho bạn sự giúp đỡ cá nhân. Nếu bạn quyết định đến với chúng tôi để được giúp đỡ, bạn sẽ không muốn mình là một kẻ thất bại. Bạn cũng không muốn giống như một người trong số kẻ thất bại đó. Cách tốt nhất để có câu trả lời nhanh và hào hứng là hỏi như thể bạn là một người thông minh, tự tin và có đầu có cuối, người mà chỉ đôi khi mới cần sự giúp đỡ cho một vấn đề cụ thể. (Những đóng góp làm cho tài liệu này trở nên tốt hơn rất được hoan nghênh. Bạn có thể gửi các gợi ý bằng thư điện tử tới esr@thyrsus.com. Xin chú ý là dù sao tài liệu này không có mục đích trở thành hướng dẫn chung cho {\bf netiquette}(3) , và tôi sẽ bỏ qua các gợi ý không liên quan trực tiếp tới việc làm thế nào để có được các câu trả lời tốt trong các diễn đàn kỹ thuật.)

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

Trước khi đặt các câu hỏi kỹ thuật bằng thư điện tử, trong các nhóm tin, hay trong các diễn đàn trực tuyến, hãy làm các điều sau:

* 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(4)
* 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.

Khi bạn đặt câu hỏi thì hãy nói ngay là bạn đã làm các bước ở trên rồi; điều này sẽ giúp chứng tỏ là bạn không phải là một kẻ lười biếng và làm phí thời gian của người khác. Sẽ tốt hơn nữa nếu bạn nói là bạn đã học được nhiều điều khi thực hành các bước trên. Chúng tôi thích trả lời các câu hỏi cho những người chứng tỏ rằng họ có thể học hỏi từ các câu trả lời. Sử dụng các chiến thuật như tiến hành tìm kiếm trên Google với các dòng chữ của tất cả các thông báo lỗi mà bạn gặp phải (và tìm kiếm trên các nhóm tin Google song song với tìm kiếm trên các trang Web). Điều này có thể mang bạn tới thẳng các tài liệu hướng dẫn sửa lỗi hay một nhóm thư(5) có thể trả lời cho câu hỏi của bạn. Thậm chí nếu không được thì nói “Tôi đã tìm trên Google đoạn thông báo sau nhưng vẫn chưa tìm thấy gì có ích” cũng là một điều tốt để đặt trong câu hỏi ở thư điện tử hoặc các tin nhắn nhờ giúp đỡ. Hãy chuẩn bị câu hỏi của bạn. Hãy suy nghĩ thật thấu đáo. Các câu hỏi vội vàng sẽ có câu trả lời vội vàng hoặc không có câu trả lời nào cả. Bạn càng chứng tỏ là đã cố gắng đầu tư nhiều công sức vào việc giải quyết vấn đề của bạn trước khi hỏi thì bạn càng có cơ hội được giúp đỡ. Hãy cẩn thận với việc đặt nhầm câu hỏi. Nếu bạn đặt câu hỏi dựa trên những phỏng đoán sai lầm thì Hacker Bất Kỳ sẽ tự nhủ “Thật là một câu hỏi ngu ngốc…” rồi trả lời một câu thật vô dụng và hi vọng là lần hỏi gì được nấy này sẽ dạy cho bạn một bài học. Đừng bao giờ nghĩ rằng bạn có quyền có câu trả lời. Nói cho cùng thì bạn không phải trả tiền cho dịch vụ. Bạn sẽ có được câu trả lời, nếu có, bằng việc hỏi các câu hỏi thực tế, thú vị và lôi cuốn – câu hỏi mà sẽ đóng góp cho kinh nghiệm của cộng đồng chứ không chỉ đơn thuần là đòi hỏi một cách thụ động trí thức từ những người khác. Mặt khác, bạn phải làm rõ rằng bạn có thể và sẵn sàng giúp đỡ trong quá trình tìm ra giải pháp và đó sẽ là một sự khởi đầu tốt. Các câu hỏi như: “Ai đó vui lòng cho xin một chỉ dẫn được không?”, “Ví dụ của tôi thiếu cái gì?” và “Tôi nên kiểm tra trên trang web nào?” thường dễ có được câu trả lời hơn là “Vui lòng hãy viết cho tôi chính xác các bước tôi cần tiến hành.” bởi vì bạn đã làm rõ rằng bạn sẵn sàng hoàn tất việc tìm kiếm giải pháp nếu có ai đó cho bạn một chỉ dẫn đúng hướng.

5.    Khi bạn hỏi

5.1         Hãy chọn diễn đàn cẩn thận

Hãy trở nên nhạy cảm trong việc chọn nơi bạn sẽ đặt câu hỏi. Bạn sẽ bị phớt lờ hoặc đối xử như đồ bỏ đi nếu bạn:

* 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 đề
* 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
* Gửi câu hỏi chồng chéo trên quá nhiều diễn đàn
* Gửi thư riêng tới người không phải là người thân và cũng không phải là người có trách nhiệm cá nhân phải giải quyết vấn đề của bạn

Hacker thường bỏ qua các câu hỏi có mục đích không thích hợp để bảo vệ kênh liên lạc của họ khỏi bị tràn ngập với những điều không liên quan. Chắc chắn bạn sẽ không muốn điều này xảy ra cho bạn. Bước thứ nhất là chọn diễn đàn thích hợp. Tiếp theo, công cụ tìm kiếm Google và các công cụ tìm kiếm khác trên web là những người bạn tốt. Sử dụng các công cụ đó để tìm các trang web liên quan tới các phần cứng hoặc phần mềm mà bạn gặp khó khăn. Thường là nó sẽ có liên kết dẫn tới bản FAQ, và tới các nhóm thư của các dự án và các hồ sơ lưu trữ của họ. Những nhóm thư này là nơi cuối cùng để tìm kiếm sự giúp đỡ, nếu tất cả các cố gắng của bạn (bao gồm đọc hết những FAQ bạn tìm thấy) đều không mang lại cho bạn một giải pháp nào. Trang chủ của các dự án có thể cũng mô tả trình tự báo cáo việc tìm thấy lỗi hoặc có liên kết tới nơi như vậy; nếu có, hãy làm như thế. Gửi một email tới một người hoặc một diễn đàn mà bạn không quen biết là rủi ro lớn nhất. Ví dụ, đừng nghĩ rằng chủ nhân của một trang web tin học muốn trở thành người tư vấn không công cho bạn. Đừng nghĩ một cách lạc quan là câu hỏi của bạn sẽ được hoan nghênh – nếu bạn không chắc chắn thì hãy gửi câu hỏi tới nơi khác hoặc đừng gửi gì cả. Khi lựa chọn một diễn đàn, nhóm tin hay nhóm thư, đừng quá tin vào cái tên của chúng; tìm kiếm một FAQ hay một hướng dẫn để kiểm chứng rằng câu hỏi của bạn là đúng chủ đề. Hãy đọc một vài tin cũ trước khi gửi câu hỏi mới để biết được các vấn đề được giải quyết ở đây như thế nào. Thực tế là nếu bạn tìm kiếm các từ liên quan đến vấn đề của bạn trên nhóm tin hoặc nhóm thư trước khi gửi câu hỏi sẽ là một ý kiến hay. Có thể bạn sẽ tìm được câu trả lời và nếu không thì nó sẽ giúp bạn xây dựng nên một câu hỏi tốt hơn. Đừng gửi các câu hỏi tràn lan đi nhiều nơi cùng một lúc, điều đó giống như sự la hét và chọc tức mọi người. Hãy gửi các câu hỏi lần lượt từng nơi một. Hãy nắm vững chủ đề câu hỏi của bạn là gì! Một trong những sai lầm cổ điển là hỏi về ngôn ngữ lập trình trên Unix hay Windows trong một diễn đàn của một ngôn ngữ lập trình có thể dùng trên cả hai môi trường (ví dụ là JAVA). Nếu bạn không hiểu tại sao điều này là ngớ ngẩn thì tốt hơn là bạn đừng hỏi câu hỏi nào hết tới khi bạn hiểu ra vấn đề. Nói chung là các câu hỏi gửi tới các diễn đàn công cộng được lựa chọn kỹ thường có nhiều câu trả lời hữu ích hơn là hỏi các diễn đàn riêng tư. Có nhiều lý do cho việc này. Thứ nhất là số lượng người có thể trả lời bạn. Hơn nữa là số lượng khán giả; các hacker thích trả lời các câu hỏi mà có thể rèn luyện kỹ năng cho nhiều người hơn là các câu hỏi chỉ phục vụ cho số ít. Phải hiểu rằng các hacker kinh nghiệm và các tác giả của các phần mềm thông dụng thường nhận được quá nhiều các câu hỏi lạc đề. Nếu thêm vào cơn lũ đó bạn có thể gây nên tình cảnh nghiêm trọng và bạn sẽ là giọt nước làm tràn ly nước – không phải là ít lần, những người đóng góp cho các dự án rất phổ biến đã rút lui khỏi công việc hỗ trợ vì các thiệt hại gây ra bởi các thư điện tử vô bổ đã làm hộp thư của họ tắc nghẽn không sử dụng được nữa.
5.2         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

Nhóm những người dùng tại nơi bạn ở hoặc bản phân phối Linux mà bạn dùng có thể quảng bá về một diễn đàn trên trang web hoặc IRC nơi những người mới bắt đầu có thể có được sự trợ giúp. (Ở các nước không nói tiếng Anh, phần lớn các diễn đàn dành cho người mới bắt đầu thường là các nhóm thư.) Đó là những nơi tốt để bắt đầu hỏi, nhất là khi bạn nghĩ bạn đã gặp phải các vấn đề tương đối đơn giản hoặc phổ biến. Một diễn đàn IRC được quảng bá là một lời mời cởi mở để bạn đặt các câu hỏi và thường có được câu trả lời ngay lập tức. Trên thực tế, nếu bạn gặp vấn đề với chương trình từ một bản phân phối Linux thông dụng, tốt nhất là hỏi trong các diễn đàn của bản phân phối này trước khi hỏi ở diễn đàn của dự án viết ra chương trình. Các hacker của chương trình đó thường chỉ cần nói, “hãy dùng chương trình được chúng tôi biên dịch”. Trước khi gửi câu hỏi tới bất cứ diễn đàn trên web nào hãy kiểm tra xem nó có chức năng tìm kiếm không. Và nếu có thì hãy thử tìm kiếm với vài từ khoá giống như vấn đề mà bạn gặp phải, có thể là bạn sẽ tìm ra câu trả lời. Nếu bạn đã tìm kiếm chung chung trên web trước đó thì hãy cứ tìm kiếm trên diễn đàn; công cụ tìm kiếm trên web có thể chưa tạo bảng chỉ mục mới nhất cho diễn đàn này. Các dự án có xu hướng làm dịch vụ hỗ trợ người dùng qua diễn đàn trên web và IRC, nơi mà các thư điện tử được lưu giữ tốt hơn cho quá trình phát triển dự án. Vậy hãy tìm kiếm những diễn đàn như vậy khi cần sự trợ giúp cho các vấn đề liên quan trực tiếp đến các dự án phần mềm.
[]b]5.3         Bước kế tiếp, hãy sử dụng các nhóm thư của các dự án
[/b]
Khi một dự án có một nhóm thư phục vụ việc phát triển thì hãy gửi câu hỏi ở đó chứ không gửi cho từng người phát triển riêng lẻ, ngay cả khi bạn biết là ai có thể trả lời câu hỏi của bạn tốt nhất. Hãy đọc qua tài liệu của dự án và trang chủ để tìm một nhóm thư của dự án và sử dụng nó. Chính sách này có vài điểm tốt như sau:

* Bất cứ câu hỏi nào đáng để hỏi một người phát triển thì cũng tốt cho cả nhóm. Ngược lại, nếu bạn cảm thấy câu hỏi của bạn quá ngốc nghếch thì đó cũng không phải là lý đo để làm phiền từng người phát triển một.
* Hỏi các câu hỏi trên diễn đàn sẽ chia sẻ sức ép giữa các người phát triển. Mỗi người phát triển (đặc biệt nếu anh ta là lãnh đạo của nhóm phát triển) sẽ quá bận để có thể trả lời cho các câu hỏi của bạn.
* Phần lớn các nhóm thư có hồ sơ lưu và các hồ sơ lưu này sẽ được lập chỉ mục bởi các công cụ tìm kiếm (trên web). Ai đó có thể sẽ tìm thấy câu hỏi của bạn và câu trả lời trên web thay vì phải hỏi lại trên nhóm thư.
* Nếu một số câu hỏi được hỏi nhiều lần thì các người phát triển có thể dùng thông tin đó để hoàn thiện thêm tài liệu của phần mềm. Nhưng nếu được hỏi riêng thì không ai biết được câu nào được hỏi thường xuyên nhất.

Nếu một dự án có cả nhóm thư hay diễn đàn của “người dùng” và “người phát triển” (hay “các hacker”), và bạn không phải là người có thể viết các dòng lệnh thì hãy hỏi trong nhóm thư hoặc diễn đàn của “người dùng”. Đừng tưởng rằng bạn sẽ được hoan nghênh trên nhóm thư của người phát triển, nơi mà họ sẽ cảm thấy các câu hỏi của bạn sự ồn ào làm gián đoạn công việc phát triển của họ. Tuy nhiên nếu bạn chắc chắn câu hỏi của bạn là không tầm thường và bạn không có được câu trả lời trong diễn đàn của “người dùng” trong vài ngày thì hãy thử diễn đàn của “những người phát triển”. Bạn nên cẩn thận giấu mình ở đó vài ngày trước khi gửi các câu hỏi để học cách các thành viên nói chuyện với nhau thế nào (thực sự đây là một lời khuyên tốt khi tham gia bất kỳ một diễn đàn riêng tư hoặc bán riêng tư nào). Nếu bạn không thể tìm thấy nhóm thư cho dự án mà chỉ thấy địa chỉ thư điện tử của người duy trì dự án thì cứ gửi câu hỏi cho người đó. Nhưng thậm chí trong trường hợp đó cũng đừng tưởng là nhóm thư không tồn tại. Hãy nêu trong thư rằng bạn đã cố tìm nhưng không thấy nhóm thư thích hợp. Cũng nên nêu rằng bạn không phản đối nếu thư của bạn được chuyển tới những người khác. (Rất nhiều người tin rằng thư riêng phải được giữ trong riêng tư mặc dù chả có gì bí mật trong đó. Bằng việc cho phép thư của bạn được chuyển tới cho người khác bạn đã cho người nhận thư của bạn cơ hội được lựa chọn cách xử lý lá thư của bạn.)

5.4         Hãy viết tiêu đề một cách rõ ràng, mạch lạc

Trong nhóm thư, nhóm tin hay diễn đàn trên Web, tiêu đề là cơ hội vàng của bạn để có được sự chú ý của các chuyên gia cao cấp nếu chúng chỉ bao gồm 50 ký tự hoặc ít hơn. Đừng phí chúng bằng cách lảm nhảm như “Xin hãy giúp đỡ tôi” (chưa kể đến những câu như “XIN HÃY VUI LÒNG GIÚP TÔI!!!!”; những thông điệp như thế sẽ bị bỏ qua theo phản xạ). Đừng cố gây ấn tượng với chúng tôi bằng sự đau khổ của bạn; hãy sử dụng tiêu đề để mô tả vấn đề một cách hết sức ngắn gọn súc tích. Một thông lệ tốt cho tiêu đề được sử dụng bởi nhiều công ty hỗ trợ là diễn đạt theo hướng “đối tượng – sự cố”. Phần “đối tượng” chỉ ra cái gì đã gặp sự cố, và phần “sự cố” mô tả sự cố đã xuất phát từ những tác động gì. 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ó

Việc viết tiêu đề theo hướng “đối tượng – sự cố” sẽ giúp bạn suy nghĩ về vấn đề của mình một cách chi tiết hơn. Cái gì bị ảnh hưởng? Chỉ con trỏ chuột hay cả các hình ảnh khác nữa? Cái này có liên quan trực tiếp tới XFree86 không? Hay liên quan tới phiên bản 4.1? Cái này có liên quan trực tiếp tới các chipset Fooware video không? Hay tới model MV1005? Một hacker chỉ cần nhìn thoáng qua cũng có thể hiểu bạn đã gặp phải vấn đề với cái gì và vấn đề của bạn là gì. Một cách tổng quát hơn, hãy hình dung bạn đang nhìn vào chỉ mục của hồ sơ lưu các câu hỏi, nơi mà chỉ có các tiêu đề. Hãy làm cho tiêu đề mô tả câu hỏi rõ ràng đến mức mà người sau tìm kiếm trong hồ sơ lưu cho câu hỏi giống như câu của bạn có thể theo đó để tìm câu trả lời hơn là hỏi lại. Nếu bạn hỏi lại một câu trả lời thì hãy đổi tiêu đề để chỉ ra rằng là bạn đang hỏi. Một tiêu đề như: “Re: thử” hay “Re: lỗi mới” thường là ít khi lôi cuốn được sự chú ý có ích của nhiều người. Nhân tiện, hãy trích dẫn một phần của thư trước để làm manh mối cho những người đọc sau. Đừng chỉ nhấp vào nút “Reply” của một thư cũ để bắt đầu một {\bf mạch}(6) mới. Điều này sẽ hạn chế người xem câu hỏi của bạn. Một số phần mềm đọc thư như Mutt, cho phép người đọc lọc các thư theo mạch và bỏ các thư như vậy vào mạch cũ. Những người làm như thế sẽ không bao giờ thấy các thư của bạn. Hành động này thường được gọi là cướp mạch(7) . Trong trường hợp như thế thay đổi tiêu đề vẫn chưa đủ. Mutt, và một số phần mềm đọc thư khác nhìn vào các thông tin bên trong phần đầu lá thư để gán nó vào một mạch chứ không chỉ tiêu đề. Vì thế hãy bắt đầu một mạch thư mới. Trong các diễn đàn trên Web thì quy tắc thực hành tốt lại hơi khác, bởi vì các thông điệp thường là gắn kết gọn gàng với các mạch thảo luận và không hiển thị bên ngoài các mạch thảo luận đó. Đổi các tiêu đề khi hỏi lại câu trả lời là không cần thiết (không phải tất cả các diễn đàn đều cho phép có các tiêu đề riêng rẽ trong các thông điệp trả lời và gần như không ai sẽ đọc nếu họ làm thế). Nhưng hỏi vấn đề mới trong mạch cũ thường là rất lơ mơ bởi vì nó chỉ được đọc bởi những người đang xem mạch thảo luận này. Vì vậy, trừ trường hợp bạn chắc chắn muốn hỏi người đang hoạt động trong mạch thảo luận này, còn không thì hãy bắt đầu một mạch thảo luận mới.
5.5         Hãy giúp việc trả lời dễ dàng

Kết thúc câu hỏi của bạn với “vui lòng hãy gửi câu trả lời tới…” thường sẽ không mang lại cho bạn câu trả lời. Nếu bạn không thể bỏ ra vài giây để thiết lập phần địa chỉ trả lời Reply-To trong phần mềm đọc thư của bạn thì chúng tôi cũng chẳng muốn bỏ ra giây nào để nghĩ về vấn đề của bạn. Nếu phần mềm đọc thư của bạn không cho phép làm điều này thì hãy chọn một phần mềm tốt hơn. Nếu hệ điều hành của bạn không hỗ trợ bất kỳ một phần mềm đọc thư nào như thế thì hãy chọn một hệ điều hành tốt hơn. Trong các diễn đàn trên Web, đòi hỏi được trả lời bằng thư điện tử là hết sức thô lỗ, trừ trường hợp bạn tin rằng thông tin đó là nhạy cảm (và ai đó sẽ, vì một lý do nào đó, cho bạn biết chứ không phải cả diễn đàn). Nếu bạn muốn có thư điện tử trả lời khi ai đó trả lời trong mạch thảo luận thì hãy yêu cầu phần mềm diễn đàn làm việc đó, chức năng này được hỗ trợ ở hầu hết các diễn đàn dưới các lựa chọn như “theo dõi mạch thảo luận này”,“gửi thư điện tử khi có trả lời”…
5.6         Hãy viết bằng ngôn ngữ rõ ràng, đúng ngữ pháp và chính tả

Kinh nghiệm cho thấy những người viết một cách cẩu thả và tuỳ tiện thường cẩu thả và tuỳ tiện trong suy nghĩ và viết chương trình (chuyện này xảy ra thường xuyên đến mức có thể chắc chắn như vậy). Trả lời các câu hỏi của người suy nghĩ một cách cẩu thả và tuỳ tiện thật là việc không đáng làm, chúng tôi cần thời gian để làm việc riêng của mình. Vì vậy việc diễn đạt câu hỏi của bạn một cách rõ ràng và cẩn thận là rất quan trọng. Nếu bạn không thể làm thế thì chúng tôi cũng chẳng thèm quan tâm. Hãy cố gắng thêm nữa để đánh bóng ngôn ngữ của bạn. Không cần phải quá cứng nhắc hay quá trang trọng – thực tế văn hóa của hacker là dùng các từ thông dụng, tiếng lóng và hài hước mà vẫn mô tả chính xác sự việc. Nhưng các câu hỏi cần phải chính xác; điều này chỉ ra rằng bạn có suy nghĩ và quan tâm đến sự việc. Hãy kiểm tra chính tả, các dấu chấm câu và viết hoa cẩn thận. Đừng nhầm lẫn giữa “của nó (its)” với “nó là (it’s)”, “lỏng lẻo (loose)” với “thất lạc (lose)”, hay “riêng biệt (discrete)” với “dè dặt (discreet)”. Đừng DÙNG TOÀN CHỮ HOA, cái này được đọc như một lời la hét và bị đánh giá là thô lỗ. (Viết toàn chữ nhỏ cũng chỉ bớt khó chịu hơn một chút vì nó cũng rất khó đọc. Alan Cox có thể thoát được còn bạn thì không đâu.) Nói chung là nếu bạn viết như một người ngốc nghếch không học hành cẩn thận thì chắc chắn sẽ bị phớt lờ. Viết lách như vậy chính là nụ hôn của tử thần và bạn sẽ nhận được không gì khác ngoài sự im lặng lạnh lùng (hoặc thậm chí là một loạt các lời chế nhạo và khinh bỉ). Nếu bạn đặt câu hỏi trong một diễn đàn không phải bằng ngôn ngữ địa phương của bạn thì có thể bạn sẽ nhận được một ít thông cảm về chính tả và ngữ pháp – nhưng sẽ không có thêm một chút thông cảm nào hơn cho sự lười biếng (và chúng tôi thường là có thể nhận ra sự khác biệt đó). Bên cạnh đó, trừ khi bạn biết chắc ngôn ngữ của người nhận là gì thì tốt nhất là bạn nên viết bằng tiếng Anh. Những hacker bận rộn sẽ giũ bỏ các câu hỏi với các ngôn ngữ mà họ không hiểu và tiếng Anh là ngôn ngữ thông dụng trên Internet. Với việc viết bằng tiếng Anh bạn sẽ giảm thiểu nguy cơ các câu hỏi của bạn bị bỏ qua.
5.7         Hãy gửi câu hỏi bằng định dạng dễ hiểu

Nếu bạn cố tình làm cho câu hỏi của bạn trở nên khó đọc thì nó sẽ bị bỏ qua để dành cho câu hỏi không khó đọc như thế. Vì vậy:

* Hãy gửi các thư điện tử bằng chữ đơn giản(8) , đừng dùng HTML. (Chả có gì khó khăn để tắt HTML(9) .)
* Các đính kèm dạng MIME thường không gặp vấn đề gì, nhưng chỉ khi đó là nội dung thực sự (như bản đính kèm mã nguồn hay bản vá lỗi), chứ không phải là phần văn bản tạo ra bởi phần mềm đọc thư của bạn (ví dụ như một bản với định dạng khác của nội dung thư).
* Đừng gửi bức thư mà toàn bộ một đoạn văn chỉ là một dòng được tạm ngắt thành nhiều dòng tự động. (Điều này làm cho việc trả lời một phần bức thư trở nên quá khó khăn.) Bạn hãy tưởng tượng là những người sẽ trả lời thư của bạn đọc thử trên một màn hình có chiều rộng 80 ký tự và bạn nên ngắt dòng tương tự, ít hơn 80 ký tự.
* Tuy nhiên, đừng bao giờ ngắt dòng dữ liệu (như nội dung chương trình lấy từ bộ nhớ(10) hoặc các thông báo khi chạy chương trình(11) ). Dữ liệu phải được gửi kèm y nguyên để những người trả lời thư của bạn có thể tự tin là họ đang nhìn thấy những gì bạn đã thấy.
* Đừng gửi thư với bảng mã MIME Quoted-Printable tới một diễn đàn tiếng Anh. Bảng mã này sẽ cần thiết khi bạn gửi thư bằng ngôn ngữ mà ASCII không hỗ trợ, nhưng phần lớn các phần mềm đọc thư không hỗ trợ chúng. Khi ngắt dòng, tất cả các ký tự có dạng =20 sẽ nằm rải rác khắp nơi làm cho dòng chữ trở nên xấu xí và rối bời.
* Đừng bao giờ mong các hacker có thể đọc các tài liệu có định dạng có bản quyền đóng như Microsoft Word hay Excel. Phần lớn hacker phản ứng với điều này giống như bạn thấy một đống phân heo còn nghi ngút hơi ngay trước cửa ra vào nhà bạn. Ngay cả khi họ có thể hợp tác thì họ cũng rất bực tức khi làm vậy.
* Nếu bạn gửi thư từ một máy Windows thì hãy tắt chức năng ngu ngốc của Microsoft là “Smart Quotes”. Làm vậy để bạn khỏi tránh việc bức thư của bạn sẽ có đầy các ký tự rác.
* Trên các diễn đàn trên Web, đừng lạm dụng “các ký tự biểu cảm (smiley)” và “html” (khi diễn đàn có chức năng đó). Một hoặc hai ký tự biểu cảm thì không có vấn đề gì nhưng cả dòng chữ được định dạng với màu sắc lòe loẹt thì làm cho mọi người nghĩ bạn không bình thường. Dùng các ký tự biểu cảm quá mức và các dòng chữ màu sắc lòe loẹt sẽ làm cho bạn trông giống như một cô gái mười mấy tuổi hay cười, điều mà không phải là một ý kiến hay trừ khi bạn quan tâm tới sex hơn là các câu trả lời.

Nếu bạn dùng một phần mềm đọc thư có giao diện đồ họa (như Netscape Messenger, MS Outlook, hay các phần mềm cùng loại) hãy cẩn thận vì rất có thể các chương trình đó sẽ làm bạn vi phạm các quy luật trên với các thiết lập mặc định của nó. Phần lớn các chương trình như vậy có chức năng “Xem mã nguồn” (View Source). Sử dụng chức năng này trong mục thư đã gửi để chắc chắn là bạn gửi thư toàn các ký tự thông thường mà không có các phần không cần thiết.

5.8         Hãy mô tả vấn đề của bạn một cách chính xác và 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ả bản phân phối của bạn và phiên bản đang dùng (ví dụ: “Fedora Core 2”, “Slackware 9.1”…).
* 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à các hacker có thể hỏi và trả lời chúng trước khi yêu cầu sự giúp đỡ. Simon Tatham đã viết một bài tiểu luận tuyệt vời có tiêu đề là Làm thế nào để báo lỗi phần mềm thật hiệu quả(12) . Tôi khuyên các bạn nên đọc tài liệu này.

5.9         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. Điều này không có nghĩa là đổ một lượng lớn thông tin về mã nguồn hay dữ liệu vào một yêu cầu giúp đỡ. Nếu bạn có một trường hợp thử nghiệm phức tạp và nó làm cho chương trình không chạy nữa thì hãy cố gắng làm cho nó gọn lại và càng nhỏ càng tốt. Điều này có lợi vì ít nhất 3 lý do. Một: bạn được xem là đã cố gắng làm cho câu hỏi trở nên đơn giản và thường là bạn sẽ có được câu trả lời. Hai: làm cho câu hỏi đơn giản hơn thường là làm cho bạn có câu trả lời hữu ích. Ba: trong quá trình trau chuốt câu hỏi của bạn có thể bạn tự tìm được cách khắc phục hoặc phương án khác.

5.10   Đừng tuyên bố rằng bạn đã tìm ra lỗi

Khi bạn gặp phải sự cố với một phần mềm thì đừng tuyên bố rằng bạn đã tìm ra lỗi trừ khi bạn rất chắc chắn về điều đó. Gợi ý: trừ khi bạn có thể cung cấp một đoạn mã nguồn có thể giải quyết sự cố hay một bước thử nghiệm hồi quy lại một phiên bản trước mà giải thích được sự hoạt động không bình thường của phần mềm đó thì bạn gần như là không chắc chắn lắm. Điều này áp dụng cho cả các trang web và các tài liệu khác, nếu bạn tìm thấy “lỗi”, bạn nên cung cấp một cụm từ thay thế và chỉ ra cần thay ở trang nào. Hãy nhớ rằng, có rất nhiều người dùng khác không trải qua các vấn đề của bạn. Nếu không thì bạn đã có thể biết về nó trong khi đọc các tài liệu và tìm kiếm trên web (bạn đã làm thế trước khi bạn phàn nàn chứ?). Điều này có nghĩa thường là chính bạn làm gì đó sai chứ không phải phần mềm. Những người viết ra phần mềm đã làm việc rất vất vả để phần mềm có thể chạy tốt tới mức có thể. Nếu bạn tuyên bố là bạn đã tìm ra lỗi thì bạn đã gián tiếp nói rằng họ đã làm gì đó sai và thường là bạn đã xúc phạm họ – thậm chí cả khi bạn đúng. Thực là không ý tứ tí nào khi la ầm lên trong tiêu đề thư là bạn đã tìm ra “lỗi”. Khi đặt câu hỏi, tốt nhất là viết như bạn đã làm gì đó sai, thậm chí trong thâm tâm bạn khá chắc chắn là bạn đã tìm ra lỗi thực sự. Nếu đó thực sự là lỗi thì bạn sẽ biết về nó trong câu trả lời. Hãy cư xử như vậy để người duy trì phần mềm sẽ xin lỗi bạn nếu có lỗi thật, còn không thì bạn sẽ nợ họ một lời xin lỗi vì bạn đã làm mọi thứ rối tung lên.

Một số người biết rằng không nên cư xử một cách thô lỗ hay kiêu ngạo khi yêu cầu một câu trả lời đã cư xử hoàn toàn ngược lại, tỏ vẻ khổ sở. “Tôi biết rằng tôi chỉ là một người thất bại đáng thương, nhưng…”. Điều này chỉ làm rối bời mọi thứ và hoàn toàn không nên. Nó đặc biệt là một sự quấy rầy nếu nó đi kèm với sự mơ hồ về vấn đề thực sự. Đừng làm phí thời gian của bạn cũng như của chúng tôi với những điều thô thiển như vậy. Thay vì thế hãy diễn đạt bối cảnh của sự việc và câu hỏi của bạn thật rõ ràng tới mức bạn có thể. Đó là cách tốt hơn để tạo ra vị trí của bạn. Đôi khi các diễn đàn trên web có nhiều nơi riêng cho các câu hỏi của người mới bắt đầu. Nếu bạn cảm thấy bạn có câu hỏi của những người như vậy thì hãy tới đó. Nhưng cũng đừng dùng khổ nhục kế.

5.11   Khổ nhục kế sẽ không giúp giải bài tập về nhà

Sẽ chả có ích gì khi nói với hacker những điều bạn nghĩ đã gây ra vấn đề. (Nếu chẩn đoán tốt như thế thì tại sao bạn lại cần tư vấn người khác để tìm sự giúp đỡ?). Vì vậy nói với họ triệu chứng thực sự của những gì đã xảy ra sẽ tốt hơn là giải thích và chẩn đoán. Hãy để họ làm việc đó. Nếu bạn cảm thấy việc nói ra các suy đoán của bạn là quan trọng thì hãy nói rõ như thế và mô tả tại sao câu trả lời đó không giúp được bạn. 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.

5.12   Hãy mô tả triệu chứng sự cố, chứ không phải những phỏng đoán

Sẽ chả có ích gì khi nói với hacker những điều bạn nghĩ đã gây ra vấn đề. (Nếu chẩn đoán tốt như thế thì tại sao bạn lại cần tư vấn người khác để tìm sự giúp đỡ?). Vì vậy nói với họ triệu chứng thực sự của những gì đã xảy ra sẽ tốt hơn là giải thích và chẩn đoán. Hãy để họ làm việc đó. Nếu bạn cảm thấy việc nói ra các suy đoán của bạn là quan trọng thì hãy nói rõ như thế và mô tả tại sao câu trả lời đó không giúp được bạn. 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.

5.13   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. Nếu phần mềm gặp sự cố của bạn có lựa chọn chẩn đoán (ví dụ -v để hiển thị nhiều thông tin), hãy cố nghĩ cẩn thận về việc lựa các tùy chọn sẽ thêm các thông tin gỡ rối có ích vào bản ghi. Nếu tài khoản người dùng của bạn kết thúc quá dài (hơn bốn khổ), thì sẽ có ích hơn nếu mô tả ngắn gọn vấn đề của bạn lên đầu và sau đó là phần đuôi theo thứ tự thời gian. Làm theo cách đó các hacker sẽ biết cần phải tìm gì khi đọc qua tài khoản người dùng của bạn.

5.14   Hãy mô tả mục đích cần đạt được, chứ không phải các bước

Nếu bạn đang cố gắng tìm hiểu thế nào để làm được một việc gì đó (ngược lại với báo cáo lỗi), hãy bắt đầu bằng việc mô tả mục tiêu cần thực hiện. Sau đó mới mô tả các bước mà bạn đã đi qua và bị vướng mắc. Thường thì người cần giúp đỡ về kỹ thuật thường có mục tiêu bậc cao và bị mắc kẹt trên con đường mà họ nghĩ là sẽ đi tới mục tiêu. Họ đến để tìm kiếm sự giúp đỡ cho các bước của họ mà không biết rằng con đường mà họ đã chọn là sai. Cần phải đầu tư rất nhiều nỗ lực để có thể vượt qua trở ngại này. 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.

Phiên bản thứ hai của câu hỏi là thông minh hơn. Nó cho phép câu trả lời gợi ý một công cụ phù hợp hơn cho công việc.

5.15   Đừng đòi hỏi được trả lời bằng thư riêng

Hacker tin rằng giải quyết sự cố phải là một quá trình công khai và trong suốt trong đó câu trả lời đầu tiên có thể hoặc sẽ được chỉnh sửa nếu ai đó có kinh nghiệm hơn chỉ ra rằng nó chưa hoàn chỉnh hay chưa đúng. Hơn nữa họ còn được tán thưởng vì hành động suất xắc và sự hiểu biết của họ từ những đồng nghiệp. Khi bạn yêu cầu trả lời bằng thư riêng, bạn đã phá vỡ quá trình đó và sự tán thưởng. Đừng làm thế. Đó là quyền lựa chọn của người được hỏi rằng họ có trả lời bằng thư riêng hay không – và nếu anh ta làm thế thì thường là câu hỏi của bạn quá tệ hoặc quá hiển nhiên để gây chú ý cho nhiều người. Chỉ có một trường hợp ngoại lệ cho quy tắc này. Nếu bạn nghĩ rằng câu hỏi của bạn sẽ nhận được rất nhiều câu trả lời giống nhau thì câu thần chú sẽ là “hãy trả lời riêng cho tôi bằng thư điện tử và tôi sẽ tóm tắt câu trả lời cho cả nhóm”. Thật là lịch sự để thử và giúp cho nhóm thư hay nhóm tin khỏi bị tràn ngập bởi các câu trả lời giống hệt nhau về căn bản – nhưng bạn phải giữ lời hứa là sẽ tóm tắt các câu trả lời.

5.16   Hãy dứt khoát với các câu hỏi của bạn

Các câu hỏi không dứt khoát thường được hiểu là tốn thời gian vô ích. Thường là người có khả năng cho bạn câu trả lời hữu ích lại là người bận rộn nhất (nếu họ tự làm lấy các công việc đó). Những người như vậy thường rất dị ứng với việc tốn thời gian vô ích, vì vậy họ cũng dị ứng với các câu hỏi không dứt khoát. Bạn sẽ dễ có câu trả lời hữu ích nếu bạn dứt khoát về cái mà bạn muốn người trả lời giúp bạn (cung cấp chỉ dẫn, gửi mã nguồn, kiểm tra bản vá lỗi…). Điều này sẽ làm tập trung nỗ lực của họ và đặt một ranh giới cao hơn về thời gian và sức lực để giúp đỡ bạn. Điều này là tốt. Để hiểu được thế giới mà các chuyên gia đang sống, hãy nghĩ rằng họ có dồi dào kinh nghiệm chuyên môn nhưng rất hiếm thời gian. Câu hỏi của bạn càng chiếm ít thời gian thì bạn càng có cơ hội có được câu trả lời từ ai đó rất giỏi và cũng rất bận rộn. Sẽ thật hữu ích nếu bạn gói gọn khuôn khổ câu hỏi của bạn sao cho các chuyên gia tốn ít thời gian nhất để trả lời – tuy nhiên điều này thường là không giống với việc đơn giản hóa câu hỏi. Vì vậy, ví dụ như, “Anh có thể vui lòng cho tôi một chỉ dẫn về sự giải thích cho vấn đề X?” thường là câu hỏi thông minh hơn là “Anh hãy vui lòng giải thích cho tôi vấn đề X?”. Nếu bạn có một đoạn mã nguồn không chạy thì sẽ là thông minh hơn nếu hỏi ai đó giải thích cái gì không đúng chứ không phải là nhờ họ sửa nó.

5.17   Đừng hỏi các câu hỏi trong bài tập về nhà

Các câu hỏi không dứt khoát thường được hiểu là tốn thời gian vô ích. Thường là người có khả năng cho bạn câu trả lời hữu ích lại là người bận rộn nhất (nếu họ tự làm lấy các công việc đó). Những người như vậy thường rất dị ứng với việc tốn thời gian vô ích, vì vậy họ cũng dị ứng với các câu hỏi không dứt khoát. Bạn sẽ dễ có câu trả lời hữu ích nếu bạn dứt khoát về cái mà bạn muốn người trả lời giúp bạn (cung cấp chỉ dẫn, gửi mã nguồn, kiểm tra bản vá lỗi…). Điều này sẽ làm tập trung nỗ lực của họ và đặt một ranh giới cao hơn về thời gian và sức lực để giúp đỡ bạn. Điều này là tốt. Để hiểu được thế giới mà các chuyên gia đang sống, hãy nghĩ rằng họ có dồi dào kinh nghiệm chuyên môn nhưng rất hiếm thời gian. Câu hỏi của bạn càng chiếm ít thời gian thì bạn càng có cơ hội có được câu trả lời từ ai đó rất giỏi và cũng rất bận rộn. Sẽ thật hữu ích nếu bạn gói gọn khuôn khổ câu hỏi của bạn sao cho các chuyên gia tốn ít thời gian nhất để trả lời – tuy nhiên điều này thường là không giống với việc đơn giản hóa câu hỏi. Vì vậy, ví dụ như, “Anh có thể vui lòng cho tôi một chỉ dẫn về sự giải thích cho vấn đề X?” thường là câu hỏi thông minh hơn là “Anh hãy vui lòng giải thích cho tôi vấn đề X?”. Nếu bạn có một đoạn mã nguồn không chạy thì sẽ là thông minh hơn nếu hỏi ai đó giải thích cái gì không đúng chứ không phải là nhờ họ sửa nó.

Các hacker có khả năng rất giỏi để nhận biết các câu hỏi trong bài tập về nhà; phần lớn chúng tôi đã làm chúng. Những câu hỏi đó là để bạn tìm ra cách giải quyết, và bạn sẽ có kinh nghiệm từ đó. Yêu cầu một chỉ dẫn thì không sao chứ đừng xin toàn bộ đáp án. Nếu bạn gặp phải câu hỏi trong bài tập về nhà mà không giải quyết được thì nên hỏi trong diễn đàn của người dùng hoặc trong diễn đàn “người dùng” của dự án đó (như là một kế sách cuối cùng). Trong khi các hacker sẽ nhận ra đó là câu hỏi từ bài tập về nhà, nhưng ít nhất một số người dùng có kinh nghiệm có thể cho bạn vài lời chỉ dẫn.

5.18   Hãy lược bớt các câu hỏi vu vơ

Hãy đấu tranh với cám dỗ của việc kết thúc các yêu cầu giúp đỡ bằng các câu hỏi vô nghĩa như “Ai đó có thể giúp tôi được không?” hay “Liệu có câu trả lời nào không nhỉ?” Thứ nhất: nếu bạn đang viết giữa chừng các câu hỏi của bạn một cách chuyên nghiệp thì các câu hỏi đính kèm như thế là quá vô nghĩa. Thứ hai: vì là nó vô nghĩa nên các hacker cảm thấy không vừa lòng – và thường là đáp lại bằng câu trả lời hợp lệ nhưng chả giúp ích gì như “Vâng, bạn có thể được giúp đỡ” và “Không, chả có ai giúp bạn cả.” Nói chung, tốt nhất là tránh các câu hỏi có-hay-không trừ khi bạn muốn có câu trả lời có-hay-không(13) .

5.19   Đừ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. Cho rằng câu hỏi của bạn là khẩn cấp sẽ rất dễ phản tác dụng, phần lớn các hacker sẽ xóa các yêu cầu như thế để đáp lại sự thô lỗ và ích kỷ của người đã tìm cách có được sự quan tâm đặc biệt ngay lập tức. Có một trường hợp bán ngoại lệ. Có thể đáng để đề cập, nếu bạn đang sử dụng một phần mềm trong một môi trường cao cấp, nơi mà các hacker sẽ cảm thấy bị kích thích và trong trường hợp đó nếu bạn đang chịu áp lực về thời gian và bạn nói thế một cách lịch sự thì mọi người có thể thấy thú vị để trả lời bạn nhanh hơn. Tuy nhiên đây là một việc làm rất rủi ro, vì quan niệm về những gì là thú vị đối với các hacker có thể hoàn toàn khác với bạn. Chẳng hạn gửi thư từ Trạm Không Gian Quốc Tế có thể được coi là thú vị, chứ việc gửi thư hỏi vì mục đích chính trị hay chỉ đơn thuần là lòng nhân từ bác ái thì chắc chắn là không thú vị tí nào. Trong thực tế, nếu bạn gửi tin như kiểu “Khẩn cấp: Hãy cứu những chú hải cẩu bé bỏng đáng thương” thì chắc chắn đến ngay cả những hacker vốn nghĩ rằng những con hải cẩu bé nhỏ là rất đáng coi trọng cũng sẽ tức giận mà tẩy chay bạn. Nếu bạn vẫn còn thấy điều này là khó hiểu, hãy cố gắng đọc đi đọc lại các phần tiếp theo nhiều lần cho tới chừng nào thật thông thì hẵng nên lên tiếng ở bất cứ một diễn đàn hay mail list nào.

5.20   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 tỏ rõ cho mọi người biết rằng bạn rất biết ơn vì mọi người đã dành thời gian giúp bạn không công. Thật ra mà nói, điều này cũng không quan trọng bằng (và càng không thể thay thế được) yêu cầu diễn đạt chính xác, gọn gàng, chi tiết và đúng chính tả/ngữ pháp, nói chung các hacker thích một bản báo cáo lỗi chương trình sắc sảo về mặt kỹ thuật tuy có hơi chút cộc cằn còn hơn là sự lịch sự nhưng tối nghĩa. (Nếu bạn còn băn khoăn về điều này thì hãy nhớ rằng, chúng tôi đánh giá một câu hỏi ở chỗ nó dạy cho ta bài học gì) Tuy nhiên, nếu bạn đã trình bày các câu hỏi kỹ thuật ra ngô ra khoai rồi thì chắc chắn một chút lịch sự sẽ dễ nhận được câu trả lời có ích hơn. (Chúng tôi phải lưu ý rằng phản đối duy nhất chúng tôi nhận được từ các hacker kỳ cựu đối với bản hướng dẫn này là việc sử dụng câu “Cám ơn trước”. Vì đối với một số hacker, họ cho rằng điều này được hiểu là sau đó thì không cần cám ơn ai nữa. Vì vậy, lời khuyên của chúng tôi là nên: hoặc dùng “Cám ơn trước” và sau đó nhớ cám ơn người trả lời bạn; hoặc thể hiện phép lịch sự một cách khác như là nói “Cám ơn vì đã quan tâm” hay “Cám ơn vì đã xem xét vấn đề”.)
5.21   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ọ. Nếu vấn đề đó nhận được sự quan tâm chung của nhóm thư hay nhóm tin, hoàn toàn rất thích hợp khi gửi tin đó vào nhóm tin/thư. Tối ưu nhất là tin đó nên gửi theo chủ đề đã nêu lên câu hỏi đầu tiên, và trong dòng chủ đề, nên có từ “ĐÃ GIẢI QUYẾT”, “ĐÃ XỬ LÝ” hoặc một từ thích hợp tương tự nào đó. Trong một nhóm thư có lưu lượng thư lớn, một người có khả năng giải quyết các vấn đề, sẽ biết mà không phí phạm thời gian của mình đọc các thư với tiêu đề “Vấn đề X” và kết thúc bằng “Vấn đề X – ĐÃ XỬ LÝ” (trừ trường hợp người này đặc biệt thích thú vấn đề X). Nhờ đó, họ sẽ có thể dành thời gian để giải quyết các khó khăn khác. Thư chốt lại vấn đề không cần dài dòng, phức tạp gì hết; không gì tốt hơn là một lời đơn giản như: “Chào – vấn đề là tại dây mạng hỏng! Cám ơn cả nhà. – Tèo”. Trong thực tế, trừ phi trường hợp với một vấn đề kỹ thuật thực sự phức tạp, một lời tóm tắt ngắn gọn và nhẹ nhàng tốt hơn nhiều so với một bài diễn văn loằng ngoằng. Hãy nêu rõ hành động chính nào giải quyết được vấn đề của bạn chứ không cần phải diễn tả lại cả quá trình gỡ rối. Tất nhiên đối với những vấn đề có chiều sâu, cũng cần nêu rõ quá trình giải quyết vấn đề. Trình bày vấn đề chủ chốt của bạn. Nêu rõ cái chính nhất có tác dụng giải quyết được vấn đề đó, và chỉ ra những vết xe đổ cần tránh. Những điều cần tránh có thể trình bày sau khi đã nêu hướng giải quyết đúng và các thông tin tóm tắt khác, chứ đừng để thư chốt vấn đề của bạn như truyện trinh thám! Nêu tên cả những người đã giúp bạn, như thế, bạn sẽ kết được nhiều bạn nữa đấy. Bên cạnh việc chứng tỏ là lịch sự và hiểu biết, những thư chốt vấn đề này sẽ giúp những người khác khi tìm kiếm kho lưu trữ của nhóm thư/nhóm tin/diễn đàn biết rõ cách đã giải quyết được vấn đề của bạn, và có thể, nó cũng sẽ giúp được họ. Và cuối cùng, không kém phần quan trọng, nhưng thư chốt vấn đề kiểu này làm cho những người đã tham gia giúp bạn có một cảm giác rất thoả mãn khi kết thúc vấn đề. Nếu bản thân bạn không phải là một tay chuyên về kỹ thuật hay một hacker, hãy tin chúng tôi rằng cảm giác đó rất quan trọng với những bậc sư phụ và các chuyên gia mà bạn đã nhờ vả. Những bài viết về vấn đề chỉ được kết thúc lơ lửng rồi ngưng lại là điều rất khó chịu, và các hacker rất ngứa ngáy muốn được biết rằng chúng đã được xử lý thấu đáo. Việc gãi đúng chỗ ngứa này của bạn sẽ giúp ích rất rất nhiều khi lần sau bạn muốn hỏi một điều gì đó. Cân nhắc tới việc bạn có thể làm gì để giúp những người khác tránh được vấn đề bạn đã gặp phải. Hãy xem xem có tài liệu nào hay bản vá lỗi các câu hỏi thường gặp nào có thể giúp ích, và nếu có, hãy gửi cho người quản lý chương trình. Trong giới hacker, hành động này quan trọng hơn nhiều so với những cử chỉ lịch sự thông thường. Đây là cách mà bạn gây được cảm tình là mình có giúp ích người khác, một đức tính rất đáng giá.

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

6.1         RTFM và STFW: Làm thế nào để biết rằng bạn đã thực sự gặp rắc rối

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. Trong thực tế, đôi khi cũng có người tốt bụng sẽ chỉ cho bạn cụ thể chủ đề nào giải quyết được vấn đề của bạn. Nhưng đừng ỷ lại vào chỉ dẫn đó, hãy tự mình lục tìm trước khi bắt đầu hỏi. Một chuyện rất thường xảy ra là người mà bảo bạn đi tự tìm kiếm, sẽ có thể có sẵn tài liệu hướng dẫn hay trang web bạn cần ngay trước mắt người ta lúc trả lời thư bạn. Anh ta trả lời bạn như vậy vì có ý rằng: a. cực kỳ dễ kiếm tài liệu mà bạn đang cần; b. bạn sẽ học hỏi được nhiều hơn khi tự mình đi kiếm tìm thông tin hơn là ngồi đó mà chờ nó dâng đến tận miệng. Bạn không cần thiết phải tự ái vì chuyện này làm gì; vì theo quan niệm của các hacker, anh ta cũng đang thể hiện sự quan tâm dù là hơi cộc cằn một tí, còn hơn là lờ tịt câu hỏi của bạn. Đáng lẽ là bạn nên cám ơn anh ta vì lòng tốt như bà ngoại của anh ta.

6.2         Nếu bạn không hiểu…

Nếu bạn không hiểu câu trả lời, đừng bật lại ngay để mà đòi hỏi một lời giải thích. Hãy tận dụng các cách, nguồn tài liệu (tài liệu hướng dẫn, câu hỏi thường gặp, web, những bạn bè hiểu biết khác) mà bạn đã dùng một lần nữa để trả lời thắc mắc ban đầu. Nếu sau đó, bạn vẫn cần phải giải thích thêm, hãy thể hiện rõ rằng bạn đã tìm hiểu được những gì. Ví dụ, giả sử tôi trả lời bạn: “Nghe có vẻ như zentry bị nghẽn; bạn phải thông nó.” Và bạn không nên hỏi tiếp như thế này: “Zentry là cái quái gì thế?” Hãy đặt câu hỏi tiếp theo như sau: “OK, tôi đã đọc tài liệu hướng dẫn, và người ta chỉ nói đến zetry trong phần –z và –p switches. Không tìm thấy gì nói đến việc thông zentry cả. Vậy nó có phải là một trong 2 cái trên không, hay là tôi còn gì mà tôi chưa tìm thấy?”

6.3         Khi bị đối xử một cách cục cằn

Phần lớn những gì có vẻ như cục cằn trong thế giới các hacker đều không phải là chủ ý gây xúc phạm. Mà thực ra, đó chỉ là biểu hiện của cách giao tiếp thẳng thắn và không văn hoa vòng vèo của những người coi trọng việc giải quyết được vấn đề hơn là cố làm cho người khác cảm thấy được vỗ về và an ủi. Khi bạn nhận phải sự đối xử thô lỗ, hãy cố gắng phản ứng một cách bình tĩnh. Nếu thực sự người ta đã quá đáng, chắc chắn một người có tiếng nói trong nhóm thư hay diễn đàn sẽ khiển trách người đó. Nếu không có ai nói gì về việc đó và bạn lại tỏ ra cáu giận và mất bình tĩnh thì chắc chắn là người làm bạn cáu giận chỉ đang cư xử đúng như kiểu của các hacker và kiểu của bạn được coi là không phải. Điều này chỉ làm bạn thiệt thòi khi lần sau muốn hỏi tìm thông tin hoặc kiếm tìm sự giúp đỡ. Mặt khác, đôi khi bạn cũng sẽ gặp những trường hợp bị đối xử thô lỗ rất vô cớ. Một mặt người ta sẽ chấp nhận những lời phản bác những người gây xúc phạm một cách nặng nề, dùng từ ngữ sắc bén để mổ xẻ cách cư xử không phải của họ. Tuy nhiên, phải rất cẩn thận và chắc chắn về vị thế của mình trước khi bạn làm điều này. Vì ranh giới giữa sửa gáy một cử chỉ bất lịch sự và việc gây nên cuộc chiến nảy lửa mà vô ích là rất mỏng manh. Và ngay đến cả các hacker cũng không muốn bước qua ranh giới đó. Khi bạn là một người mới vào cuộc, hay là một kẻ đứng ngoài, bạn khó có thể tránh được việc vượt quá ranh giới đó. Tốt nhất là đừng có mó tay vào bàn phím lúc đó thay vào việc khơi một cuộc chiến, nếu bạn thật sự mong muốn tìm kiếm thông tin chứ không phải tham gia để giải trí. (Một số người phát biểu rằng nhiều hacker bị mắc phải chứng tự kỷ nhẹ hay có triệu chứng Asperger (triệu chứng có liên quan đến thiểu năng giao tiếp), và thật sự thiếu một số mạch não giúp thúc đẩy phát triển những giao tiếp xã hội ‘thông thường’. Điều này có thể đúng hoặc không. Nếu bạn không phải là một hacker, ý tưởng đó có thể giúp bạn chung sống được với những sự lập dị của chúng tôi khi nghĩ rằng chúng tôi bị tổn thương não. Vậy thì cứ việc nghĩ như thế. Chúng tôi cũng không quan tâm, chúng tôi chỉ cần là chính mình, và nói chung, chúng tôi rõ ràng là không bao giờ tin vào các bệnh danh người ta đặt ra) Trong các phần tiếp theo, chúng ta sẽ bàn về một vấn đề khác, những kiểu “thô lỗ” mà bạn sẽ được thưởng thức khi bạn cư xử không phải phép.

7.    Làm thế nào để không cư xử như một kẻ thất bại

Có lúc bạn sẽ mắc sai lầm trên các diễn đàn của cộng đồng hacker – một trong những sai lầm được kể ra trong bài viết này hoặc tương tự vậy. Và chắc chắn người ta sẽ nói cho bạn biết bạn đã phạm phải sai lầm gì, có thể với đủ loại lời lẽ dành riêng cho bạn. Nhưng lại ở trước bàn dân thiên hạ! Khi chuyện này xảy ra với bạn, tồi tệ nhất là bạn bắt đầu tru tréo về việc này, buộc tội người ta đã xúc phạm bạn, đòi hỏi phải được xin lỗi, la hét, tức giận, doạ đưa ra toà án hoặc có thể phàn nàn với sếp của người kia. Thay vào đó, đây mới là cách phản ứng đúng đắn của bạn: Cho qua đi. Chuyện vặt ấy mà. Mà thực ra, chuyện đó hoàn toàn lành mạnh và thích hợp. Các chuẩn mực cộng đồng không tự nó tồn tại: Chúng tồn tại là bởi những người thiết lập ra nó, rõ ràng, ở nơi công cộng. Đừng có kêu gào rằng các lời phê bình đáng lẽ nên gửi tới email riêng: Chuyện nó không như thế. Và cũng chẳng có ích chút nào khi bạn cứ khăng khăng rằng bạn bị xúc phạm khi người ta không công nhận những lời buộc tội của bạn, hoặc chỉ đơn giản quan điểm của người ta khác bạn. Đấy chính là thái độ của những kẻ thất bại. Đã từng có những diễn đàn, có những quy tắc lịch sự thái quá, cấm các thành viên của mình đăng bài mà có liên quan đến việc chỉ trích lỗi trong các bài đăng khác, và quy định rằng “Đừng mở miệng nói gì nếu bạn không vui vẻ giúp đỡ những người khác.” Kết quả những người tham gia dù có nhiều chứng cứ cũng chuyển sang một nơi khác, khiến cho diễn đàn đó trở thành một diễn đàn kỹ thuật đơn điệu và tẻ ngắt. Hãy chọn một: “Thân thiện” một cách thái quá (như trường hợp trên) hoặc là sự hữu ích thực tế. Hãy nhớ rằng, khi một hacker nói với bạn rằng bạn đã phá hỏng mọi chuyện rồi, và (dù có thô lỗ đến thế nào đi nữa) yêu cầu bạn đừng có tái phạm, anh ta đang tỏ ra quan tâm đến 1. bạn và 2. cộng đồng đó. Đáng lẽ ra anh ta có thể lờ tịt và tống bạn ra khỏi thế giới của anh ta. Nếu bạn không cố tỏ ra hối lỗi, hoặc ít nhất còn có chút nhân phẩm, thì đừng có kêu gào, và đừng mong đợi người ta nâng niu mình như một con búp bê bằng sứ vì bạn là người mới đến với một tâm hồn cực kỳ nhạy cảm cùng với việc chưa thể biết hết các phép tắc. Đôi khi người ta sẽ công kích cá nhân bạn, gây chiến dù chẳng có lý do rõ ràng nào, hoặc tương tự như thế mặc dù bạn chả làm gì sai cả (hoặc chỉ sai trong trí tưởng tượng của người ta!). Chính trong trường hợp này, nếu bạn quay lại phàn nàn thì lúc đấy bạn đã bắt đầu làm hỏng mọi chuyện. Những kẻ gây sự đó, hoặc là những tên chả ra gì nhưng cứ tự coi mình là chuyên gia, hoặc là đang tìm cách nắn gân bạn và xem bạn có dễ bị chọc tức hay không. Những người khác trong nhóm thường chỉ lờ tịt chúng đi, hoặc tìm cách khác đối xử với những kẻ đó. Những kẻ gây chuyện chỉ sẽ chuốc lấy chuyện không hay cho chúng, không có gì bạn phải để tâm cả. Đừng để mình bị cuốn và những cuộc chiến vô bổ. Hãy bỏ qua những lời gây chuyện – sau khi bạn đã xem xét vấn đề và biết rằng, đó chỉ thực sự là gây hấn, chẳng chỉ ra được bạn đã làm sai cái gì và cũng chẳng có ý nào ám chỉ câu trả lời cho câu hỏi thật sự của bạn (điều này cũng thường xảy ra)

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

Sau đây là một vài câu hỏi ngu ngốc thường thấy, và những gì các hacker nghĩ trong đầu khi họ không trả lời câu hỏi của bạn 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(14) 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 ở. ({\bf Đâ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 đó.

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

Cuối cùng, tôi sẽ minh họa cho việc hỏi thể nào cho thông minh bằng một số ví dụ: hai cách hỏi về một vấn đề; cách thông minh và một cách ngớ ngẩn: 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.

Trong câu cuối cùng, nên để ý tới sự khéo léo và rất quan trọng ở sự khác biệt giữa 2 cách nói, một cách đòi hỏi “Hãy trả lời cho tôi” và “Làm ơn chỉ cho tôi biết thử làm cách nào nữa để có thể làm sáng tỏ hơn vấn đề”. Thực tế, câu hỏi cuối cùng này gần như dựa trên một việc có thực xảy ra tháng Tám năm 2001 trong nhóm thư linux-kernel (lkml). Tôi (Eric) là người hỏi câu hỏi này. Tôi phát hiện thấy những phần không chạy rất kỳ lạ trên máy Tyan bo mạch chủ S2462. Các thành viên trong nhóm đã cho tôi những thông tin quan trọng mà nhờ đó, tôi có thể giải quyết được vấn đề của mình. Khi hỏi với cách tôi đã hỏi, tôi đã đưa cho mọi người một ít thông tin để gặm nhấm; tôi làm cho vấn đề trở nên đỡ phức tạp và có vẻ thú vị để mọi người sẽ quan tâm. Tôi thể hiện sự tôn trọng của mình với khả năng của những người trong nhóm và mời họ cùng trao đổi tư vấn cho tôi với tư cách cũng là một người có khả năng ngang bằng. Tôi cũng bày tỏ sự quý trọng thời gian vàng bạc của họ bằng cách nói rõ ngõ cụt mà tôi đã bước vào. Sau đó, khi tôi cám ơn mọi người và nhận xét rằng mọi người đã giúp thật tốt như thế nào, một thành viên của lkml theo dõi và nói rằng, mọi người nhiệt tình không phải vì tôi là một “nhân vật” trong nhóm đó, mà bởi vì tôi đã biết cách đặt câu hỏi thế nào cho đúng. Nói theo một cách nào đó, hacker là những cá nhân tài năng tuy cộc cằn, tôi chắc chắn rằng anh ấy nói đúng, và nếu tôi xử sự như một kẻ ăn bám, có lẽ tôi đã bị chỉ trích hoặc phớt lờ cho dù tôi có là ai đi chăng nữa. Anh ấy khuyên tôi kể lại vụ việc thành hướng dẫn cho những người đi sau, nhờ lời khuyên đó tôi đã quyết định viết hướng dẫn này.

10.       Nếu bạn không nhận được câu trả lời

Nếu bạn không nhận được câu trả lời, đừng nghĩ rằng nó chỉ xảy ra với mình rằng chúng tôi không muốn giúp bạn. Đôi khi chỉ đơn giản là các thành viên trong nhóm không biết câu trả lời. Không trả lời, không có nghĩa là chúng tôi lờ tịt đi, mặc dù cũng phải thừa nhận rằng bề ngoài khó mà nói được sự khác biệt. Nói chung, nếu chỉ đơn thuần gửi lại câu hỏi của bạn thì không nên. Việc đó bị coi là một hành động quấy rầy rất vô ích. Có nhiều nguồn thông tin mà bạn có thể kiếm tìm câu trả lời cho mình, những nguồn thông tin phù hợp hơn cho nhu cầu của những người mới nhập môn. Ngoài ra cũng có rất nhiều nhóm người dùng trong khu vực bạn sống, hoặc trên mạng rất nhiệt tình về các chương trình phần mềm, những người này có thể thậm chí chưa bao giờ tự viết một phần mềm nào cả. Nhưng những nhóm này lập ra để mọi người có thể giúp lẫn nhau và giúp những người mới. Bạn cũng có thể kiếm tìm sự trợ giúp từ nhiều công ty thương mại, lớn bé gì cũng có (Red Hat và Linuxcare là hai công ty rất nổi tiếng, cùng với rất nhiều công ty khác nữa). Đừng có lăn tăn gì vì bạn sẽ phải trả tiền để được giúp đỡ một tí. Suy cho cùng thì nếu xe hơi của bạn bị hỏng cái gì đó, chắc chắn là bạn sẽ mang nó đến tiệm sửa xe và trả tiền để sửa nó. Vì thế, thậm chí phần mềm bạn đang dùng không tốn tí tiền nào, cũng đừng mong đợi sẽ luôn được trợ giúp không công. Đối với các phần mềm phổ biến như Linux, cứ trung bình 10 nghìn người sử dụng mới có một người phát triển. Và rõ ràng một người này không thể trả lời thắc mắc cho hơn cả chục ngàn người sử dụng. Và xin nhớ rằng, thậm chí khi bạn có bỏ tiền ra để có được sự trợ giúp, nó vẫn còn rất rẻ so với việc nếu bạn phải bỏ tiền mua cả phần mềm đó (và những sự trợ giúp cho các phần mềm mã đóng thường đắt và không hiệu quả bằng sự trợ giúp trong cộng đồng phần mềm mã mở).

11.       Làm thế nào để trả lời có thể giúp ích cho người hỏi

Hãy nhẹ nhàng. Sự lo lắng về trục trặc xảy ra có thể khiến người ta trở nên thô lỗ hay ngốc đi, mặc dù bản thân người ta không phải thế. Hãy trả lời riêng cho người vi phạm lần đầu. Không cần thiết phải đưa một người ra công cộng xỉ nhục khi người ta không cố ý mắc phải sai lầm. Một người mới toe thật sự có thể không biết cách tìm kiếm trong kho lưu trữ hoặc tìm FAQ ở chỗ nào. Nếu bạn không chắc chắn, hãy nói thẳng rằng mình không chắc! Chả có gì tệ hơn một câu trả lời sai mà lại mang giọng điệu tin chắc. Đừng chỉ dẫn cho người khác một cách làm sai chỉ để đơn giản thoả mãn mình làm mình có vẻ như là một chuyên gia. Hãy khiêm tốn và nhún nhường; hãy tạo một tấm gương tốt cho cả người hỏi và các người khác trong nhóm. Nếu bạn không giúp được, cũng đừng gây trở ngại. Đừng đùa cợt chỉ dẫn cách làm mà có thể phả hỏng tất cả cái gì đã cài đặt của người ta – một kẻ ngốc nghếch có thể tưởng lầm rằng đây là hướng dẫn thật sự. Hãy gợi ý những câu hỏi nói rõ chi tiết hơn. Nếu bạn biết làm thế, người hỏi cũng học được một cái gì đó – và có lẽ bạn cũng học được. Hãy cố biến những câu hỏi ngu ngốc thành cách hỏi thông minh; và nhớ rằng chúng ta cũng đã từng là những ma mới. Thực ra trả lời RTFM đôi khi chỉ phù hợp với những kẻ thật sự lười nhác, tốt hơn là nên chỉ cho họ văn bản liên quan (hay chỉ cần đơn giản là cụm từ nên tìm kiếm trên Google). Nếu rốt cục bạn muốn trả lời người ta, hãy cho người ta những gì có giá trị. Đừng chỉ dẫn vòng quanh khi người ta đã tiếp cận vấn đề bằng một cách sai. Hãy cho người ta biết cách nào là tốt. Chỉnh sửa lại cách hỏi. Hãy giúp cho cộng đồng mình học từ câu hỏi. Khi bạn gặp một câu hỏi hay, hãy tự hỏi xem “Tài liệu liên quan hay FAQ cần chỉnh sửa như thế nào để không ai phải hỏi câu hỏi này một lần nữa?” Và hãy gửi bản vá lỗi cho người quản lý tài liệu. Nếu bạn phải nghiên cứu để tìm ra câu trả lời, hãy diễn tả lại những kỹ năng bạn dùng hơn là viết câu trả lời cứ như là móc từ trong túi áo ra vậy. Trả lời một câu hỏi hay cũng giống như cho một người đang đói một bữa ăn ngon vậy, nhưng dạy họ các kỹ năng nghiên cứu qua ví dụ này thì giống như cho họ cách trồng lương thực để nuôi sống cả đời.

12.       Nguồn tài liệu liên quan

Nếu bạn cần những chỉ dẫn cơ bản về cách sử dụng máy tính cá nhân, Unix và Internet, hãy đọc “Hướng dẫn Cơ bản Unix và Internet” (The Unix and Internet Fundamentals HOWTO(16) ) Khi bạn công bố phần mềm hay bản vá lỗi cho phần mềm, cố gắng tuân theo hướng dẫn trong “Hướng dẫn Thông tục Công bố Phần mềm” (Software Release Practice HOWTO(17) )

13.       Các đóng góp

Evelyn Mitchell đã đóng góp một vài câu hỏi ngu ngốc và tạo cảm hứng cho phần “Làm thế nào để trả lời có thể giúp ích cho người hỏi”. Mikhail Ramendik đã đóng góp một số ý kiến rất giá trị để văn bản này được hoàn thiện hơn.

1. Bản dịch tiếng Việt mà bạn đang đọc được thực hiện bởi các thành viên của VnOSS. Mọi góp ý về bản dịch xin gửi tới diễn đàn hay wiki của chúng tôi (xem http://www.vnoss.org)
2. http://www.catb.org/\~esr/faqs/hacker-howto.html
3. http://www.dtcc.edu/cs/rfc1855.html
4. Frequently Asked Questions – Các câu hỏi thường gặp
5. mailing list – tạm gọi là nhóm thư
6. thread, email thread
7. thread-hijacking
8. plain text
9. http://expita.com/nomime.html
10. log file dump
11. session transcripts
12. http://www.chiark.greenend.org.uk/~sgtatham/bugs.html
13. http://homepages.tesco.net/~J.deBoynePollard/FGA/questions-with-yes-or-no-answers.html
14. http://www.google.com/
15. http://www.linux.org/groups/index.html
16. http://en.tldp.org/HOWTO/Unix-and-Internet-Fundamentals-HOWTO/
17. http://en.tldp.org/HOWTO/Software-Release-Practice-HOWTO/index.html


Việt Coding

Là một người đam mê lập trình, tôi vọc vạch đủ thứ liên quan đến lập trình cho thoả chí tò mò. Hiện làm chủ yếu ở mảng phát triển ứng dụng di động cho iOS và Android với React Native. Thỉnh thoảng vọc vạch mấy thứ liên quan đến Internet of Things như Smart Home. Đang nghịch mấy con Raspberry Pi và thấy nó cũng thú vị :)

0 Comments

Leave a Reply

Avatar placeholder

Your email address will not be published. Required fields are marked *