Domanda:
Appena licenziato: come sapere se sono un bravo ingegnere del software?
TheComeBackKid
2018-05-23 07:13:21 UTC
view on stackexchange narkive permalink

Sono appena stato licenziato dal mio lavoro. Era il mio primo lavoro di ingegneria del software dopo il college e sono stato lì per poco più di un anno. Il motivo era che non pensano di potermi addestrare ad avere le competenze di cui hanno bisogno entro un lasso di tempo che avrebbe funzionato per l'azienda. Pensavo di essere abbastanza bravo e in rapido miglioramento, e l'anno scorso ho persino ricevuto 2 recensioni positive sulle prestazioni.

Ho avuto difficoltà a trovare quel lavoro. Non sono bravo a codificare i test. Li ho avuti da 9 società diverse e ne ho superati 3. Mi preparo regolarmente per loro utilizzando materiali.

Inoltre, ho avuto uno stage estivo nel 2016 che ho provato a convertire a un lavoro a tempo pieno, ma fondamentalmente hanno detto che mi avrebbero tenuto come stagista ma non erano disposti per impiegarmi a tempo pieno.

Accademicamente, sono stato grandioso. Ho terminato il mio Master in Informatica con un GPA 4.0 da uno dei 10 migliori programmi di comp sci e ho terminato la laurea con un minore in informatica con un GPA 3.70.

Mi piace essere un ingegnere del software, ma credo che non ci sia un buon modo per valutare le abilità. Come posso capire se sono davvero cattivo o se devo solo continuare a esercitarmi di più?

