Tutto è una moda passeggera. Imparerai di più nel tuo primo anno di università che in tutti i tuoi anni al college. L'informatica non ha nulla a che fare con i computer.
Il college ti offre una cassetta degli attrezzi piena di strumenti. Questo è un cacciavite, che è una chiave a mezzaluna. Potresti usare ogni strumento una volta al college. È quando entri nel mondo reale è quando scopri davvero quello che hai. Separerai dal resto quelli utili, quelli che vuoi lasciare a casa sul banco da lavoro, per ogni evenienza, e quelli che tieni in tasca ogni giorno.
Tqm, Iso, Cmm, Agile, ecc. Queste sono tutte mode che arriveranno e se ne andranno, nessuna di quelle di successo è più che semplice buon senso. Tutti gli ingegneri e le aziende di successo usano un po 'di buon senso, questo è ciò che li ha resi vincenti, pochi avevano bisogno di un nome. Il problema è che non puoi vendere il buon senso, un manager non può dimostrare il proprio valore all'azienda formando e acquistando il buon senso senza un nome accattivante. Mettici sopra un nome che i loro superiori hanno letto in qualche articolo o rivista e il manager manterrà il loro lavoro e tu manterrai il tuo. Pochissime delle aziende che affermano di seguire queste pratiche lo fanno effettivamente. La maggior parte scrive un assegno a un consulente e ottiene il certificato annuale e / o a vita a qualche club in modo che possa mettere una grafica sul proprio sito web o un'etichetta sulla scatola in cui viene fornito il prodotto. Molti sosterranno che questo è raro ... stato lì, visto, succede. Tutto questo fa parte degli affari, a volte devi tagliare gli angoli per rimanere redditizio e tenere le porte aperte e le luci accese. I seguaci più accaniti di tutte queste pratiche hanno tutti sostenuto che l'ultima era una moda e questa non lo è, l'ultima era davvero troppo costosa da seguire, questa non lo è. L'ultimo era falso, hai appena assunto un consulente, questo è vero. Come i linguaggi di programmazione, anche questi si evolveranno. L'ultimo era falso, hai appena assunto un consulente, questo è vero. Come i linguaggi di programmazione, anche questi si evolveranno. L'ultimo era falso, hai appena assunto un consulente, questo è vero. Come i linguaggi di programmazione, anche questi si evolveranno.
La tua capacità di comprendere la realtà del business, il sistema universitario e il tuo ruolo in esso è la chiave. Come qualsiasi cosa nella vita, scegli le tue battaglie. Non è l'università o gli affari o il governo o il lavoro di qualcun altro per insegnare ciò che vuoi che hai bisogno o vuoi sapere. Il tuo lavoro è cercare il numero uno. Allo stesso modo non puoi incolpare nessun altro per averti fornito il tempo per farlo, devi farlo. Cadrai da cavallo, non sei una vittima, ti alzi e ti rimetti in sella, niente scuse, la vita non è giusta. Approfitta delle dispense, non fingere di essere indipendente. E certamente paga i tuoi debiti, non succhiare una compagnia a secco di sussidi, senza dare loro qualcosa (il tuo meglio in quel momento?) In cambio.
Perché le persone pensano che cmm o agile o qualcun altro sia una moda passeggera? Perché pensano di non esserlo? Perché il professore ti ha insegnato a programmare in quel modo? Per evitare gotos o per evitare costanti o per evitare questo e quello? È perché produce codice più affidabile? Codice con prestazioni migliori? Riduce l'errore umano? O è perché è più facile valutare documenti / programmi dando loro più tempo per fare ricerca? È perché non sanno programmare e stanno solo seguendo il libro di qualcun altro sull'argomento? Ti hanno insegnato che non puoi avere un codice manutenibile, affidabile e ad alte prestazioni? Non puoi nemmeno "sceglierne due" manutenibili interferisce sia con prestazioni affidabili che elevate? A volte sacrifichi l'affidabilità per le prestazioni. A volte non ti interessa l'affidabilità o le prestazioni, vuoi solo ottenere dalla versione 117.34. 2 di un altro programma software di contabilità alla versione 118.0.0. Il tuo modello di business deriva dalla vendita di aggiornamenti di versione e supporto tecnico e, per quanto riguarda gli sviluppatori di software, qualsiasi vecchio robot può scrivere lo stesso codice nello stesso modo. Sostituisci quello bruciato con quello appena uscito dal college e continua a vendere aggiornamenti.
Non ci sono risposte universali a queste domande, devi scoprire qual è la tua opinione, conviverci e difenderla. Cambia idea, vivi con essa e difendila.
Metti in dubbio tutto ... mi brucio davvero se tocco la pentola calda sul fornello? Gli effetti psicologici della paura causeranno più danni del semplice bruciarsi? C'è un modo sicuro per testare la risposta senza farsi male?
Quando potevo permettermelo, compravo e alla fine fondevo transistor, cappucci, resistori, ecc. Nella mia stanza del dormitorio, che hanno tutti un caratteristico cattivo odore. È molto più economico e più facile acquistare un amplificatore per il tuo stereo che provare a costruirne uno il giorno dopo la tua prima lezione di transistor. Linus è l'eccezione, ovviamente è più facile acquistare un sistema operativo che scriverne uno ... Puoi fare di più anche se ciò che impari in quel periodo è diverso da quello che ha imparato Linus.
Il mondo dentro e fuori l'università adotterà queste formule (cmm, agile, ecc.) Per risolvere i problemi e quando uscirà il prossimo li abbandoneranno altrettanto velocemente. Non è necessario utilizzare il controllo della versione per avere successo, ci sono altrettanti successi con e senza (beh, in realtà a causa dell'età del settore ci sono molti più successi senza controllo della versione finora). Allo stesso modo puoi avere successo con test minimi (guarda i grandi nomi dell'industria dei computer come esempi). Puoi avere successo testando il tuo codice, oltre ad avere successo seguendo la regola che non dovresti mai testare il tuo codice. Puoi avere successo usando emacs e puoi avere successo usando vi. Devi decidere quale mix funziona per te e se sei fortunato trova un posto di lavoro che sia d'accordo con te.
Quando esci dal college e entri nel mondo reale, ascolta, lavora con e discuti con i "veterani". Hanno decenni o secoli di esperienza combinata, trappole in cui sono caduti che potresti evitare e / o testare da solo (forse ti rendi conto che non devi toccare la pentola calda per scoprire che ti brucerà). La maggior parte avrà visto almeno una o due di queste mode andare e venire, e in particolare quanto sono state bruciate e cosa hanno fatto per riprendersi. Conoscono molti modi diversi per testare le cose e anche i nomi degli stili di test che sono andati e venuti. Cosa funziona, cosa no. Dove c'è il rischio e come evitare di perdere tempo in tangente. Man mano che maturi e diventi il vecchio timer, passalo avanti. Paga ciò che hai imparato cercando di insegnare a coloro che ti seguono. Ricordati di insegnare loro a pescare, non dare loro un pesce. E a volte devi lasciarli fallire prima che abbiano successo, evitare che si brucino troppo gravemente.
Quello che volevo davvero dire qui è che in questo momento siamo in una rara situazione in cui possiamo assistere a un'evoluzione di un universo parallelo (e forse influenzarlo). Sì, l'informatica è una scienza giovane rispetto alla fisica. Ma allo stesso tempo si è evoluto molte volte. A seconda di dove lavori e con chi lavori, potresti essere in grado di osservare gli ingegneri hardware. I linguaggi di programmazione nel mondo dell'hardware non sono certo nuovi, ma non si sono evoluti rapidamente come il mondo del software. Il software ha avuto un vantaggio di alcuni decenni. L'hardware ha sempre pensato agli ingegneri del software come cittadini di seconda classe. Il nostro lavoro è facile, il loro lavoro è difficile. (Nota che in realtà sono sia un ingegnere hardware che software). Ciò che è interessante è che in questo momento hanno ancora a che fare con quelli che considereremmo problemi elementari o infantili. Perché dovrei usare il controllo della versione, sono l'unico a lavorare su questo chip. La tua esperienza con gcc o altri compilatori economici o IDE gratuiti non può essere paragonata ai costosi strumenti che uso, se la società pensasse che fossi abbastanza degno di usarlo o addirittura di sapere come usarlo ti comprerebbe una copia. E una lunga lista di altre scuse. Ho avuto il piacere di imparare sia vhdl che verilog e di diventare produttivo in entrambi in una settimana da quella che era quasi una sfida da parte di un simile ingegnere hardware (nonostante il mio diploma affermasse ingegnere elettrico il mio titolo di lavoro è ingegnere software). Volevo imparare queste lingue, quando gli strumenti erano a mia disposizione sono rimasto in ufficio fino a tarda notte e ho imparato da solo. Da quel momento in poi quell'ingegnere in particolare si rese conto che quello che stavo dicendo era vero, le lingue sono solo sintassi, i fondamenti della programmazione sono gli stessi, gli strumenti fanno tutti la stessa cosa. Le sue mele e mele non mele e arance.
In generale, tuttavia, è ancora difficile inviare il messaggio che una di queste due industrie parallele ha molta più esperienza in linguaggi, abitudini di programmazione, controllo del codice sorgente, test, strumenti, ambienti di programmazione, ecc. Rispetto all'altra. Il problema che sto cercando di risolvere è prendere i progetti hardware mentre vengono sviluppati, creare simulatori funzionali convenienti che possiamo collegare con una simulazione (macchina virtuale) del processore in modo da poter iniziare a testare l'hardware e sviluppare il test e software consegnabile molto prima di passare al silicio. No, non c'è nulla di "nuovo" in questo, ma non abbiamo alcun meccanismo per ottenere il codice più recente, tenere traccia delle modifiche nel codice per vedere dove dobbiamo concentrare il nostro tempo. Nessun meccanismo per tenere traccia della documentazione che definisce l'interfaccia utente (programmazione) sull'hardware. L'unica copia d'oro è nella casella di posta in arrivo di qualcuno in forma binaria e cambia solo quando, beh, non è necessario leggere il verilog per scoprire cosa sta succedendo. Aspetta, quanti anni ha quel verilog? Quel bug su cui ho passato tutta la settimana è stato individuato tre settimane fa e corretto? Quindi voliamo in qualche luogo di vacanza e festeggiamo per sei mesi in attesa che gli addetti all'hardware finiscano il loro compito e ce lo gettino oltre il muro, o cogliamo l'occasione per cercare di essere pazienti e ottimisti e insegnargli che loro ci sono metodi di buon senso che non sono così invadenti che consentono loro di svolgere il proprio lavoro, eseguire il backup del proprio lavoro e condividere le proprie cose per la revisione tra pari ... che verilog ha quanti anni? Quel bug su cui ho passato tutta la settimana è stato individuato tre settimane fa e risolto? Quindi voliamo in qualche luogo di vacanza e festeggiamo per sei mesi in attesa che gli addetti all'hardware finiscano il loro compito e ce lo gettino oltre il muro, oppure cogliamo l'occasione per cercare di essere pazienti e ottimisti e insegnargli che loro ci sono metodi di buon senso che non sono così invadenti che consentono loro di svolgere il proprio lavoro, eseguire il backup del proprio lavoro e condividere le proprie cose per la revisione tra pari ... che verilog ha quanti anni? Quel bug su cui ho passato tutta la settimana è stato individuato tre settimane fa e corretto? Quindi voliamo in qualche luogo di vacanza e festeggiamo per sei mesi in attesa che gli addetti all'hardware finiscano il loro compito e ce lo gettino oltre il muro, o cogliamo l'occasione per cercare di essere pazienti e ottimisti e insegnargli che loro ci sono metodi di buon senso che non sono così invadenti che consentono loro di svolgere il proprio lavoro, eseguire il backup del proprio lavoro e condividere le proprie cose per la revisione tra pari ...
Ricorda che gli ingegneri hardware hanno lasciato il college con una scatola di nuovi strumenti brillanti proprio come hai fatto tu. Hai imparato 17 diversi linguaggi di programmazione di cui puoi usarne solo uno, il resto dei linguaggi che hai nella tua carriera saranno inventati dopo aver lasciato l'università. Quando hanno lasciato il college possono dirti quello che sanno del calcolo e della teoria della relatività quanti elettroni ci sono in ciascuno degli elementi e calcolare la carica attorno a una superficie gaussiana. Ma la maggior parte della loro carriera è uno, zero e, o e no (ehi, abbiamo quelli in comune, tutto quello che devi sapere sui computer, uno, zero e, o e non, ingegnere hardware o software). Ammesse le leggi fondamentali della fisica, il calcolo, gli elettroni non cambieranno alla stessa velocità dei linguaggi di programmazione. Ma i fondamenti della programmazione sono gli stessi in tutte le lingue e continueranno ad esserlo in futuro. Hai lasciato il college sapendo che o hai lasciato pensando che Java è diverso e migliore di C ++ perché questo e quello e l'altro?
Come qualsiasi altra attività, il lavoro dell'università deve rimanere redditizio. Devono assumere gli accademici giusti per portare sia gli studenti giusti che i giusti dollari di ricerca e i giusti tipi di ricerca per rendere redditizia l'università. Devono offrire le classi giuste per portare gli studenti giusti e produrre i laureati giusti in modo che con il passare dei decenni i datori di lavoro sia vicini all'università che, si spera, lontani riconoscano che questa università produce dipendenti produttivi e redditizi. (sì, a volte devi attirare gli atleti giusti nello sport giusto per ottenere la giusta quantità di tempo televisivo e la giusta quantità di riconoscimento del nome e entrate sportive). Alcune università insegneranno C ++ e Java, altre non lo faranno mai. Alcuni inventeranno CMM e alcuni insegneranno Agile, altri non faranno nessuno dei due. Se l'università ha un valore, c'è qualcosa da imparare. Non ti insegneranno tutto quello che c'è da imparare, ma avranno qualcosa di utile. Impara quel qualcosa mentre sei lì, raccogli un numero ragionevole di varie forme di strumenti nella tua cassetta degli attrezzi. Lascia l'università e trova un lavoro. Se la tua cassetta degli attrezzi fa schifo forse trova un'altra università e non menzionare mai la prima. Se è una cassetta degli attrezzi ok, usa questi strumenti e creane di nuovi nel tuo tempo libero. Se è una cassetta degli attrezzi piuttosto buona, di 'cose positive su quell'università e sui bravi accademici da cui hai imparato questo e quello e ripaga la scuola per quello che ti hanno dato. Anche se non hai ottenuto tutti gli strumenti possibili nel catalogo universale degli strumenti universitari, uscirai con un certo sottoinsieme. Anche se non ti laurei ...