consigli di carriera per lo scienziato di dottorato che cerca di programmare? [chiuso]


13

Sono in gran parte un programmatore autodidatta. In effetti, ho iniziato a programmare a metà della scuola di biofisica e, anche se penso di aver fatto un bel lavoro, non ho mai lavorato come parte di un team di sviluppo "serio" che aveva più di uno o due altri sviluppatori (e non esiterei a definirli ugualmente inesperti nello sviluppo del software come professione).

Dopo aver terminato il mio dottorato di ricerca, mi sono concentrato sulla programmazione, ufficialmente come postdoc, ma ufficiosamente come programmatore di ricerca del personale. In quel periodo ho avuto anche due interviste su Google, ma non un'offerta reale. Così com'è ho messo giù alcune radici e probabilmente non sarei stato in grado di accettare il lavoro comunque. House + moglie con un lavoro ben retribuito, ecc. Sono passati circa tre anni e la mia onesta valutazione è che ho imparato molto di più, ma ho davvero bisogno di più di un gruppo di pari per mantenere o accelerare la mia crescita. Il problema è che, ogni volta che guardo, la maggior parte delle offerte di lavoro hanno requisiti che sembrano impossibilmente grandiosi e esito ad applicare. Quello, o il lavoro / progetto sembra incredibilmente noioso.

