Come posso compensare per essere andato a una JavaSchool? [chiuso]


18

In una domanda precedente , ho chiesto consigli sulla carriera per i nuovi ingegneri del software che hanno fatto bene prima e durante il college. Ma per quanto riguarda le persone che non sono state abbastanza fortunate da andare al MIT o a Yale, per qualsiasi motivo? E se andassi a quella che Joel Spolsky chiama JavaSchool ?

Cosa possono / dovrebbero fare gli ex studenti JavaSchool per sviluppare le loro abilità e compensare le cose che hanno perso al college? (O Joel aveva torto sul fatto che quelle scuole fossero svantaggiose?)



4
"Non lasciare che la scuola ostacoli la tua educazione" - Mark Twain
BlackJack,

Risposte:


12

Nonostante le affermazioni fatte da Joel in quell'articolo - e ammette lui stesso il punto - molte delle aree tematiche che possono essere perse da una "JavaSchool" non sono necessarie per molti lavori.

Ho partecipato a qualcosa che suppongo assomigli a una JavaSchool in quanto passiamo la maggior parte del nostro tempo a concentrarci su linguaggi di alto livello come C # e Java, ma ciò non cambia il fatto che "Algorithms & Data Structures" fa ancora parte dell'elenco di classi richiesto - per non parlare di tutte le altre classi orientate alla teoria. Concesso che non tutti "JavaSchools" sono uguali, ma non è questo il punto.

Secondo me, più importante della comprensione di alcuni dei più grossi argomenti di sviluppo è la capacità di risolvere i problemi in modo efficace quando sorgono sfide uniche. Come ingegneri del software facciamo la stragrande maggioranza del nostro apprendimento sul lavoro e, come tale, due dei più grandi aspetti della nostra descrizione del lavoro sono in grado di risolvere problemi e essere in grado di raccogliere concetti non familiari. Se, durante un'intervista, non si è in grado di compiere un tentativo logico e logico di risolvere un problema che è nuovo per loro, allora la loro incompatibilità per una data posizione probabilmente si rivelerà.

Ovviamente, quando si assume qualcuno per una posizione che richiede una costante esposizione e l'utilizzo di alcuni argomenti complessi che potrebbero non essere presenti in una JavaSchool, è spesso la scelta logica andare con qualcuno che abbia una comprensione precedente, ma la mancanza di esperienza non dovrebbe precludere sempre l' idoneità al lavoro .

Molto probabilmente, il ragazzo Java di 50 anni nella tua azienda che è stato lì per tutto il tempo che chiunque può ricordare non ha avuto alcuna comprensione di Java fino a quando il suo lavoro (attuale o precedente) non gli ha chiesto di impararlo - e lo ha fatto. A rigor di termini, è una cattiva pratica licenziare "il vecchio" in modo che un candidato più giovane e più "aggiornato" possa prendere il suo posto; detto questo, se la descrizione del lavoro per un dipendente giovane o vecchio cambia, è responsabilità di quel dipendente farsi prendere o trovare un nuovo lavoro. Solo perché un individuo (specialmente un programmatore con esperienza passata) non capisce alcuni concetti, non significa che non siano disposti o incapaci di impararlo. In effetti, se non sono disposti a imparare, probabilmente non appartengono a nessun lavoro , tanto meno al tuo.

È corretto affermare che alcuni "JavaSchools" sono migliori di altri, e questo fatto dovrebbe certamente essere preso in considerazione quando si seleziona un candidato per una posizione, ma ci sono tratti personali molto più importanti di quelli in cui qualcuno è andato a scuola.

È nostra attitudine affrontare un problema e trovare una soluzione che ci definisce ingegneri, quasi tutto il resto è secondario.


+1 "È nostra attitudine affrontare un problema e trovare una soluzione che ci definisce ingegneri, quasi tutto il resto è secondario."
Bill

