È una buona idea usare sempre Google come primo passo per risolvere un problema? [duplicare]

34

Evitando lunghe discussioni, come studente senior di CS, come posso evitare i problemi di Google con cui mi imbatto? Mi trovo a usarlo troppo; Apparentemente raggiungo la risposta immediata e poi copio e incolpo ciecamente il codice, sperando che funzioni. Chiunque può farlo. Ho letto i thread correlati sull'essere un programmatore migliore, ma per lo più quelli consigliano di esercitarsi su progetti di animali domestici, cosa che ho fatto, ma ancora una volta mi sento che ogni muro incontrato, dalla progettazione fino al completamento, è stato ostacolato con Google.

I professionisti "ricercano" istantaneamente il loro problema? O ragazzi fate un passo indietro e provate a capirlo da soli?

Sto parlando sia dei problemi di 'algoritmo / design' che dei problemi del compilatore.

    
posta 7 revs, 4 users 58%unknown 12.04.2017 - 09:31
fonte

22 risposte

81

Ricerco la maggior parte dei problemi che ho incontrato.

Se riscontro un problema, la mia prima ipotesi è che non sono il primo ad averlo incontrato.

Inoltre, non credo nel reinventare la ruota, quindi cercherò una soluzione esistente prima di scrivere la mia.

La questione della ricerca è che devi valutare i risultati e quanto bene si adattano (o meno) al tuo codice base / modello / progetto / squadra. Ciò significa che devi capire la soluzione, come funziona e come applicarla alla tua situazione.

La mia ricerca consente ai miei clienti di risparmiare tempo e denaro.

Prima dei tempi dei motori di ricerca, ho fatto domande su usenet. Internet è un ottimo strumento: usalo.

    
risposta data 18.10.2011 - 22:11
fonte
25

Google è uno strumento e non dovresti sentirti a disagio nell'usarlo a tuo vantaggio. Cercare i problemi non è una brutta cosa. Perché dedicare un'ora a risolvere un problema che potrebbe essere già stato risolto, e in un modo migliore, quindi cosa potresti inventare.

Detto questo, tenterei di capire perché la soluzione che trovi funziona. Copiare in modo cieco e incollare il codice sicuramente non ti porterà da nessuna parte, e in fondo alla strada se i problemi sorgono da quel codice, avrai molto più difficile tentare di risolverli.

    
risposta data 12.10.2011 - 22:43
fonte
10

Cercare su Google le risposte è una buona pratica: stai scavando nell'esperienza e nella conoscenza di centinaia e migliaia di persone che potrebbero aver affrontato esattamente lo stesso problema che hai e possono aiutarti a risolverlo.

Per quanto riguarda la copia e l'incollatura cieca, è così che impariamo anche noi. È esattamente quello che facciamo con i nostri libri di testo: digitando il codice dalla pagina nell'IDE senza averlo ancora compreso (se lo hai già capito, non vorrai vederlo girare).

Alla fine speri che la comprensione arrivi: lo stai facendo bene se riesci a imparare qualcosa. Ma c'è sempre molto da imparare, risolvere un problema fa solo spazio al prossimo problema - quindi non vergognarti di ricevere aiuto quando ne hai bisogno.

Se il tuo c & p è veramente cieco, non progredirai; la tua abilità come studente o professionista non è misurata dalla tua capacità di usare Google, ma dalla tua capacità di comprendere e interpretare i risultati e di sviluppare le tue abilità nel tempo. Cieco c & p non è gratificante a lungo termine. Anche per quei problemi in cui ho avuto un magico c & p="wow, ora funziona!" Non sono mai stato veramente soddisfatto fino a quando non sono tornato indietro fino a quando ho capito come funziona.

A volte troverai che Google non aiuta. Soprattutto quando inizi a diventare più specializzato sia come ricercatore che come sviluppatore funzionante, molto spesso riceverai un messaggio di errore, lo inserirai su Google e, con tuo stupore, vedrai:

La tua ricerca - "Eccezione mentre disincaglia l'elo-blen: perché l'hai fatto?" - non ha trovato alcun documento.

