Come posso salvare il mio tirocinio? [chiuso]

65

Attualmente sto lavorando come stagista presso una società di sviluppo non di software di grandi dimensioni. La posizione per la quale ho fatto domanda non era specificamente una posizione di sviluppo, ma la squadra che mi ha assunto voleva un CS maggiore per aiutare a provare a sviluppare alcuni progetti interni per loro. Sono qui da quattro settimane e lo smarrimento iniziale sta iniziando a svanire. Tuttavia, sono l'unico CS senior dell'intero ufficio: nessuno nella mia squadra, nell'edificio o anche nelle località limitrofe ha una qualche esperienza nello sviluppo del software. Il meglio che ho è un gestore di database, e il loro dipartimento è troppo occupato per supportarmi con i miei progetti. I miei compagni di squadra mi stanno aiutando a capire come fanno il loro lavoro (che è importante per me fare il mio lavoro), ma non c'è nessuno che possa aiutare il mio lavoro il mio , cioè lo sviluppo.

I progetti che mi hanno dato hanno una portata più ampia di qualsiasi altra cosa che ho fatto a scuola. Questo, combinato con il fatto che sto lavorando da solo, cercando di sviluppare applicazioni da zero senza alcuna forma di guida o anche obiettivi chiaramente definiti, mi ha molto preoccupato per la mia capacità di avere successo. So a malapena dove dovrei iniziare, e ora ho probabilmente meno di due mesi.