Ho frequentato una scuola in cui i linguaggi di programmazione venivano raramente avvicinati (avevamo una base di C / C ++ / Java, purtroppo nessun linguaggio funzionale), e abbiamo solo familiarità con la teoria CS. D'altra parte, abbiamo parlato di database, data mining, reti telefoniche / mobili / internet, interfaccia uomo-macchina, ecc ... Abbiamo imparato in profondità, piuttosto che in profondità. Non penso che sia stato un brutto affare :)
Matthieu M.

1

Perché non lavorare su un libro di testo che introduce la programmazione in modo diverso da come l'hai imparato? Ad esempio, ci sono molti buoni libri gratuiti che usano il paradigma funzionale. Come progettare i programmi è molto accessibile. La struttura classica e l'interpretazione dei programmi per computer (http://mitpress.mit.edu/sicp/) è meno, ma fornisce un profondo senso di illuminazione.

Consiglio vivamente di guardare la prima coppia di lezioni SICP di Abelson per una diversa prospettiva su cosa sia l'informatica. Sono più vecchi ma hanno invecchiato molto bene (http://video.google.com/videoplay?docid=5546836985338782440#).


1

Sento il tuo dolore mentre andavo anche in una JavaSchool. Il mio è in realtà abbastanza alto nel Regno Unito per quello che è, anche se gli studenti del mio anno non hanno ricevuto una singola classe di Strutture di dati. Ho avuto la fortuna di essere in grado di raccogliere DSA come corso opzionale a causa di errori amministrativi con il mio corso, ma questa è un'altra storia straziante ...

Nella mia esperienza sperimenterai qualcosa in una JavaSchool che non sperimenterai nelle migliori università e questo è lo studente che vuole dimostrare il loro valore . Proprio come in qualsiasi altra università antica o di mattoni rossi nel mio paese, avevamo i tipici fannulloni e gli artisti decenti, ma c'era un piccolo gruppo di studenti che erano a conoscenza di ciò che li circonda e di ciò che mancava nella loro istruzione. Inevitabilmente, queste persone non hanno necessariamente fatto brillantemente nel loro corso, ma hanno lasciato l'università conoscendo più di tutti gli altri. Ci siamo internati in qualsiasi azienda di software ci avrebbe portato durante le pause che avevamo, abbiamo raccolto le lingue che non dovevamo mai insegnare e abbiamo studiato le materie che gli altri evitavano perché erano difficili.

Dai miei amici, due di noi stanno portando avanti i nostri studi a livello di Master, riprendendo tutti i corsi avanzati in cui sentivamo di aver completamente perso la fondazione e un ragazzo spera che la sua recente intervista a Microsoft si traduca in un pieno- lavoro a tempo. Sto per iniziare presto il mio Master, principalmente per colmare le lacune nella mia istruzione e trascorrere un altro anno a sviluppare le competenze di cui avrò bisogno per massimizzare il mio potenziale in questo settore.

Nel mondo reale le persone manterranno sempre questi pregiudizi, e il più delle volte sono completamente fondati sulla verità. Se ritieni che la tua scuola sia inadeguata, diglielo e usa siti come questo per costruire il tuo livello di istruzione.


0

Bene, puoi trovare un lavoro per scrivere software in Java. Finché sei bravo in quello che fai, la scuola in cui sei andato e / o il tuo maggiore non è terribilmente rilevante dopo il primo lavoro, anche se anche allora .


0

La cosa migliore a cui riesco a pensare è andare e (ri) imparare la programmazione in un paradigma completamente diverso, al fine di liberarmi dal modo di pensare orientato agli oggetti.

Suggerirei almeno:

  • Linguaggio di assemblaggio , per ottenere un vero apprezzamento per il funzionamento della macchina
  • Haskell , per una visione molto pura della programmazione funzionale
  • Lisp , per la programmazione funzionale impura e la metaprogrammazione (Clojure sarebbe la mia prima scelta, ma anche Scheme o Common Lisp sono fantastici)
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.