Quando bloccato, quanto velocemente si dovrebbe ricorrere a StackTranslate.it? [chiuso]


51

Sto autoapprendendo lo sviluppo iOS attraverso il corso iTunes U CS193p e spesso mi ritrovo bloccato. Ho cercato di sbloccarmi da solo, ma potrei impiegarmi ore e ore a capire cosa sto facendo di sbagliato, sia che manchi un metodo o non riesca davvero a ottenere un intero concetto come la delega.

Sono preoccupato che potrei perdere troppo tempo, e farei meglio ad andare a Stack Overflow poco dopo essermi bloccato per poter andare avanti.

Nella tua esperienza, chiedere rapidamente su Stack Overflow ostacola il processo di apprendimento o lo migliora?


45
Vale la pena notare che la ricerca di una risposta su SO è una delle prime cose che dovresti provare. Anche se non esiste una risposta che corrisponda esattamente alla tua domanda, è probabile che ci sia qualcosa che ti dia un'idea. Ma porre la tua domanda è qualcosa che non dovresti fare, fino a quando non hai provato davvero a rispondere alla domanda da solo, e hai fatto uno sforzo reale per formulare la tua domanda in un modo che indica chiaramente ciò che hai e non hai già provato.
Dawood dice di ripristinare Monica il

1
@DavidWallace Non potrei essere più d'accordo. Troppe persone chiedono semplicemente senza pensare (domande di bassa qualità), alcune persone pensano e fanno (domande migliori, ma vorrei che più persone cercassero effettivamente prima di chiedere (meno (quasi) duplicati).
Marjan Venema

3
Come per fare qualsiasi domanda, se prima hai cercato una possibile risposta, imparerai di più quando vedrai la risposta effettiva: vedrai dove hai dimenticato di cercare e la prossima volta potrai cercare anche lì. Non impari solo la risposta, impari anche a cercare risposte. Quando non hai pensato prima a una risposta, ottieni semplicemente la risposta e vai avanti, ma impari meno in generale. Non ti migliora.
Konerak,

3
L'approccio pragmatico: SO è più adatto a domande semplici, quindi direi di chiederlo quasi subito (devi essere in grado di formulare la domanda però). Dopo aver digitato il titolo, ti verrà presentato l'elenco delle domande più vicine: dovresti assicurarti che la tua domanda non sia nell'elenco, ma non è necessario eseguire ulteriori ricerche di SO.
Grzenio,

6
Penso che questo dovrebbe probabilmente essere stato chiesto su Meta di SO.
hugomg,

Risposte:


35

Quando lavoro con nuovi sviluppatori, li incoraggio a fare domande dopo cinque o dieci minuti in cui non stanno facendo progressi.

Ciò ha due vantaggi: il primo è che possono ottenere aiuto senza troppo tempo trascorso a fissare un problema, ma chiedono solo quando non arrivano da qualche parte. Se stanno imparando - anche su qualcosa che non è in definitiva la risposta - hanno molte più probabilità di conservare utilmente tali informazioni.

Il secondo è che dopo così tanto tempo devono spiegare il problema a qualcun altro. Ciò risolve un'enorme percentuale di problemi, perché affrontarla in modo end-to-end significa che puoi individuare ciò che ti sei perso nel tuo lavoro precedente.

Dal momento che sembra che tu lo stia facendo da solo, prova a rivolgerti a un peluche, all'orologio o al muro e a chiederlo del problema. Spiegalo come faresti a una persona e vedi se questo risolve le cose.

In caso contrario, e non stai facendo progressi, chiedi a qualcuno. Trascorrere più di cinque o dieci minuti bloccati è una perdita di tempo, a meno che tu non continui a fare qualcos'altro, quindi ritorni al problema con una mente fresca.


17
Non c'è niente come parlare con il tuo cane per rimanere bloccato. :-)
Marjan Venema,

2
E quando ti rendi conto di cosa stai facendo di sbagliato, il tuo cane sarà come " WOW! Non ci avrei mai pensato!" Batte alcuni voti per una spinta dell'ego. ;-)
un CVn

4
+1 Questo si chiama "debugging delle anatre" quando parla con il tuo giocattolo ducky. Ho una bambola voodoo. Lo chiamo debug voodoo.
Sardathrion,