Allora verrà una vera prova delle tue abilità ...

    
risposta data 13.10.2011 - 06:15
fonte
5

Non vuoi solo copiare e incollare le risposte; è così che rimani un terribile programmatore. Tuttavia, osservando il lavoro che altri hanno fatto prima di te, puoi iniziare a capire i modelli che emergono per risolvere i problemi comuni e applicarli al tuo codice.

Come studente CS attuale, è improbabile che tu non abbia incontrato molti problemi che devono ancora essere risolti. Con ogni probabilità, i tuoi esercizi sono di per sé piuttosto banali, e non lo sarà fino a quando non avrai il tempo di tagliare davvero i denti sugli esercizi del mondo reale che inizierai ad acquisire una migliore conoscenza applicata dello sviluppo del software. C'è da aspettarsi - è per questo che è stata inventata la posizione di Junior Developer. Non preoccuparti, a questo punto della tua carriera, una grande parte della battaglia è semplicemente sapere come trovare le risposte.

    
risposta data 12.10.2011 - 22:50
fonte
5

Sono d'accordo sul fatto che Internet sia uno strumento da utilizzare.

Detto questo, devi essere consapevole della licenza che ogni codice che usi da internet è stato rilasciato sotto. Se copi alcuni pezzi di codice GPL con licenza nel codice proprietario della tua azienda, questo potrebbe finire per causare dei veri problemi quando le persone dicono che la tua azienda ora deve rilasciare il suo codice proprietario sotto GPL perché è un "lavoro derivato". Quando sono stato internato in Microsoft, il mio manager mi ha messo in guardia dal guardare troppo spesso il codice open source.

Ovviamente, questo non è un problema quando vai a scuola perché di solito non vendi o distribuisci i programmi che scrivi per classe.

    
risposta data 13.10.2011 - 03:07
fonte
4

Come programmatore professionista, mi trovo sempre a cercare su Google cose che ho bisogno di sapere e non c'è. Non esiste semplicemente una risorsa migliore di Internet per fornire risposte alle domande.

Tuttavia, questo solleva due punti importanti:

  • Le informazioni su Internet non sono sempre vere o corrette . Che ci crediate o no, le informazioni su Internet sono messe lì dalle persone e quelle persone non sono infallibili; possono avere un errore di fatto onesto, o possono in qualche modo ottenere un jolly per fuorviare gli altri. Quindi, controlla sempre le informazioni; di solito ci sono molte fonti e se tutti sono d'accordo puoi essere abbastanza sicuro della correttezza della risposta.

  • Da studente, e anche nella tua carriera, dovresti sempre capire il "perché" e il "come" di una risposta. Certo, non sei quasi certamente la prima persona a ho riscontrato un problema particolare nell'informatica. Le uniche persone che hanno problemi veramente unici sono i veri "informatici" che stanno sviluppando le prossime generazioni di dispositivi informatici; i limiti, i modelli e le soluzioni per i problemi del moderno microcomputer elettronico sono ben noti e ben calpestati. Tuttavia, solo perché sono conosciuti non significa che non devi conoscere te stesso. Prima o poi ti verrà chiesto di sapere come qualcosa ha messo in opera, o per modificare il suo comportamento o per spiegare il suo funzionamento attuale a qualcun altro. Non sapere in questi casi ti farà del male professionalmente. Quindi, quando esegui lo slapping in un'implementazione ottenuta da StackOverflow o CodePlex, dovresti sempre tracciarlo, ricercare qualsiasi oggetto o chiamata non familiare e generalmente familiarizzare con la struttura, il pattern e il flusso dell'algoritmo, in modo che anche se tu non hai inventato la risposta, ora sai perché è corretto (o talvolta perché NON può essere corretto in una determinata situazione, ad esempio non tutti i tipi sono creati uguali).

risposta data 13.10.2011 - 21:59
fonte
2

