Ketika macet, seberapa cepat satu resor ke Stack Overflow? [Tutup]

51

Saya belajar mandiri pengembangan iOS melalui kursus iTunes U CS193p, dan saya sering merasa diri saya mandek. Saya sudah mencoba melepaskan diri, tetapi mungkin butuh berjam-jam untuk mencari tahu apa yang saya lakukan salah, apakah itu kehilangan metode atau tidak benar-benar mendapatkan konsep keseluruhan seperti delegasi.

Saya khawatir bahwa saya mungkin akan membuang-buang terlalu banyak waktu, dan saya akan lebih baik pergi ke Stack Overflow segera setelah saya macet sehingga saya bisa melanjutkan.

Dalam pengalaman Anda, apakah dengan cepat bertanya tentang Stack Overflow menghambat proses pembelajaran atau memperbaikinya?

MaxGabriel
sumber
45
Perlu dicatat bahwa mencari jawaban pada SO adalah salah satu hal pertama yang harus Anda coba. Bahkan jika tidak ada jawaban yang cocok dengan pertanyaan Anda, kemungkinan ada sesuatu yang memberi Anda wawasan. Tetapi mengajukan pertanyaan Anda sendiri adalah sesuatu yang tidak boleh Anda lakukan, sampai Anda telah berusaha sangat keras untuk menjawab pertanyaan itu untuk diri Anda sendiri, dan melakukan upaya nyata untuk merumuskan pertanyaan Anda dengan cara yang dengan jelas menunjukkan apa yang Anda miliki dan belum miliki. sudah mencoba.
Dawood mengatakan mengembalikan Monica
1
@ Davidvidallall sangat setuju. Terlalu banyak orang bertanya tanpa berpikir (pertanyaan berkualitas rendah), beberapa orang berpikir dan bertanya (pertanyaan yang lebih baik, tapi saya berharap lebih banyak orang benar-benar mencari sebelum bertanya (kurang (dekat) duplikat).
Marjan Venema
3
Seperti halnya mengajukan pertanyaan apa pun, jika Anda telah mencari kemungkinan jawaban sendiri terlebih dahulu, Anda akan belajar lebih banyak ketika Anda melihat jawaban yang sebenarnya: Anda akan melihat di mana Anda lupa mencari, dan lain kali Anda dapat mencari di sana juga. Anda tidak hanya mempelajari jawabannya, Anda juga belajar mencari jawaban. Ketika Anda belum memikirkan jawaban sendiri sebelumnya, Anda hanya mendapatkan jawabannya dan melanjutkan, tetapi belajar lebih sedikit secara umum. Anda tidak memperbaiki diri sendiri.
Konerak
3
Pendekatan pragmatis: SO paling cocok untuk pertanyaan sederhana, jadi saya akan mengatakan langsung bertanya (Anda harus dapat merumuskan pertanyaan). Setelah mengetikkan judul Anda akan disajikan dengan daftar pertanyaan terdekat - Anda harus memastikan pertanyaan Anda tidak ada dalam daftar, tetapi tidak perlu melakukan pencarian tambahan SO.
Grzenio
6
Saya pikir ini mungkin harus ditanyakan pada SO's Meta.
hugomg

Jawaban:

35

Ketika saya bekerja dengan pengembang baru, saya mendorong mereka untuk mengajukan pertanyaan setelah lima atau sepuluh menit di mana mereka tidak membuat kemajuan.

Itu memiliki dua manfaat: yang pertama adalah mereka bisa mendapatkan bantuan tanpa terlalu banyak menghabiskan waktu menatap masalah, tetapi mereka hanya bertanya kapan mereka tidak mendapatkan suatu tempat. Jika mereka belajar - bahkan pada sesuatu yang pada akhirnya tidak jawabannya - mereka lebih mungkin untuk menyimpan informasi tersebut dengan bermanfaat.

Yang kedua adalah setelah sekitar waktu itu mereka harus menjelaskan masalahnya kepada orang lain. Itu memecahkan sebagian besar masalah, karena mengalaminya secara end-to-end berarti Anda dapat menemukan hal yang Anda lewatkan dalam pekerjaan Anda sebelumnya.

Karena sepertinya Anda melakukan ini sendirian, cobalah beralih ke boneka mainan, atau jam, atau dinding, dan menanyakan hal itu tentang masalahnya. Jelaskan seperti yang Anda lakukan kepada seseorang, dan lihat apakah itu memperbaiki keadaan.

Jika tidak, dan Anda tidak membuat kemajuan, tanyakan kepada seseorang. Menghabiskan lebih dari lima atau sepuluh menit macet adalah buang-buang waktu - kecuali Anda terus melakukan hal lain, maka kembalilah ke masalah dengan pikiran yang segar.

Daniel Pittman
sumber
17
Tidak ada yang berbicara dengan anjing Anda untuk melepaskan diri. :-)
Marjan Venema
2
Dan ketika Anda menyadari apa yang Anda lakukan salah, anjing Anda akan seperti " WOW! Aku tidak akan pernah memikirkan itu!" Mengalahkan beberapa upvotes untuk meningkatkan ego. ;-)
CVn
4
+1 Ini disebut "debugging bebek" dari berbicara dengan bebek mainan Anda. Saya punya boneka voodoo. Saya menyebutnya voodoo debugging.
Sardathrion
4
Jawaban bagus +1. Saya telah "terjebak" BANYAK kali selama bertahun-tahun, dan menemukan bahwa jawabannya menjadi jelas bagi saya ketika saya menjelaskannya kepada orang lain. Saya juga menemukan berjalan / melakukan sesuatu untuk mendapatkan kepala yang jernih sering berhasil. Saya tidak akan menggunakan Stack Overflow terlalu cepat, jika Anda mencari solusinya sendiri, Anda TIDAK akan pernah melupakannya! Ada banyak programmer yang mati otak di sekitar hari-hari ini yang terlalu mengandalkan web.
AnthonyBlake
2
dan begitu banyak pertanyaan saya menjawab sendiri ketika saya sedang menyusun pertanyaan di SO. Tindakan membingkai detail pertanyaan Anda mengungkapkan beberapa jawaban
aldrin
22

