Khi bị mắc kẹt, một khu vực nên sử dụng Stack Overflow nhanh như thế nào? [đóng cửa]


51

Tôi tự học phát triển iOS thông qua khóa học iTunes U CS193p và tôi thường thấy mình bị mắc kẹt. Tôi đã cố gắng để tự tháo gỡ, nhưng tôi có thể mất hàng giờ để tìm ra những gì tôi đang làm sai, có thể thiếu một phương pháp hoặc không thực sự có được một khái niệm như ủy thác.

Tôi lo lắng rằng tôi có thể lãng phí quá nhiều thời gian và tốt hơn hết là tôi nên đến Stack Overflow ngay sau khi tôi gặp khó khăn để tôi có thể tiếp tục.

Theo kinh nghiệm của bạn, việc nhanh chóng hỏi về Stack Overflow cản trở quá trình học tập hay cải thiện nó?


45
Điều đáng chú ý là tìm kiếm câu trả lời trên SO là một trong những điều đầu tiên bạn nên thử. Ngay cả khi không có câu trả lời nào khớp chính xác với câu hỏi của bạn, rất có thể đó là câu trả lời giúp bạn hiểu rõ hơn. Nhưng đặt câu hỏi của riêng bạn là điều bạn không nên làm, cho đến khi bạn đã rất cố gắng tự trả lời câu hỏi và nỗ lực thực sự để hình thành câu hỏi của bạn theo cách chỉ ra rõ ràng những gì bạn có và chưa đã thử.
Dawood nói phục hồi Monica

1
@DavidWallace Không thể đồng ý nhiều hơn. Quá nhiều người chỉ hỏi mà không suy nghĩ (câu hỏi chất lượng thấp), một số người nghĩ và hỏi (câu hỏi tốt hơn, nhưng tôi ước nhiều người sẽ thực sự tìm kiếm trước khi hỏi (ít (gần) trùng lặp).
Marjan Venema 6/212

3
Giống như hỏi bất kỳ câu hỏi nào, nếu bạn đã tự mình tìm kiếm một câu trả lời có thể, bạn sẽ tìm hiểu thêm khi bạn thấy câu trả lời thực tế: bạn sẽ thấy nơi bạn quên tìm kiếm và lần sau bạn cũng có thể tìm kiếm ở đó. Bạn không chỉ học câu trả lời, bạn cũng học tìm câu trả lời. Khi bạn chưa nghĩ đến câu trả lời trước, bạn chỉ cần nhận được câu trả lời và tiếp tục, nhưng học ít hơn nói chung. Bạn không cải thiện bản thân.
Konerak

3
Cách tiếp cận thực dụng: SO phù hợp nhất cho các câu hỏi đơn giản, vì vậy tôi sẽ nói hỏi gần như ngay lập tức (bạn cần có khả năng hình thành câu hỏi mặc dù). Sau khi nhập tiêu đề, bạn sẽ được trình bày danh sách các câu hỏi gần nhất - bạn nên đảm bảo rằng câu hỏi của bạn không có trong danh sách, nhưng không cần thực hiện thêm bất kỳ tìm kiếm nào về SO.
Grzenio

6
Tôi nghĩ rằng điều này có lẽ nên được hỏi trên Meta của SO.
hugomg

Câu trả lời:


35

Khi tôi làm việc với các nhà phát triển mới, tôi khuyến khích họ đến đặt câu hỏi sau năm hoặc mười phút khi họ không đạt được tiến bộ.

Điều đó có hai lợi ích: thứ nhất là họ có thể nhận được sự giúp đỡ mà không mất quá nhiều thời gian để nhìn chằm chằm vào một vấn đề, nhưng họ chỉ hỏi khi họ không đến được nơi nào đó. Nếu họ đang học - ngay cả trên một cái gì đó cuối cùng không phải là câu trả lời - họ có nhiều khả năng giữ lại thông tin đó một cách hữu ích.

Thứ hai là sau khoảng thời gian đó, họ phải giải thích vấn đề cho người khác. Điều đó giải quyết một tỷ lệ lớn các vấn đề, bởi vì đi xuyên suốt từ đầu đến cuối theo thứ tự có nghĩa là bạn có thể phát hiện ra điều mà bạn đã bỏ lỡ trong công việc trước đây.

Vì có vẻ như bạn đang làm điều này một mình, hãy thử chuyển sang một món đồ chơi nhồi bông, hoặc đồng hồ, hoặc bức tường, và hỏi điều đó về vấn đề. Giải thích nó như bạn muốn với một người, và xem nếu điều đó sửa chữa mọi thứ.

Nếu không, và bạn không đạt được tiến bộ, hãy hỏi ai đó. Dành hơn năm hoặc mười phút bị mắc kẹt là một sự lãng phí thời gian của bạn - trừ khi bạn tiếp tục làm việc khác, sau đó quay lại vấn đề với một tâm trí tươi mới.


17
Không có gì giống như nói chuyện với con chó của bạn để có được unstuck. :-)
Marjan Venema