Esistono molti tipi diversi di ingegneri del software.Alcuni costruiscono siti Web, altri lavorano su sistemi incorporati.Potresti lavorare direttamente su un prodotto venduto o gestire sistemi di back-end che supportano il resto dell'azienda.Tutti richiedono le proprie abilità uniche e essere bravi in un tipo di lavoro non significa necessariamente che eccellerai negli altri.Le tue capacità e i tuoi talenti erano allineati al tipo di lavoro che stavi cercando di fare?
Per la maggior parte.La mia esperienza di codifica è stata in Java, ma l'azienda utilizza Python.Python non è difficile e mi sembra di averlo imparato molto velocemente.Suppongo che non sarebbero d'accordo però ...
Quanto era grande l'organizzazione?Le startup e le aziende più piccole tendono a richiedere al proprio personale una curva di apprendimento più rapida.
L'azienda contava poco meno di 100 persone.
Lavoravi con altri programmatori?A che livello ecc. Se un team che sa cosa stava facendo e ha esperienza nell'inserimento di juniores, è diverso dall'essere licenziato come unico sviluppatore in una start-up con aspettative del tutto irrealistiche.
Stavo lavorando con altri programmatori.La direzione ha formato con successo almeno tre ingegneri da junior a non junior, ma 2 di quelle persone che hanno formato con successo erano al loro secondo lavoro di ingegneria del software.Sono uscito direttamente dal college.
Avevano un piano di formazione in atto per te?Quanto bene pensi di averlo incontrato?Sembra solo che avrebbero dovuto sfruttare meglio il loro tempo in termini di formazione, visto che avevano un anno intero.
@user70848, non avevano un programma di formazione in atto.La loro "formazione" mi ha coinvolto solo nel fare domande quando le avevo.Pensavo che la mia formazione fosse andata bene e di aver imparato quello che dovevo sapere.Mi hanno comunicato solo una leggera insoddisfazione all'inizio di aprile e mi hanno licenziato questa settimana.
@TheComeBackKid stai andando bene!Smettila di essere così duro con te stesso.Sono felice per te.Ora puoi finalmente trovare un vero lavoro ed essere apprezzato.Fanculo a quegli idioti per averti licenziato.Non sanno cosa hanno perso.
Come ha detto cgTag ... - Domande: quali sono le qualifiche delle altre persone, colleghi, dirigenti, proprietari?Ho visto molti posti in cui saresti la persona più qualificata.Qual è il tasso di turnover?Se hai intenzione di accettare le promozioni di altri, esci ...
@Rob, c'erano molti altri ingegneri del software che riportavano a un paio di responsabili dello sviluppo software.Altri sviluppatori hanno avuto 1-3 anni di esperienza nell'ingegneria del software prima di entrare a far parte dell'azienda.La direzione aveva circa 5 o 6 anni di esperienza nello sviluppo con 4-6 anni di esperienza nella gestione.Il fatturato è piuttosto basso.Non ero in fila per "accettare" la promozione di nessuno.
@TheComeBackKid - Grazie per la tua risposta.Se hanno le giuste credenziali (non solo il compagno del capo), allora potresti trarre vantaggio da un "colloquio di uscita" per imparare esattamente perché ti "licenziano" per averti licenziato.Il licenziamento è solitamente riservato a qualcuno che lo merita attivamente.Essere "licenziati" quasi certamente influirà sui tuoi benefici e sul futuro impiego, mentre essere licenziato quasi mai lo fa.Sembra inspiegabile dopo le recenti buone recensioni.
@TheComeBackKid, tutti hanno una battuta d'arresto a volte e spesso il primo lavoro dopo il college non è la soluzione migliore.Se ti piace quello che hai fatto e comprendi il lavoro, considera la possibilità di essere stato lasciato andare per qualcosa di diverso da quello che pensi.Se è così, la "pratica" sarà di scarsa utilità.Trova un mentore che ti capisca e che possa aiutarti a ottenere una prospettiva migliore su quello che è successo.
Mi piace che ti sia iscritto con il nome @TheComeBackKid per porre questa domanda.
Cosa ti ha portato a fare così bene l'università?Qualunque sia la risposta, finanzia un lavoro come le cose migliori dell'università.
Considera l'idea di contribuire a qualche progetto * esistente * [software libero] (https://en.wikipedia.org/wiki/Free_software) (ad esempio su [github] (http://github.com/) ...) sul tuo ricambiotempo.Può essere divertente, migliorerà le tue capacità e avrà un bell'aspetto su un CV e imparerai molto.Leggi anche http://norvig.com/21-days.html
L'anno scorso hai ricevuto due revisioni delle prestazioni, presumo che quelle revisioni abbiano delineato ciò che dovevi migliorare, quindi hai affrontato questi problemi?Ovviamente sembra che l'azienda fosse nei guai, di solito non ti sbarazzi dei dipendenti, che hai fornito anche recensioni positive sulle prestazioni anche se avevano dei bordi irregolari.Sai chiaramente come svolgere il lavoro dato che hai un Master in CS e un minore in CS (sebbene non sia chiaro in cosa consistesse il tuo maggiore), il che potrebbe spiegare, il motivo per cui lotti così tanto sui "test di codifica"
Fai finte interviste tecniche con altri cacciatori di lavoro.Li intervisti.Ti intervistano.Questo ti dà una buona idea di quanto siano bravi anche gli altri.Usa https://www.pramp.com/ Forniscono la struttura per fare quelle finte interviste online.Ed è gratuito (non sono affiliato con quei ragazzi in alcun modo).
@Rob, Ho chiesto perché sono stato licenziato invece di essere licenziato, e hanno detto che essere licenziato significa che c'è la possibilità che io possa essere richiamato al lavoro.Hanno lasciato la loro spiegazione a questo.Il che immagino significhi che vogliono che passi alla storia come colpa mia per essere stato licenziato.
@Ramhound, le valutazioni delle prestazioni dello scorso anno sono state positive e non hanno fornito alcun feedback costruttivo reale."Stai andando alla grande, continua a fare quello che stai facendo ..." La compagnia non era nei guai - la loro scusa per il mio licenziamento era che stavano cercando di mantenere la compagnia snella.Inoltre, Ramhound, potresti per favore spiegare l'ultima frase che hai scritto?In che modo andare alla grande in un programma di Master in Informatica porta a faticare nei test di codifica?
@TheComeBackKid - In Nord America: accanto alla parola "Fired" ci sarà un motivo.Chiedere il licenziamento, richiedere l'indennità di disoccupazione al governo;stanno per trovare una risposta ...
Sembra che tu non sia stato licenziato, ma la compagnia non voleva pagarti uno stipendio.Non perché non fossi bravo, ma perché non avevano soldi per assumere più persone.
Idem per non prenderlo troppo duro.Vale anche la pena guardare indietro a quello che è successo e chiedersi se ci sono stati segnali sottili che potresti aver perso.Per esempio.il tuo manager o il tuo team hanno chiesto ripetutamente se ti stavi godendo il lavoro?Non hai avuto ripetutamente nuovi progressi da riferire alle riunioni sullo stato?Hanno chiesto più volte le stesse correzioni / modifiche?Senza dare per scontato che nessuna di queste cose sia accaduta, ma vale la pena riflettere sul fatto che ci siano stati segnali che ti sono sfuggiti.Perché quelle sarebbero opportunità per imparare per la prossima volta.È tutto.
Essendo stato in una situazione simile, quello a cui sono tornato è questo: la programmazione è ciò che ho fatto per divertimento negli ultimi 27 anni.Mi piace e mi viene naturale (con la pratica ovviamente!).Sono un programmatore.Questo si applica a te, o trovi che devi sforzarti di amare la programmazione e di farlo?Al contrario, devo sforzarmi di scrivere in modo creativo.Quando lo faccio, mi diverto, ma non farei mai scrittura creativa solo come hobby.Quindi non sono uno scrittore creativo.Spero che sia di aiuto.
[La sindrome dell'impostore] (https://en.wikipedia.org/wiki/Impostor_syndrome) è un argomento rilevante, dovresti leggerlo.
Dieci risposte:
DarkCygnus
2018-05-23 08:17:48 UTC
view on stackexchange narkive permalink

Come faccio a capire se sono davvero pessimo, o se devo solo continuare a esercitarmi di più?

Date le tue prestazioni positive durante il tuo precedente lavoro e i tuoi ottimi punteggi ottenuti durante tutta la tua carriera accademica, rischierei di dire che sei effettivamente un buon ingegnere.

Quindi la prima cosa che suggerisco è di rilassarti con te stesso . So che potresti sentirti così ora, poiché questo accade quando si perde un lavoro a cui hai riversato la tua energia e dedizione. Ma onestamente, non c'è nulla di positivo per te nel continuare a sentirti in questo modo dopo un'esperienza così negativa, in quanto non ti aiuterà ad andare avanti.

Detto questo, qualche consiglio Posso darti questo:

  • Non lasciarti deludere da una azienda che ti licenzia dopo un anno (che è un momento decente) perché "non possono insegnarti ad avere le competenze di cui hanno bisogno entro un lasso di tempo" . Molte aziende hanno aspettative / tempistiche davvero irrealistiche dai loro sviluppatori e purtroppo molte di loro ci vedono come scimmie del codice sacrificabili che possono semplicemente spremere fino a esaurimento (a volte non lo fanno perché sono "malvagi", proprio come funzionano la loro industria e il loro mercato).

    Tuttavia, molte altre società non sono così, quindi non è giusto che tu rifiuti le tue speranze a causa di questo incidente.

  • Tuttavia, un professionista non dovrebbe mai smettere di esercitarsi , anche se era il migliore in circolazione. I professionisti e gli ingegneri di maggior successo non smettono mai di imparare. Nelle parole di Michelangelo: Ancora imparo . Questo è il motivo per cui ti suggerisco di vedere tutto questo come l'ennesima opportunità che hai dovuto imparare e crescere ; mantieni le cose buone, ricorda le cose cattive (che sono quelle che ci insegnano) e vai avanti. Molti altri lavori e cose interessanti ti aspettano là fuori se dai loro la possibilità di venire.

Detto questo, penso che quello che resta da dire sia buona fortuna, aggiorna il tuo curriculum, inizia la ricerca di un lavoro e sii sicuro delle tue capacità. Il tuo "ritorno" ...;) ... ti aspetta.