Satu-satunya tambahan saya untuk jawaban hebat semua orang:

MENGATAKAN pertanyaan Anda ke antarmuka pertanyaan StackOverflow adalah cara yang bagus untuk memastikan Anda memikirkannya sepenuhnya. Saya tidak bisa mulai memberi tahu Anda berapa banyak pertanyaan yang telah saya jawab sendiri dalam proses mengungkapkannya dengan cukup jelas untuk mengajukannya dengan benar. Pertanyaan yang sudah saya mulai dan belum terkirim jauh melebihi jumlah yang sebenarnya saya tanyakan.

Jadi, saya katakan maju dan bertanya (setelah mencari, tentu saja), hanya saja jangan terikat untuk benar-benar memukul "Kirim".

Dan Ray
sumber
+1 - Ini tidak bisa dilebih-lebihkan. Ini adalah alasan lain mengapa merumuskan pertanyaan dengan hati-hati sangat penting. (Dan algoritma saran-saran otomatis di sidebar akan menampilkan pertanyaan relevan lainnya bahkan lebih akurat).
kmote
@kmote - CINTA hal itu. Ini memecahkan banyak masalah bagi saya.
Dan Ray
1
kisah hidupku..memecahkan begitu banyak masalah sebelum akhirnya menyerah.
Ayush Goyal
20

Stack Overflow, dan setiap situs Stack Exchange lainnya, memiliki seperangkat pedoman untuk mengajukan pertanyaan :

  • Kerjakan pekerjaan rumah Anda
  • Lebih spesifik
  • Jadikan relevan dengan orang lain
  • Jadilah sesuai topik
  • Tetap berpikiran terbuka

"Kerjakan pekerjaan rumah Anda" menyiratkan bahwa Anda tidak boleh terlalu cepat bertanya. "Jadilah spesifik" menyiratkan bahwa Anda memahami domain masalah Anda dengan cukup baik untuk menguraikannya secara ringkas. Jika tidak, "lakukan pekerjaan rumah Anda" berlaku. "Tetaplah berpikiran terbuka" menyiratkan bahwa Anda harus siap mengeksplorasi solusi yang menurut Anda tidak relevan dengan masalah Anda.

