Risposta breve
Non esiste un singolo argomento in cui rientrano tutti questi termini.
E no. Probabilmente non hai sentito questi termini anche se non hai saltato nessuna lezione. È abbastanza normale per uno studente non sentirne parlare mai dalla bocca del mondo accademico.
Quello che ti manca è uno stage. (conosciuto anche come apprendista, formazione pratica, cooperazione, ecc.)
Ci sono agenzie che pretendono di insegnare le abilità e le maniere al di fuori di un rapporto di lavoro. (Invece, tu paghi per iscriverti.) Questo è chiamato "campo di addestramento". Dal momento che ci sono cose buone, cattive e brutte, non parlerò molto di questo.
Risposta lunga
Modelli di design
Progettazione ricorrente della classe e modelli di interazione osservati in molti progetti di programmazione orientata agli oggetti (OOP) reali campionati da molte aree versatili. Un aumento della pratica di OOP.
MVC
Un'architettura proposta per l'implementazione di interfacce grafiche di programmazione (GUI)
Programmazione basata su eventi
Una struttura di controllo-flusso fondamentale che è alla base di tutta la programmazione della GUI. Fa riferimento anche a linguaggi, framework e librerie riutilizzabili progettate specificamente per migliorare la programmazione basata sugli eventi.
Esempi di cose che sono not programmazione guidata dagli eventi:
- Interfaccia della riga di comando
- Programmazione basata su menu (un'interfaccia utente basata su testo non più in uso)
- Elaborazione batch (o elaborazione non presidiata e quindi non ha alcuna interfaccia utente)
Lo "stack"
Una scorciatoia di "stack tecnologico". Quest'ultimo si riferisce ai componenti di un'architettura a strati di un sistema informatico. Il termine è usato nel tentativo di descrivere rapidamente una particolare combinazione di scelte tecnologiche fatte ad ogni livello di calcolo in un dato sistema.
In pratica, è una concatenazione di parole d'ordine:
public override string ToString()
{
return string.Join(",", new string[] {
hardware.Name, os.Name, database.Name, webBackendFramework.Name, webFrontendFramework.Name });
}
Sviluppatore "full-stack"
Un modello di occupazione e carriera emergente tra professionisti dello sviluppo di software per il web. Si riferisce a professionisti ben equipaggiati sia per i back-end Web che per i front-end Web.
Questo termine dà l'impressione che uno "sviluppatore full-stack" abbia una vasta conoscenza ed è in grado di creare un intero sito Web (lato client e lato server) solo da soli.
Sviluppo agile
Una metodologia di sviluppo del software. Fare riferimento all'articolo di Wikipedia. Vedi anche: "Lean development", "Scrum" e "Kanban".
Concetti storicamente rilevanti (ma non necessari per comprendere questo termine nel suo senso attuale) sono: "Toyota Production System", "Agile Manifesto", "Extreme Programming".
Software-as-a-Service (SaaS)
Una tendenza del settore nel software. Questa tendenza influisce su ogni aspetto dello sviluppo del software:
- Monetizzazione (come si fanno i soldi)
- Prezzi e fatturazione (come e quando i clienti effettuano i pagamenti)
- Velocità di sviluppo (quanto tempo dalla codifica alla messa a disposizione di questa nuova funzionalità per gli utenti)
- Ciclo di rilascio (con quale frequenza viene rilasciata una revisione principale)
- Infrastruttura (dove viene eseguito il "software", chi paga l'hardware, chi gestisce le macchine)
In parole semplici, è una tendenza rivoluzionaria e un'innovazione dirompente, anche se si tratta di un cambiamento graduale che si verifica nel corso dei decenni e non di un brusco cambiamento.
È dirompente nel senso che le società di sviluppo software che non adottano SaaS si troveranno in uno svantaggio permanente e competitivo e si troveranno ad affrontare l'estinzione.
Architettura
Vedi "architettura software" e "ingegneria del software" in Wikipedia. Cerca anche "sistemi di gestione e informazione (MIS)" nelle offerte dei corsi della tua scuola.