Software Development for Dummies

All'unico esame di informatica, al primo anno di ingegneria meccanica, circa 26/27 anni fa, il linguaggio era proprio Turbo Pascal ... presi 29 ... :cod
Turbo Pascal... Quanti ricordi!

Nel secondo biennio all'ITIS facevamo laboratorio di informatica ove lavoravamo in coppia. Faceva tutto il mio partner mentre io ero bellamente a farmi i cavoli miei ?

Risultato: Bocciato in 4^a e non ci ho capito un sax né di diagrammi di flusso, né di algoritmi, né di programmazione ?
 
Tranquillo, massimo rispetto per la tua opinione, e visto che sei più esperto di me dovrei prenderne solo atto ?

Ti racconto che ho provato ha fare un piccolo algoritmo dove posso verificare se un determinato numero è primo o non è primo.

Risultato: In C l'ho fatto abbastanza facilmente grazie alla funzione switch, mentre in Python stavo cadendo in depressione ?
not a programmer, ma mi vien da dire di provare a fare un passo indietro sull'esercizio, in termini di algoritmo o pseudocode, perché sia la soluzione più meccanica che le ottimizzazioni più immediate si posson scrivere con if e while e son quasi uguali come sintassi sia in c che in python credo.
 
not a programmer, ma mi vien da dire di provare a fare un passo indietro sull'esercizio, in termini di algoritmo o pseudocode, perché sia la soluzione più meccanica che le ottimizzazioni più immediate si posson scrivere con if e while e son quasi uguali come sintassi sia in c che in python credo.
Infatti oggi pensavo a questo, cioè fare questo algoritmo con il ciclo while o for (credo che il for sia meglio) con le if identate ?
 
Grazie ??

Su carta con un diagramma di flusso/pseudocodice oppure un semplice pensiero? ?
Puoi anche scrivere in italiano :ghigno

No veramente non c'è un sistema, però sicuramente bisogna pensare prima di mettere mano sul codice.

L'importante è avere idee chiare sul problema e trovare una soluzione, chiaramente avendo in mente il fatto che poi dovrai implementarlo in qualche modo, a prescindere dal linguaggio

Ti ho chiesto come mai hai usato lo switch perché come scritto anche sopra da @chupacabra in realtà si può risolvere più facilmente con if-else e con i cicli, senza scomodare switch (che poi è una specie di if-else sotto steroidi)
 
not a programmer, ma mi vien da dire di provare a fare un passo indietro sull'esercizio, in termini di algoritmo o pseudocode, perché sia la soluzione più meccanica che le ottimizzazioni più immediate si posson scrivere con if e while e son quasi uguali come sintassi sia in c che in python credo.
rispondo a te ma vale per tutti

non e' necessariamente corretto cominciare a ragionar per algoritmi, anzi, secondo me e' proprio errato.
si ragiona per "come intendo modellare il mondo?"
un approccio algoritmico era valido 20 anni fa, oggi non ha piu' alcun senso.

20 anni fa si doveva ragionare su strutture dati (code, liste, doppie liste, ...), su sorting, su un sacco di roba che ha completamente perso di significato

esattamente come 150 anni fa si usava il regolo calcolatore e si facevano le radici quadrate carta e penna.

ogig per cominciare a programmare si deve ragionar in modo completamente diverso, dimenticandosi degli aspetti algoritmi, sintattici, che arrivano da soli, con tempo e esperienza.

E' invece importante capire le filosofie degli strumenti (non linguaggi ma framework, filosofie di design, ...) e poi tutto viene dopo.

Per fare un esempio pratico, se oggi vuoi fare applicazioni mobile e decidi di usare flutter (esempio proprio a caso) la cosa peggiore che puoi fare e' studiare dart, e poi flutter e poi capire come sono strutturate le applicazioni ecc ecc, cioe' totalmente bottom up
Si deve fare esattamente il contrario, devi capire come si struttura una applicazione ad alto livello, e poi come ne disegni i componenti, ecc ecc, fino ai livelli piu' bassi che coinvolgono il linguaggio.
Ma gli algoritmi non servono a un beato ***** oggi, perche' non ti metti tu a scrivere map/reduce/filter/sort/reverse/... e' tutto pronto, come lo e' la radice quadrata nella calcolatrice. Se parti dagli algoritmi, arrivi dopo la prossima vittoria dello scudetto del milan.

Programmare ti aiuta a imparare a pensare.
Implementare algoritmi significa che tu pretendi di sapere pensare prima di imparare, e' errato.

p.s. e' errato oggi ... 40 anni fa esistevano 3/4 linguaggi (basic, cobol, fortran. c, e poco altro) senza alcun supporto. Dovevi procedere cosi', perche' le risorse erano limitate, il mio primo computer aveva 16kb ram, e io scrivevo applicazioni CAD su workstation (costosissime) con 1mb di ram, sviluppavo applicazioni DB3 per pc con 128kr ram tipo olivetti m24 e ibm xt e simili, era un mondo differente. oggi e' tutto tutto diverso.
 
Ti ho chiesto come mai hai usato lo switch perché come scritto anche sopra da @chupacabra in realtà si può risolvere più facilmente con if-else e con i cicli, senza scomodare switch (che poi è una specie di if-else sotto steroidi)
Te lo spiego: Oggi ho visto dei video tutorial sul C e sono arrivato al video dedicato allo switch.
Ho visto un video dove assmaggiolina ha usato lo switch per determinare i numeri pari e dispari e allora mi si è illuminata la lampadina in testa?e ho pensato all'algoritmo dei numeri primi ?
 
Alto