Jadi ini bukan tentang bertanya di Stack Overflow, tetapi apakah pertanyaan Anda bagus. Pada dasarnya upaya yang dibutuhkan adalah pengalaman belajar itu sendiri. Jika Anda melakukannya dengan benar, Anda mungkin akan belajar beberapa hal baru hanya dengan mencari duplikat. Jika tidak, ping saya, saya punya beberapa suara untuk cadangan. : P

yannis
sumber
1
Saya hanya mulai menggunakan kumpulan situs web ini (StackOverflow dll) dalam beberapa bulan terakhir dan saya harus mengatakan saya sangat terkesan dengan satu hal: ejaan dan penulisan yang koheren. Meskipun hanya sebagian kecil dari anggota terdaftar memiliki bahasa Inggris sebagai bahasa ibu mereka, hampir semua orang sangat berhati-hati tentang bagaimana mereka menulis. Saya pikir tidak ada tempat lain di Internet di mana basis pengguna yang besar mempertahankan kualitas seperti itu. Aneh, tapi mengesankan. PS: Saya ingin mengatakan ini untuk beberapa waktu, hanya perlu tempat untuk membuatnya entah bagaimana ontopic :).
Radu Murzea
1
@SoboLAN Ini adalah filosofi wiki. Kami mengedit posting masing-masing secara konstan, bahkan untuk kesalahan ejaan kecil. Sebagai penutur bahasa Inggris bukan asli, ketika saya pertama kali bergabung dengan Stack Exchange saya membiasakan diri mengamati jenis pengeditan apa yang dibuat orang, belajar dari kesalahan orang lain. Namun produk sampingan lain yang positif dari pengalaman Stack Exchange, saya kira. Siapa tahu, pada titik tertentu saya bahkan mungkin cukup percaya diri dengan bahasa Inggris saya untuk mencoba jawaban di Bahasa Inggris & Penggunaan Stack Exchange . : P
yannis
3

Secara pribadi, ketika saya mulai pemrograman saya menghabiskan banyak waktu untuk mencari tahu. Saya bisa menghabiskan waktu berjam-jam untuk mencoba memperbaiki sesuatu. Saya tidak melihat jam-jam itu tidak produktif, pada jam-jam itu saya belajar cara mencari barang secara online dan saya benar-benar mendapatkan wawasan tentang bagaimana bahasa pemrograman saya bekerja. Jadi saya pikir bertanya terlalu cepat pada SO merampas pengalaman belajar Anda. Masuk ke pemrograman hanya membutuhkan waktu yang sangat lama.

Lalu ada pertanyaan tentang seberapa cepat untuk bertanya, saya akan mengatakan menghabiskan beberapa jam pada masalah tertentu tidak lama (perhatikan bahwa saya berasal dari latar belakang akademis, mungkin di latar belakang komersial ini kurang diterima).

Dan ketika Anda mengajukan pertanyaan pada SO, investasikan waktu ke dalam pertanyaan:

  • Saat Anda memiliki kesalahan, poskan teks kesalahan yang sebenarnya. Juga memposting kode yang mengarah ke kesalahan, lebih disukai contoh mandiri yang berjalan di komputer apa pun.
  • Tunjukkan apa yang sudah Anda coba.
  • Sebutkan versi perangkat lunak yang Anda gunakan: versi kompiler, versi python.

Ini hanya beberapa poin. Dengan menginvestasikan waktu ke pertanyaan yang Anda hormati orang-orang di SO, Anda menggunakan waktu mereka secara gratis. Lebih penting lagi, Anda menyusun masalah Anda. Ini mungkin sudah menyelesaikan masalah Anda :).

Hanya 2 ct saya ...

Paul Hiemstra
sumber
1

Saya percaya bahwa hal yang penting di sini adalah untuk benar-benar memahami apa yang sedang Anda hadapi dan mencoba untuk mencapai masalah prinsip. Setelah Anda benar-benar menelusuri apa masalah sebenarnya kemudian menggunakan Stack Overflow adalah salah satu hal pertama yang saya lakukan.