4
Ottima risposta +1. Sono stato "bloccato" MOLTE volte nel corso degli anni e ho scoperto che la risposta mi diventa chiara quando la spiego a qualcun altro. Trovo anche che andare via / fare qualcosa per avere una testa chiara spesso funzioni. Non ricorrerei a Stack Overflow troppo rapidamente, se capisci tu stesso la soluzione non la dimenticherai MAI! In questi giorni ci sono molti programmatori morti di cervello che fanno troppo affidamento sul web.
AnthonyBlake,

2
e così tante delle mie domande si sono risposte mentre stavo redigendo la domanda su SO. L'atto stesso di inquadrare i dettagli della tua domanda rivela alcune risposte
aldrin,

22

La mia unica aggiunta alle grandi risposte di tutti gli altri:

Digitare la tua domanda nell'interfaccia della domanda StackOverflow è un ottimo modo per assicurarti di pensarci a fondo. Non posso iniziare a dirti a quante domande ho risposto da solo nel processo di stenderlo abbastanza chiaramente per farle correttamente. Le domande che ho iniziato e che non ho presentato VASTAMENTE sono più numerose di quelle che ho effettivamente posto.

Quindi, direi di andare avanti e chiedere (dopo aver cercato, ovviamente), semplicemente non essere attaccato a colpire effettivamente "Invia".


+1 - Questo non può essere sopravvalutato. Questo è un altro motivo per cui la formulazione accurata delle domande è così importante. (E l'algoritmo di suggerimento automatico delle risposte nella barra laterale visualizzerà altre domande pertinenti in modo ancora più accurato).
kmote

@kmote - ADORO quella cosa. Ha risolto così tanti problemi per me.
Dan Ray,

1
storia della mia vita ... risolto così tanti problemi prima di premere invio.
Ayush Goyal,

20

Stack Overflow e ogni altro sito Stack Exchange ha una serie di linee guida per porre domande :

  • Fai i tuoi compiti
  • Sii specifico
  • Renderlo rilevante per gli altri
  • Sii in tema
  • Mantieni una mente aperta

"Fai i compiti" implica che non dovresti essere troppo veloce per chiedere. "Sii specifico" implica che hai compreso il dominio del tuo problema abbastanza bene da delinearlo in modo conciso. In caso contrario, si applica "fai i compiti". "Mantieni una mente aperta" implica che dovresti essere pronto a esplorare soluzioni che non avresti mai pensato fossero rilevanti per il tuo problema.

Quindi non si tratta di chiedere su Stack Overflow, ma se le tue domande sono buone. Essenzialmente lo sforzo richiesto è un'esperienza di apprendimento in sé. Se lo fai bene, probabilmente imparerai un paio di cose nuove solo cercando i duplicati. In caso contrario, ping me, ho un paio di voti negativi da risparmiare. : P


1
Ho iniziato a utilizzare questa famiglia di siti Web (StackOverflow ecc.) Negli ultimi mesi e devo dire che sono estremamente colpito da una cosa: ortografia e scrittura coerente. Anche se solo una piccola percentuale di membri registrati ha l'inglese come lingua madre, praticamente tutti sono estremamente attenti a come scrivono. Penso che non ci sia altro posto su Internet in cui un'enorme base di utenti mantenga tale qualità. È strano, ma impressionante. PS: volevo dirlo da tempo, avevo solo bisogno di un posto per renderlo in qualche modo ontopico :).
Radu Murzea,

1
@SoboLAN È la filosofia wiki. Modifichiamo i post degli altri costantemente, anche per errori di ortografia minori. Come madrelingua inglese, quando ho aderito per la prima volta a Stack Exchange ho preso l'abitudine di osservare che tipo di modifiche le persone facevano, imparando dagli errori degli altri. Un altro sottoprodotto positivo dell'esperienza Stack Exchange, immagino. Chissà, a un certo punto potrei persino avere abbastanza confidenza con il mio inglese da provare una risposta allo scambio di stack di lingua e utilizzo in inglese . : P
yannis,

3

Personalmente, quando ho iniziato a programmare ho trascorso molto tempo a cercare di capire le cose. Potrei passare ore a cercare di riparare qualcosa. Non vedo quelle ore come non produttive, in quelle ore ho imparato a cercare cose online e ho davvero avuto un'idea di come funzionava il mio linguaggio di programmazione. Quindi penso che chiedere troppo velocemente su SO ti privi di un'esperienza di apprendimento. Entrare in programmazione richiede solo molto tempo.