Grazie.Sicuramente potrebbe essere il caso che le loro aspettative non fossero raggiungibili.Sto decisamente cercando di ottenere un altro lavoro di programmazione.Forse se il prossimo finisce allo stesso modo, lo rivaluterò.
Sì, rilassati e non lasciarti deludere da una sola azienda.
@TheComeBackKid inoltre, non accettare qualsiasi lavoro.Sceglieteli con cura in modo da non ritrovarvi più con un'esperienza agrodolce come questa.So che cercare lavoro è difficile, ma la perseveranza è la chiave qui.Sono contento di aver potuto aiutare.
È un buon consiglio.Come faccio a sapere che tipo di lavoro intraprendere?Ci sono alcune qualità in particolare che pensi dovrei cercare?
@TheComeBackKid Quella che temo è la parte che devi decidere da solo.Non posso dirti quale lavoro scegliere o quali qualità dovresti cercare, ma se ti fidi del tuo istinto e dei tuoi Principi lo saprai.
Frank FYC
2018-05-23 09:22:38 UTC
view on stackexchange narkive permalink

Sono appena stato licenziato dal lavoro. Era il mio primo lavoro di ingegneria del software dopo il college e sono stato lì per poco più di un anno. Il motivo era che non pensano di potermi addestrare ad avere le competenze di cui hanno bisogno entro un lasso di tempo che avrebbe funzionato per l'azienda. Pensavo di essere abbastanza bravo e di migliorare rapidamente, e l'anno scorso ho persino ricevuto 2 recensioni positive sulle prestazioni.

Non prenderla sul personale. Quello che hanno fatto è stata una decisione aziendale, il ROI previsto investito tempo, denaro e l'attenzione degli sviluppatori è stato ciò che < potevi ottenere. Se ti fissi sul fatto che sei stato eliminato, ti mangerà per i mesi a venire. La cosa migliore che puoi fare qui è prenderti un po 'di tempo per decomprimere e rivalutare il tuo attuale skillset, decidere una destinazione professionale e salpare. Non indugiare a fare il broncio.

Ho avuto difficoltà a trovare quel lavoro. Non sono bravo a codificare i test. Li ho avuti da 9 società diverse e ne ho superati 3. Mi preparo regolarmente usando i materiali.

Dopo la laurea, ho fatto domanda per oltre 600 posizioni, ho avuto solo una dozzina di colloqui e solo 1 offerta - che è stata interrotta lo scorso gennaio. L'unica opzione che ti porta al tuo prossimo lavoro è tornare di nuovo in sella.

Inoltre, ho avuto uno stage estivo nel 2016 che ho provato a convertire in un lavoro a tempo pieno, ma loro fondamentalmente hanno detto che mi avrebbero tenuto come stagista ma non erano disposti ad assumermi a tempo pieno.

Forse questa è un'opportunità per chiedere se stanno assumendo. Ora hai un anno di esperienza alle spalle e hai un set di abilità migliore di quello che eri al college. Forse questa sarebbe una buona opzione da chiedere dato che ti conoscevano da prima.

Accademicamente, sono stato fantastico. Ho terminato il mio Master in Informatica con un GPA 4.0 da uno dei 10 migliori programmi di comp sci e ho terminato la laurea con un minore in informatica con un GPA 3.70.

