Come posso recuperare il mio tirocinio? [chiuso]


65

Attualmente sto lavorando come stagista presso una società di sviluppo non software molto grande. La posizione per la quale ho fatto domanda non era specificamente una posizione di sviluppo, ma il team che mi ha assunto voleva un maggiore CS per aiutare a provare a sviluppare alcuni progetti interni per loro. Sono qui da quattro settimane e lo stupore iniziale sta iniziando a svanire. Tuttavia, sono l'unico CS maggiore in tutto l'ufficio - nessuno nel mio team, nell'edificio o anche nelle località vicine ha alcun background nello sviluppo del software. Il migliore che ho è un gestore di database e il loro dipartimento è troppo impegnato per supportarmi con i miei progetti. I miei compagni di squadra mi stanno aiutando a imparare come svolgono il loro lavoro (il che è importante per me fare il mio lavoro), ma non c'è nessuno che mi aiuti a fare il mio lavoro, cioè lo sviluppo.

I progetti che mi hanno dato hanno una portata più ampia di qualsiasi cosa io abbia fatto a scuola. Ciò, combinato con il fatto che sto lavorando da solo, cercando di sviluppare applicazioni da zero senza alcuna forma di guida o obiettivi chiaramente definiti, mi preoccupa molto della mia capacità di avere successo. So a malapena dove dovrei iniziare, e ora probabilmente mi restano meno di due mesi.