Quindi c'è una domanda su quanto presto chiedere, direi che passare qualche ora su un problema particolare non è lungo (nota che vengo da un background accademico, forse in contesti commerciali questo è meno accettato).

E quando fai una domanda su SO, investi tempo nella domanda:

  • Quando si verifica un errore, pubblicare il testo esatto dell'errore. Pubblica anche il codice che porta all'errore, preferibilmente un esempio autonomo che viene eseguito su qualsiasi computer.
  • Mostra quello che hai già provato.
  • Menziona le versioni del software che usi: versioni del compilatore, versione di Python.

Questi sono solo alcuni punti. Investendo tempo in una domanda che rispetti le persone su SO, usi il loro tempo gratuitamente. Ancora più importante, strutturi il tuo problema. Questo potrebbe già risolvere il tuo problema :).

Solo i miei 2 ct ...


1

Credo che l'importante qui sia capire davvero su cosa sei bloccato e cercare di arrivare al problema principale. Dopo esserti veramente radicato su quale sia il vero problema, utilizzare Stack Overflow è una delle prime cose che faccio.

Ma non sta facendo una domanda.

Sta cercando tra tutte le grandi risposte. È probabile che il problema che stai riscontrando in questo momento sia stato riscontrato da qualcun altro e che abbiano già posto la tua domanda. Se ti senti in dovere di usare Stack Overflow, ricorda che non è solo un sito a porre una domanda quando sei perplesso. È anche un archivio per alcune informazioni davvero eccezionali sulla programmazione informatica; usa la funzione di ricerca.

Se hai cercato con un paio di termini / parole chiave diversi e ottieni ancora zero, e hai fatto i compiti e hai esempi di codice che puoi mostrare e sei davvero sicuro che la tua domanda non sia davvero un duplicato , quindi chiedi sicuramente la tua domanda su Stack Overflow. Questo è ciò che il sito è lì per ultimo ho controllato.


1

È del tutto soggettivo, ma ecco le mie regole di base per il mio utilizzo.

1) La mia casa è in fiamme? Ovviamente, non letteralmente, ma è un problema che non richiede solo una soluzione immediata, ma una soluzione di emergenza. In tal caso, provaci, fallisci rapidamente, ottieni il miglior aiuto possibile.

2) È qualcosa che posso ricercare? Se è qualcosa in cui ho tempo ed è ricercabile, seguirò quella strada, e questo include SO come risorsa gratuita. SO è fantastico, così come Wiki, così come le altre dozzine di risorse.
Leggi molto, aiuta a capire quando esistono approcci diversi a un problema, ma prima passa il tempo a cercare di vedere se le tue conoscenze esistenti possono essere riapplicate al problema, quindi ti sei costruito un nuovo strumento mentale.

3) È qualcosa che esula dal mio set di abilità / è così oscuro che probabilmente ci sono 100 persone che l'hanno mai visto? Questo succede e succede spesso. In genere proverò la ricerca per un'ora o due, quindi mi dirigo qui o altre risorse.

So che è più nobile sedersi e fare le ricerche e passare il tempo, ma spesso abbiamo vincoli di tempo e usi tutte le risorse disponibili, anche se ti sembra di "imbrogliare" il sistema.


0

"Quanto velocemente" sarà, per sua natura, soggettivo. Tutti avranno un'opinione leggermente diversa.

Se non riesci a scoprire la causa del tuo problema in circa 5 minuti guardando il codice effettivo, lo farei almeno Google. Se una buona ricerca non ha le risposte, allora inizierei a scrivere la tua domanda su SO.

Tieni presente che è OK non pubblicare effettivamente quella domanda; ci sono stati momenti in cui, nel mettere la domanda in parole scritte, la soluzione si è presentata e non ho dovuto metterla davvero a voi ragazzi.


0

Puoi scrivere la tua domanda in anticipo ma non dovresti pubblicarla fino a quando non avrai adeguatamente studiato la fonte del tuo problema. Scrivi le cose che hai eliminato e come le hai eliminate. Dovresti anche cercare altre domande simili e se vuoi davvero pubblicare la tua domanda, spiega perché questa non è la stessa domanda.

Se lo fai correttamente, scoprirai che molte volte risolverai il tuo problema.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.