Ricordo che dopo il tuo primo lavoro, GPA non è un grosso problema. Ma potrei sbagliarmi; non dimenticare di includere queste informazioni nel tuo curriculum e di parlarne durante il colloquio.

Mi piace essere un ingegnere del software, ma credo che non ci sia un buon modo per valutare le abilità. Come posso capire se sono effettivamente cattivo o se devo solo continuare a esercitarmi di più?

Sono d'accordo, non esiste un modo affidabile per misurare le abilità, dato che il i problemi che affronti non sono mai la stessa cosa, determinare se sei "migliore" o "peggio" ti porterà in una tana di insicurezza e paralisi. Fino alla tua prossima posizione a tempo pieno, forse esamina i ruoli contrattuali? In questo modo, puoi esercitarti e essere pagato per progetti più piccoli.

Grazie per i dettagli.Sono contento che ci siano prove che non sono l'unico a candidarsi a centinaia di posizioni senza molta fortuna.Controllerò le cose da freelance.
Ci sono alcuni modi abbastanza affidabili per misurare le abilità.Ad esempio, è possibile confrontare il tempo impiegato dagli sviluppatori per risolvere un problema su (https://projecteuler.net) o (https://leetcode.com) o la loro capacità di risolvere il problema.
Risolvere un puzzle o un problema predeterminato è una misura, ma non comprende tutto ciò che fa parte degli strumenti quotidiani di uno sviluppatore.In altre parole, il lavoro è molto più che abilità di programmazione, anche le capacità interpersonali sono un must.Nessuno codifica da solo nell'era moderna, come evidente da stackoverflow e github.
kevin cline
2018-05-23 15:53:58 UTC
view on stackexchange narkive permalink

Un GPA elevato è bello, ma lo sviluppo del software è una professione di performance. Devi essere in grado di produrre codice funzionante a un prezzo ragionevole.

Quando dici "Non sono bravo a codificare i test" intendi che fai fatica a produrre codice funzionante durante un'intervista? Se è così, dovrai esercitarti per essere competitivo sul mercato del lavoro. Intervisto continuamente i candidati e nessuno viene assunto se non possono dimostrare di saper programmare durante il colloquio. Quindi, avvia un progetto di programmazione personale in un'area che ti interessa, oppure scegli un nuovo linguaggio e risolvi problemi come quelli del Progetto Eulero.

La maggior parte dei test di codifica che ho superato (2 su 3) sono stati durante un'intervista.Sono quelli che sono su hackerrank che tendo a fallire.Ad esempio, uno con cui ho lottato di recente si chiamava "Friend Circle" (https://leetcode.com/problems/friend-circles/description/).Ho avuto circa 2 ore per completarlo sul mio laptop.
@TheComeBackKid Ora sai su cosa lavorare: altri problemi dallo stesso sito web.Magari procurati una copia di "Introduzione agli algoritmi" di Cormen e lavoraci sopra.
Luis Dueñas
2018-05-23 08:36:07 UTC
view on stackexchange narkive permalink

Il fatto che tu sia stato licenziato non significa che sei un cattivo ingegnere. Significa che non eri adatto al ruolo in cui ti trovavi.

Se ritieni di poter migliorare, dovresti migliorare. Se ritieni di essere un buon ingegnere, dovresti iniziare a verificare la presenza di opzioni aggiuntive. Fortunatamente sei nella posizione di trovare un lavoro poiché i lavori da ingegnere sono molto richiesti, devi solo definire cosa stai cercando, imparare le tue opzioni, assicurarti che il lavoro corrisponda alle tue capacità (non solo quelle tecniche) e continuare a migliorare.

In bocca al lupo.

Non significa nemmeno inequivocabilmente che non fosse adatto.La maggior parte delle aziende che io abbia mai visto ha roba spuria e casuale sulle risorse umane nei libri, da qualche parte.Alcune aziende e capi sono più capricciosi di altri.Sembrano distribuiti in qualche modo casualmente, ma c'è una correlazione tra i due.
Enno Shioji
2018-10-24 01:26:00 UTC
view on stackexchange narkive permalink

Era il mio primo lavoro di ingegneria del software dopo il college e ci sono stato per poco più di un anno. Il motivo era che non pensano di potermi addestrare ad avere le competenze di cui hanno bisogno entro un lasso di tempo che avrebbe funzionato per l'azienda.

Molte aziende (di solito quelle medio-piccole) non assumono nuovi laureati solo perché non sono in grado di fornire il giusto ambiente / compiti giusti. In generale, l'azienda deve essere al di sopra di una certa dimensione e avere un certo livello di maturità per avere nuovi laureati. Quindi, soprattutto se l'azienda era su una parte più piccola e / o non avevano molti più nuovi laureati, il problema avrebbe potuto essere dalla parte dell'azienda piuttosto che dalla tua.

Ovviamente non so se è così, ma non dovresti dubitare della tua abilità sulla base di un esempio. Ho visto MOLTE persone eccellenti licenziate per un motivo o per l'altro. Molti licenziamenti non sono dovuti a problemi attitudinali.

bob
2020-06-23 23:27:43 UTC
view on stackexchange narkive permalink

Stai facendo la domanda sbagliata. Cosa vuoi essere?

Essendo stato in una situazione in qualche modo simile, quello a cui sono tornato è questo: la programmazione è ciò che ho fatto per divertimento negli ultimi 27 anni. Mi piace e mi viene naturale (con la pratica ovviamente!). sono un programmatore. Questo si applica a te, o trovi che devi sforzarti di amare la programmazione e di farlo regolarmente? Al contrario, devo sforzarmi di scrivere in modo creativo. Quando lo faccio, mi diverto e penso di avere un talento per questo, ma non farei mai solo scrittura creativa come hobby. Semplicemente non sono uno scrittore. Quindi penso che questa sia la domanda numero uno e dovrai guardare alla tua storia personale, non alle tue emozioni per rispondere a questa. Quello che fai dimostra ciò che ami molto meglio di quello che senti potresti mai.

Lavorerai di più su ciò che vuoi e graviterai verso il tuo abilità

La maggior parte delle persone non lavora così duramente a cose che non vuole in profondità. Non imparano così velocemente e non crescono così velocemente. E se qualcosa è particolarmente difficile per loro, spesso non ci lavorano tanto (con eccezioni ovviamente!). Al contrario, se ami veramente la programmazione (di nuovo basata sulla tua storia e non sulle tue emozioni in questo momento, che saranno comprensibilmente un po 'un disastro), ti impegnerai naturalmente e crescerai, e tanto più avere talento naturale come sviluppatore. Quindi, se programmi per divertimento da anni e non ti sei arreso, direi che hai il 100% delle basi necessarie per essere un buon programmatore. Dopodiché ci vuole solo pratica e imparare a inserirsi nella macchina aziendale, che è un insieme di competenze completamente diverso.

Dove andare da qui

Idem per non prenderlo troppo duro. Assicurati di non picchiarti per questo. Succede a molti di noi a un certo punto della nostra carriera e non è la fine del mondo. C'è un lavoro successivo dopo quello precedente. Detto questo, ogni brutta esperienza nella vita è un'opportunità da cui possiamo imparare. Quindi vale la pena guardare indietro a quello che è successo e chiedere cosa puoi imparare da esso. Chiediti se ci sono stati segnali sottili che potresti aver perso che non erano soddisfatti della tua performance. A volte i manager non sono bravi a comunicare, o comunicano il dispiacere in modo passivo-aggressivo in modi che è davvero facile perdere. Il tuo manager o il tuo team hanno chiesto ripetutamente se ti stavi godendo il lavoro? Non hai avuto ripetutamente nuovi progressi da segnalare alle riunioni sullo stato? Hanno chiesto più volte le stesse correzioni / modifiche? Non presumo che nessuna di queste cose sia accaduta, ma vale la pena riflettere sul fatto che potrebbero esserci stati segnali che ti sei perso. Perché quelle sarebbero opportunità per imparare per la prossima volta. Al contrario, ti sei perso qualche bandiera rossa che questo è un ambiente tossico o che hai avuto un cattivo manager? Ti sei perso qualche segnale di avvertimento che la compagnia era in difficoltà finanziarie o che stavano arrivando i licenziamenti? Lo sviluppo di una maggiore consapevolezza di sé e consapevolezza dell'ambiente che circonda la propria azienda è un prezioso spunto da un'esperienza dolorosa come questa. Ma alla fine della giornata, 1) cerca di capire cosa vuoi essere (dalla tua storia personale), 2) rispolverati e rimettiti in sella o vai avanti se la programmazione non lo è t per te, e 3) rifletti e impara tutto ciò che c'è da imparare da questa esperienza.