Mi sento come se dovessi imparare il processo di sviluppo del software, ma al momento è come se mi sentissi a bocca aperta. Questo è particolarmente preoccupante per me dal momento che non sono molto sicuro delle mie capacità di sviluppo. Ho studiato e insegnato a me stesso, ma sto ottenendo solo frammenti. Hanno grandi aspettative da parte mia, ma non sono sicuro della mia capacità di consegnare. Ovviamente, ho bisogno di sedermi e parlare con i miei manager della posizione in cui mi trovo e intendo farlo al più presto possibile (sono spesso in viaggio e fuori dall'ufficio).

Come dovrei affrontare questo? Questo stage sarà finito prima che io lo sappia, e non voglio andarmene con niente da mostrare per il mio tempo qui. Non vogliono neanche questo, e sono sempre disponibili ad aiutarmi, ma senza la conoscenza della programmazione c'è solo così tanto che possono fare. Ho paura di dire loro che non sono capace di produrre quello che vogliono. Come dovrei metterlo in relazione con loro? Vedo gli stagisti di ingegneria ottenere aiuto da altri ingegneri, imparare come fare il loro lavoro, e mi sento come se fossi seduto qui, aspettando il mio tempo. Qualunque consiglio su come rettificare la mia situazione sarebbe molto apprezzato.

Aggiorna

Apprezzo tutto il feedback utile di tutti, mi ha aiutato a mettere a mio agio la mente. La prima cosa che ho fatto è stata incontrare i miei manager e supervisori. Abbiamo discusso di cosa ci si aspettava dal mio tempo qui. Capiscono che non ho molto tempo come stagista, e questo mi ha aiutato a mettere un campo di applicazione sul tipo di framework che vogliamo realizzare, il che permetterà ai futuri tirocinanti o dipendenti di costruire, spero, ciò che lascio. Ho anche affrontato le mie preoccupazioni riguardo alle mie capacità con il tempo assegnato, che hanno compreso e previsto.

Ho ricevuto una chiamata dall'amministratore del database in un'altra posizione - il mio manager ha parlato con il suo supervisore e sosterranno il mio progetto, che ora mi fornirà una risorsa da utilizzare per cui non sono seduto senza alcuna idea cosa sto facendo. Questa è solo una metà però. Tra tutti i possibili progetti, abbiamo ridotto il campo ai due più importanti su cui lavorare. Per quanto riguarda il mio altro progetto, come qualcuno ha detto che sono essenzialmente l'architetto del software principale che è una situazione unica per uno stagista. Se le cose andranno almeno in modo semiprofessionale, penso che avrò acquisito una buona dose di conoscenza ed esperienza che può aiutarmi con i futuri datori di lavoro. Per ora, penso di avere delle basi solide per iniziare la ricerca e lo sviluppo dei miei progetti. Grazie ancora per le risposte di tutti!

    
posta bhamlin 17.06.2013 - 15:43
fonte

8 risposte

124

Ho delle brutte notizie per te bhamlin:

Non sei uno stagista. Piuttosto, sei un impiegato non retribuito / a buon mercato.

Uno stage è una posizione non retribuita o poco retribuita in cui puoi esercitare le tue abilità acquisite in un ambiente sicuro, (solitamente) rilassato, e avere la possibilità di osservare "veri" professionisti nel tuo campo facendo un lavoro "reale", ricevendo feedback sui pezzi che consentono di modificare (di solito sotto supervisione e / o approvazione).

Ciò che la tua azienda voleva, non era in realtà uno stagista, ma piuttosto una fonte di sviluppo software gratuita / economica. Questo è abbastanza comune , secondo me. Vivo in una città universitaria, e al mio ultimo posto di lavoro, i dirigenti venivano spesso sentiti dire "Ehi, il reparto IT è troppo impegnato per fare Project X, vediamo se riusciamo a fare qualche tirocinio dall'università a scriverlo gratuitamente / a buon mercato! " Ci lamenteremmo, gemeremmo e digrignammo i denti fino al cielo, ma questa era la realtà del luogo, e potevo capire perché i gestori avrebbero suggerito una cosa del genere. Purtroppo, i risultati non sono stati eccezionali: il software fornito dagli stagisti non è mai coesivo / scalabile / pulito / ecc. (Ma ad essere onesti, non erano nemmeno le cose che il reparto IT ha messo fuori ...)

Dipende da te cosa fai. Il mio consiglio è quello di sviluppare quello che puoi (a volte la pressione è un grande motivatore), MA dovresti anche pianificare di intraprendere un 'vero' stage altrove quando questo è finito se possibile.

Quindi non incolpare te stesso, ma quello in cui sei entrato NON era un vero tirocinio.

    
risposta data 17.06.2013 - 15:53
fonte
28

In qualità di CS maggiore hai a disposizione capacità di problem solving. Non è chiaro quale tipo di progetti vogliono sviluppare. Se dovessi indovinare, probabilmente vorranno che tu aiuti ad automatizzare alcuni dei processi interni. Vorrei iniziare cercando di ottenere un grande diagramma di immagine dei processi attualmente disponibili e delle dipendenze tra i reparti per ciascuno di questi processi.

Successivamente, cercherò alcuni frutti a basso impatto che potrebbero essere automatizzati o almeno semplificati.

Modo infallibile per documentare qualsiasi processo

Fai queste domande nel seguente ordine:

  1. Qual è l'output? (Ottieni una risposta il più specifica possibile)
  2. Quali sono gli input?
  3. Ci sono abbastanza input per creare l'output?

Se la risposta al numero 3 è NO , vai a prendere i pezzi mancanti. Potrebbe trattarsi di formule o regole aziendali o altro.

Se l'output del primo passaggio è troppo complicato, scomporlo in blocchi gestibili e attaccare ogni blocco come processo separato.

Documenta ciò che hai scoperto. Identificare il potenziale singolo punto di errore. Identifica debolezze o scarsa dipendenza.

So che sembra travolgente ma hai le competenze. Basta trasformarlo in pezzi di dimensioni mordenti. Se puoi imparare come spiegare "roba geek" usando "non-geek speak" allora varrà il tuo peso in oro.

    
risposta data 17.06.2013 - 16:09
fonte
18

Ecco la mia opinione su tutta questa situazione: chiedono più di quanto tu possa ragionevolmente realizzare, non ti danno alcun feedback o guida e generalmente rendono il tuo lavoro non così piacevole. Ma c'è un lato positivo di questa nuvola Stai imparando qualcosa.

In particolare, stai imparando il tipo di ambiente in cui NON vuoi lavorare quando sei laureato. Stai anche imparando come gestire un progetto che è troppo grande per te da realizzare in modo fattibile. Entrambi questi sono importanti pezzi di conoscenza a cui aggrapparsi, poiché nessuno ti darà un lavoro che pensano sia inferiore alle tue capacità. Chiederanno sempre di più di quello che puoi dare, ed è il tuo lavoro lavorare con loro per gestire le aspettative e offrire qualcosa che vogliono.

Su ciò che puoi fare nel qui e ora. Vorrei iniziare mantenendo un diario di tutto ciò che fai ogni giorno. Questo ti dà responsabilità. Anche una semplice fine del giorno "questo è quello su cui ho lavorato oggi" ti darà qualcosa su cui ricorrere quando non ottengono ciò che vogliono e vengono a cercare risposte.

Vorrei anche parlare con il tuo superiore immediato e vedere se c'è un modo per abbattere uno di questi progetti più grandi . Se non ti senti a tuo agio nel fare tutto, forse ti faranno solo delle ricerche e dell'architettura per il progetto, e magari un altro tirocinante lo realizzerà in seguito. Basta essere chiari su ciò che pensi di poter compiere ragionevolmente nel tempo che ti è rimasto nello stage e realizzare il tuo obiettivo. In questo modo stai ancora consegnando qualcosa di rilevante al tuo datore di lavoro alla fine della giornata.

Infine, vedi se riesci a unirsi agli stagisti tecnici . Suppongo che questi stagisti stiano anche sviluppando software, e non vedo alcun motivo per cui quello che stai facendo e quello che stanno facendo sono così lontani che non puoi imparare gli uni dagli altri. Lavoro con ingegneri elettronici, ingegneri informatici, ingegneri informatici e informatici sui miei progetti, e ogni persona porta i propri punti di forza al team. Identifica dove si trovano i tuoi punti di forza nello sviluppo e cerca di spiegare perché queste abilità si prestino bene al team di ingegneri.

    
risposta data 17.06.2013 - 16:58
fonte
13

Parla con il tuo consulente di tirocinio

Tutte le risposte che ho visto finora sembrano concentrarsi sul datore di lavoro, che è importante.

Tuttavia, devi essere stato creato con questo stage attraverso un programma o un ufficio nella tua scuola. Non riesco a immaginare che saresti il primo studente che hanno avuto a che fare con questo tipo di situazione. Dovrebbero essere in grado di guidarti in una certa direzione.

Anche se non possono aiutarti ora (cosa che trovo difficile da credere), allora aiuterai il prossimo studente che si trova in questa situazione, che è qualcosa che non può essere sottovalutato.

    
risposta data 17.06.2013 - 21:48
fonte
10

Ho avuto due stage del genere, e li ho goduti immensamente. Ci sono lati luminosi significativi che sembra mancare:

  • In questo momento ti stai godendo il tipo di libertà creativa che i programmatori che lavorano su grandi team di programmatori possono solo sognare. Tutto, dalla scelta della lingua, al controllo del codice sorgente, agli editor, all'architettura del software, dipende interamente da te. Fidati di me, ti manca quando non c'è più.
  • Lavorare con persone che non sanno molto del software è una parte significativa del processo di sviluppo del software. Le condizioni scolastiche ti attendono incarichi ben definiti da persone con molta esperienza nell'insegnamento dello sviluppo del software. Anche in team di programmatori, i tuoi compiti non sono mai così chiari. Imparare ad affrontarlo ora ti darà un vantaggio.
  • Acquisire la conoscenza del dominio senza il beneficio dei mentori è una parte significativa del processo di sviluppo del software. Una volta ogni anno o due, ottengo un incarico come "Diventa nostro esperto in materia di tecnologia X". Qualcuno deve essere il primo in un'azienda a imparare una nuova tecnologia. Otterrai incarichi più interessanti se puoi dimostrare che quella persona può essere te.
  • Dal tuo punto di vista, sembra una grande pressione, ma dovresti sapere che le loro aspettative su di te sono davvero basse. Sanno che è più difficile per te senza un vero mentore. Fai del tuo meglio e starai bene.

Detto questo, affrontare il tuo primo grande progetto può essere travolgente. Quanto segue può aiutare:

  • Cerca di non pensare all'intero progetto contemporaneamente. Pensa a cosa devi fare adesso.
  • Ottieni un elenco di funzionalità che è necessario eseguire e chiedi loro di metterlo in ordine di priorità. In questo modo, se non completi l'intera app, le funzionalità più importanti saranno ancora lì.
  • Rompi la prima funzione in attività sempre più piccole, fino a raggiungere le attività che puoi completare in un giorno o due. Non aver paura di farli sembrare stupidamente semplici. Il mio primo compito su progetti nuovi di zecca è sempre quello di far funzionare il mondo Ciao e controllato nel controllo del codice sorgente. Soprattutto se si tratta di una nuova lingua, o di una che non uso da un po ', ciò mi dice che il mio ambiente di sviluppo e gli strumenti sono impostati correttamente.
  • Ottieni i tuoi progressi rivisti frequentemente. Non provare a scaricare un prodotto finito su di loro alla fine dell'estate. Mostra loro almeno una volta alla settimana ciò che hai finora.
  • Dedica qualche sforzo in anticipo per cercare di trovare progetti e componenti esistenti in grado di soddisfare le tue esigenze. È molto più semplice personalizzare un sistema esistente piuttosto che crearne uno da zero. Molte aziende hanno bisogno di tipi di app interne simili. Questo è uno che vorrei conoscere da solo. Uno dei miei progetti di stage ha sostanzialmente reinventato (male) un CRM .

Quindi rilassati, fai del tuo meglio e impara il più possibile, sia che si tratti di software o meno.

    
risposta data 18.06.2013 - 00:43
fonte
6

Le altre risposte qui sono molto buone, le leggo ripetutamente e cerco davvero di capirle. Se lo fai allora, con uno sforzo superiore alla media, sarai in grado di emergere "vivo" dall'altra parte del tuo stage. Data la tua situazione, sarà più dura di quanto ti aspettassi, ma può valerne la pena.

Questo è fondamentale perché, quando applicherai una posizione a un'altra azienda 1 , una delle domande chiave sarà:

I see here you did an internship at the company X. How was it ? Why did you leave ?

Se riesci a mostrare loro che hai gestito la tua situazione difficile in modo professionale, questo conterà MOLTO , i datori di lavoro di solito sono molto colpiti da qualcosa di simile.

Anche se fa schifo, puoi renderlo un'esperienza preziosa da cui hai l'opportunità di imparare ciò che i tuoi compagni di classe non avranno mai ...

1 = Spero che lo farai, perché restare lì sarà un suicidio di carriera (prima o poi ... probabilmente prima)

    
risposta data 17.06.2013 - 19:49
fonte
5

Ero in una posizione simile l'anno scorso, dove dovevo sviluppare tutto da zero e non avevo nessun altro con alcuna esperienza di sviluppo. Ho finito il progetto che mi hanno dato, ma non lo chiamerei un'applicazione lucida o anche mantenibile (poiché l'unica persona che sa come funziona sono io e nessuno in azienda ha guardato il codice.)

Ecco alcune cose che ho fatto e che farei se fossi in quella situazione. Alcuni di questi sono già stati citati nelle risposte precedenti

Scopri:

  • Che cosa vogliono che il prodotto faccia (input e output, minimo indispensabile )
  • Quali sono i tuoi limiti? (Quali programmi puoi / non puoi usare?)

Questo ti darà un'idea di come dovrebbe apparire il prodotto. Disegna questo su un foglio di carta e mostralo al tuo manager / supervisore. Guarda cosa dicono a riguardo. Se non gli piace, chiede loro cosa vogliono cambiare, cambiarlo e ripetere il processo. Se gli piace, fai la minima quantità di codice e crea una semplice demo.

Mostra la demo a loro (chiedi loro se questo è quello che hanno in mente), questo mostrerà loro i tuoi progressi e ti aiuterà a capire quello che vogliono.

Ogni volta che hai bisogno di aiuto per la codifica, leggi manuali / tutorial, ricerca su google e infine post su overflow dello stack per ottenere aiuto.

Non rimanere sbigottito da piccoli dettagli. Perderai molto tempo se lo fai.

Codice in piccoli blocchi , ogni blocco è una funzionalità importante per l'applicazione.

Commenta il tuo codice. Se stanno pensando di passare questo a un altro tirocinante o a un dipendente, sarà di grande aiuto per loro.

Continua a comunicare con il tuo manager / supervisore sul progetto e i tuoi progressi su di esso.

E non preoccuparti se non hai finito il progetto, sei uno stagista e hai fatto il meglio che puoi. Sono in colpa per l'assunzione di qualcuno che è sotto esperienza per un tale progetto.

TL; DR

  • comunica con il tuo manager in ogni passaggio

  • Codifica la funzionalità principale

  • Ricevi assistenza da Google e scambio di stack

  • Non preoccuparti se non riesci a terminare

risposta data 17.06.2013 - 21:46
fonte
1
  1. Chiedere chiarimenti sugli obiettivi dello stage - perché ti sono stati assegnati così tanti progetti?
  2. Chiarisci al management che entro il tempo stabilito, non puoi completare i progetti richiesti
  3. Prepara un'analisi su come utilizzare al meglio il tuo tempo. Ad esempio, suggerire di lavorare esclusivamente su un progetto e rilasciare gli altri.

Il tuo tempo sarebbe il miglior aiuto per la tua azienda se lavorassi esclusivamente a un piccolo progetto. Assicurati di tenerlo ben documentato. Concentrarsi sulla creazione di documentazione utile di architettura, obiettivi del progetto, avanzamento del progetto e codice sorgente.

    
risposta data 18.06.2013 - 00:55
fonte

Leggi altre domande sui tag