Sospetto che o la maggior parte delle persone sia solo molto meno realista di me quando si tratta di valutare quanto tempo impiegherà ad accelerare o non gliene importa; la mia paura è che non sono assolutamente qualificato per qualsiasi lavoro di sviluppo interessante e ben pagato. IE: Sono sicuro di poter tornare completamente in modalità C ++ con un paio di settimane di lavoro (uso principalmente C, Python, C # ogni giorno) ma non mi elenco come "esperto" in C ++ sul mio CV, o applicando per lavori che "richiedono" tale conoscenza. Le poche domande per le quali mi sono sentita una partita legittimamente valida non hanno suscitato una risposta.

Ho il sospetto che le seguenti cose siano potenziali problemi con la mia candidatura / CV e vorrei un feedback:

Non ho una laurea in CS. Il mio BS era in biochimica e biologia molecolare, il mio dottorato in biofisica. Ho seguito corsi di algoritmi di livello universitario e di laurea e li ho completamente uccisi, ma non so come tradurlo in modo efficace nel mio CV (la differenza tra ottenere un A + e fumare tutti gli altri nella classe).

Ho un dottorato di ricerca, ma non è in CS ... Ho discusso se dovrei rimuoverlo dal mio CV, e se sarebbe o meno fuorviante elencare almeno alcuni di quegli anni come una sorta di "programmazione" 'lavoro (per molti aspetti è stato).

Penso che a volte ci siano stigmi forti associati a programmatori "autodidatti". Sono certamente uno di quelli. Riconosco persino che alcuni di questi stimmi hanno un pizzico di verità, ma voglio davvero essere un vantaggio per una squadra. Come faccio a comunicare che, anche se sono stato in gran parte autodiretto per ~ 8 anni, posso ancora prendere ordini di marcia quando necessario? Lo dico semplicemente?

Dovrei solo diventare molto meno scrupoloso sull'intero processo? aneddoto: ho un amico che ha fatto domanda per posizioni in cui ha completamente superato le sue qualifiche per superare la prima selezione. Era molto più onesto e disponibile riguardo alle sue effettive qualifiche quando contattato e riuscì comunque a essere invitato a un paio di interviste e persino ad alcune offerte. Le sue palle sono più grandi delle mie però.


Ammiro la tenacia di candidarsi a Google senza esperienza! Ma sfortunatamente dobbiamo iniziare tutti dal fondo della scala. Il motivo principale per cui un datore di lavoro potrebbe non desiderare un dottorato di ricerca è che in genere sono considerati più teorici che pratici (scienziati, non ingegneri). Si tratta di far fare le cose, quindi è necessario dimostrare prima di poterlo fare.
Nessuno il

1
Lo sospettavo, purtroppo penso che si stia verificando un malinteso interdisciplinare. Direi che la maggior parte delle persone non ottiene il proprio dottorato di ricerca in bioscienze senza pianificare con successo il lavoro, fare il lavoro e comunicare il lavoro. E parte del "fare il lavoro" significa sporcarsi le mani: gli equivalenti del mondo della programmazione di codifica, debugging, tuning. Sento che questo è simile a "Fare cose fatte" è il senso che intendevi. Ora come comunicarlo su un CV senza apparire pedante, condiscendente o arrogante mi sfugge ...
C SD

1
Qual è la tua definizione di fondo? Mi piacerebbe fare di più di quanto non faccia ora, ma la mia più grande motivazione è che voglio imparare di più, più velocemente e come parte di uno sforzo maggiore. Attualmente realizzo ~ 45k come programmatore di personale non ufficiale (postoc) e le mie prospettive future se rimango in questa capacità non sono le migliori, ma è irragionevole per me pensare che il "fondo" non debba pagare di meno E essere meno interessante?
C SD,


Se hai avuto interviste su Google in passato, probabilmente la tua mancanza di laurea in CS non ti impedisce di lavorare lì o non ti avrebbero intervistato in primo luogo. A differenza di molte aziende, Google offre "seconde possibilità" se è trascorso almeno un anno. Siamo in procinto di scatenarsi in questo momento.
Uri,

Risposte:


12

Come posso dirlo: i programmatori arrivano una decina, ma i programmatori con esperienza biofisica sono probabilmente molto rari. Quindi, se fossi in te, proverei prima a trovare un lavoro nel tuo campo, un lavoro in cui la programmazione fa parte della descrizione del lavoro (o lo rende parte della descrizione del lavoro). In questo modo svilupperai abilità che sono molto più competitive e uniche rispetto a quelle dello sviluppatore medio che alla fine potrebbero farti ottenere un ottimo lavoro.

Quando pianifichi la tua carriera, non devi solo guardare al prossimo anno o giù di lì, pensa a cinque-dieci anni a lungo termine. Se la programmazione è qualcosa che ami ma forse non hai un'educazione formale, allora devi sfruttare le tue altre abilità per ottenere il lavoro che desideri.


2
Trova una società che lavora in biofisica e anche in programmazione.
Alex Feinman,

2
Concordo fortemente. Essere in grado di parlare di due campi è fondamentalmente un'abilità rara. Sfrutta questa abilità per fare qualcosa di fantastico.
Paul Nathan,

1
Sicuramente esaminare la biologia computazionale
solo il

buon Consiglio. Suppongo che quello che mi stai dicendo sia che non sono realistico. La mia speranza era stata quella di lavorare su un progetto pubblico di grandi dimensioni. Cose come WebKit, StreetView / Earth, Photosynth, LLVM, btrfs, pacchetti di fotoritocco: Photoshop, Lightroom, Aperture. Il lavoro di biofisica che coinvolge la programmazione tende ad essere più di quello che sto già facendo, ovvero piccoli team, processo a casaccio ... ma guarderò solo più difficile.
C SD,

1
@C SD - No, non sarai in grado di saltare in una grande squadra e guidarla. Essere un dottorato di ricerca è quello che dovrebbe essere la tua posizione, ma non hai ancora le braciole per questo. E quello che devi fare è passare da un biofisico che sta programmando a un programmatore che lavora a progetti di biofisica. Se trovi un programmatore senior forte, vedi se ti farà da mentore. Usa la tua laurea in biofisica per supportare la tua programmazione invece di lasciarti definire.
SoylentGray,

2

Innanzitutto, impara a concentrarti. Sul serio. Backstories lunghi e complessi devono essere modificati.

Non ho una laurea in CS.

Nemmeno una parte sostanziale di programmatori che lavorano. Nei grandi negozi IT, ci sono un buon numero di titoli associati.

Ho un dottorato di ricerca, ma non è in CS ... Ho discusso se dovessi rimuoverlo dal mio CV,

No. Nell'industria, qualsiasi grado è ciò che è importante. Ancora una volta, per i lavori entry-level in cui è possibile acquisire esperienza, ad esempio nel negozio IT di una compagnia assicurativa, si compete con i bambini con titoli associati.

Penso che a volte ci siano stigmi forti associati a programmatori "autodidatti".

Che cosa? La maggior parte delle persone IT con cui ho lavorato sono autodidatta perché le loro aziende sono troppo economiche per portare istruttori per le nuove tecnologie.

Basta applicare per ogni lavoro di programmazione che ci sia. Più applichi, più capirai cosa stanno cercando.

Qualche grande negozio IT in qualche compagnia di assicurazione sanitaria casuale sarà perfettamente felice di avere qualcuno che è ragionevolmente intelligente e conosce la tecnologia anche se è autodidatta.

Poiché la maggior parte (più della metà) dei programmatori che lavorano non ha (a) nessun titolo utile e (b) è autodidatta in una o più delle tecnologie che dovrebbero utilizzare, le tue preoccupazioni sono interamente uno spreco di strizzare la mano.

Se vuoi apparire più professionale, inizia a leggere più codice. Inizia con progetti open source che ti interessano e decodifica completamente la base di codice in modo da poter vedere quali sono le migliori pratiche.

Inoltre, data la scelta, alla maggior parte dei negozi IT viene chiesto di assumere persone con "conoscenza del business" anziché competenze tecnologiche. Quindi, se hai la maggior parte di un dottorato di ricerca in un argomento casuale (sul serio, la tua domanda era così lunga e sconclusionata ...), concentrati su quel settore.


Scusa, è stato troppo lungo. Ho pensato di mettere i bit più importanti in alto e in basso per facilitare le scansioni rapide. La mia esperienza in merito: i gradi sono stati piuttosto l'opposto ... Joel S. ha anche un vecchio post su come i dottorati di ricerca CS "sopravvalutati" siano ... esito a giudicare la sua valutazione di quelli provenienti da campi completamente diversi.
C SD,

Puoi collegare il post di Joel?
Andrea,

joelonsoftware.com/articles/GuerrillaInterviewing3.html parte più rilevante: le persone che sono intelligenti ma non ottengono le cose Spesso hanno dottorati di ricerca e lavorano in grandi aziende in cui nessuno li ascolta perché sono completamente poco pratici. Preferirebbero riflettere su qualcosa di accademico riguardo a un problema piuttosto che spedire in tempo. -------------------- Per metterlo nel contesto, i suoi criteri attuali sono giusti e non hanno nulla a che fare con i gradi, ma rivela un chiaro pregiudizio, anche se è, certamente, divertente.
C SD,

Aggiungerò anche che mi è stato detto da altre persone (noleggiatori) che avere un grado più alto può farti salire di livello o portarti più in alto, ma può anche alzare il livello. Vorrei elencare la mia laurea da quando ho lavorato duramente per questo, e penso che mostri alcune buone qualità (e non necessariamente l'educazione), ma se qualche persona delle risorse umane vede le lettere e pensa "dovremo pagarlo a almeno X, e non ha nemmeno un grado rilevante e tonnellate di esperienza? ERRRRRRR "
C SD

@C SD: "se qualche persona delle risorse umane vede le lettere e pensa ..." Non hai prove. Ora puoi smettere di strizzare la mano. Fino a quando qualcuno non te lo dice davvero, consideralo meno di una voce e più di una leggenda metropolitana.
S.Lott

1

La verità è che probabilmente dovrai assumere uno di quei lavori "incredibilmente noiosi" per avere un piede nella porta. Ma una volta che hai 6-12 mesi come programmatore di lavoro nel tuo CV, dovresti essere in grado di andare avanti e indietro abbastanza rapidamente.


0

Credo fermamente che la programmazione sia un'arte e proviene dalla pratica piuttosto che dai gradi.
Sì, è abbastanza scoraggiante il fatto che spesso le organizzazioni, in particolare quelle più grandi (come Google), sottovalutano i programmatori autodidatti perché non hanno gradi più alti. Sembri una persona con un forte livello di pazienza e non mi considero abbastanza qualificato per consigliarti, ma vorrei menzionare alcuni punti che potrebbero aiutarti:
1. Provare in piccole organizzazioni in cui preferiscono il talento.
2. Open Source è la piattaforma per mostrare il tuo talento, acquisire una vera conoscenza dello sviluppo.
3. Certificazioni: ci sono diverse certificazioni di programmazione offerte da giganti come MS, Oracle ecc. Sicuramente aggiungerle nel tuo curriculum darà un vantaggio alla tua parte di programmazione.
In bocca al lupo! :)


Grazie per il consiglio. In particolare il numero 2 sembra buono, dato che uso molti progetti OSS e riesco persino a esaminare molto del codice in quelli che uso. Dovrei davvero contribuire di nuovo ad alcuni di questi, ma alla fine, dover supportare le varie richieste di software di un laboratorio di 15 persone praticamente da solo mi lascia poco tempo per guadagnare notorietà attraverso la partecipazione. Forse la risposta allora è provare # 1 con la speranza di poter anche fare # 2. torna al mostro ...
C SD

Prego e buona fortuna! :)
Ranger,

