October 2, 2017

Software Developer / Programmatore come pensano ?

Se sei interessato alla programmazione,sei un programmatore, un Software Developer o un appassionato , potresti aver già visto questa citazione:

Tutti in questo paese dovrebbero imparare a programmare un computer,perché ti insegna a pensare”. – Steve Jobs

Probabilmente ti sei anche chiesto cosa significhi, esattamente, pensare come un programmatore?

Essenzialmente, si tratta di un modo più efficace per risolvere i problemi .

Alla fine del post, saprai esattamente come non essere il miglior programmatore ma come essere un buon risolutore di problemi.

Perché questo è importante?

Il problem solving è, la metà dell’abilità di essere un ottimo programmatore e con metà sono pessimista.

Abbiamo tutti dei problemi. Il modo in cui li gestiamo a volte, è piuttosto casuale.

A meno che tu non abbia un sistema, questo è probabilmente il modo in cui risolvi i problemi:

  1. Prova una soluzione.
  2. Non funziona, provane un altra.
  3. Se non funziona, ripeti il ​​passaggio 2 fino a quando non sei fortunato.

Potremmo scrivere questo:

while(true){
    Solution solution = findSolution(String randomGoogleSearch);

    if(testSolution(solution)){
        //my solution (not the best)
        break;
    }
}

Questo è il modo peggiore per risolvere i problemi! Ed è una enorme, enorme perdita di tempo.

Il modo migliore implica

  • avere un piano
  • praticarlo.

Le capacità di problem solving sono quasi all’unanimità la qualifica più importante che i datori di lavoro cercano … oltre alla programmazione della competenza linguistica, del debug e della progettazione del sistema.

Avere un piano

Per trovare il giusto quadro, ho seguito il consiglio nel libro di Tim Ferriss sull’apprendimento, " The 4-Hour Chef “.

Quindi, cosa dovresti fare quando incontri un nuovo problema?

Ecco i passaggi:

1. Capire

Sapere esattamente cosa ti viene richiesto. La maggior parte dei problemi complessi è difficile perché non li capisci.Come sapere quando capisci un problema?

Quando puoi spiegarlo in maniera semplice ad un altra persona.Pensi di aver capito il problema, inizi a spiegarlo e immediatamente vedi buchi nella logica che non hai visto prima?

La maggior parte dei programmatori conosce questa sensazione. Questo è il motivo per cui dovresti scrivere il tuo problema, disegnare un diagramma o dirlo a qualcun altro .

“Se non puoi spiegare qualcosa in termini semplici, non lo capisci.” – Richard Feynman

2. Pianificare

Non tuffarti nel risolvere senza una pianificazione.Organizza la tua soluzione! Niente ti può aiutare se non riesci a scrivere i passi esatti.

Lascia al tuo cervello il tempo di analizzare il problema e elaborare le informazioni. Per ottenere un buon piano, rispondi a questa domanda:

“Dato l’input X, quali sono i passaggi necessari per restituire l’output Y?”

3. Dividi

Fai attenzione. Questo è il passo più importante di tutti. Non cercare di risolvere un grosso problema. Piangerai.

Invece, suddividilo in sotto-problemi. Questi sotto-problemi sono molto più facili da risolvere. Quindi, risolvi ciascun sotto-problema , inizia con il più semplice. Il più semplice significa che conosci la risposta (o sei più vicino a quella risposta).

Dopodiché, il più semplice significa che questo sotto-problema non ha dipendenze con altri problemi che non vengono risolti. Dopo aver risolto tutti i problemi secondari, collega i punti.

Connettere tutte le tue “sotto-soluzioni” ti daranno la soluzione al problema originale.

La tecnica della divisione è una pietra miliare del problem-solving. Ricordalo

“Se potessi insegnare a ogni programmatore principiante un’abilità di problem-solving, sarebbe il” ridurre il Problema in sotto-problemi”.

4. Bloccato ??

Ma cosa succede se sono bloccato e non riesco nemmeno a risolvere un sotto-problema ??”

Non preoccuparti , questo succede a tutti! La differenza è che i migliori programmatori/risolutori di problemi sono più curiosi di bug/errori perchè sono una continua sfida con loro stessi con molteplici possibilità di migliorarsi.

In effetti, qui ci sono tre cose da provare quando si affronta un blocco:

  • Debug: vai passo dopo passo nella tua soluzione cercando di scoprire dove sei andato storto. I programmatori chiamano questo debug (in effetti, questo è tutto ciò che fa un debugger).

“L’arte del debug è capire cosa hai veramente detto al tuo programma piuttosto che ciò che pensavi di aver detto di fare.” “- Andrew Singer

  • Rivalutare: fare un passo indietro. Guarda il problema da un’altra prospettiva. C’è qualcosa che può essere astratto ad un approccio più generale?

“A volte ci perdiamo nei dettagli di un problema che trascuriamo i principi generali che risolverebbero il problema a un livello più generale. […]

  • Ricerca: Ahh, buon vecchio Google. Hai letto bene. Qualunque problema tu abbia, qualcuno lo ha probabilmente risolto. Trova quella persona / soluzione. In effetti, fallo anche se hai risolto il problema! (Puoi imparare molto dalle soluzioni di altre persone).

Avvertenza: non cercare una soluzione al grande problema. Cerca solo soluzioni ai sotto-problemi. Perché? Perché a meno che tu non lotti (anche un po ‘), non imparerai nulla. Se non impari nulla, hai perso tempo.

</div>

Praticarlo

Non aspettarti di essere il migliore dopo una settimana. Se vuoi essere un buon risolutore di problemi, risolvi un sacco di problemi!

Pratica,pratica,pratica !!!

Sarà solo questione di tempo prima di riconoscere che la risoluzione di un problema apparentemente sconosciuto e complicato è soltanto la rielaborazione di un problema già risolto in passato.

Conclusione

Ti auguro di incontrare molti problemi.

E buona fortuna 🙂

Un ringraziamento speciale a C. Jordan Ball e V. Anton Spraul . Tutti i buoni consigli qui sono venuti da loro.

Questo articolo trae spunto da questo articolo Inglese

Fine Lezione

CONTENT SECTION

Ricevi la Guida Pdf e
Il Mini Corso Gratuito

Le migliori tecnologie per diventare uno sviluppatore Web al passo con i tempi. Trovi tutto nella sezione unità del gruppo Facebook.

ENTRA ORA NELLA NOSTRA COMMUNITY

Commenti

Se non visualizzi i commenti correttamente Ricarica la pagina