Ciao, Habr!
Cosa studiare? Seguire corsi di informatica o apprendere le competenze di un ingegnere del software? Queste domande sono molto attuali al giorno d'oggi.
E cosa sceglierai tu?
Le persone che appena iniziano il loro percorso nel settore IT e stanno cercando di entrare in un'università tecnica o semplicemente cercano programmi di formazione in programmazione si imbattono spesso in un'enorme quantità di indirizzi. Il punto è che in ognuno di questi indirizzi le materie sono simili, soprattutto nel primo e nel secondo anno.
Per chiarezza, divideremo tutti gli indirizzi in due categorie: Computer Science e Software Engineering. La differenza principale è che il primo indirizzo è più flessibile e qui si studiano meglio le nozioni fondamentali, mentre il secondo è orientato a competenze più pratiche per la creazione di programmi orientati al mercato. Qualunque sia l'indirizzo che sceglierai, in fin dei conti diventerai programmatore. È molto probabile che inizierai a lavorare dopo o durante gli studi e il settore di sviluppo in cui verrai collocato e a cui potrai ambire dipenderà dall'indirizzo che sceglierai.
In entrambi gli indirizzi, nei primi 2-4 semestri si studiano materie simili, come algebra lineare, analisi matematica, matematica discreta e equazioni differenziali. Di solito, tutta questa matematica è comune ad entrambi gli indirizzi, ma nel Computer Science si aggiunge un ulteriore corso di matematica discreta e equazioni differenziali. Inoltre, è comune a tutti gli indirizzi l'introduzione generale alla Computer Science, ma qui iniziano le differenze. Nel Computer Science si parla di architettura dei computer, teoria della computazione degli algoritmi, strutture dati e loro analisi, di come funzionano i programmi e di come si possono scrivere utilizzando costruzioni classiche, sistemi operativi, compilatori e altro ancora. Quindi c'è una copertura di una maggiore base. Al contrario, nel Software Engineering si discute di design OOP, testing del software, fondamenti dei sistemi operativi e così via. In altre parole, si tratta di una copertura delle tecniche, affinché lo studente possa imparare a utilizzare soluzioni già pronte e risolvere una gamma diversa di compiti aziendali. Tutto questo si studia generalmente nel primo anno di formazione.
Successivamente, già al secondo anno entrambi i corsi iniziano a studiare materie come architettura dei computer e struttura dei sistemi operativi, ma Ingegneria del Software affronta queste materie in modo più superficiale. Questo è dovuto al fatto che preparano persone che saranno poco connesse a queste tematiche. A partire dal secondo anno di studi, in Computer Science si insiste di più sull'architettura micro e sui kernel dei sistemi operativi, mentre nello sviluppo software si fa maggiore enfasi sulle interfacce utente, sul testing, sull'analisi del software, sulle varie metodologie di gestione, ecc. In particolare, la programmazione orientata agli oggetti è approfondita in entrambi gli ambiti, poiché questa paradigma è molto popolare ai giorni nostri e è fondamentale conoscerlo.
Al terzo anno di studi in Computer Science si dedica allo studio della combinatoria, della crittografia, dell'intelligenza artificiale, delle basi dello sviluppo software, della grafica 3D e della teoria dei compilatori. In Ingegneria del Software si studiano invece la sicurezza dei sistemi, le reti e Internet, la gestione del software e la gestione in generale. Tuttavia, a seconda dell'università, le materie e il loro approfondimento possono variare.
Forse, la domanda principale di questo articolo resta dove sia meglio andare. Qui tutto dipende dalle vostre preferenze. Se desiderate essere un ingegnere molto flessibile e versatile, allora dovete optare per Computer Science. Se invece volete legare la vostra vita allo sviluppo software e essere in grado di creare programmi utili per gli utenti finali, allora Ingegneria del Software è proprio quella che fa per voi.

In conclusione, vorrei dire che in Computer Science vi insegneranno a risolvere problemi e a ideare metodi eleganti per risolverli, mentre in Ingegneria del Software diventerete programmatori business che sapranno gestire progetti, persone e creare software attuale.
Fonte: habr.com