Robert Baron
2020-05-02 19:56:28 UTC
view on stackexchange narkive permalink

Ok, sei stato licenziato per motivi di prestazioni. Se risiedi negli Stati Uniti, hai presentato domanda di disoccupazione? Tieni presente che, a meno che tu non sia stato licenziato per giusta causa (ad esempio, un alterco fisico, molestie sessuali, ...) puoi comunque raccogliere la disoccupazione. La maggior parte delle aziende per cui ho lavorato mi ha licenziato per motivi di prestazioni, ovvero dopo un paio d'anni di buone revisioni delle prestazioni. Anche se la lettera che ti hanno dato dice licenziato, se raccogli la disoccupazione, è stato un licenziamento.

La prima volta è stata una sorpresa per me, e anche io l'ho presa duramente, Le volte successive, non un sorpresa. Spesso è stato un nuovo manager a fare le pulizie per installare i propri preferiti. Il mio punto è superare il licenziamento.

La tua risposta è molto tipica di persone molto competenti, questa è la sindrome dell'impostore.

Ora inizia a cercare un nuovo lavoro. Aspettatevi che impiegherete circa 4 mesi. Trascorri 5 ore al giorno svolgendo attività di ricerca di lavoro. Generalmente cerco di trovare 10 posti di lavoro ragionevoli per cui candidarmi e 5 che mi allungano al giorno. Ricorda, chiedono Dio, ma accetteranno Cristo.

