Sono il programmatore .1x della mia azienda. Come posso contribuire al meglio? [chiuso]


61

Lavoro in una startup di cinque persone appena coniata. Abbiamo un Ph. D in machine learning, un ex membro del core team di RSpec e il ragazzo che compila il binario Git per OS X. Sono solo i dipendenti; il fondatore ha un Ph. D ed è stato CTO per un'azienda multimiliardaria prima di partire per iniziare una (riuscita) startup, e ora ha lasciato questo per iniziare questa. Potremmo anche avere un ragazzo con un dottorato in matematica.

Aaaaaaaa e poi ci sono io, tirocinante universitario. Penso di essere piuttosto intelligente e sto leggendo ininterrottamente, ma il delta di esperienza, abilità e conoscenza tra me e i miei colleghi è semplicemente mozzafiato.

Quindi mettiti nei loro panni: hai un giovane tirocinante brillante che ha molto da imparare ma è almeno energico. Cosa sarebbe fastidioso? A che cosa speri di uscirne da qui e ora? Cosa sarebbe piacevolmente sorprendente se fosse successo?


32
Una delle cose interessanti delle startup in fase iniziale è che tutti fanno tutto, perché ci sono così pochi collaboratori in totale. Avrai molte opportunità di capire cosa fai bene che gli altri non fanno. Nel frattempo, preoccupati di costruire un ottimo prodotto, non di quanto sei intimidito dai tuoi colleghi.
James Youngman,

3
Pezzi di carta non equivalgono a molto rispetto alle azioni e alle abilità dimostrabili, ma ricordalo. Se mostri qualcosa, il documento è un tecnicismo.

6
è la cosa migliore della vita, puoi imparare molto da loro. E non pensare troppo, fai quello che fanno tutti i programmatori.
Sufendy,

4
Sembri Hawkeye circondato da Thor, Captain America, Hulk e Ironman. Ma anche Occhio di Falco è fantastico! : D
bertzzie,

20
"guy che compila il binario Git di OS X" == "guy che digita 'make'"

Risposte:


58

La cosa più importante:

Non essere colpito dai titoli. In breve tempo, ti renderai conto che anche i tuoi colleghi di Ph.D sono solo umani. E alcune persone con un Ph. D non hanno mai creato nulla di praticamente utile. Ricordalo sempre, non sentirti inferiore.

Cosa mi aspetterei da te? Per scrivere un buon codice e fare le cose. È probabile che tu sia qualcuno che sta davvero lavorando, mentre ti descrivi energico. Ho visto un sacco di persone con diplomi che impiegavano un'eternità a realizzare compiti semplici perché si stavano concentrando troppo sui dettagli, ecc. Mettilo a frutto e consegna un buon codice in un tempo ragionevole e presto tutti ti rispetteranno.

Ma non mancare di rispetto agli altri. Molto probabilmente sono più vecchi e probabilmente puoi imparare cose preziose da loro. Ma non prendere nulla senza pensarci. Cerca sempre di capire e pensare da solo. Mi aspetto che copi i comportamenti e le conoscenze che funzionano davvero.


1
+1 Ho conseguito un dottorato di ricerca in EE lavorando per me per meno di 40.000 l'anno per 2 anni. I titoli non significano nulla, si tratta solo di abilità, competenza e capacità di pensiero critico.
Jonathan Henson,

3
I titoli non significano niente. L'istruzione non significa niente. L'esperienza non significa niente. Le certificazioni non significano nulla. Usare i tuoi strumenti per produrre risultati è tutto.
Chuck Conway,

Sembra ... stranamente saggio.
temporaneo

Proprio come devi dimostrare rispetto per i tuoi colleghi, hai il diritto di aspettarti che ricambino. Non dimenticare mai che possono imparare cose da te - quasi certamente non sanno tutto.
Mattnz,

41

L'umiltà fa molta strada

Con il tuo umile atteggiamento, dubito seriamente che sarai fastidioso. L'umiltà fa molta strada. (Questo vale sia per gli hot-shot che per gli stagisti.)

Se il tuo ruolo è esplicitamente quello di supportare gli altri, puoi essere sicuro di essere utile semplicemente chiedendo. "Quale fastidioso compito posso togliere dal piatto?"

Un'altra cosa che scoprirai è che molte persone amano sentirsi apprezzate. Se guardi veramente verso i membri del tuo team, puoi farcela chiedendo molto e imparando molto da loro. Si sentiranno lusingati, ma sarà genuino. Ti aiuterà anche a imparare e diventare più utile.

Infine, conoscerne meno può essere utile in sé. Ad esempio, probabilmente sarai più bravo a scrivere documentazione per le API, perché farai le domande che gli estranei farebbero, ma che sembrano troppo ovvie agli altri.

E chi lo sa? Potresti scoprire che, essendo un servitore, diventi un leader.


