1. Non iniziare con le lingue, inizia con la programmazione. (Impari la matematica imparando Mathlab, o imparando la matematica?) Prova Algoritmi e Strutture dati.
2. Se sei logico nel tuo pensiero, e in matematica devi esserlo, dovresti imparare abbastanza in 6 mesi di studio a tempo pieno, o un paio d'anni di studio part-time, per diventare uno sviluppatore competente. (La codifica è come la traduzione - ci deve essere qualcosa da codificare prima - un computer può codificare un programma che è già stato sviluppato.)
3. Scelta della lingua? Dipende da quello che farai. iPhone? Objective C. Telefoni Android? Java. Back-end web? PHP, Python o Ruby on Rails. È specializzato - non diventerai davvero bravo in una dozzina di lingue in 10 anni.
4. 50k? Probabilmente inizierai tra i 25k e i 35k, a seconda della zona e dell'azienda. (Anche "Midwest" - c'è una differenza tra Chicago e qualche piccola città del Nebraska rurale). Alcune aziende danno aumenti annuali (o anche biennali), altre non danno aumenti, e devi cambiare datore di lavoro per ottenere un aumento. Lavorare a contratto significa più soldi, ma si pagano le proprie tasse e l'assistenza medica, e non si ottiene il tempo libero pagato (vacanze, ferie, ecc.), e se si ha troppo tempo tra un contratto e l'altro, il reddito annuale non sarà molto meglio che lavorare come dipendente.
5. 100k? Grandi aziende. Cisco. Red Hat. Pagano di più - per l'esperienza. In 10 anni? Forse. Siate pronti a spostarvi, però. Se hanno un'apertura sulla costa ovest, o sulla costa est o da qualche altra parte, ti sposti o qualcun altro ottiene il lavoro. Se hai dei figli, sarà dura per loro, come essere marmocchi dell'esercito.
6. Accreditamento? Una laurea in CS non può far male. Anche i corsi certificati in vari aspetti della programmazione non possono fare male. Alcune aziende vogliono abilità, altre preferiscono la carta. Se avete entrambi, non importa, ma 10 anni di esperienza facendo quasi esattamente ciò che l'azienda ha bisogno di fare vincerà su una laurea e nessuna esperienza quasi ogni volta.
Un suggerimento - in realtà leggere le specifiche di lavoro prima di inviare un curriculum. se non sei un match, non sprecare lo sforzo - ci sono decine di persone che si candidano che SONO un match. (Continuo a ricevere offerte di lavoro, anche se sono in pensione, per posizioni che non potrei occupare perché, anche dopo più di 40 anni di programmazione, non ho esperienza in quella particolare area o linguaggio. Anche i cacciatori di teste stanno diventando incompetenti negli ultimi due decenni. Le aziende sono infastidite come me, quando chiedono programmatori C# e ricevono curriculum da persone che hanno 5 anni di esperienza con C++ e non riconoscerebbero C# da una nota piatta. Se si continua a colpire un'azienda con un curriculum che non è nemmeno vicino ad essere una corrispondenza con quello che vogliono, scaricheranno i vostri curriculum non appena vedranno il vostro nome.