Trova un progetto open source a cui unirti e su cui lavorare. Lavora su questo per 2-4 ore al giorno. Punti bonus se il progetto su cui stai lavorando è sponsorizzato da un'azienda per cui vuoi lavorare.

Ottimo, hai una laurea di primo livello, ma continua ad imparare e esercitarti di più. Questo potrebbe essere incentrato sul progetto open source o su un argomento che vuoi solo imparare. Potrebbe aiutarti a capire se vuoi farlo a lungo termine.

Seriamente, non prestare troppa attenzione alle metriche, ai numeri di Norris, alle righe di codice .... Lavora per essere un giocatore di squadra e motivati ​​a imparare ciò che devi imparare a fare.

Infine, trova un hobby per ricaricare la batteria per così dire. Tutto ciò che ti diverti a fare.

In bocca al lupo.

Ertai87
2018-10-23 22:37:02 UTC
view on stackexchange narkive permalink

1) Come sapere se sei un bravo ingegnere? Bene, quella parte è abbastanza facile. Non esiste davvero una cosa come un "cattivo ingegnere"; o sei un ingegnere o non lo sei. Una volta stabilito che sei un ingegnere, la differenza tra "buono" e "cattivo" è lo sviluppo delle abilità, e questa è un'abilità appresa (il che significa che se sei un "cattivo" ingegnere ora, puoi imparare ad essere un "bravo" "ingegnere con esperienza). Dato il contesto di questa domanda, presumo che tu sia un ingegnere, quindi il resto è solo pratica e apprendimento.

2) La scuola in realtà non prova nulla. Personalmente ho una laurea e un master in informatica presso una delle migliori scuole del mio paese. Ho un lavoro come ingegnere del software. Sai quante delle cose che ho imparato a scuola che uso regolarmente? Quasi zero. Quindi, ad essere onesti, la tua istruzione e il tuo GPA sono probabilmente più utili come misura astratta del tuo potenziale di apprendimento che come misura delle tue abilità concrete. Quindi, anche se non direi che avere un GPA elevato è correlato all'essere un ingegnere "buono", non è nemmeno correlato all'essere un ingegnere "cattivo". Ciò con cui è correlato è la tua capacità di cambiare da ingegnere "cattivo" a ingegnere "buono". Di conseguenza, non prenderei in considerazione il GPA per qualsiasi cosa correlata a questa domanda, penso che sia una falsa pista.

3) Per quanto riguarda le tue capacità di colloquio, la maggior parte di ciò viene fornito con la pratica. Presumibilmente hai frequentato un corso di Algorithms & Data Structures a scuola, e poiché hai un GPA elevato presumo che tu abbia fatto molto bene in questo. Per diventare "bravo" a rispondere ai problemi del colloquio, dovresti ricordare (o ri-studiare) il materiale di quella classe in particolare, perché la maggior parte delle domande che ti verranno poste avranno risposta da quel materiale. Dopodiché, è solo pratica. Fallirai le prime volte, ma poi ti abituerai a vedere quello che vogliono e inizierai a vedere gli stessi tipi di problemi più e più volte e migliorerai nel rispondere. È solo pratica. Detto questo, la pratica è rispondere alle domande in un ambiente tipo intervista; superare domande su qualcosa come HackerRank o qualsiasi altra cosa abbia un valore limitato; eserciterai determinate abilità / algoritmi, ma se non sono quelli che l'intervistatore chiede, allora non importa. La cosa migliore è imparare a trovare al volo buone risposte; nessun intervistatore vuole fare una domanda a cui conosci già la risposta, quello che vuole è vedere come trovi risposte al volo a domande che non sapevi prima del tempo.

@JoeStrazzere Voglio dire che un "cattivo ingegnere" è solo un buon ingegnere che non sa come fare le cose correttamente.Nessuno è intrinsecamente un "cattivo ingegnere" in senso astratto;qualcuno che potrebbe essere considerato un "cattivo ingegnere" può essere insegnato ad essere un "buon ingegnere" imparando buone pratiche / principi di ingegneria.
@JoeStrazzere Come ho detto nella mia risposta: penso (la mia opinione) che il GPA dell'OP sia un buon indicatore del fatto che l'OP è disposto e in grado di imparare a essere un buon ingegnere.
@JoeStrazzere Vuoi suggerire una modifica?;)
Simon B
2018-05-24 03:11:12 UTC
view on stackexchange narkive permalink

Il software non è qualcosa su cui ti eserciti, come le prove per un recital musicale. È qualcosa che devi solo prendere e fare. Hai un po 'di codice che deve essere scritto per soddisfare una particolare esigenza. Continui a collegarti finché non funziona. Alla fine, probabilmente hai imparato qualcosa. Quindi si passa al lavoro successivo nell'elenco.

Con il passare del tempo, si migliora. Fino a quando il sistema su cui sei abituato a lavorare non è obsoleto e sei alla ricerca di qualcosa di nuovo. Poi si torna a collegarsi finché non si riesce a farlo funzionare di nuovo.

