Tempo necessario per iniziare a scrivere codice in una nuova società [chiuso]


12

Sono un ingegnere del software da 4 anni e ho appena cambiato la mia azienda per la prima volta.

La società lavora con la programmazione in coppia, ed è da 3 giorni che non riesco nemmeno a scrivere una sola riga di codice. È così frustrante per me perché sono stato molto produttivo nella mia precedente azienda.

La base di codice è grande, stanno usando 5-6 lingue / strumenti che non conosco, come rspec, haml, jasmine e altri. Ma comunque, mi sento male.

Questo fine settimana ho creato UML per comprendere meglio l'applicazione, ma suppongo che non sarò in grado di scrivere una discreta quantità di codice questa settimana.

È normale?

Qual è la tua esperienza quando cambi lavoro e ti immergi in una grande base di codici scritta con lingue / librerie che non conosci.

Ovviamente non sto chiedendo il tempo esatto richiesto, ma le esperienze o le cose passate per rendere il processo sarebbe fantastico.

A proposito, ho già letto sotto domande e risposte, come ti immergi in basi di codice di grandi dimensioni?

/programming/215076/whats-the-best-way-to-become-familiar-with-a-large-codebase

/programming/214605/the-best-way-to-familiarize-yourself-with-an-inherited-codebase

AGGIORNARE

Tutti ottimi suggerimenti! Sono appena arrivato dal lavoro, ho lavorato molto!

Informazioni sulla programmazione delle coppie:

Generalmente scrivono codice e sto cercando di non perdere neanche un secondo! Se provo a scrivere il codice, so che ci vorrà un'eternità, perché non so nemmeno quali file dovrei modificare, ma a parte questo, come ho già detto, usano 6-7 lingue / framework che non sono familiarizzare e apprendere tutte queste sintassi insieme non è facile.

Come l'azienda si è preparata per gli ingegneri:

Non posso dire che siano ben organizzati, si aspettano che io inizi a scrivere immediatamente il codice.

Prendere appunti, essere proattivi:

Prendo sempre appunti quando scrivono un nuovo comando / o qualcosa sui modelli di dati. I miei colleghi sono persone molto intelligenti e gentili, e sto provando a fare molte domande, anche molte domande stupide a volte.

È comune ?:

@Telastyn, grazie per le tue risposte, mi ha fatto sentire un po 'meglio. Sembra che il mio problema non sia così insolito, ma ero molto produttivo prima di questo lavoro, e ora mi sento davvero inutile e non intelligente.

Spero di poter iniziare a risolvere bug / implementare problemi molto presto.

A proposito di framework / lingue che usano:

Ne ero davvero onesto, non ho detto di sapere qualcosa che in realtà non so. Ma non mi aspettavo cose così diverse e da quando ho iniziato a lavorare il giorno in cui ho accettato l'offerta, non ho avuto il tempo di prepararmi.

@Southpaw Hare, grazie mille per aver condiviso la tua esperienza. Hai assolutamente ragione. Non c'è garanzia che imparerò tutte queste cose, ma ci sto provando. Alla fine, è difficile imparare tutta la sintassi in una sola volta, e penso che anche questo sia il problema principale. Perché posso navigare nel codice ruby ​​bene poiché conosco quella lingua e navigo nei codici js grazie agli ispettori del browser, ma il problema è scrivere i codici effettivi con i framework / le lingue che non conosco.


Da quando dici Come ti immergi in grandi basi di codice? , cosa c'è nelle risposte lì che non copre il tuo caso?
moscerino

3
Dato che stai programmando una coppia, non devi scrivere codice per essere produttivo. Puoi essere molto utile solo osservando qualcun altro scrivere codice. Presto ne saprai abbastanza per iniziare a scrivere tu stesso il codice.
Kevin Cline,

@kevincline se si sta accoppiando come nuovo sviluppatore, dovrebbe sicuramente essere quello alla tastiera altrimenti sarebbe una configurazione di coppia piuttosto male ...
Jimmy Hoffa

Se è così che l'azienda fa le cose, non hai davvero scelta. Assicurati di sapere cosa si aspettano che tu sappia quando arriva il momento. Fare domande. Ottieni feedback. Puoi perdere molto tempo se non stai attento.
JeffO

@JimmyHoffa, so che sarebbe meglio per me, ma in tal caso, rallenterei molto il mio collega. Dal momento che dovrò chiedere ogni sintassi, il file effettivo che devo modificare, il modello di dati o qualcos'altro, rallenterà il mio peer.
Robert Johnson,

Risposte:


10

Ciò dipende da cose come la complessità del sistema e quanto bene l'organizzazione è preparata per integrare nuovi programmatori. Può richiedere da 30 minuti a più settimane. Non è necessariamente qualcosa che stai facendo di sbagliato e non dovresti sentirti male.