Niente di sbagliato con le informazioni su Google, ma su come Google è importante. 'Copiare e incollare alla cieca' non sembra un modo costruttivo di farlo. Un modo migliore per affrontarlo è considerarlo come un apprendimento dall'esperienza di programmatori che sono più esperti (e nel mio caso, spesso più intelligenti!) Di te. Quasi tutti i problemi che incontrerai saranno stati risolti da qualcun altro in passato, quindi risparmia il tempo non andando giù per tutti i vicoli ciechi che hanno fatto e imparando dalla loro esperienza. Un'altra cosa saggia da fare sarebbe non solo andare per la prima risposta, ma per valutare molti. E ovviamente, quando si tratta di utilizzare determinati strumenti, stai cercando risposte giuste o sbagliate.

E invece di usare Google, potresti andare direttamente a Stack Overflow o Programmers SE!

Ma seriamente, Google è uno strumento utilizzato da tutti gli sviluppatori professionisti.

    
risposta data 12.10.2011 - 22:55
fonte
2

Un buon programmatore è uno che sa molto. Un grande programmatore è uno che sa dove trovare tutto.

È raro avere la capacità di ricordare ogni singolo dettaglio di ciò che facciamo. C'è talmente tanta tecnologia là fuori (lingue / framework / piattaforme / ecc.). A volte hai bisogno di ricercare documentazione. Aprendo un libro delle risorse o usando Google su Google, il risultato è lo stesso: la tua soluzione . (a condizione che tu stia guardando una risorsa stimabile su Internet)

    
risposta data 13.10.2011 - 06:02
fonte
1

È sempre utile ricercare ciò che altre persone hanno fatto in una situazione simile o simile e imparare da loro, invece di reinventare la ruota, lentamente e in modo non corretto. Finché ti sforzi di imparare dalle soluzioni di Google, allora sei in buona forma!

    
risposta data 12.10.2011 - 22:59
fonte
1

Ecco la cosa con google:

Non c'è niente di sbagliato consultando google / stackoverflow / etc per aiuto. Tuttavia, non vorrei copiare / incollare il codice in modo cieco poiché molto probabilmente non si integrerà correttamente. Usalo come punto di partenza e vai da lì.

Non aver paura di usare Google. Preferirei un dipendente a Google un problema che perdere tempo a girare le ruote. Ci siamo consultati tutti su google - e questa è una buona cosa

    
risposta data 12.10.2011 - 23:12
fonte
1

Se non so in pochi minuti di esaminare un problema su come risolverlo o almeno di avere qualche idea, lo faccio su Google.
Il motivo per cui i programmatori "esperti" sono esperti è perché hanno esperienza. Se il mio attuale livello di esperienza non risolve un problema, ho bisogno di apprenderlo e acquisire più esperienza.

Come sviluppatore di software, imparerai per il resto della tua carriera. Quando smetti di imparare, è allora che la tua carriera inizia a fermarsi.

Modifica
Ho dimenticato di menzionare, quando trovi una risposta che funziona andando su Google, non hai finito di imparare finché non capisci perché quella risposta ha funzionato.

    
risposta data 13.10.2011 - 01:17
fonte
1

Stai copiando e incollando una riga di codice o più righe appena fuori convocazione? Ti imbatterai sempre in qualcosa che non conosci. A volte è tanto la dimensione della lingua, ma tutti i framework continuano ad accumularsi. Non finirà.

Se continui a cercare la stessa cosa per un po ', inizia la tua serie di cheat sheet o esempi di codice.

Prenditi del tempo per capire cosa stai copiando. Ci vuole comprensione e uso ripetuto prima di acquisire fluidità. Alcune cose che farai solo una volta.

In alcuni casi, è meglio cercare una soluzione anche se sai di poterlo risolvere da solo. Quindi puoi confrontare e confrontare e scegliere quello migliore per la tua situazione.

Non oso dirtelo, ma a meno che tu non inizi a lavorare con un linguaggio minimale in un dominio ristretto, dovrai cercare per un po 'di tempo.

    
risposta data 13.10.2011 - 01:50
fonte
1

