La natura problematica dello sviluppo del software
Quando ho iniziato lo sviluppo del software, la frase che ho sentito di più è stata "Lo sviluppo del software riguarda la risoluzione dei problemi". Ma nessuno ha detto che lo sviluppo del software stesso sia di natura problematica.
La scienza e l'ingegneria sono anche uno strumento per la risoluzione dei problemi come lo sviluppo del software. E l'obiettivo è la risoluzione dei problemi. Ma lo sviluppo del software è uno strumento problematico, come un pesce che sfugge di mano.
E sulla base di questo pensiero; Prima di risolvere i problemi, penso che dobbiamo riparare l'ascia rotta o almeno imparare a tagliare la legna con un'ascia rotta.
Ecco alcuni dei problemi che vedo nello sviluppo del software;
- Sta cambiando così velocemente, e c'è poco che io possa chiamare conoscenza permanente.
- I materiali di apprendimento sono troppi, troppo disordinati e scarsamente documentati.
- Non è possibile procedere intuitivamente, è necessario procedere con una conoscenza precisa.
- Non procede in modo decentralizzato, incontrollato e standardizzato.
- Ci sono troppe soluzioni complesse per problemi semplici.
- Esistono così tante tecnologie diverse che svolgono lo stesso compito e, proprio come diverse religioni al servizio di un solo Dio, ognuna ha le proprie regole.
- Le informazioni sono così tante e dinamiche che è impossibile tenerle in memoria.
- Non si ferma all'apprendimento e non ti fa mai sentire un esperto.
- Il problema più grosso è che tutto questo non viene visto come un problema e viene spacciato per “così è lo sviluppo del software”.
- Ha una natura mutevole
- Le fonti sono sfocate
- Non intuitivo
- Non abbastanza standardizzato
- Inutilmente complicato
- Troppe informazioni
- Troppe informazioni inutili.
Una persona che vuole specializzarsi in un determinato campo e materia in qualsiasi branca della scienza può raggiungere una competenza sufficiente procurandosi articoli scientifici e libri scritti sull'argomento, rimanendo a casa per alcuni mesi, esaminando e prendendo gli appunti necessari.
Nello sviluppo del software, le cose non funzionano in questo modo. La documentazione ufficiale non è mai abbastanza. È necessario procedere raccogliendo informazioni incomplete o errate da guide e video scritti da terze parti. E questo causa un processo di apprendimento accidentato e di qualità molto scarsa. Per tali motivi, non è possibile per uno sviluppatore di software specializzarsi nel proprio campo tanto quanto una persona specializzata in un campo scientifico.
E anche se si specializza, non è permanente. Perché ogni pochi mesi esce un nuovo Einstein e propone una nuova teoria. Per qualche ragione ci sono così tanti Einstein in questo campo...
So che è infantile dire come dovrebbe essere lo sviluppo del software. Come facevano gli antichi filosofi. Hanno parlato molto di come dovrebbe essere lo stato.
- Lascia che i filosofi governino gli stati.
- Lascia che i bambini siano proprietà comune della società.
- No guerra.
- Non cogliere i fiori.
- Tutti i linguaggi di programmazione dovrebbero essere combinati in un'unica sintassi senza perdere le loro proprietà.
- Librerie e framework equivalenti si fondono in un'unica libreria e framework senza perdere le loro proprietà.
- Lascia che queste singole lingue e biblioteche siano gestite e standardizzate da un'istituzione ufficiale.
- Lascia che i linguisti rendano la lingua il più intuitiva possibile.
- Lascia che i veri autori scrivano i documenti.
- Tutti gli sviluppi nel mondo del software sono annunciati da un'unica fonte.
Ma questa è un'utopia e non sarà vera nel mondo di oggi. Quindi cosa dovrebbe fare il programmatore? Dovrebbe cambiare se stesso o l'industria. Come puoi capire dall'utopia di cui ho parlato, ci vorrà molto tempo prima che l'industria cambi, forse non sarà possibile. Avendo una durata limitata, lo sviluppatore deve evolversi in queste condizioni.
Come ho detto all'inizio, lo sviluppo del software è un pesce scivoloso. Prima di tutto, devi imparare a tenere questo strumento. E se vogliamo o abbiamo bisogno di fare questo lavoro nella nostra vita limitata. La prima cosa da imparare è avere la filosofia, il sistema e i metodi necessari per mantenere questo strumento.
Il miglior consiglio che posso dare sarebbe quello di specializzarsi in quelli permanenti. Questi sono quelli che mi vengono in mente;
- lingua inglese
- Capacità di apprendimento
- Algoritmi e capacità di problem solving

![Che cos'è un elenco collegato, comunque? [Parte 1]](https://post.nghiatu.com/assets/images/m/max/724/1*Xokk6XOjWyIGCBujkJsCzQ.jpeg)



