Quello che dovresti fare, tuttavia, è essere proattivo nel risolverlo per te stesso e gli altri. Informa il tuo manager delle tue frustrazioni e lavora insieme per superarle e migliorare il processo per altre nuove assunzioni.

Scrivi note sulle cose con cui stai lottando, fai brainstorming sui modi per risolverli o aggirarli e documenta il tuo processo. Mantieni le persone che possono aiutarti in modo aggiornato sui tuoi progressi e chiedi aiuto. Non c'è niente di vergognoso nel chiedere aiuto.


1
Più mesi non sono insoliti per complessi, grandi (1 milione + SLOC), in particolare il dominio è anche di nicchia e / o complesso.
mattnz,

1
+1: Alcune aziende hanno mentori assegnati a nuovi assunti, indipendentemente da quanta esperienza abbiano specificamente per questi motivi. Faccio sempre schifo nella persona seduta più vicina a me che è disposta ad aiutare e porre loro TONNELLATE di domande - e poi le applico apertamente al mio / loro manager quando mi aiutano.
Steven Evers,

@mattnz Yep. Più mesi sono solo molte più settimane però. ;)
Rein Henrichs,

5

È normale?

Per la maggior parte dei codebase lo è. Diavolo, nella mia compagnia incontri 2 ore prima che ti sia permesso di toccare un computer. Questo è un valore anomalo, ma considera quanto tempo impiega a configurare l'ambiente di sviluppo, a familiarizzare vagamente con il dominio, la struttura del codice, le norme del team ...

Come team leader, mi aspetto che tu non faccia effettivamente nulla per uno (due settimane) sprint e lavori al ~ 50% per i successivi 1-2 sprint.


2

passare all'estremo opposto. Ho lavorato in un'azienda che aveva solo 2-3 lingue, ma ci è voluta la parte migliore di un anno prima che i programmatori venissero rilasciati sulla base di codice, probabilmente 1 o 2 mesi prima di impegnare la loro prima riga di codice.

Non lasciarti sopraffare, se sei stato onesto nell'intervista sulla tua mancanza di conoscenza su queste piattaforme, sapevano in cosa si stavano cacciando. Ci vuole tempo e il tempo non può essere ampliato, ridotto o compresso, assicurati solo di sfruttarlo al meglio.


1

Dipende molto dal lavoro che stai svolgendo e dal ruolo in cui ti trovi.

Se stai svolgendo un lavoro basato sul contratto, dovresti letteralmente andare in pista, usando tutte le competenze a tua disposizione per portare a termine il lavoro. Il lavoro a contratto è generalmente ben definito e tu (di solito) sei in grado di farlo, almeno nella mia esperienza.

D'altra parte, ho iniziato in un posto che aveva un'enorme base di codice legacy con un'enorme curva di apprendimento. Non ci aspettavamo di scrivere il codice di produzione per i primi sei mesi in cui eravamo lì.

Sii paziente, assorbi il più possibile e mettilo a frutto quando inizi a scrivere codice. Se sei ricoverato o hai fretta, ci sono buone possibilità in un sistema così grande che potresti finire per rompere qualcosa, in particolare se la loro copertura del test non è brillante.


0

Un po 'di tempo è assolutamente normale per abituarsi a qualcosa di così completamente sconosciuto: non mi biasimerei né mi sentirei male. Tuttavia, è importante essere disposti ad accettare la possibilità che questo lavoro non rientri nelle tue competenze. Questo non è necessariamente il caso, vale solo la pena lasciare aperta la possibilità nella tua mente.

Il problema potrebbe non essere nelle dimensioni della base di codice, ma nel fatto che non conosci le lingue coinvolte. Nella mia esperienza personale, ho avuto un lavoro presso un'azienda in cui non conoscevo nessuna delle lingue utilizzate in una base di codice piuttosto estesa. Sfortunatamente, non sono mai stato in grado di impararlo sufficientemente dopo circa 5 mesi e invece sono andato in un'altra società. Lì, ero abile nella lingua principale e, nonostante le dimensioni della base di codice siano comparabili, ho fatto abbastanza bene.

Quando si tratta di apprendere nuove lingue, le persone di solito pensano che sia più facile di quanto non sia in realtà, e si attengono a standard elevati di apprendimento rapido. È probabile che ti impiegherà più tempo di quanto pensi, quindi tienilo a mente indipendentemente da ciò che decidi.


2
Alcune persone pensano che sia più difficile di quanto non sia in realtà. Abbastanza spesso si tratta di fiducia piuttosto che di talento.
ChaosPandion
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.