Le persone autodidatta tendono ad avere imparato in modo non sistematico e spesso hanno grandi lacune nelle loro conoscenze. Una persona con una laurea è in genere la scelta più sicura. Inoltre, un grado mostra un certo livello di determinazione e la capacità di completare qualcosa. Potrebbe non essere giusto per l'individuo, ma ci sono ragioni per assumere persone con una laurea.
David Thornley,

Quindi prendo questo per significare che essere autodidatta E avere una laurea sbagliata potrebbe effettivamente essere peggio di entrambi?
C SD,

@ David Thornley, per aver raggiunto l'amore della saggezza con i meriti - non esiste una prova migliore di determinazione. Preferirei arbitrare su ciò che qualcuno ha raggiunto o può fare con le proprie conoscenze, non da dove o come l'hanno ottenuto. Le cose importanti su ogni individuo, come direbbe Heinlein, elise.com/quotes/a/heinlein_-_specialization_is_for_insects.php .
Filip Dupanović,

0

Lavoravo anche come postdoc. Se puoi, prendi alcune lezioni di CS presso la tua università. Molto probabilmente non puoi prendere ufficialmente le lezioni dal momento che non sei uno studente pagante, ma puoi chiedere all'istruttore di classe e ai TA se puoi partecipare al corso e fare i progetti. Non ti classificherai i compiti a casa, ma andrai in ufficio e utilizzerai le risorse.