2
Và khi bạn nhận ra mình đang làm gì sai, chú chó của bạn sẽ giống như " WOW! Tôi sẽ không bao giờ nghĩ về điều đó!" Đánh bại một vài upvote để tăng cường bản ngã. ;-)
CVn

4
+1 Điều này được gọi là "gỡ lỗi vịt" từ việc nói chuyện với đồ chơi của bạn. Tôi có một con búp bê voodoo. Tôi gọi nó là gỡ lỗi voodoo.
Sardathrion

4
Câu trả lời tuyệt vời +1. Tôi đã bị "mắc kẹt" rất nhiều lần trong nhiều năm và thấy rằng câu trả lời trở nên rõ ràng với tôi khi tôi giải thích nó cho người khác. Tôi cũng tìm thấy đi bộ / làm một cái gì đó để có được một cái đầu rõ ràng thường làm việc. Tôi sẽ không dùng đến Stack Overflow quá nhanh, nếu bạn tự mình tìm ra giải pháp, bạn sẽ KHÔNG BAO GIỜ quên nó! Có rất nhiều lập trình viên chết não xung quanh những ngày này quá phụ thuộc vào web.
AnthonyBlake

2
và rất nhiều câu hỏi của tôi đã tự trả lời khi tôi soạn thảo câu hỏi trên SO. Chính hành động đóng khung chi tiết câu hỏi của bạn cho thấy một số câu trả lời
aldrin

22

Bổ sung duy nhất của tôi cho câu trả lời tuyệt vời của người khác:

GỬI câu hỏi của bạn vào giao diện câu hỏi StackOverflow là một cách tuyệt vời để đảm bảo bạn đang suy nghĩ thấu đáo về nó. Tôi không thể bắt đầu cho bạn biết có bao nhiêu câu hỏi tôi đã tự trả lời trong quá trình đặt nó đủ rõ ràng để hỏi đúng. Các câu hỏi tôi đã bắt đầu và không gửi VASTLY vượt trội so với những câu hỏi tôi thực sự đã hỏi.

Vì vậy, tôi muốn nói rằng hãy tiếp tục và hỏi (tất nhiên sau khi tìm kiếm), đừng gắn bó với việc thực sự nhấn "Gửi".


+1 - Điều này không thể được phóng đại. Đây là một lý do tại sao các câu hỏi xây dựng cẩn thận là rất quan trọng. (Và thuật toán gợi ý trả lời tự động trong thanh bên sẽ hiển thị các câu hỏi có liên quan khác chính xác hơn nữa).
kmote

@kmote - YÊU điều đó. Nó đã giải quyết rất nhiều vấn đề cho tôi.
Dan Ray

1
câu chuyện về cuộc đời tôi .. đã giải quyết rất nhiều vấn đề trước khi nhấn trình.
Ayush G lòng

20

Stack Overflow và mọi trang web Stack Exchange khác, có một bộ hướng dẫn để đặt câu hỏi :

  • Làm bài tập về nhà đi
  • Hãy cụ thể
  • Làm cho nó phù hợp với người khác
  • Có chủ đề
  • Nghĩ thoáng ra

"Làm bài tập về nhà của bạn" ngụ ý rằng bạn không nên quá nhanh để hỏi. "Hãy cụ thể" ngụ ý rằng bạn hiểu rõ vấn đề của mình đủ để phác thảo chính xác vấn đề. Nếu không, "làm bài tập về nhà của bạn" được áp dụng. "Giữ một tâm trí cởi mở" ngụ ý rằng bạn nên sẵn sàng khám phá các giải pháp mà bạn không bao giờ nghĩ sẽ liên quan đến vấn đề của mình.