Forse dovresti fare alcuni problemi "in campo" o "in tempo reale" ... dove non hai tempo o le risorse per Google. Al di sopra della mia testa alcuni di questi coinvolgono attività di bordo della nave. Ad esempio, l'Università nella mia zona ha alcuni progetti relativi al ROV su cui gli studenti CS lavorano. Mentre il progetto è sviluppato a terra (con google), quando ti trovi in difficoltà di campo, hai meno possibilità di usare Google. Non sono sicuro di quanto questa risposta sia pratica per te, ma ho notato che i tecnici di campo (bravi tecnici di campo) sono tra le persone più intraprendenti che abbia mai visto. Sono in grado di risolvere i problemi senza Google ecc se devono .... ma sì, in questi giorni, devono sempre meno.

Un'altra attività sul campo sarebbe roba relativa al GIS, in cui sei fuori strada nel testare sul campo / utilizzare dispositivi GPS. Molti di questi posti non avranno internet, ma avrai il tuo laptop e avrai bisogno di fare qualcosa con esso.

Pensa a luoghi in cui non c'è internet, e vai a fare cose per computer lì.

    
risposta data 13.10.2011 - 06:38
fonte
1

Spesso, quando faccio ricerche su Google, trovo un approccio migliore per risolvere ciò che cercavo e in realtà imparo qualcosa di nuovo.
È molto utile - lassù con una revisione del codice di un collega migliore.
Non esitare a prendere in input ciò che stai cercando di ottenere!

    
risposta data 13.10.2011 - 08:08
fonte
1

I KISS Google.

Qualunque sia la soluzione che Google mi dà, cerco di rimuovere il maggior numero possibile di codice per ottenere il minimo che risolva il mio problema. Ciò implica che devo capire cosa fornisce Google. A volte finisco con una soluzione totalmente diversa.

    
risposta data 13.10.2011 - 10:47
fonte
1

Lasciatemi condividere una citazione dal mio professore di informatica, che era anti-Google:

USE THE MAN PAGES!

Le pagine man sono la fonte più autorevole su qualunque funzione o argomento tu debba ricercare. Normalmente leggo prima la pagina man, quindi se non riesco a trovare una risposta, vado su Google (beh, in realtà DuckDuckGo ).

    
risposta data 13.10.2011 - 20:02
fonte
1

Mi fido sempre della mia capacità di inventare qualcosa, che non è necessariamente bello. Quindi provo a migliorarlo. Nel caso in cui io sia davvero bloccato su qualcosa, cercherò qualche ispirazione sul web.

Da studente, per non concentrarsi su cosa, ma per capire perché è ciò che conta davvero. L'apprendimento riguarda la creatività pura e la sensibilità estetica. Per me, nulla è mai paragonabile all'originalità. Riscoprire o reinventare qualcosa ha molto più senso che conoscere o padroneggiare qualcosa.

Il web è solo uno strumento ma non strumentale nello sviluppo della nostra capacità di scoprire e creare qualcosa di veramente bello.

    
risposta data 18.11.2011 - 02:38
fonte
0

Trovo che io raggiunga di più Google quando lavoro su una piccola base di codice o quando non conosco la lingua, il framework o le librerie con cui lavoro.

Se vuoi provare a lavorare senza copiare e incollare, scegli la lingua più familiare e trova il più interessante progetto open source in quella lingua. Prova a lavorarci su, e magari prova a trovare alcuni bug aperti su cui lavorare. Probabilmente utilizzerai Google solo per comprendere il progetto e il codice e non raggiungere mai CTRL + C.

    
risposta data 13.10.2011 - 14:23
fonte
0

