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

61

Lavoro in un nuovo arrivato di cinque persone. Abbiamo un dottorato 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 una società multimiliardaria prima di partire per avviare una startup (di successo), e ora ha lasciato questo per iniziare. Potremmo anche avere un ragazzo con un dottorato in matematica.

Aaaaaaaa e poi ci sono io, stagista di abbandono del college. Penso di essere abbastanza intelligente e sto leggendo senza sosta, ma il delta di esperienza, abilità e conoscenza tra me e i miei colleghi è davvero mozzafiato.

Quindi mettiti nei loro panni: hai un giovane stagista brillante che ha molto da imparare ma è almeno energico. Cosa sarebbe noioso? Che uso speri di liberarti di lui nel qui e ora? Cosa sarebbe piacevolmente sorprendente se accadesse?

    
posta invaliduser 13.05.2012 - 22:04
fonte

7 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 veramente creato qualcosa di praticamente utile. Ricordalo sempre, non sentirti inferiore.

Cosa mi aspetto da te? Scrivere un buon codice e fare le cose. Le probabilità sono che tu sia qualcuno che sta davvero lavorando, come ti descrivi come energico. Ho visto un sacco di persone con lauree che hanno preso come sempre per realizzare compiti semplici perché si stavano concentrando troppo sui dettagli ecc. Mettili al loro giusto uso e fornisci un buon codice in un tempo ragionevole e presto tutti ti rispetteranno.

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

    
risposta data 13.05.2012 - 22:11
fonte
41

L'umiltà fa molta strada

Con la tua umile attitudine, dubito seriamente che sarai noioso. L'umiltà ha una lunga strada. (Questo è vero per i colpi di caldo tanto quanto per i tirocinanti.)

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

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

Infine, conoscere meno di loro può essere utile di per sé. Ad esempio, probabilmente sarai più bravo a scrivere documentazione per le API, perché farai le domande che gli estranei porteranno, ma che sembrano troppo ovvi per gli altri.

E chi lo sa? Potresti scoprire che, essendo di mentalità servile, diventi un leader.

    
risposta data 14.05.2012 - 03:33
fonte
17

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

Sfondo: Sto lavorando part-time in un dipartimento di ricerca e sviluppo di una grande azienda da alcuni anni, mentre la mia occupazione principale è lo studio di CS. Le persone con cui lavoro la maggior parte del tempo hanno dottorato di ricerca o master in EE, CS, matematica e fisica. Ho iniziato come noob completo, ma ho imparato molto in quei pochi anni.

Cosa sarebbe noioso?

  1. Fare domande alle quali potrei rispondere facilmente utilizzando Google
  2. Interrompere gli altri troppo frequentemente ponendo una domanda. Se hai una domanda che non è un blocco, fai qualche altro lavoro finché non puoi fare la tua domanda senza interrompere la persona che chiedi. Puoi raccogliere alcune domande e poi chiedere il tempo dell'altra persona o aspettare fino a quando la persona ti chiede dei tuoi progressi o per un buon momento per parlare con lui, ad es. quando è stato già interrotto da una telefonata, al termine 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 loro in 5 minuti (di Neil White, nei commenti)
  4. Non cercare di essere più intelligente di chiunque altro.

Quale uso speri di poter uscire da lui nel qui e ora?

  1. Fai cose che gli altri trovano facili / fastidiose in un modo che aiuti effettivamente la squadra. Questo è tutto.

Che cosa sarebbe piacevolmente sorprendente se accadesse?

  1. Che tu faccia la maggior parte del tuo lavoro in modo soddisfacente e che tu sia sempre più coinvolto nel lavoro del team.

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 avere almeno l'idea di base.
  4. Sii affidabile. Cerca di fare il lavoro nel miglior modo possibile.
risposta data 14.05.2012 - 09:41
fonte
9

Un buon consiglio da altri fino ad ora. Per rispondere alle tue domande specifiche:

  • Cosa sarebbe noioso?

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

  • Che uso speri di liberarti di lui nel qui e ora?

Suppongo che tu abbia già una sorta di progetto / incarico. Spero che tu possa finire con una minima supervisione.

  • Che cosa sarebbe piacevolmente sorprendente se accadesse?

Una piacevole sorpresa sarebbe se finissi presto il tuo lavoro. Allora sarai in grado di lavorare su più progetti con una complessità crescente che dimostrerebbe la tua affidabilità. Un'altra sorpresa sarebbe se sei in grado di anticipare i bisogni della squadra e lavorare per soddisfarli sul lato. Il tuo team ha bisogno di un ambiente di compilazione automatizzato, un framework di test automatizzato, configurazioni specifiche di computer / rete per i test, ecc.? Queste potrebbero essere cose periferiche

    
risposta data 14.05.2012 - 08:51
fonte
4

