Đặ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
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.
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á. | |