La mia principale fonte di reddito è lo sviluppo web e attraverso questo sono giunto a godermi le meraviglie della programmazione poiché la mia conoscenza di lingue diverse è aumentata nel corso degli anni attraverso il lavoro e il gioco personale. Ad un certo punto ho raggiunto la decisione che la mia istruzione universitaria non era sufficiente e che volevo tornare a scuola per ottenere una laurea in informatica o ingegneria del software. Ho provato un sacco di cose nella mia vita e mi ci è voluto un po 'prima di trovare qualcosa che sento sia una passione e questo è tutto.
C'è un aspetto di quest'area di studio che trovo mi butta fuori però. Trovo che i metodi formali per dimostrare la correttezza del programma siano una sfida. Non è che ho problemi a scrivere codice in modo corretto, posso guardare un algoritmo e vedere come è corretto o imperfetto, ma a volte faccio fatica a tradurre questo in definizioni formali. Ho ottenuto voti perfetti o quasi perfetti su tutti gli incarichi di programmazione che ho svolto a livello universitario, ma di recente ho ricevuto un elenco di libri di testo di un ragazzo dall'università di Waterloo e ho scoperto che ho avuto problemi quando si tratta di alcuni dei formalismi .
Bene, a questo punto è davvero una sola cosa in particolare, mi sarebbe di grande aiuto se qualcuno di voi potesse fornirmi alcuni buoni esempi di errori comuni che portano ad invarianti corrotti, specialmente nei loop. Ho alcuni manuali di ingegneria del software e di informatica, ma mostrano solo come dovrebbero essere le cose. Mi piacerebbe sapere come vanno le cose, così è più facile riconoscere quando succede. È quasi imbarazzante affrontare questo argomento perché i formalismi sono fondamenta davvero basilari su cui vengono costruite le questioni di sostanza.
Voglio superarlo ora in modo che non mi ostacoli più tardi.