Quando sapevo che una lingua si applicava a una metodologia / interfaccia (nel mio caso era Perl / CGI, che ti dava un'idea della mia annata come sviluppatore), sapevo tutto a riguardo. Ho letteralmente avuto tutto il Perl nella mia testa. Espressioni regolari, sintassi IO, anche quei controlli della stringa di reporting <<<|..|<<|>>> vecchia scuola, li conoscevo freddi.

Nel momento in cui ho imparato la mia seconda lingua, non solo non sono mai riuscito a ottenere quel tipo di conservazione, Ho perso anche Perl . Non aiuta che la mia seconda lingua fosse PHP, che non ha alcun interesse per la coerenza linguistica, in termini di nomi di funzioni o ordini di parametri.

Nell'intervista per il mio attuale lavoro, ho guadagnato punti con il mio attuale manager ammettendo che Google è la mia migliore amica. Non sono timido nel minimo. Oggi ho bisogno di google la frase "Spring MVC file upload" per affrontare una funzione che ho fatto molte volte, ma in una lingua e in un framework che sono nuovo. Mi aspetto che troverò risposte più o meno complete che dovrò adattare al mio framework.

    
risposta data 13.10.2011 - 14:39
fonte
0

Penso che tu abbia già scoperto che la risposta breve è "sì, usa Google sempre."

Francamente, hai le cose indietro, in un lavoro, non devi dimostrare di aver capito un concetto, sono i risultati che contano. Quindi puoi google cose più o meno. Alla fine dovrai capire alcuni concetti, ma sinceramente puoi sviluppare la comprensione concettuale semplicemente googliando le cose.

Se ti viene in mente qualcosa e non funziona, dovrai solo cercare su Google e trovare la risposta. Probabilmente capirai anche cosa c'è di sbagliato nella risposta numero 1, il che significa che hai migliorato la tua comprensione del concetto di base. Questo è chiamato "learning by doing".

Quindi, in qualità di programmatore esperto, comincio a imparare le cose su come guidare e fare più ricerca fino a quando non costruisco ciò che voglio. Come ricercare correttamente le cose è un'arte in sé e per sé. Penso che scoprirai che impari le cose giuste per digitare su google, quando dovresti solo porre domande su StackOverflow e quando dovresti solo leggere il codice sorgente.

    
risposta data 13.10.2011 - 21:26
fonte
0

Solitamente ho problemi con Google, ma c'è qualcosa da dire per pensare a problemi prima di cercare. Ciò dipenderà ovviamente dal tipo di problema, ma pensando a un problema prima di leggere la soluzione, è probabile che ne ricorderai di più.

    
risposta data 15.10.2011 - 02:14
fonte
0

Prenderò una posizione contraria alla maggior parte delle risposte qui: come studente dovresti usare Google solo come ultima risorsa. In realtà, l'utilizzo di Google va bene per la ricerca di firme API, pagine man o bit di sintassi del linguaggio. Ma se l'incarico è di scrivere la propria implementazione di qualche struttura dati o protocollo, NON si dovrebbe assolutamente copiare codice dal web. Se lo fai, stai semplicemente buttando via le tue tasse scolastiche.

Il lavoro scolastico è diverso dal lavoro. Al lavoro l'obiettivo è creare un pezzo di software funzionante. A scuola l'obiettivo è quello di imparare l'informatica e lo sviluppo del software. Raramente qualcuno dei software che scrivi per la scuola verrà mai eseguito di nuovo una volta che è stato girato. L'intero punto dell'esercizio è di farti riflettere seriamente problema, hai inseguito alcuni dei vicoli ciechi, e vedi perché sono vicoli ciechi.

Negli anni '80 c'era un film popolare chiamato "The Karate Kid" (è stato appena rifatto, ma non ho idea se qualcuno della tua età abbia familiarità con esso). Nel film un ragazzino chiede al suo vicino di insegnargli le arti marziali. Il vicino è d'accordo, ma dice che il bambino deve guadagnare le lezioni facendo del lavoro per lui prima. Procede perché il bambino dipinga la sua recinzione e lavi la sua macchina, ancora e ancora. Questo fa impazzire il ragazzo, perché non gli importa di quella merda, vuole solo prendere a calci il sedere del bullo del vicinato. Ovviamente alla fine è ovvio che il vicino non si preoccupa veramente di far dipingere il suo recinto o di lavare la sua auto; stava facendo fare al bambino gli esercizi per insegnargli disciplina, pazienza, equilibrio e coordinazione. Quindi è con i compiti del tuo college. Il punto non è solo quello di completare il compito, è di imparare qualcosa completando il compito.

Sai già come usare Google. Usa i tuoi progetti del college per imparare qualcosa di nuovo.

    
risposta data 10.11.2011 - 23:43
fonte

Leggi altre domande sui tag