Vì vậy, không phải là hỏi về Stack Overflow, mà là liệu câu hỏi của bạn có tốt không. Về cơ bản, nỗ lực cần có là một kinh nghiệm học tập trong chính nó. Nếu bạn làm đúng, có lẽ bạn sẽ học được một vài điều mới chỉ bằng cách tìm kiếm các bản sao. Nếu không, ping tôi, tôi đã nhận được một vài phiếu giảm giá. : P


1
Tôi chỉ bắt đầu sử dụng dòng trang web này (StackOverflow, v.v.) trong vài tháng qua và tôi phải nói rằng tôi cực kỳ ấn tượng với một điều: viết chính tả và viết mạch lạc. Mặc dù chỉ có một tỷ lệ nhỏ thành viên đăng ký có tiếng Anh là ngôn ngữ mẹ đẻ của họ, nhưng hầu như mọi người đều cực kỳ cẩn thận về cách họ viết. Tôi nghĩ rằng không có nơi nào khác trên Internet nơi mà một cơ sở người dùng khổng lồ duy trì chất lượng như vậy. Thật lạ, nhưng ấn tượng. PS: Tôi muốn nói điều này một thời gian, chỉ cần một nơi để làm cho nó bằng cách nào đó ontopic :).
Radu Murzea

1
@SoboLAN Đó là triết lý wiki. Chúng tôi chỉnh sửa bài viết của nhau liên tục, ngay cả đối với những lỗi chính tả nhỏ. Là một người không nói tiếng Anh bản địa, khi tôi mới tham gia Stack Exchange, tôi có thói quen quan sát những loại chỉnh sửa mà mọi người thực hiện, học hỏi từ những sai lầm của người khác. Tuy nhiên, một sản phẩm phụ tích cực khác của trải nghiệm Stack Exchange, tôi đoán vậy. Ai biết được, đến một lúc nào đó tôi thậm chí có thể đủ tự tin với tiếng Anh của mình để thử một câu trả lời tại English Exchange & Use Stack Exchange . : P
yannis

3

Cá nhân, khi tôi bắt đầu lập trình, tôi đã dành rất nhiều thời gian để cố gắng tìm ra mọi thứ. Tôi có thể dành hàng giờ để cố gắng sửa chữa một cái gì đó. Tôi không thấy những giờ đó là không hiệu quả, trong những giờ đó tôi đã học được cách tìm kiếm mọi thứ trực tuyến và tôi thực sự hiểu rõ về cách ngôn ngữ lập trình của tôi hoạt động. Vì vậy, tôi nghĩ rằng việc hỏi quá nhanh về SO đã cướp đi kinh nghiệm học tập của bạn. Bắt đầu lập trình chỉ mất một khoảng thời gian rất dài.

Sau đó, có một câu hỏi là làm thế nào để hỏi sớm, tôi nói rằng dành một vài giờ cho một vấn đề cụ thể là không lâu (lưu ý rằng tôi đến từ một nền tảng học thuật, có thể trong nền tảng thương mại điều này ít được chấp nhận).

Và khi bạn đặt câu hỏi về SO, hãy đầu tư thời gian vào câu hỏi:

  • Khi bạn gặp lỗi, hãy đăng văn bản chính xác của lỗi. Đồng thời đăng mã dẫn đến lỗi, tốt nhất là một ví dụ độc lập chạy trên bất kỳ máy tính nào.
  • Hiển thị những gì bạn đã cố gắng.
  • Các phiên bản đề cập của phần mềm bạn sử dụng: phiên bản trình biên dịch, phiên bản của python.

Đây chỉ là một vài điểm. Bằng cách đầu tư thời gian vào một câu hỏi mà bạn tôn trọng mọi người trên SO, bạn sử dụng thời gian của họ miễn phí. Quan trọng hơn, bạn cấu trúc vấn đề của bạn. Điều này có thể đã giải quyết vấn đề của bạn :).

Chỉ cần 2 ct của tôi ...


1

Tôi tin rằng điều quan trọng ở đây là thực sự hiểu những gì bạn đang mắc kẹt và cố gắng đi đến vấn đề chính. Sau khi bạn thực sự hiểu rõ vấn đề thực sự là gì thì sử dụng Stack Overflow là một trong những điều đầu tiên tôi làm.

Nhưng, nó không hỏi một câu hỏi.