Ci sono molti lavori nel software oltre ad essere una scimmia del codice. C'è il design grafico delle interfacce utente, c'è l'analisi dei requisiti, c'è l'ingegneria dei sistemi, c'è il test. Probabilmente ci sono altre cose che ho dimenticato.

Se pensi di poter fare di meglio in qualcuno di questi, guarda chi sta reclutando e prova qualcosa di diverso.

Non sono sicuro del motivo per cui pensi che la programmazione non sia qualcosa su cui praticare.Questo è ciò che significa "uscire e fare", e in termini di tempo richiesto, è molto simile alla pratica musicale, ma per un'attività diversa.Il laureato in CS che non ha mai fatto programmazione extracurricolare è generalmente molto meno esperto dei laureati che hanno trascorso il loro tempo libero lavorando su progetti software personali.
Vedi http://norvig.com/21-days.html per controargomentazioni all'affermazione "il software non è qualcosa su cui ti eserciti"
@BasileStarynkevitch Grazie per aver condiviso questo.Molto informativo.Mi è piaciuta particolarmente questa citazione: "il livello massimo di prestazioni per gli individui in un dato dominio non viene raggiunto automaticamente in funzione dell'esperienza estesa, ma il livello di prestazioni può essere aumentato anche da individui di grande esperienza come risultato di sforzi deliberati per migliorare. "
Sviluppare qualcosa, imbattersi in ostacoli e superarli, pensare problemi e trovare approcci diversi su come risolverli, discutere e condividere idee con gli altri, ecc. Sono tutte pratiche.Essere sviluppatore significa letteralmente esercitarsi costantemente.
CubicleSoft
2018-10-23 21:04:30 UTC
view on stackexchange narkive permalink

Concentrerò la mia risposta sull'ultima parte in quanto si riferisce a qualcosa a cui sto pensando da alcuni anni ormai:

Mi piace essere un ingegnere del software, ma mi sento come se non ci fosse un buon modo per valutare le abilità. Come posso capire se sono davvero cattivo o se ho solo bisogno di continuare a esercitarmi di più?

La scala dei numeri di Norris è una metrica in base a quale individuo e le organizzazioni possono misurare se stesse.

I numeri di Norris partono da 20 e aumentano per multipli di 10. Sono correlati a una maggiore comprensione del design e della struttura fondamentali di una data applicazione software.

Ai fini di questa risposta, il numero di Norris è una misura delle righe di codice dell'applicazione, meno le librerie, che un individuo può scrivere e mantenere da solo.

Tutti iniziano da 20 Norris. La maggior parte dei programmatori formali passa a 200 Norris abbastanza rapidamente. 200 I programmi Norris sono di solito script veloci e sporchi che fanno qualcosa di importante ma fanno solo quell'unica cosa. Tali programmi sono "messi insieme", il che significa che tendono a mancare di una corretta formattazione del codice e di controllo degli errori, specialmente dai programmatori più recenti. Molti programmatori passano a 2.000 Norris quando iniziano a costruire programmi / script più grandi.

Passare da 2.000 a 20.000 Norris al di fuori di un ambiente di squadra è molto più difficile. A quel punto devi creare un'applicazione seria. Molte porte si aprono a 20.000 Norris (ad es. Grandi progetti open source). Superare da 20.000 a 200.000 Norris a livello individuale è abbastanza difficile poiché non ci sono molte applicazioni software là fuori costruite da una persona con oltre 200.000 righe di codice applicazione . Questo è generalmente troppo per una persona da mantenere in modo sano e attivo.

Norris indica anche il livello di comfort. A che punto puoi scrivere una domanda "nel sonno"? Cioè, la quantità di sforzo mentale richiesta per passare dall'idea alla distribuzione. Quelli che si diplomano con una laurea in CS tendono ad essere 200 e meno comunemente 2.000 Norris. È molto raro trovare uno sviluppatore di 20.000 Norris appena uscito dal college. Tali sviluppatori di solito iniziano a scrivere software molto prima del college e considerano il diploma un pezzo di carta molto costoso.

Un numero Norris organizzativo è simile ma è il numero medio di righe di codice dell'applicazione per applicazione distribuito nell'intera organizzazione. La maggior parte delle organizzazioni sono 2.000 o 20.000 Norris. Le piccole imprese con un reparto IT che sviluppa minuscoli script per l'organizzazione di solito non sono più di 200 Norris. Un'organizzazione può anche avere una media di 2.000 Norris ma potrebbe avere una o due 20.000 applicazioni Norris in agguato all'interno che aumentano leggermente la media ma non abbastanza per arrivare a 20.000 Norris.

