Passi per creare una soluzione per un problema

5

Sono un tirocinante. Secondo il mio insegnante per risolvere un problema dovremmo seguire i seguenti passaggi:

  1. Crea algoritmo (facoltativo)
  2. Crea un Datatable: analizzando il problema, crea i concetti principali in quei problemi come colonne e i problemi correlati nel concetto principale come righe.
  3. Crea un diagramma di flusso basato sul Datatable. (quando crei un diagramma di flusso, pensa di essere in quella situazione e progettalo nel tuo cervello)
  4. Visualizzando il diagramma di flusso, è possibile risolvere il problema facilmente e in modo efficiente.

Questi passaggi dovrebbero essere sempre considerati da un programmatore se lui / lei vuole diventare un progettista di software (non solo un programmatore) perché questo approccio offre un modo efficace per trovare una soluzione a un problema anche se il problema è piccolo. Secondo lui, questo modo di approccio funziona anche in scenari in tempo reale.

La mia domanda è: è davvero un modo efficace? per favore condividi anche i tuoi pensieri.

Attraverso questa domanda ho anche voluto condividere alcuni pensieri del mio insegnante con te che è un buon mentore.

    
posta Mr_Green 28.10.2012 - 04:36
fonte

3 risposte

11
  1. Gli insegnanti possono incoraggiare gli studenti ad affrontare i problemi in modo strutturato perché genera buone abitudini e promuove una mentalità strutturata, entrambe cose buone.
  2. Se hai interrogato tutti gli sviluppatori di software con più di due anni di esperienza, scommetto che ti diranno tutti che gli sviluppatori di software non seguono una tale struttura formale, prescritta, ma che possono apprezzare la meta-lezione che il tuo insegnante sta cercando di insegnare.
  3. Anche se questo specifico approccio passo-passo non è di per sé terribile, posso dirti che manca un primo passo critico.

Dopo aver eseguito una certa quantità di ricerche sul tuo problema, il tuo primo passo dovrebbe essere:

  1. Chiediti: sto risolvendo il problema giusto?

In effetti, quando si risolve un problema, che si tratti di implementare una funzione greenfield o di correggere un bug, molti sviluppatori di software falliscono, implementano una soluzione sub-ottimale, o semplicemente perdono tempo perché non si introspe prima e si chiedono se stavano risolvendo il problema giusto.

Due punti a riguardo:

  1. La quantità di ricerche preliminari che dovrai fare prima di poterti chiedere se stai risolvendo il problema giusto varierà a seconda del problema.
  2. La tua capacità di sapere se stai risolvendo il problema giusto è una funzione dell'esperienza. Quindi, poniti sempre la domanda e la tua capacità di risposta migliorerà man mano che acquisirai esperienza.
risposta data 28.10.2012 - 05:02
fonte
2

Ciò che il tuo insegnante sta cercando di fare ti insegna a pensare alle astrazioni , il pensiero astratto è estremamente importante soluzione dei problemi tecnica.

Il flusso di lavoro specifico che l'insegnante ha preparato per te, i quattro passaggi, è un flusso di lavoro incredibilmente semplice e ben lontano dall'essere efficiente per problemi di sviluppo del software non banali. Tuttavia è una metodologia di allenamento abbastanza valida e sarà efficiente quando ci si trova di fronte a scenari reali (ma banali). Tieni presente che l'apprendimento è principalmente un processo incrementale, devi prima imparare le basi e questo è ciò che stai facendo in questo momento.

Ulteriori letture:

E un paio di post del blog pertinenti:

risposta data 28.10.2012 - 04:54
fonte
-2

These steps should always consider by a programmer if he/she wants to become a Software designer (not programmer).

Che cosa intendi per progettista di software? Ho provato a cercare la differenza tra Programmer e Software Designer e sono stato inondato da Programmer v / s Software engineer.

Because the above approach gives an efficient way of finding solution to a problem even the problem is small. According to him, this way of approach also works in real time scenario's.

Il programmatore deve anche risolvere un problema o trovare la sua soluzione, quindi il tuo insegnante dice che questo approccio (quello che hai menzionato nella tua domanda) deve essere usato dal progettista del software e non dal programmatore.

My question is: Is this really an efficient way? please share also your thoughts.

Non lo so. Da studente non ho mai fatto tutte queste cose, ad esempio algoritmi, ecc. Semplicemente faccio la mia codifica, creo alcuni DFD (diagramma di flusso dei dati), diagramma ER e alcuni documenti correlati e li invio.

Per quanto riguarda le industrie penso che abbiano team separati per tutte queste cose come il team di codifica, il team di documentazione,

    
risposta data 28.10.2012 - 04:55
fonte

Leggi altre domande sui tag