Una carriera nello sviluppo di software tende ad essere molto più fluida quando si tratta di conoscenze tecnologiche che solo "Sto usando il linguaggio X" - Ho lavorato in sicurezza informatica (C ++, Java, Perl, Python), difesa (C ++ ), e alcune startup e società web (Java, Python, C #, Ruby). Non mi è mai stata concessa l'opportunità di essere una singola piattaforma o persona con una sola lingua, tranne che nel mio attuale lavoro (utilizzando C # in un negozio Windows puro) e Visual C ++ è un'implementazione specifica del linguaggio C ++ disponibile solo su una singola piattaforma (Windows, anche se la conoscenza C ++ stessa è piuttosto portatile in termini di costrutti linguistici).
Questo non include nient'altro che ho appreso per lavoro e lavoro - MySQL, Oracle, in realtà imparando e diventando un esperto Unix Solaris / Linux / Generico, server, sistemi di compilazione, Qt (il framework), boost, Javascript , XML, sicurezza, ecc. Ecc.
Penso sia più importante sapere che probabilmente ci si aspetta che faccia di più che usare un linguaggio particolare - se vuoi lavorare nella Silicon Valley, dirò che il C ++ in realtà non è un linguaggio molto richiesto, anche se è in uso presso alcune grandi aziende come Oracle, Facebook e Google. Scoprirai che le aziende Valley tendono a cercare la conoscenza di Java e Ruby, oltre all'esperienza di Javascript.
Più che probabile, imparerai e utilizzerai più tecnologie, linguaggi e piattaforme per stare al passo con la velocità della valle. Ho intervistato alcuni mesi fa (in una startup molto carina, ho ricevuto un'offerta ma alla fine ho rifiutato per obblighi personali e familiari qui). Erano un'azienda della Ruby (volevo un lavoro con Ruby ma non avevo mai usato Ruby professionalmente) e non mi importava che non avessi usato Ruby professionalmente. Le aziende non stanno per essere intervistate per conoscenza specifica, hanno bisogno di trovare qualcuno che sia molto flessibile, adattabile e in grado di raccogliere molte cose e fare più cose in ordine rapido. Windows sembra essere una piattaforma di sviluppo piuttosto rara nelle aziende Valley e Valley - gli sviluppatori tendono a utilizzare Mac OSX o Linux e le aziende utilizzano Linux per server (a causa dei costi e della disponibilità generale su piattaforme come Amazon EC2, Heroku e Engine Yard).
Dirò che la cosa più importante è continuare a sperimentare e imparare, anche sul tuo attuale lavoro. Sto sviluppando le mie conoscenze Python, Scala e R usandole nel mio attuale lavoro (la società non ne usa nessuna in produzione) perché è più facile per me prototipare e sperimentare in quelle tecnologie che usare C # in primo piano. Alla fine, mi aiuta a finire il lavoro più velocemente. Inoltre, comprendi che ci sono molte tecnologie là fuori e mentre svilupperai le competenze in pochi, acquisirai una conoscenza di passaggio attraverso un'ampia varietà di tecnologie, piattaforme e lingue.