Sento che dovrei imparare il processo di sviluppo del software, ma in questo momento è come se mi stessi sentendo nel buio. Questo è particolarmente preoccupante per me poiché non sono molto sicuro delle mie capacità di sviluppo in primo luogo. Ho cercato e insegnato a me stesso, ma sto solo ottenendo pezzi. Hanno grandi aspettative da parte mia, ma non sono sicuro della mia capacità di offrire. Ovviamente, devo sedermi e parlare con i miei dirigenti della posizione in cui mi trovo e intendo farlo il prima possibile (spesso viaggiano e escono dall'ufficio).

Come dovrei occuparmene? Questo stage finirà prima che io lo sappia e non voglio andarmene con niente da mostrare per il mio tempo qui. Non lo vogliono neanche loro, 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 in grado di produrre ciò che vogliono. Come dovrei collegarli a loro? Vedo che gli stagisti di ingegneria ottengono aiuto da altri ingegneri, imparano a fare il loro lavoro e mi sento come se fossi solo seduto qui a dedicare il mio tempo. Qualsiasi consiglio su come correggere la mia situazione sarebbe molto apprezzato.

Aggiornare

Apprezzo tutto il feedback utile di tutti, mi ha aiutato a calmarmi. La prima cosa che ho fatto è stato 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 ha contribuito a dare uno scopo al tipo di framework che vogliamo realizzare, che consentirà ai futuri stagisti o dipendenti di costruire su ciò che lascio. Ho anche affrontato le mie preoccupazioni riguardo alle mie capacità con il tempo assegnato, che hanno capito e atteso.

Ho ricevuto una chiamata dall'amministratore del database in un'altra posizione: il mio manager ha parlato con il suo supervisore e stanno per supportare il mio progetto, che ora mi darà una risorsa da usare, quindi non mi siedo in giro senza idea di cosa io ' sto facendo. Questa è solo la metà però. Tra tutti i possibili progetti, l'abbiamo ridotto ai due più importanti su cui lavorare. Per quanto riguarda il mio altro progetto, come qualcuno ha menzionato, sono essenzialmente l'architetto software principale che è una situazione unica per un tirocinante. Se le cose andranno almeno con successo, penso che avrò acquisito una buona conoscenza ed esperienza che mi possono aiutare con i futuri datori di lavoro. Per ora, penso di avere delle basi solide per iniziare a ricercare e sviluppare i miei progetti. Grazie ancora per le risposte di tutti!


80
La maggior parte dei posti si aspetta che i tirocinanti siano persone che non sanno cosa stanno facendo, ma che sono disposti a imparare e acquisire qualsiasi esperienza possano. Un tirocinio senza mentore suona come se volessero davvero uno sviluppatore economico o gratuito e non dovrebbero aspettarsi che tu produca un prodotto finito. Scopri tutto quello che puoi sull'intera esperienza e poi, quando il tuo stage è finito, vai avanti. Idealmente in un posto dove puoi internare con veri sviluppatori di software :)
Rachel,

9
Questo non sembra essere specifico per l'ingegneria del software, quindi potrebbe essere più adatto a Workplace.SE
Bart van Ingen Schenau,

53
"cercare di sviluppare applicazioni da zero senza alcuna guida o obiettivi chiaramente definiti" - formazione perfetta per lo sviluppo di software nel mondo reale!
Alan B,

7
Benvenuto nel lato "cose ​​che non impari nei libri" della tua formazione. Questo è solo uno dei tanti ambienti in cui potresti ritrovarti quando finisci la tua educazione. Mi sono trovato esattamente nella tua posizione, tranne per il fatto che ho finito la mia laurea ed era in MIS.
Chad Harrison,

3
@BartvanIngenSchenau C'è un angolo di sviluppo software nella domanda, l'OP è uno sviluppatore solitario in azienda. Ciò crea alcune sfide uniche e penso che alcune possano trarre vantaggio dalle soluzioni di sviluppo software. Forse la domanda è più adatta per il posto di lavoro, ma se non è al 100% fuori tema qui non penso che dovremmo migrare. Se la community decide che la domanda è fuori tema qui (chiudendola come tale), la migrerò volentieri.
yannis,

Risposte:


124

Ho delle brutte notizie per te bhamlin:

Non sei un tirocinante. Piuttosto, sei un dipendente non retribuito / economico.

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

Ciò che la tua azienda voleva non era in realtà un tirocinante, ma piuttosto una fonte gratuita / economica di sviluppo software. Questo è abbastanza comune , secondo me. Vivo in una città universitaria e nel mio ultimo posto di lavoro, i dirigenti sono stati spesso ascoltati dicendo "Ehi, il reparto IT è troppo impegnato per fare il Progetto X, vediamo se possiamo ottenere alcuni tirocinanti dall'Università per scrivere per libero / a buon mercato!" Vorremmo lamentarci, gemere e digrignare i denti verso il 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 stato coeso / scalabile / pulito / ecc

Dipende da te cosa fai. Il mio consiglio è quello di sviluppare tutto ciò che puoi (a volte la pressione è un grande motivatore), ma dovresti anche pianificare di intraprendere uno stage "reale" altrove quando questo è finito, se possibile.

Quindi non dare la colpa a te stesso, ma quello che hai intrapreso NON è stato un vero stage.


18
@Ampt Secondo me, gli stage più retribuiti dicono sostanzialmente "Ti pagheremo per imparare con noi e alla fine di questo periodo se tutto va bene vorremmo assumerti" . Offre alle parti un periodo di tempo più lungo per valutarsi a vicenda e, se tutto va bene, possono anche assumere un dipendente istruito sul loro sistema e che sanno che è adatto alla società. Se ottengono alcuni nuovi software a buon mercato nel processo, questo è un ulteriore vantaggio, ma non un'aspettativa.
Rachel,

7
I tirocini di solito non sono retribuiti? Questa è una novità per me ...
M. Dudley,

3
Questo è un buon punto @Ampt. Ho modificato la mia risposta per dire "non pagato / economico" ora. Nel complesso, penso che la risposta sia ancora valida; questo posto non voleva davvero un tirocinante, semplicemente non volevano pagare il prezzo intero per i servizi IT.
Graham,

7
@bhamlin la maggior parte delle persone senza un background software non ha letteralmente idea di quanto tempo o sforzo i progetti software impiegheranno per svilupparsi. Nessun indizio. Purtroppo è così.
Enderland,

10
Se uno stage non è retribuito (o al di sotto di un certo stipendio, forse minimo se la memoria serve), deve dimostrare un beneficio apprezzabile allo stagista, altrimenti l'azienda viola le leggi sul lavoro. Questa è una distinzione molto importante, se questo ragazzo non viene pagato potrebbe fare causa alla stupida compagnia. (O almeno così dicono le leggi degli Stati Uniti, non posso parlare con altri paesi)
Jimmy Hoffa,

28

Come CS maggiore hai capacità di problem solving a tua disposizione. Non è chiaro quale tipo di progetti vogliano sviluppare. Se dovessi indovinare, probabilmente vogliono che tu aiuti ad automatizzare alcuni dei processi interni. Comincerei cercando di ottenere un diagramma generale di quali processi sono attualmente in atto e le dipendenze tra i dipartimenti per ciascuno di questi processi.

Quindi, cerco un po 'di frutta bassa che potrebbe essere automatizzata o almeno semplificata.

Modo semplice di documentare qualsiasi processo

Poni 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, suddividilo in blocchi gestibili e attacca ogni blocco come un processo separato.

Documenta ciò che hai scoperto. Identificare potenziali singoli punti di errore. Identificare debolezze o dipendenze scarse.

So che sembra travolgente, ma hai l'abilità impostata. Basta trasformarlo in bocconcini. Se riesci a imparare a spiegare "roba da geek" usando "non-geek speak", valerai il tuo peso in oro.


1
I membri del mio team mi hanno mostrato i processi, quindi ho un'idea degli input e degli output e di ciò che vogliono. Ho un'idea di come voglio risolvere i problemi, è solo scomporlo e metterlo insieme, questo mi dà problemi (specialmente usando tecnologie che non sono così abili, come i database). Fortunatamente posso spiegare "geek" a "non geek" abbastanza bene. Immagino che a questo punto dovrei iniziare a portare i miei problemi di codifica nello stack di overflow per vedere se le mie soluzioni sono fattibili. Grazie per il tuo contributo.
bhamlin,

Per quanto riguarda il database, consiglio un libro chiamato Database Design For Mere Mortals di Michael Hernandez. Questo libro è eccezionale.
Michael Riley - AKA Gunny,

1
+1 per il "Modo insensato di documentare qualsiasi processo". Vorrei averlo pubblicato in modo prominente nel mio cubo quando sono stato assunto per la prima volta per un lavoro di analisi del sistema.
dodgethesteamroller,

1
@bhamlin: ti suggerisco di fare del tuo meglio per ridurre le aspettative su ciò che stai per offrire. Inoltre, suddividilo in problemi estremamente piccoli, qualcosa che pensi di poter fare in un giorno (in modo che sia fatto per una settimana;) e preferibilmente, cose utili come sono , non solo moduli, che non funzioneranno senza il nucleo. In questo modo, se fallisci, il tuo lavoro sarà comunque utile. Inoltre, IMO, questa esperienza sarà probabilmente molto utile e stimolante (anche se non finanziariamente), ma alla fine creerà un ricordo deprimente.
K.Steff,

18

Ecco la mia opinione su tutta questa situazione: stanno chiedendo più di quello che puoi ragionevolmente realizzare, non dandoti alcun feedback o guida e in generale rendendo il tuo lavoro non così piacevole. Ma c'è un lato positivo in questa nuvola. Stai imparando qualcosa.

In particolare, stai imparando il tipo di ambiente in cui NON vuoi lavorare quando ti laurei. Stai anche imparando a gestire un progetto che è troppo grande per essere realizzabile. Entrambi questi sono importanti pezzi di conoscenza a cui aggrapparsi, poiché nessuno ti darà un lavoro che pensano sia al di sotto delle tue capacità. Chiederanno sempre più di quello che puoi dare ed è il tuo lavoro lavorare con loro per gestire le aspettative e consegnare qualcosa che vogliono.

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

Vorrei anche parlare con il vostro superiore immediato e vedere se esiste un modo per abbattere uno di questi progetti più grandi . Se non ti senti a tuo agio nel fare tutto, forse ti faranno solo fare ricerche e l'architettura per il progetto, e forse un altro stagista lo implementerà in seguito. Basta essere chiari su ciò che pensi di poter ragionevolmente realizzare nel tempo che hai lasciato nel tirocinio e realizzare questo obiettivo. In questo modo stai ancora offrendo qualcosa di rilevante per il tuo datore di lavoro alla fine della giornata.

Infine, vedi se riesci a unirti agli stagisti di ingegneria . Presumo che anche questi stagisti stiano sviluppando software e non vedo alcun motivo per cui ciò che stai facendo e quello che stanno facendo siano così separati che non puoi imparare l'uno dall'altro. Lavoro con ingegneri elettrici, ingegneri informatici, ingegneri informatici e scienziati informatici sui miei progetti e ogni persona porta i propri punti di forza nel team. Identifica dove si trovano i tuoi punti di forza nello sviluppo e prova a spiegare perché tali abilità si presterebbero bene al team di ingegneri.


6
I miei genitori mi hanno detto che avrei dovuto accettare un'offerta se ne avessi ricevuto una alla fine dell'estate, ma ho provato a spiegare loro che questo lavoro potrebbe non aiutarmi ad avanzare nella mia carriera di sviluppatore di software. Non vogliono ascoltarmi e pensare che qualsiasi lavoro che ottengo sia una benedizione, ma sento di avere il diritto di rifiutare, specialmente se questo non è un buon ambiente di lavoro per me. Mi piace l'idea di tenere un diario però, porto un quaderno ogni giorno, quindi inizierò a documentare ciò che sto facendo, quindi non sembra che non stia facendo nulla. Apprezzo il vostro aiuto.
bhamlin,

1
Nessun problema bhamlin. Quando ho iniziato questo stage mi sentivo come se fossi nella stessa posizione. Il mio manager adotta un approccio molto diretto al team di ingegneri, permettendoci di strutturare la nostra giornata a nostro piacimento (seguiamo anche il modello di sviluppo agile che supporta questo) e proveniente da classi in cui avevo requisiti quasi quotidiani per i progetti, era molto diverso . Ho scoperto che tenere un registro mi rendeva responsabile, oltre a fornire la documentazione che almeno stavo facendo QUALCOSA. Mi aiuta anche a mantenere lo slancio giorno per giorno e settimana per settimana.
Appunto

7
@MLowry Penso che sia un cattivo consiglio. Stare sul posto di lavoro che odi ti logorerà, fisicamente e soprattutto psicologicamente. Entrerai in depressione, odierai ogni momento e rimpiangerai quella decisione ogni giorno. Perché attraversarlo? Avrebbe senso farlo per 6 mesi se il lato finanziario fosse straordinario. Ma probabilmente non lo è, dato che è all'inizio assoluto della sua carriera.
Radu Murzea,

2
+1 per "Stai imparando qualcosa". Questo ambiente di lavoro purtroppo non è un'anomalia. Molte aziende che non sono specificamente nel settore IT hanno difficoltà a capire cosa fare con le risorse IT, quindi le lezioni che imparerai qui (requisiti vaghi, scadenze scadenti) saranno utili in seguito quando cercherai di individuare gli ambienti problematici.
Graham,

2
+1 per "tenere un diario". Prendi questa abitudine per il resto della tua carriera! Quando un progetto sta andando bene, nessuno fa domande. Quando va male, vogliono svelare ogni cosa maledetta che fai / hai fatto. Un diario copre molto bene la tua pelle. (meglio di un rapporto sullo stato).
TimG

13

Parla con il tuo consulente di tirocinio

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

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

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


+1 perché questa dovrebbe essere la prima cosa che uno stagista dovrebbe fare una volta che incontrano difficoltà apparentemente insormontabili.
Verybadalloc,

10

Ho fatto due stage del genere e mi sono divertito immensamente. Vi sono significativi lati positivi che sembrano 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 software, dipende completamente da te. Fidati di me, ti manca quando non c'è più.
  • Lavorare con persone che non conoscono molto il software è una parte significativa del processo di sviluppo del software. La scuola ti impone di aspettarti compiti ben definiti da persone con molta esperienza nell'insegnamento dello sviluppo di software. Anche in team di programmatori, i tuoi compiti non sono mai così chiari. Imparare a gestirlo ora ti darà un vantaggio.
  • L'acquisizione della conoscenza del dominio senza il beneficio dei tutor è una parte significativa del processo di sviluppo del software. Ogni anno o due ricevo un incarico del tipo: "Diventa il nostro esperto in materia di tecnologia X". Qualcuno deve essere il primo in un'azienda a imparare una nuova tecnologia. Riceverai incarichi più interessanti se puoi mostrare che quella persona puoi essere tu.
  • Dal tuo punto di vista, sembra molta pressione, ma dovresti sapere che le loro aspettative su di te sono davvero piuttosto basse. Sanno che è più difficile per te senza un mentore adeguato. 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 in una volta. Pensa a cosa devi fare adesso.
  • Ottieni un elenco di funzioni che devono essere eseguite e inducile a metterle in ordine di priorità. In questo modo se non finisci l'intera app, le funzionalità più importanti saranno ancora lì.
  • Suddividere la prima funzione in attività sempre più piccole, fino a quando non si arriva alle attività che è possibile completare in un giorno o due. Non aver paura di farli sembrare stupidamente semplici. Il mio primo compito in progetti nuovi di zecca è sempre quello di far funzionare il mondo e controllare il controllo del codice sorgente. Soprattutto se si tratta di una nuova lingua, o che non ho usato da un po 'di tempo, mi dice che il mio ambiente di costruzione e gli strumenti sono impostati correttamente.
  • Fai rivedere frequentemente i tuoi progressi. Non cercare di scaricare un prodotto finito su di loro alla fine dell'estate. Mostra loro almeno una volta alla settimana quello che hai finora.
  • Spendi qualche sforzo in anticipo per cercare di trovare progetti e componenti esistenti in grado di soddisfare le tue esigenze. È molto più facile personalizzare un sistema esistente che farlo da zero. Molte aziende hanno bisogno di simili tipi di app interne. Questo è quello che vorrei conoscere da me stesso. Uno dei miei progetti di tirocinio ha sostanzialmente reinventato (male) un CRM .

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


6

Le altre risposte qui sono molto buone, leggile più volte e provano davvero a capirle. Se lo fai allora, con uno sforzo superiore alla media, sarai in grado di emergere "vivo" dall'altra parte del tuo tirocinio. Data la tua situazione, sarà più dura del previsto, ma può valerne la pena.

Questo è fondamentale perché, quando farai domanda per una posizione in un'altra azienda 1 , una delle domande chiave sarà:

Vedo qui che hai fatto uno stage presso la compagnia X. Com'è stato? Perché hai lasciato ?

Se poi riesci a dimostrare loro che hai gestito la tua situazione difficile in modo professionale, ciò conta MOLTO , i datori di lavoro sono di solito molto colpiti da qualcosa del genere.

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

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


2
Questa è una domanda facile a cui rispondere. "Mi è piaciuto lavorare in X e ho imparato molto durante il mio tirocinio. Tuttavia, non sono una società di sviluppo software. Quindi non credo che aumenterei le mie capacità ingegneristiche rimanendo lì. Preferirei lavorare con altri sviluppatori di software e hanno progetti più collaborativi ".
selbie

5

Mi trovavo in una posizione simile l'anno scorso, dove dovevo sviluppare tutto da zero e non avevo nessun altro con alcuna esperienza di sviluppo. Ho terminato il progetto che mi hanno dato, ma non lo definirei un'applicazione raffinata o nemmeno mantenibile (dal momento che l'unica persona che sa come funziona sono io e nessuno in azienda ha guardato il codice.)

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

Risolvere:

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

Questo ti darà un'immagine nella tua testa su come dovrebbe apparire il prodotto. Disegnalo su un pezzo di carta e mostralo al tuo manager / supervisore. Guarda cosa dicono al riguardo. Se non gli piace, chiedi loro cosa vogliono cambiare, cambiarlo e ripetere il processo. Se gli piace, esegui la minima quantità di codice e crea una semplice demo.

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

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

Non rimanere bloccato su piccoli dettagli. In questo modo perderai molto tempo.

Codice in piccoli blocchi , ogni pezzo è una delle funzionalità principali per l'applicazione.

Commenta il tuo codice. Se stanno pianificando di trasmetterlo a un altro stagista 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 riesci a finire 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 ad ogni passo

  • Codificare le principali funzionalità

  • Ricevi assistenza da Google e scambia stack

  • Non preoccuparti se non riesci a finire


1
  1. Chiedere chiarimenti sugli obiettivi del tirocinio: perché sono stati assegnati così tanti progetti?
  2. Chiarire al management che, entro il tempo assegnato, non è possibile completare i progetti richiesti
  3. Prepara un'analisi su come utilizzare al meglio il tuo tempo. Ad esempio, suggerisci di lavorare esclusivamente su un progetto e di lasciar cadere gli altri.

Il tuo tempo sarebbe di grande aiuto alla tua azienda se lavorassi esclusivamente su un piccolo progetto. Assicurati di tenerlo ben documentato. Concentrati sulla creazione di documentazione utile su architettura, obiettivi del progetto, avanzamento del progetto e codice sorgente.

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.