7
+1 per "farai le domande che gli estranei farebbero" - questo è particolarmente difficile per gli esperti che lavorano sodo e che sono profondamente nei dettagli, che possono pensare di fare un passo indietro per vedere il quadro generale ma non sono vicini qualsiasi idea di come siano le cose per gli estranei (clienti!) nuove alla cosa.
DarenW,

17

Hai già molte buone risposte. Penso di poter contribuire condividendo la mia esperienza in una posizione simile.

Background: lavoro part-time in un dipartimento di ricerca e sviluppo di una società piuttosto grande da alcuni anni mentre la mia occupazione principale è studiare CS. Le persone con cui lavoro la maggior parte del tempo hanno dottorati o master in EE, CS, matematica e fisica. Ho iniziato come un noob completo ma ho imparato molto in questi pochi anni.

Cosa sarebbe fastidioso?

  1. Porre domande a cui potrei facilmente rispondere usando Google
  2. Interrompere gli altri troppo frequentemente ponendo una domanda. Se hai una domanda che non è un blocco, fai qualche altro lavoro fino a quando non puoi porre la domanda senza interrompere la persona che fai. Puoi raccogliere alcune domande e poi chiedere l'orario dell'altra persona o attendere fino a quando la persona ti chiede dei tuoi progressi o per un buon momento per parlare con lui, ad esempio quando è già stato interrotto da una telefonata, al fine di una pausa, .. Poi digli "Ho fatto questo e quello, ma attualmente sono bloccato qua e là".
  3. Se rimani bloccato (dopo aver esaurito Google e altre risorse), assicurati di chiedere aiuto. Niente di peggio che scoprire che qualcuno è rimasto bloccato per 2 giorni su qualcosa che avresti potuto risolvere per lui in 5 minuti (di Neil White, nei commenti)
  4. Non cercare di essere più intelligente di tutti gli altri.

A che cosa speri di uscirne da qui e ora?

  1. Fai cose che gli altri trovano facili / fastidiose in un modo che aiuta effettivamente la squadra. È davvero tutto.

Cosa sarebbe piacevolmente sorprendente se fosse successo?

  1. Che svolgi la maggior parte del tuo lavoro in modo soddisfacente e ti coinvolgi sempre più nel lavoro di squadra.

Alcuni altri suggerimenti:

  1. Sii umile.
  2. Mostra interesse per il lavoro degli altri.
  3. Se ti spiegano qualcosa, assicurati di aver capito. Se non lo fai, chiedi loro di spiegarlo in modo da ottenere almeno l'idea di base.
  4. Sii affidabile. Prova a fare il lavoro il meglio che puoi.

3
Oltre a "Cosa sarebbe fastidioso", ne suggerirei un altro: se rimani bloccato (dopo aver esaurito Google e altre risorse), assicurati di chiedere aiuto. Niente di peggio che scoprire che qualcuno è rimasto bloccato per 2 giorni su qualcosa che avresti potuto risolvere per lui in 5 minuti.
Neil White,

@Neil: hai assolutamente ragione! Ti dispiacerebbe se unissi il tuo commento alla mia risposta in modo che fosse più completo?
mort

1
+1 per I did this and that, but currently I'm stuck here and there. Il più importante è mostrare che hai provato a capire le risposte.
Zenon,

@mort Certo, vai avanti!
Neil White,

9

Un buon consiglio dagli altri finora. Per rispondere a domande specifiche:

  • Cosa sarebbe fastidioso?

Sarebbe fastidioso se facessi domande senza prima fare i compiti. Chiedere aiuto dopo aver fatto il possibile per risolvere prima il problema va bene. Ma se qualcuno è in grado di trovare la risposta tramite una semplice ricerca su Google o leggendo il manuale, è fastidioso.

  • A che cosa speri di uscirne da qui e ora?

Presumo che tu abbia già una sorta di progetto / incarico. Spero che tu sia in grado di finirlo con una supervisione minima.

  • Cosa sarebbe piacevolmente sorprendente se fosse successo?

Una piacevole sorpresa sarebbe se finissi presto il tuo lavoro. Quindi saresti in grado di lavorare su più progetti con complessità crescente che dimostrerebbero la tua affidabilità. Un'altra sorpresa sarebbe se si è in grado di anticipare le esigenze della squadra e lavorare per soddisfarle sul lato. Il tuo team ha bisogno di un ambiente di build automatizzato, un framework di test automatizzato, configurazioni specifiche di computer / rete per i test, ecc.? Queste possono essere cose periferiche


4

Risposta breve: scopri di cosa ha bisogno il team e forse cosa ti piace di più e lavora per fornirlo.

Risposta più lunga: nelle prime fasi di una start-up, la maggior parte delle volte, tutto il lavoro è "in palio"; qualsiasi compito debba essere svolto o compiti che le persone vogliono fare sono disponibili per tutti i partecipanti. Le tue preferenze possono letteralmente modellare la direzione in cui l'azienda va.