Se un'organizzazione è 2.000 Norris e l'individuo ne ha appena 200, l'individuo avrà difficoltà a tenere il passo (cioè sarà una sfida rimanere a galla). Se un'organizzazione è di 20.000 Norris o sta assumendo per una richiesta di 20.000 Norris e un individuo è 200 Norris, l'individuo probabilmente non verrà assunto senza mentire nel lavoro, ma l'individuo non sopravviverà comunque per più di poche settimane. Se un'organizzazione è di 200 Norris e l'individuo è di 2.000 Norris, l'individuo sarà probabilmente annoiato e avrà difficoltà a rimanere interessato ai progetti che verranno (cioè una mancanza di sfide). Inoltre, qualcuno a 20.000 Norris scoprirà regolarmente che comunicare con qualcuno a 20, 200 e anche 2.000 Norris è imbarazzante o difficile. La persona al livello di Numero Norris inferiore semplicemente non capirà lo scopo di certe decisioni e potrebbe provare a "refactoring del codice" o chiamare la persona a 20.000 Norris un "cattivo sviluppatore di software". Nella mia esperienza, l'unico sviluppatore di software "cattivo" è la persona che (involontariamente) scrive codice contenente vulnerabilità di sicurezza e poi partecipa alla negazione attiva quando le vulnerabilità vengono segnalate da colleghi.

Solo Norris Number può, fintanto che tutte le parti ne sono sincere, determinare se assumere o meno (o addirittura licenziare) un individuo. È anche possibile che un singolo sviluppatore diventi troppo grande per un'organizzazione o viceversa. Quando si fa affidamento su una metrica Norris onesta, il test di codifica durante l'intervista potrebbe essere saltato, che può davvero misurare solo fino a 200 Norris nel tempo assegnato per l'intervista media. Norris Number potrebbe essere un ottimo filtro per un motore di ricerca di lavoro per sviluppatori di software e sospetto fortemente che altri settori abbiano metriche simili che potrebbero sfruttare in modo simile.

Invece di mettere in pratica i problemi , che tendono a concentrarsi sulla progettazione algoritmica, concentrati invece sui progetti . Quali progetti ti interessano? Crea un elenco e inizia a costruire QUELLI progetti nel tuo tempo libero. Il punto centrale dello sviluppo del software è costruire ciò che è interessante per TE. Il software è una forma d'arte piena di eleganza e bellezza. Sì, puoi essere pagato anche per questo, ma se non stai già facendo ciò che ami al di fuori di un lavoro formale, allora dovresti iniziare a farlo. Altrimenti lavorerai per 40 anni eppure la tua vita sarà vuota e priva di risultati personali.

Sembri [terribilmente innamorato] (https://workplace.stackexchange.com/questions/120957/fired-for-third-time-from-a-software-development-job-what-to-do#comment381340_120957) con i NorrisNumero - qualcosa che nelle parole di John Cook (che ne ha scritto sul blog) è descritto come * "Questo vuole essere divertente, non scientifico." * SLOC ha un [numero significativo di inconvenienti] (https: //en.wikipedia.org / wiki / Source_lines_of_code # Svantaggi) che lo rendono una metrica scadente per la sola valutazione delle abilità di uno sviluppatore.Qualsiasi processo di assunzione (o licenziamento) che lo utilizzi "da solo" sarebbe disastroso secondo me.
Non sono d'accordo.A differenza di una rigorosa misurazione SLOC, Norris è una metrica scalabile.E nella mia esperienza, è stato vero a differenza di SLOC.Quando uno sviluppatore colpisce ogni muro di Norris, deve ripensare la sua strategia allo sviluppo del software se vuole andare avanti.Non esiste una correlazione diretta tra la misurazione SLOC e Norris.Dichiaro anche molto chiaramente che il codice dell'applicazione è l'unica parte di Norris.Le biblioteche sono * escluse *.Quando qualcuno scrive un'app da 500 righe che sfrutta milioni di righe di codice della libreria (anche se ha scritto le librerie), rimane comunque un'applicazione Norris da 200.
Ho anche detto che "se tutte le parti sono sincere al riguardo" Norris potrebbe essere utilizzato esclusivamente.Ognuno presenta sempre il proprio lato migliore in un'intervista (sia l'intervistatore che l'intervistato).Quindi la realtà apparirà ovviamente diversa.L'OP voleva sapere se era uno sviluppatore buono o cattivo.Ho fornito una risposta che fornisce loro uno strumento di calcolo che possono utilizzare per valutare se stessi (e qualsiasi organizzazione per cui potrebbero voler lavorare).Nessuna delle altre risposte qui ha nemmeno tentato di farlo.Sì, sono un po 'innamorato ma non merita davvero un voto negativo.
Non ho mai detto nulla sulla veridicità o meno, semmai l'ho valutato in base a ciò.Inoltre non ho mai detto nulla sulle biblioteche o meno - non sarebbero nemmeno state conteggiate sotto un KPI SLOC.E il contenuto di altre risposte è irrilevante per la mia valutazione della tua: ho votato in meno perché è una metrica schifosa (e doppiamente se usata isolatamente), tutti gli svantaggi di SLOC si applicano anche a Norris.


Questa domanda e risposta è stata tradotta automaticamente dalla lingua inglese. Il contenuto originale è disponibile su stackexchange, che ringraziamo per la licenza cc by-sa 4.0 con cui è distribuito.
Loading...