Tapi, itu tidak mengajukan pertanyaan.

Mencari semua jawaban yang bagus. Peluangnya adalah masalah yang Anda alami saat ini telah dimiliki oleh orang lain dan mereka sudah menanyakan pertanyaan Anda. Jika Anda merasa terdorong untuk menggunakan Stack Overflow ingatlah bahwa itu bukan hanya sebuah situs untuk Anda ajukan pertanyaan ketika Anda bingung. Ini juga merupakan tempat penyimpanan untuk beberapa informasi hebat tentang pemrograman komputer; gunakan fungsi pencarian.

Jika Anda mencari dengan beberapa istilah / kata kunci yang berbeda dan masih nihil, dan Anda telah melakukan pekerjaan rumah dan memiliki sampel kode yang dapat Anda pamerkan dan Anda benar-benar yakin pertanyaan Anda sebenarnya bukan duplikat , maka tentu saja tanyakan pertanyaan Anda tentang Stack Overflow. Itulah yang ada di situs itu untuk yang terakhir saya periksa.

Charles Sprayberry
sumber
1

Ini sepenuhnya subjektif, tapi inilah aturan dasar saya untuk penggunaan saya.

1) Apakah rumah saya terbakar? Jelas, tidak secara harfiah, tetapi apakah ini masalah yang tidak hanya membutuhkan solusi langsung, tetapi solusi darurat. Jika demikian, coba saja, gagal dengan cepat, dapatkan bantuan terbaik.

2) Apakah ini sesuatu yang dapat saya teliti? Jika itu adalah sesuatu di mana saya punya waktu dan itu bisa diteliti saya akan turun rute itu, dan itu termasuk SO sebagai sumber daya gratis. SO itu hebat, begitu juga Wiki, begitu juga lusinan sumber daya lainnya.
Baca banyak, ini membantu pemahaman Anda ketika ada pendekatan yang berbeda untuk suatu masalah, tetapi pertama-tama habiskan waktu mencoba untuk melihat apakah pengetahuan Anda yang ada dapat diterapkan kembali ke masalah tersebut, maka Anda telah membangun sendiri alat mental baru.

3) Apakah ini sesuatu yang berada di luar keahlian saya / sangat tidak jelas sehingga mungkin ada 100 orang yang pernah melihatnya? Ini terjadi, dan sering terjadi. Saya biasanya akan mencoba penelitian selama satu atau dua jam kemudian menuju ke sini atau sumber daya lainnya.

Saya tahu lebih mulia untuk duduk dan melakukan penelitian dan menghabiskan waktu, tetapi seringkali kita memiliki batasan waktu dan Anda menggunakan setiap sumber daya yang tersedia, bahkan jika rasanya seperti 'menipu' sistem.

Nicholas Smith
sumber
0

"Seberapa cepat" akan menjadi, pada dasarnya, subjektif. Semua orang akan memiliki pendapat yang sedikit berbeda.

Jika Anda tidak dapat menemukan penyebab masalah Anda dalam sekitar 5 menit melihat kode yang sebenarnya, setidaknya saya akan Google itu. Jika pencarian yang baik tidak memiliki jawaban, maka saya akan mulai menulis pertanyaan Anda pada SO.

Ingatlah bahwa tidak masalah untuk mengirimkan pertanyaan itu; ada saat-saat ketika, dalam mengajukan pertanyaan ke dalam kata-kata tertulis, solusinya telah muncul dengan sendirinya dan saya tidak harus benar-benar menaruhnya kepada kalian.

KeithS
sumber
0

Anda dapat menulis pertanyaan Anda lebih awal tetapi Anda tidak harus mempostingnya sampai Anda benar-benar meneliti sumber masalah Anda. Tuliskan hal-hal yang telah Anda hilangkan dan bagaimana Anda menghilangkannya. Anda juga harus memeriksa pertanyaan serupa lainnya dan jika Anda benar-benar ingin memposting pertanyaan Anda, jelaskan mengapa ini bukan pertanyaan yang sama.

Jika Anda melakukannya dengan benar, Anda akan menemukan bahwa berkali-kali Anda akan memecahkan masalah Anda sendiri.

Marcin
sumber