Interessato alle risorse umane? Assumi i compiti di assunzione. O forse fare il libro paga. Interessato alla programmazione? Scopri quale lingua vuole usare il team. Prova a scrivere alcuni test unitari per parte del codice. Odio scrivere rapporti? Allora no. Vedi se riesci a delegare quell'attività a qualcun altro e lavorare per una soluzione costruttiva. Prenditi un po 'di tempo e pensa a cosa potresti voler fare, quindi provalo.

Una cosa da tenere presente che quando si tratta di start-up molto piccole, c'è molto altro da fare oltre alla semplice programmazione. Se vuoi scrivere codice, fantastico! Se preferisci fare qualcos'altro, va bene anche questo! Impara velocemente, fai molte domande e mettiti alla prova.


1

Non sono sicuro di quanto possa essere utile la mia risposta, ma sono stato dove sei ora. Circondato da persone che sentivo / sapevo avevano molto più da offrire di quanto avrei mai potuto fare. Come agire in questa posizione? Divertiti piuttosto che soffrire. Invece di pensare a quanto non sai, pensa a cosa stai imparando e sperimentando insieme a queste persone. Usali come risorsa, sii rispettoso e cerca di raccogliere da loro qualsiasi informazione ed esperienza: diventa una spugna ...

Ora, questo non significa che devi smettere di provare a fare le cose, ma quando lo fai, cerca di farle guardare alle tue spalle e rivedere il tuo lavoro mentre procedi. Prova a completare un lavoro e poi ascolta quello che hanno da dire al riguardo: scrivi i commenti che ti danno e prova a implementarli per creare un codice migliore. Non abbiate paura di porre domande, siate rispettosi e provate a porre buone domande - provate ad assorbire i dati e considerate la vostra domanda immediata prima di porre - forse la risposta è già stata fornita ... Le persone migliori adorano insegnare, e io scommetto che sarebbero lieti di condividere con te la loro conoscenza e filosofia di vita.

Nella mia situazione ho provato a farlo, e ogni volta che ha funzionato per me, sono stato il più felice, non ho mai capito il motivo per cui mi hanno tenuto attivo, ma mi sono divertito moltissimo e mi piace pensare di essere diventato un programmatore migliore e persino un uomo come risultato di questa esperienza.

Tutto questo non vuol dire che dovresti sottovalutare te stesso - probabilmente sei molto meglio di quanto ti meriti, ma come hanno scritto le persone qui, titoli e gradi non sono sempre così impressionanti nelle situazioni della vita reale e l'umiltà fa molta strada. Quindi sii rispettoso di tutti, ascolta, assorbi - ma prendi le tue lezioni dall'esperienza - a volte stai meglio imparando cosa non fare.

In bocca al lupo.


1

C'è già molto presentato qui, quindi non ripeterò ciò che è stato detto.

A prima vista, mi sembra che tu abbia esperti e un leader con capacità / idee di gestione. Questo va bene, ma è incompleto .

Sei quello pragmatico: rendi le loro vite più facili.

Ci sono almeno due aree che puoi coprire:

  • approfondendo i dettagli tecnici della lingua scelta dalla startup
  • migliorare la qualità del codice e levigare gli angoli difficili della sua collaborazione

Tecnico

Quei ragazzi sono esperti nei loro campi, e questo è buono, ma ciò non significa che sappiano come uscire da un sacco di carta. Onestamente, ho visto persone molto brillanti scrivere codice orribile e non manutenibile.

Hai l'opportunità di diventare il capo tecnico qui. Impara la lingua dentro / fuori, fino a quando non conosci tutte le sue sottigliezze. Impara i modi di dire che usano la comunità. Cerca le utili librerie esistenti.


Qualità

Ci sono compiti ingrati ma utili:

  • chi gestisce il repository del codice sorgente?
  • chi scrive / mantiene i test?
  • chi controlla che la suite di test passi? e identifica i colpevoli? e pingare i trasgressori senza sosta?

Ci sono alcuni passaggi che aiutano, sia molto formali o meno:

  • come rivedi gli commit? (esiste una proprietà associata ad alcune aree del codice?)
  • come pianifichi il lavoro / le attività?

Ci sono molte attività periferiche in giro per avere idee e scrivere codice.

Hai l'opportunità di diventare il piombo di qualità qui. Scopri le migliori pratiche del settore (bit di "Agile", bit di mischia, bit di TDD, ...) e componi un processo adatto alla tua azienda. Impara i sistemi di compilazione (make, cmake, ninja, qualunque cosa) e scrivi gli script che rendono facile la costruzione / distribuzione. Controlla su Jenkins (o qualsiasi altra cosa) e crea un server di integrazione continua.


Sono impressionanti nei rispettivi domini e questo è fantastico. Dato che al momento non sei specializzato, direi che è tempo che tu identifichi i punti deboli (potresti chiedere anche le loro opinioni) e colmi un (i) gap (s)!

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.