Perché vorresti farlo? Ci sono alcune classi che non si possono imparare da soli senza frequentare una buona lezione e fare domande interattive. Suggerirei di prendere lezioni per:

  • algoritmi
  • strutture di dati (a volte combinate con una classe di algoritmi; in caso contrario, di solito la seconda classe di programmazione offerta dall'università) *
  • rete (in particolare programmazione socket TCP / IP) *
  • database (utilizzo SQL, in particolare)
  • sistemi operativi *
  • linguaggi di programmazione (di solito un sondaggio di linguaggi di programmazione)

L'asterisco * indica che si tratta in genere di classi pesanti di programmazione, quindi ti aiuteranno a migliorare la tua capacità di programmazione.


0

Allentare! Le nostre opere pubblicate più popolari sono scritte in narrativa. Non giudichiamo in base ai meriti accademici o alla loro mancanza. Siamo il gruppo scientifico più aperto e indiscriminato là fuori. Essere in grado di contribuire con qualcosa di utile è tutto ciò che è importante.

Prendi il punto 2 di @ Ranger. Non devi essere coinvolto in un grande progetto open source se non hai tempo. Potresti semplicemente scrivere una piccola biblioteca. I datori di lavoro adorano quando ti avvicini a loro con un repository pubblico in cui possono rivedere alcuni dei tuoi lavori - possono immediatamente valutare che puoi seguire le linee guida di stile della comunità, che puoi leggere il codice di altre persone e che puoi scrivere un codice isolato, comprimibile , distribuito e sotto controllo di revisione. La maggior parte degli studenti laureati in CS non può nemmeno farlo, quindi parla di lacune nelle loro conoscenze.

Alla fine, sei già appassionato di programmazione. Chi o cosa c'è per fermarti?


Prendo questo per significare che lavori in Google? Non mi aspettavo davvero di ricevere un'offerta per la prima intervista lì, ero un po 'più deluso la seconda volta, anche se ad essere sincero non avrei accettato il lavoro dal momento che ora sono fortemente radicato. Rimanendo deluso non sono nemmeno riuscito a ottenere una risposta da alcune delle mie altre applicazioni, per non parlare di un'intervista. Non ho presentato molte domande, ma le ho selezionate con cura poiché pensavo che sarebbero state una buona partita.
C SD

Siamo tutti missili su carta, giusto? La mia opinione è che generalmente non sono impressionati dalle tue esperienze lavorative passate a meno che tu non fornisca loro qualcosa di fisico da rivedere. La maggior parte di noi non ha svolto un lavoro rivoluzionario alla NASA o a Google. Sarebbe credibile, dal momento che tutti possono collegarsi al tipo di lavoro che accade lì. Quindi devi mostrare le tue competenze, non solo parlarne. Inserisci un codice QR che li inserisca nella pagina dei tuoi progetti. Fai qualcosa di diverso. Distinguiti nella pozzanghera dei candidati di Bill e Jane. Non lavoro in Google, ma è così che vorrei fare domanda.
Filip Dupanović,
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.