Đó là tìm kiếm thông qua tất cả các câu trả lời tuyệt vời. Rất có thể là vấn đề bạn gặp phải bây giờ đã có người khác gặp phải và họ đã hỏi câu hỏi của bạn. Nếu bạn cảm thấy bắt buộc phải sử dụng Stack Overflow, hãy nhớ rằng đó không chỉ là một trang web để bạn đặt câu hỏi khi bạn bị bối rối. Nó cũng là một kho lưu trữ cho một số thông tin thực sự tuyệt vời về lập trình máy tính; sử dụng chức năng tìm kiếm.

Nếu bạn đã tìm kiếm với một vài thuật ngữ / từ khóa khác nhau mà vẫn nhận được nilch, và bạn đã hoàn thành bài tập về nhà và có các mẫu mã bạn có thể thể hiện và bạn thực sự chắc chắn rằng câu hỏi của bạn không thực sự trùng lặp , thì bằng mọi cách hãy hỏi câu hỏi của bạn về Stack Overflow. Đó là những gì trang web ở đó cuối cùng tôi đã kiểm tra.


1

Nó hoàn toàn chủ quan, nhưng đây là quy tắc cơ bản cho việc sử dụng của tôi.

1) Nhà tôi có bị cháy không? Rõ ràng, không phải theo nghĩa đen, nhưng đây có phải là một vấn đề không chỉ cần một giải pháp tức thời, mà còn là một giải pháp khẩn cấp. Nếu vậy, hãy bẻ khóa nó, thất bại nhanh chóng, nhận sự giúp đỡ tốt nhất có thể.

2) Đây có phải là cái gì đó mà tôi có thể nghiên cứu? Nếu đó là thứ mà tôi có thời gian và có thể nghiên cứu được thì tôi sẽ đi theo con đường đó và bao gồm SO như một nguồn tài nguyên miễn phí. SO là tuyệt vời, Wiki cũng vậy, hàng tá tài nguyên khác cũng vậy.
Đọc nhiều, nó giúp bạn hiểu khi có các cách tiếp cận khác nhau đối với một vấn đề, nhưng trước tiên hãy dành thời gian thử xem liệu kiến ​​thức hiện có của bạn có thể được áp dụng lại cho vấn đề đó không, sau đó bạn đã xây dựng cho mình một công cụ tinh thần mới.

3) Đây có phải là thứ nằm ngoài bộ kỹ năng của tôi / tối nghĩa đến mức có thể có 100 người đã từng nhìn thấy nó? Điều này xảy ra, và xảy ra thường xuyên. Nói chung tôi sẽ thử nghiên cứu trong một hoặc hai giờ sau đó đi đến đây hoặc các tài nguyên khác.

Tôi biết rằng việc ngồi nghiên cứu và dành thời gian sẽ cao quý hơn, nhưng chúng tôi thường gặp khó khăn về thời gian và bạn sử dụng mọi tài nguyên có sẵn, ngay cả khi cảm giác như 'lừa dối' hệ thống.


0

"Làm thế nào nhanh chóng" sẽ được, theo bản chất của nó, chủ quan. Mọi người sẽ có một quan điểm hơi khác nhau.

Nếu bạn không thể khám phá nguyên nhân của vấn đề của mình trong khoảng 5 phút xem mã thực tế, thì ít nhất tôi sẽ Google nó. Nếu một tìm kiếm tốt không có câu trả lời, thì tôi sẽ bắt đầu viết câu hỏi của bạn trên SO.

Hãy nhớ rằng không nên đăng câu hỏi đó; đã có những lúc, khi đặt câu hỏi thành lời nói, giải pháp đã tự trình bày và tôi không thực sự phải đặt nó cho các bạn.


0

Bạn có thể viết câu hỏi của bạn sớm nhưng bạn không nên đăng nó cho đến khi bạn đã nghiên cứu chính xác nguồn gốc của vấn đề. Viết những điều bạn đã loại bỏ và cách bạn loại bỏ chúng. Bạn cũng nên kiểm tra các câu hỏi tương tự khác và nếu bạn thực sự muốn đăng câu hỏi của mình, hãy giải thích tại sao đây không phải là câu hỏi tương tự.

Nếu bạn làm điều đó đúng cách, bạn sẽ thấy rằng nhiều lần bạn sẽ giải quyết vấn đề của riêng bạn.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.