Risposta breve: scopri di cosa ha bisogno la squadra, e forse ciò che 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"; qualunque 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 che l'azienda fa.

Interessati alle risorse umane? Assumi i compiti di assunzione. O forse fare il libro paga. Interessato alla programmazione? Scopri quale lingua il team vuole utilizzare. Prova a scrivere alcuni test unitari per parte del codice. Odio scrivere relazioni? Quindi non farlo. Verifica se è possibile delegare tale compito a qualcun altro e lavorare verso una soluzione costruttiva. Prenditi un po 'di tempo e pensa a cosa potresti voler fare, quindi provalo.

Una cosa da tenere a mente che quando si tratta di start-up molto piccoli, c'è molto altro da fare oltre alla semplice programmazione. Se vuoi programmare, bene! Se preferisci fare qualcos'altro, va bene anche questo! Impara velocemente, fai molte domande e sfida te stesso.

    
risposta data 13.05.2012 - 22:49
fonte
1

Non sono sicuro di quanto sarebbe stata utile la mia risposta, ma lo sono stato quando lo sei. Circondato da persone che sentivo / sapevo aveva molto di più da dare che non avrei mai avuto. Come agire in questa posizione? Goditelo piuttosto che soffrire. Invece di pensare a quanto non sai, pensa a cosa stai imparando e sperimenta insieme a queste persone. Usali come risorsa, sii rispettoso e cerca di raccogliere loro ogni 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 da dietro le spalle e rivedere il tuo lavoro mentre procedi. Prova a completare un lavoro e poi ascolta ciò che hanno da dire al riguardo - annota i commenti che ti danno e prova a implementarli per creare codice migliore. Non aver paura di fare domande, sii rispettoso e cerca di porre delle buone domande - prova ad assorbire i dati e considera la tua domanda immediata prima di chiedere - forse la risposta è già stata fornita ... Le persone migliori amano 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 perché mi hanno trattenuto, ma ho avuto il tempo migliore, e mi piace pensare di essere diventato un programmatore migliore e anche l'uomo come risultato di questa esperienza.

Tutto questo non vuol dire che dovresti sottovalutare te stesso - probabilmente sei molto meglio di quanto tu non ti dia credito, ma come scrivono le persone qui, titoli e titoli non sono sempre così impressionanti nelle situazioni della vita reale e l'umiltà va avanti a lungo modo. Quindi sii rispettoso di tutti, ascolta, assorbi - ma prendi le tue lezioni dall'esperienza - a volte stai meglio imparando cosa non fare.

Buona fortuna.

    
risposta data 14.05.2012 - 16:59
fonte
1

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

A prima vista mi sembra di avere esperti e un leader con capacità / idee di gestione. Questo è buono, ma è incompleto .

Tu sei il pragmatico: rendi la vita più facile.

Ci sono almeno due aree che puoi coprire:

  • approfondendo i dettagli tecnici del linguaggio scelto dall'avvio
  • migliorare la qualità del codice e rendere più agevoli gli angoli di lavoro con esso

tecnico

Quei ragazzi sono esperti nei loro campi, e questo è positivo, ma ciò non significa che essi sappiano come fare il codice per uscire da un sacchetto di carta. Onestamente, ho visto persone molto brillanti scrivere codice orribile e non gestibile.

Hai l'opportunità di diventare il responsabile tecnico qui. Impara la lingua dentro / fuori, finché non conosci tutte le sue sottigliezze. Impara gli idiomi che la comunità usa. Cerca le librerie utili che esistono là fuori.

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 colpevoli? e ping inesorabilmente i trasgressori?

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

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

Ci sono molte attività periferiche attorno all'idea di avere idee e scrivere codice.

Hai l'opportunità di diventare il lead di qualità qui. Scopri le best practice del settore (bit di "Agile", bit of scrum, 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 facilitano la creazione / distribuzione. Controlla Jenkins (o qualsiasi altra cosa) e crea un server di integrazione continuo.

Sono impressionanti nei loro rispettivi domini e questo è grandioso. Dato che al momento non sei specializzato, direi che è il momento per te di identificare i punti deboli (puoi chiedere anche le loro opinioni) e riempire una (la) buca (e)!

    
risposta data 15.05.2012 - 08:43
fonte

Leggi altre domande sui tag