it-swarm.it

4-5 anni è la "crisi della mezza età" per una carriera di programmazione?

Sto programmando C # in modo professionale da un po 'di 4 anni ormai. Negli ultimi 4 anni ho lavorato per alcune piccole/medie aziende che vanno da "agenzie web/pubblicità", negozi di software specifici per piccoli settori a una piccola startup. Ho principalmente realizzato "app aziendali" che prevedono l'uso di linguaggi di programmazione di alto livello (immondizia raccolta) e la mia esperienza complessiva è stata che tutti i lavori che ho fatto avrebbero potuto essere più professionali. Molte cose sono state fatte in modo errato (in una corsa) principalmente a causa del fattore costo che la gente voleva sempre qualcosa "adesso" e con la minima quantità di denaro spendibile. Ho continuato a pensare, forse, se potessi lavorare per aziende più grandi o per un'azienda più adatta ai programmatori, o da qualche parte che ha i soldi e il tempo per costruire davvero qualcosa a più lungo termine e più sostenibile che potrei aver apprezzato di più nella mia carriera. Non ho mai avuto un "mentore" che mi ha guidato nella mia carriera di 4 anni. Sono praticamente programmatore di blog/google/autodidatta diverso dalla mia laurea in informatica.

Ho anche osservato un altro problema che la maggior parte dei cosiddetti programmatori "senior" nel "mio ambiente di lavoro" in realtà non sono saggi da esperti senior. Sono "senior" solo perché sono programmatori da molto tempo, ma il codice che scrivono o le decisioni che prendono sono assolutamente spazzatura! Non vogliono imparare, non vogliono essere migliori, vogliono solo essere pagati e fare ciò che hanno detto di fare, che ha senso e la maggior parte di noi è così. Forse è per questo che sono dove sono adesso. Ma non voglio diventare come loro, voglio essere migliore. Mi sono imbattuto in uno stato mentale che non intendo più fare da programmatore per la mia futura carriera. Ho iniziato a pensare che forse ci sono cose migliori là fuori su cui lavorare. Più blog leggo, più "best practice" ho provato, più sento che mi sto allontanando dalla "mia realtà". Ma non sono un grande programmatore, altrimenti non penso di essere dove sono ora. Penso che 4-5 anni siano un palcoscenico che può essere un passo avanti nella carriera o un passo fuori da dove ti trovi.

Volevo solo sapere cosa hanno da dire gli altri su ciò che ho menzionato sopra e se hai vissuto una situazione simile nella tua passata carriera di programmazione e su come l'hai affrontata. Grazie.

330
Jeff

Apri una domanda molto interessante. Sono pienamente d'accordo con te. Ho fatto osservazioni simili.

Ho programmato professionalmente già da diversi anni e quello che ho osservato è che la quantità di buoni programmatori là fuori, di grandi sviluppatori che amano il loro lavoro e possono farlo con qualità e passione è praticamente vicina allo zero. Probabilmente ho incontrato solo una persona che potrebbe insegnarmi qualcosa. La maggior parte di ciò che so di aver imparato da solo, leggendo libri e forum, chiedendo nei forum e cercando su Google pensieri di rivelazione.

Dopo un po 'non me ne pento così tanto.

Le opzioni per apprendere in un ambiente di lavoro possono spesso essere limitate. Non inizi le cose. Non li finisci. Non progettate, non migliorate, non riflettete, non pensate all'architettura, semplicemente codificate e hackerate le cose insieme. È così che funziona la maggior parte dei negozi. Non solo non impari nulla, è più probabile che imparerai cose sbagliate come NON sviluppare software. Ho visto continuamente cose spaventose intorno a me, tutti quegli anti-pattern di cui hai sentito parlare. Quel che è peggio, sono costretto a farli da solo.

Non so come sia successo, ma sono riuscito a costruire in qualche modo una barriera di input. Rimango aperto, ascolto e se vedo qualche potenziale di auto-miglioramento, cerco e forse adotto qualche tecnica o idea. Ma nessun BS può mai passare. Ho lavorato a progetti mal gestiti per molto tempo, ma non ho adottato nessuna di quelle cattive tecniche per me stesso.

Presto ho capito che se desideri soddisfazione per la programmazione, dimentica il lavoro e hai il tuo progetto personale. È lì che puoi applicare tutto il tuo amore, passione e conoscenza per fare le cose nel modo giusto con un livello di alta qualità. Imparerai molte cose, una miriade di cose a cui non saresti mai stato esposto e sfidato quando hackeravi il noioso personale aziendale. Faccio solo il mio lavoro per la busta paga e mi accontento dei miei progetti personali.

Una cosa che davvero non capisco è come questa situazione sia possibile al giorno d'oggi. Lo sviluppo del software è maturato molto. Ha avuto un'esperienza positiva e negativa. Molti progetti di successo e molti falliti. Esiste esperienza con progetti a lungo termine e comprensione degli effetti a lungo termine che l'una o l'altra organizzazione produrranno sul progetto. Ci sono numerosi studi disponibili e buoni libri scritti. "Pragmatic Programmer", "Code Complete", "Mythical Man-Month", "Design of daily things" e altri. Perché nessuno tranne noi, i programmatori li hanno mai letti? Come è possibile che, anche dopo 20 anni di lavoro nell'IT, la maggior parte degli sviluppatori e dei manager non abbia mai trovato il tempo di leggere l'uno o l'altro libro di metodologia. Sono scritti per, ma difficilmente letti da, coloro che hanno più bisogno di questo farmaco.

Per quanto riguarda le prospettive di carriera. Ciò che ho anche notato in generale sul mercato del lavoro per i dipendenti, è che i datori di lavoro là fuori perdono sempre più interesse per il lavoro di qualità (immagina di averlo fatto una volta), acquistano sempre di più per il lavoro più economico disponibile. Trovi difficile vendere la tua conoscenza, esperienza e comprensione dell'universo a chiunque. Non è richiesto. Ciò che è richiesto è che i tuoi progetti vengano rovinati dai giovani che non hanno esperienza e voglia di fare un lavoro professionale. Le persone a buon mercato vengono usate e maltrattate e poi buttate fuori in modo che inizi il prossimo round. I progetti vengono anche esternalizzati a destinazione a basso salario dove vengono svolti da persone che apparentemente iniziano a imparare la programmazione proprio con il tuo progetto. Questa è una cosa che davvero non capisco.

Sto intrattenendo sempre di più l'idea che abbandonerò il lavoro di programmazione impiegato in futuro. Mi piacerebbe molto lavorare nella mia start-up con il mio progetto. In caso contrario, sto pensando di provare a fare il freelance o probabilmente di cambiare la natura del lavoro retribuito. Dopo tutto, quasi non imparo nulla durante l'orario di lavoro e non ottengo alcuna soddisfazione. Posso fare qualsiasi cosa 9-5 e avere sempre soddisfazione per i miei progetti personali. Imparo molto dalle comunità online. Qui ricevo attenzione, supporto per le mie idee e, a volte, anche il riconoscimento che non avrei mai potuto ottenere con il mio lavoro e i miei colleghi di lavoro. Vedrò dove sarò in futuro.

195
user8685

C'è stato un post di Jeff Atwood su Coding Horror che diceva che questo doveva essere divertente. E parte della descrizione del lavoro di essere uno sviluppatore di software sta godendo il tuo lavoro. Altrimenti diventerà una professione davvero noiosa e ingombrante per te.

Il fatto che cerchi continuamente modi per migliorare il tuo lavoro e continui a essere informato sulle novità e sulle migliori pratiche dimostra che ti piace il tuo lavoro nella natura. Quindi il mio consiglio per te sarebbe di iniziare a cercare un nuovo lavoro.

Tuttavia, non penso che lavorare per una grande azienda migliorerà necessariamente le condizioni di lavoro. Penso che gli ambienti migliori per gli sviluppatori di software siano le piccole e medie imprese, dove le persone apprezzano ciò che stanno facendo. La cosa migliore da fare sarebbe cercare e controllare qualsiasi azienda prima di prendere una decisione. Cerca di assicurarti che ne valga la pena.

70

Prima cosa: un grande avvertimento: se stai sviluppando da 10 anni (come ho fatto io) non c'è nient'altro che puoi fare di meglio che sviluppare. Quindi, se vuoi fare qualcos'altro, qualcosa di nuovo, fallo in fretta, altrimenti potrebbe essere troppo tardi e non sarai bravo a fare qualcos'altro.

Giusto per condividere il mio punto di vista: sono una persona autonoma, autodidatta. Ho imparato da solo puro C, C #, sviluppo di Amiga C, Windows, COM, Delphi, PHP, Cinema4D e ora Blender e Python. Ho quasi sempre lavorato da solo . Ecco il problema più grande che ho riscontrato finora: le piccole aziende cercano di sopravvivere e tu sei uno di quelli che lo tengono in vita: è molto stressante ma anche gratificante: lavori di più, impari più velocemente e molte cose rapidamente, rendi i prodotti più veloci (anche se spesso non riesci a svolgere correttamente il tuo lavoro). Comunque: troppo stress. Al contrario, le grandi aziende sopravviveranno sempre, ma il problema riguarda le persone: troppe persone. È una giungla, ma molto peggio: nulla è chiaro: se le persone con cui lavori si sentono come se fossero migliori di loro, faranno del loro meglio non per aiutarti a salire ma solo per spararti perché temono per la propria carriera. Funziona così in Francia (non lo so per altri paesi).

Per farla breve: prova a trovare un'azienda di medie dimensioni in cui ti senti come il tuo posto . Non importa da quanto tempo stai programmando, non importa da quanto tempo lavori, il giorno in cui sali in macchina per andare al lavoro e pensi che "Sono felice di andare al mio lavoro" sarà il giorno in cui hai trovato il tuo posto .

Non è una questione di 4-5 anni o altro.

NB: c'è una grande differenza tra "Sono felice di andare al mio lavoro" e "Sono felice di andare al mio lavoro perché lo farò e quello"/o/"Sono felice di andare al mio lavoro perché imparerò questo e quello ". Se pensi "perché farò questo e quello" questo significa "questo e quello" finirà un giorno e potresti non essere felice dopo. Questa è la mia esperienza di programmazione di 12 anni. E sono un anziano, sono ben pagato, ma mi rendo conto che 20-25 anni la gente pensa più velocemente di me. Semplicemente non hanno la mia esperienza, quindi ho appena ammesso che posso aiutarli a fare le cose, lo fanno più velocemente, ma li aiuto a realizzarle correttamente (che non è quasi mai il caso quando inizi a sviluppare).

Ci scusiamo per il mio inglese che non è perfetto, non esitare a correggere il mio post per renderlo inglese corretto.

50
Olivier Pons

Sono stato uno sviluppatore di software per ventuno anni - tra le altre cose, ciò significa che sto facendo questo da abbastanza tempo da bere! ;-) Ma seriamente, però, non riesco a immaginare di fare nient'altro o con gioia come la programmazione. Apparentemente sono uno di quei rari uccelli che davvero amore questo lavoro.

Recentemente stavo rinfrescando il mio curriculum e ho notato che ho avuto molti, molti lavori negli ultimi due decenni, principalmente contratti. Ma quello che mi sono reso conto guardando quella lunga lista è che i lavori che amavo di più (e quelli che sono rimasti più a lungo) erano presso società di software, vale a dire società il cui modello di business prevedeva la vendita di software ai clienti. Le seguenti teorie non sono probabilmente universalmente applicabili, ma vanno lontano per spiegare la mia esperienza.

A mio avviso, la differenza tra un negozio di software e il tuo tipico negozio IT è sorprendentemente evidente. È semplicemente una questione di ciò che capiscono i dirigenti. Se la società ottiene la maggior parte delle sue entrate dal software, allora i migliori ottoni saranno davvero entusiasti del software e di come è fatto. Ma se le entrate provengono dalla vendita di widget, in genere non hanno la minima idea di ciò che serve per mantenere in esecuzione la propria infrastruttura IT, per non parlare dei processi alla base dello sviluppo del software. Peggio ancora, anche se delegano l'attività allo staff IT, cercano di mappare i processi IT su ciò che sanno, con risultati che generalmente vanno dal deludente al disastroso.

Uno dei motivi è che esiste una vasta gamma di talenti là fuori, dal solo competente al virtuoso del software. Ciò è completamente in contrasto con la mentalità tagliabiscotti, taglia unica, che funziona così bene per posizioni non qualificate e semi-qualificate. L'aspettativa che uno sviluppatore possa essere sostituito con un altro con un "skillset" simile può sembrare ridicola per noi, ma spesso sembra perfettamente ragionevole per una struttura di gestione focalizzata su numeri grezzi. Se questo sembra incredibile, guarda quanti negozi stanno ancora cercando di far funzionare il modello Waterfall.

Non hai necessariamente bisogno di tutti i virtuosi della tua squadra, ma ne hai bisogno almeno uno o due. E parte del loro ruolo deve essere quello di fare da mentore alle persone più giovani in modo che possano crescere nel ruolo (o lavarsi - succede). Altrimenti, prevarrà il codice junior da mediocre a mediocre, con il suo conseguente cattivo funzionamento e gonfiamento. Una volta che il cancro inizia, il codice diventa rapidamente non sostenibile, la produttività in tutto il team diminuisce drasticamente e le persone iniziano a esaurirsi.

Questo crea turnover, fino a quando finalmente qualcuno dice: "Non possiamo più far andare avanti questa cosa! Scartiamola e ricominciamo!" L'investimento nella base di codice legacy esce dalla finestra e il processo ricomincia da capo. "Ma questa volta sarà diverso", ti prometti. E per un po 'lo è. Quindi qualcuno porta via la tua rockstar e rimani con i giovani non indirizzati che distruggono di nuovo la tua nuova brillante base di codice.

Schiuma. Rant. Pentirsi.

Ma sto divagando ... Quindi, per rispondere alla tua domanda originale: No, mezzo decennio non è la mezza età di una carriera di software. È più un'età della ragione, forse - il posto nella tua carriera in cui le scale cadono dai tuoi occhi e inizi a vedere l'attività per quello che è. Le realizzazioni arrivano in un ordine diverso per tutti e questo colora le conclusioni che potresti trarre lungo la strada. Ma resta lì - se esci dall'altra parte sano di mente, avrai una prospettiva molto più sana e alla fine scoprirai che questo pazzo business ci sta rendendo più gratificante che mai.

36
Eric Lloyd

Penso che tu abbia bisogno di altri cinque anni di esperienza. Quindi sarai in grado di accettare i compromessi ed essere felice di risolvere ciò che puoi.

Almeno questa è stata la mia esperienza. A circa 5 anni (circa il tempo necessario per diventare un esperto) penso di averlo "capito". Mi sono reso conto che il mio codice era una schifezza. Ho capito che i miei splendidi hack che facevano funzionare le app erano proprio questo, hack. Sono arrivato a capire che stavo creando un codice sub-par solo per rendere felici i miei capi e far funzionare gli stipendi.

Allo stesso tempo mi sono reso conto che i desideri dei capi non sarebbero cambiati. Lo avrebbero sempre voluto ieri senza spendere soldi per buoni strumenti. Non se ne sarebbe mai importato se avessi usato un particolare disegno. Non avrebbero mai avuto timore reverenziale perché ho aumentato la manutenibilità applicando giudiziosamente il Principio della singola responsabilità.

Mi sono anche reso conto che avrei combattuto il mio io più giovane incarnato da programmatori inesperti. Il programmatore che ha violato il programma per farlo funzionare velocemente. Il giovane programmatore che ha resistito a tutte le cose sciocche che mi hanno impiegato anni per capire. Il giovane programmatore che pensa di avere 5 lezioni è più confuso che avere una classe enorme che fa tutto.

Ma ora che sono al mio punto di 10 anni sono arrivato a vedere che quelle frustrazioni sono proprio come le frustrazioni che ho sperimentato nei miei primi cinque anni. È la frustrazione associata all'apprendimento di una nuova abilità. Ma questa volta le abilità sono interpersonali. Le abilità stanno spingendo i non programmatori a comprendere i limiti dell'andare a cavallo. E queste abilità sono forse più importanti nel grande schema delle cose rispetto alle abilità dei programmatori che ho acquisito durante i primi cinque anni.

Ma ciò che è davvero sorprendente di questo lavoro è che posso continuare, e in realtà devo continuare, a sviluppare competenze tecniche mentre lavoro anche con il management.

Quindi ti dico di continuare! Poiché ti sei sentito a tuo agio con la tecnologia, puoi iniziare a lavorare sulle tue abilità affrontando le cose molli chiamate esseri umani.

32
ElGringoGrande

Ho scoperto che ci sono 2 segreti della felicità relativa:

  • non cercare di avere tutto ciò che vuoi ma cerca di desiderare tutto ciò che hai

  • la vita è dura - non importa quanto tu possa colpire (sei bravo, personalmente e professionalmente); risponderà sempre più forte. importa quanto puoi essere colpito e riuscire comunque ad andare avanti.

Dopotutto è una passeggiata nel parco e ci sono cose più importanti di bit e byte, pratiche e cose. Goditi tutte le esperienze così come sono e combatti il ​​più possibile.

29
AZ01

Forse dai un'occhiata a The Passionate Programmer di Chad Fowler ... citando dalla pagina web:

Nella maggior parte dei casi, carriere straordinarie non arrivano per caso. Richiedono pensiero, intenzione, azione e volontà di cambiare rotta quando si commettono errori. Molti di noi sono inciampati nel lasciare che la nostra carriera ci portasse dove potevano. È tempo di prendere il controllo.

22
Adam

L'insoddisfazione dell'IMO che ovviamente senti non è una crisi, ma piuttosto un segno che hai raggiunto un certo livello. Hai superato lo slot "Sono solo un programmatore". Hai abbastanza comprensione ora per vedere i difetti nell'attuale situazione e come risolverli.

Il prossimo passo è trovare una connessione tra ciò che vedi come potenziale miglioramento e ciò che la società per cui lavori vedrebbe tale. Quindi devi convincere il/i tuo/i capo/i che questa è la strada da percorrere.

Non è sufficiente capire le cose e sapere come fare le cose. Dovresti anche essere in grado di convincere le persone che sai cosa stai facendo. E se sembra che le vendite siano perché è così. Ma questo è assolutamente necessario per diventare "grandioso". Non lavori con i computer, lavori per le persone e con le persone, devi essere in grado di vendere le tue idee.

Naturalmente alcune compagnie sarebbero troppo prudenti per accettare le tue idee, e il tuo capo può respingerle a causa del colore della cravatta che indossi. Tieni a mente che vendere idee non è più facile che generarle, e la vendita non riuscita non è necessariamente il risultato delle ulteriori motivazioni del tuo capo, ma può essere una cattiva presentazione da parte tua.

19
mfeingold

Sono completamente d'accordo con Nikos. Penso che ciò di cui potresti aver bisogno sia trovare un'azienda focalizzata sulla tecnologia e sul prodotto. Ci sono aziende in cui gli sviluppatori di software considerano lo sviluppo solo il loro lavoro e non pensano mai a queste cose ai loro tempi. L'ambiente di lavoro è di solito molto più orientato ai manager che lavorano alla scrivania piuttosto che agli sviluppatori che fanno lavori mentali. Lo standard medio degli sviluppatori è generalmente basso (anche se ogni tanto ottieni un "guru"). Tendono a tagliare angoli (o addirittura a evitare) cose come il controllo delle versioni, i test, i processi, ecc. La società generalmente distribuisce software che fa il lavoro, ma è spesso brutto e difettoso, e nessuno sembra particolarmente infastidito.

D'altra parte ci sono aziende in cui gli sviluppatori sono proprio lì che fanno comunque quello che altrimenti farebbero a casa; vanno a casa la sera e lavorano ai loro progetti di sviluppo a casa e imparano nuove lingue/tecnologia nel loro tempo libero. L'ambiente di lavoro è di solito piuttosto incentrato sullo sviluppatore, con buoni monitor, buoni strumenti, buona atmosfera favorevole al pensiero. Gli sviluppatori sono spesso di alto livello e ti ritrovi a imparare quotidianamente da tutti i tuoi colleghi. In genere prendono sul serio cose come il controllo delle versioni, i test e i processi. La società generalmente distribuisce software di qualità decente, perché gli sviluppatori lo prendono personalmente in caso di bug o imperfezioni.

Non credo che trovare una società più grande migliorerà necessariamente le cose; infatti in molti casi le aziende più grandi sono peggiori e i problemi sono solo più profondi e più istituzionali.

Ovviamente sto polarizzando un po 'le cose .... ma se sei un ingegnere del software (e non solo sul tuo curriculum), allora devi provare a trovare uno di questi ultimi tipi di società. Pensa ad alcune domande interessanti sul colloquio che puoi porre loro, per scoprire se un'azienda è quel tipo di posto.

18
NeilDurant

Qualcosa che ho scoperto che molti programmatori non capiscono è che non tutte le decisioni sono tecniche. Per quanto sia triste, fare qualcosa di "giusto" non è sempre un'opzione. Questo porta molti sviluppatori a pensare che i loro capi siano stupidi o prendano decisioni sbagliate ... e sì, spesso è proprio così, ma altrettanto spesso il fatto è che la società potrebbe essere fuori dal mercato o perdere un lavoro interamente se hanno permesso ai programmatori di impostare il programma e prendere tutte le decisioni tecniche.

Purtroppo, a volte è nostro compito lavorare entro i limiti politici o finanziari del lavoro e fare il meglio che possiamo.

Una cosa che impari dall'esperienza è essere conservatore. Le ultime tecniche potrebbero non essere provate e potresti non avere una buona conoscenza di esse anche se lo sono. Ai manager non piace passare il tempo a lasciarti aggiornato su una nuova tecnologia solo perché vuoi imparare qualcosa di nuovo.

I programmatori dimenticano che molte aziende non sono società di software. Sono <inserire qui il settore delle imprese> che fanno anche software. Il tuo lavoro come programmatore è di facilitare i processi critici di missione, non di scrivere software perfetto. A volte capisce che sono la stessa cosa, ma in realtà è piuttosto raro.

14

Posso dire che in termini di codice scritto potrebbe essere migliore, ma ci deve essere una linea in cui si potrebbe essere troppo perfezionista come se qualcosa funzionasse il 99.99999% delle volte, non è abbastanza vicino al 100% per la maggior parte delle persone ? Parte delle mie lotte a volte con schemi di pensiero negativi sono il perfezionismo e l'intensa autocritica e giudizio, quindi forse posso identificarmi eccessivamente con quello.

4-5 anni è abbastanza tempo, IMO, per capire alcune cose:

  • Cosa vuoi - Quali pratiche ti piace nella tua posizione attuale?
  • Ciò che funziona per te - Questo è leggermente diverso in quanto ciò che funziona potrebbe non essere sempre quello che vuoi.
  • Quali sono i tuoi rivenditori - potresti andare a lavorare per un'azienda che non ti permetterebbe di avere un IDE? Esempio estremo ma spero che questo illustri in qualche modo il punto.

Ci sono altre domande come " Roadmap per un programmatore migliore " e " Come diventare un programmatore" più veloce " ", che potrebbero avere dei suggerimenti per te se vuoi Migliora le tue abilità.

Ho anche sperimentato dove il titolo senior viene assegnato a qualcuno semplicemente per essere sopravvissuto sul campo per così tanto tempo, piuttosto che raggiungere un livello di abilità. Puoi accettarlo come parte del modo in cui funziona il mondo o puoi provare a trovare luoghi che funzionano diversamente. Quante ne esistono in realtà non lo so, ma posso dire che a volte puoi trovare un buon posto in termini di come ti piace lavorare e cosa usano l'azienda e i colleghi per svolgere il lavoro.

" Sources of Insight " è uno dei miei blog preferiti e mi diverto a leggerlo quasi sempre. Il materiale è un po 'pesante in termini di presenza di molti elementi intellettuali in ciò che è scritto ma ci sono pepite che si possono prendere e rendere la loro vita un po' migliore o almeno questa è stata la mia esperienza.

Ricordo a scuola quando ero bambino che c'erano spesso transizioni dopo 4-5 anni, mentre mentre la mia prima scuola ero a 8 anni (dalla scuola materna alla terza elementare), poi erano 2 (classi 7 e 8) , 4 anni (liceo che era di grado 9-13, dove nel mio caso l'11/12 è stato svolto in un anno) e 4 anni (laurea universitaria).

Posso accettare l'idea che la crisi arrivi in ​​vari punti della vita, ad es. terminare l'università può indurre a chiedersi chi siano o dopo aver lavorato per un po 'chiedendosi se ne valga la pena.

Alcuni luoghi possono apparire come posti fantastici in cui lavorare e altri possono portare al burnout in quanto questa è stata una domanda qui un paio di volte, " Cosa causa il burnout degli sviluppatori ," e " Storie di burnout degli sviluppatori , "mentre le altre domande sono il rovescio della medaglia," Qual è la tua motivazione , "e" Programmazione (de) motivazione e altri piani ... "

Solo per motivi di background nella mia risposta qui sto sviluppando siti web/applicazioni da quasi 12 anni ormai, dal momento che ho ottenuto il mio primo lavoro fuori dall'università nel febbraio 1998 e, a parte una siccità di 8 mesi in cui non stavo lavorando lo hanno sempre fatto in diversi ambienti: un paio di dot-com, un fornitore di servizi applicativi e ora all'interno del team di sviluppo web del dipartimento dei sistemi di informazione presso un'azienda tecnologica locale. Mi rendo conto che questa è una risposta lunga, ma penso che le domande poste non abbiano risposte brevi nella mia mente.

10
JB King

Secondo me non è la crisi di mezza età - direi che la luna di miele è finita.

10
bernhardrusch

Ho trovato cose simili nei miei 10 anni di programmazione e suppongo che si tratti di eventi piuttosto comuni. Nel mondo degli affari (al contrario del mondo accademico), il denaro (o la mancanza di denaro) e il tempo guidano il programma, le caratteristiche e la qualità della programmazione. Spesso mancano quelle risorse per fare le cose in modo corretto. Questo è uno dei principali motivi per trovare i metodi più efficienti per risolvere i problemi. Questa situazione mi ha anche guidato a tenere presente che la mia programmazione dovrebbe risolvere solo il problema attuale (con una certa quantità di considerazione futura) invece di costruire qualcosa che contenga molte più funzionalità di quanto sia necessario. Questa è una lezione cruciale da imparare, secondo me.

I tuoi commenti su "programmatori senior" sono anche, purtroppo, comuni nella mia esperienza. Penso che il motivo sia duplice: in primo luogo, molti programmatori esperti diventano pigri, usando solo gli strumenti e i metodi che hanno usato nella loro carriera. La tecnologia continua ad andare avanti, e questo porta questi programmatori esperti a diventare "dinosauri". In secondo luogo, dopo aver programmato per un po ', può diventare facile cadere in preda a un po' di arroganza ("i miei talenti mi hanno portato così lontano, quindi devo essere un programmatore piuttosto bravo"). Cerco di combattere entrambi questi problemi cercando continuamente di imparare nuovi metodi o tecnologie per risolvere i miei problemi. A volte questo contraddice lo stato della lezione "costruisci solo ciò che è richiesto" sopra, ma l'obiettivo è quello di cercare un sano equilibrio tra i due.

Suggerirei di usare le esperienze che hai come motivatore per migliorare continuamente te stesso. Ho lasciato il settore della programmazione da solo dopo circa 5 anni perché ho perso la passione di progettare il codice. Ma non riuscivo a liberarmi dal prurito di creare programmi e sono tornato nel settore diversi mesi dopo. Ho imparato che devi impegnarti a fare ciò che ti piace fare: se vuoi gestire il progetto, trova una posizione che ti consenta di gestire i progetti. Se vuoi programmare tutto il giorno, trova una posizione per farlo. Trovare un lavoro che ti sfida e soddisfa i tuoi desideri è una parte meravigliosa e necessaria di un'esistenza felice - Ti auguro buona fortuna nel trovarlo.

9
user37772

Ho avuto le stesse domande e forse ho guardato le stesse cose che hai (grandi startup, consigli ispiratori, persone motivate che creano cose sorprendenti, processi, algoritmi che ti fanno venire la testa) solo per non trovarne nulla nei miei colleghi, attuali o precedenti , né nelle persone che conosco che sono nel settore. Quindi questo enigma di abbinare questo profondo interesse a un lavoro retribuito ha significato molte notti dormite male e una ricerca di un progetto così ingegnoso che potrebbe essere preso da parte e tuttavia crescere in se stesso abbastanza rapidamente da fornire una via d'uscita. Come molte persone, ho una famiglia da supportare e personalmente penso che l'energia necessaria per costruire qualcosa in una startup destinata al mercato brasiliano non sia ben spesa se non è completamente noiosa e noiosa. E seriamente? Faccio tutto il giorno in modo informatico e noioso.

Quindi per me la risposta è stata mantenere la volontà di imparare e migliorare in un posto e lavorare in un altro. Ho ripreso processing.org e continuo a provare a disegnare, scrivere e cucinare di più. È stato fantastico per me, a dire il vero: a volte sei così preso dall'incontro con le persone che ammiri e dal fatto di essere portato nel Pantheon di grandi realizzatori che ignori fatti seri su chi sei e cosa ti fa sentire la vita vivente. E mentre il lavoro è qualcosa che richiede una parte considerevole della tua giornata, il momento in cui smetti di preoccuparti di cosa significhi tutto e dove stai andando è il momento in cui ti rendi conto che non ti serve per arrivarci. Continua a scrivere codice se è ciò che ami, scrivi software a casa, contribuisci a progetti a cui sei appassionato. Quel tipo di soddisfazione non viene quasi mai da uno stipendio per la maggior parte delle persone, e forse è così anche per te.

7
dodecaphonic

Come programmatore dovrai sempre bilanciare il tuo desiderio di perfezione e il desiderio del tuo datore di lavoro per un prodotto funzionante. In alcune società questi due desideri saranno più vicini l'uno all'altro, nella maggior parte delle aziende i due desideri saranno distanti.

Il mio miglior suggerimento per affrontare il dramma del tuo lavoro quotidiano è quello di avviare un progetto personale sul lato, uno in cui non vi sia una scadenza, in cui puoi lavorare in aree in cui di solito non lavori, in cui fai tutto decisioni. Il codice più gratificante che ho scritto è stato mentre lavoravo come sviluppatore Wii, posso suggerirti di scrivere un gioco. Sarai in grado di toccare tutti i diversi aspetti della programmazione, 3D, networking, AI, ecc ... e poiché stai già lavorando con .Net ti suggerirei di afferrare XNA o nità

Per quanto riguarda i programmatori senior che non sanno molto, probabilmente hai ragione. La maggior parte dei programmatori senior di grandi aziende sono stati promossi in un momento che conoscevano molto o quando erano in grado di svolgere il lavoro. Ora che sono senior hanno responsabilità diverse, principalmente come manager. Si prevede che le loro abilità di programmazione scivolino un po '. Alcuni sono migliori di altri, e alcuni probabilmente sono stati promossi solo per quello che sanno, ma la maggior parte dei programmatori senior con cui ho lavorato in passato aveva un solido set di competenze (anche se a volte obsoleto).

Quindi, per concludere, fai un progetto personale per alleviare la noia quotidiana e rilassati con i tuoi anziani, fai solo il miglior lavoro possibile nel tempo assegnato e starai bene.

7
jessecurry

Ehi amico, è stato davvero bello leggere la tua domanda. Sono contento che tu l'abbia scritto. Sai cosa, non ti rendi conto di quale comprensione hai adesso. Le cose che hai scritto mi fanno capire quale esperienza hai avuto e credimi, questa esperienza è qualcosa che non tutti i programmatori possono avere nella loro vita. Sei una persona autonoma, autoapprendimento. In questo momento sei in uno stato d'animo molto maturo, dopo aver lavorato 4 anni per le piccole aziende. Se avessi fatto parte di grandi aziende, non avresti avuto nulla da considerare come esperienza. Ora hai capito come funziona questo settore, come vengono fatte le cose e come dovrebbero essere fatte. Che livello hanno questi cosiddetti "anziani". Ho un suggerimento per te, se sei così bravo come autodidatta e pratichi l'autoapprendimento da oltre 4 anni, perché non provi il freelance come carriera. Credimi, lavoreresti per te stesso e ti divertiresti molto di più.

Come nota conclusiva, non pentirti di ciò che hai fatto negli ultimi 4 anni. È un'esperienza meravigliosa e solo pochi lo hanno nella loro vita :)

7
Ravinder Singh

La differenza tra programmatori senior e junior, quando si parla di persone con esperienza, è generalmente solo basata sui salari. C'è molta variabilità in ciò che le organizzazioni apprezzano per cambiare il titolo, e spesso è determinato da ciò che richiedi quando vieni assunto.

Se è una consolazione sto avendo una crisi di 10 anni a metà della programmazione, anche se ho iniziato a programmare su un Apple] [+ quindi potrebbe essere un punto di 24 anni; Lo so, vorrei solo che le persone non si aspettassero la magia dai programmatori.

7
dlamblin

Trovo che il filo rosso che ho visto nella mia carriera sia stato quando mi sento coinvolto in una situazione in cui non ho il controllo del mio ambiente che è quando inizio a sentirmi annoiato. Sto solo facendo quello che gli altri ti stanno dicendo. È importante avere un'area propria (IMHO) di cui avere la completa responsabilità - forse manca anche nel tuo lavoro?

In tal caso dovresti parlare con il tuo manager, forse c'è qualche soluzione nel tuo attuale lavoro? Chiedere maggiori responsabilità è sempre una buona mossa.

7
AndersK

Nella mia esperienza, le prime settimane (al massimo mesi) sono cruciali per la qualità generale di un progetto. Se ti capita di iniziare a lavorare in un posto in cui altri programmatori hanno già creato un disastro (standard di codifica errati, nessun controllo di versione ecc.) È molto difficile per un manager, e soprattutto impossibile per un nuovo peer, stabilire miglioramenti. In seguito, scadenze e problemi nascosti causeranno un po 'di bruttezza in quasi tutti i progetti, ma se la fondazione è ben fatta, il danno sarà limitato e gestibile.

Per questo motivo, se ti trovi in ​​una situazione in cui devi lavorare con colleghi cattivi su un progetto cattivo, prova ad essere assegnato a un nuovo progetto (se ciò è possibile nella tua azienda) o trova un nuovo lavoro. Non aspettare troppo, poiché le cattive abitudini sono contagiose.

7
user281377

Bene, dovresti imparare un altro dominio (matematico, AI, data mining, BI, integrazione qualunque). Quindi, dopo aver imparato questo nuovo dominio, è probabile che tu abbia nuove idee che rispondano alle reali esigenze aziendali.

A questo punto, se sei un grande programmatore, devi solo fare una startup. Beh, è ​​rischioso, ma molto più divertente.

Impara abilità e competenze diverse, non solo nella programmazione, quindi combinale per creare una cosa nuova che nessuno ha mai pensato. È facile, hai già il miglior martello di sempre: la programmazione.

6
Nicolas Dorier

La mia esperienza personale è la stessa di cui parli. Per lo più tutti i progetti a cui ho lavorato ultimamente sono tutti realizzati in una corsa e tutti potrebbero essere migliori. Sono uno sviluppatore di programmi da circa 7 anni e sono stato nella stessa azienda di medie dimensioni. La direzione non ha la minima idea e sta eseguendo tutti i progetti come "non progetti". C'è molto poco ordine nel caos.

La cosa che temo di più è che cado nella fossa di cui stai parlando e comincio a fare una programmazione "schifosa" e una decisione stupida solo per andare avanti nella mia carriera. Spero che ci sia qualcuno lì a colpirmi in testa se ciò accade.

6
Arto Uusikangas

Penso che sia tempo di essere Sr, sviluppatore per te, sono nuovo in questo mercato e sto imparando e migliorando, ma i datori di lavoro non sono alla ricerca di umani, stanno cercando mostri come lo sviluppatore Jr. con oltre 6 anni di esperienza ed è davvero frustrante.

6
Tarik

Bella domanda Jeffrey. Ti piace ancora programmare? Ne sei appassionato, lo fai nel tempo libero? O sei solo stufo di alcuni dei terribili lavori di programmazione che hai avuto.

Se hai la sensazione che la programmazione non faccia per te, ci sono molte altre discipline che potresti ramificare e fare a questo punto della tua carriera: project management, vendite, pre-vendita, analista. Queste opportunità non sarebbero esistite quando eri un junior/laurea, quindi potresti non aver iniziato a pensare oltre il taglio del codice. Forse puoi contattare il tuo datore di lavoro per sponsorizzarti per gli esami di certificazione o se vuoi esplorare una nuova tecnologia (Azure/Silverlight/WPF?)

D'altra parte, se ritieni che il tuo posto di lavoro assomigli a un fumetto di Dilbert realistico, forse è il momento di andare avanti. Se hai lavorato in una grande azienda, che ne dici di intervistare alcune startup o viceversa. Non devi dire a nessuno che stai facendo domanda per un lavoro e anche quando ricevi un'offerta, sei in una posizione di negoziazione eccellente poiché hai già un lavoro, puoi semplicemente decidere se l'offerta è migliore della tua situazione attuale, e se no, continua a cercare. Le aziende più grandi possono spesso offrirti migliori opportunità di sviluppo della carriera e formazione, mentre con una piccola azienda ottieni più intangibili, come la responsabilità per il successo dell'azienda, orari di lavoro flessibili, stock options e anzianità/rispetto in seguito se/quando l'azienda colpisce in grande.

6
user204592

Se è una consolazione, mi sono sentito esattamente allo stesso modo per gli anziani nel mio posto di lavoro. La scorsa settimana ho presentato un rapporto basato su prove e questa settimana ho avuto un incontro di un'ora con il personale per presentare ufficialmente un reclamo sui dirigenti (tenendo conto che sono un minore). O è stato crescere alcune palle o essere infelice nel mio lavoro. Non sono lamentele malevole, sono lamentele costruttive. C'è una differenza, e può sicuramente avere un impatto enorme sulla tua felicità nel lavoro.

[~ ~ #] modifica [~ ~ #]

Direi anche di non "arrenderti" perché hai un problema con le persone. Sembra che molte persone qui dicano semplicemente "lascia il tuo lavoro", la verità è che tu puoi fare la differenza sul posto di lavoro. Sembra di cattivo gusto, lo so, ma penso che faresti accadere il cambiamento e guadagnerai più rispetto se proattivo per le cose che cambiano. Non aver paura di prendere da parte il tuo capo e presentare una denuncia. L'ho fatto e già ha fatto una grande differenza. Stiamo adottando nuove tecnologie, cambiando le nostre procedure di lavoro e affrontando le attività in modo più formale tutto a causa di ciò che ho detto (e sono uno sviluppatore junior)

6
Kezzer

Wow! Mi piace quanto sia preziosa questa conversazione. Sono uno sviluppatore web con oltre 5,5 anni di esperienza e lo adoro. Non posso votare ma citerò le parole di AZ. Sono d'accordo!

Ho scoperto che ci sono 2 segreti della relativa felicità: - non cercare di avere tutto quello che vuoi ma cercare di desiderare tutto ciò che hai - la vita è dura - non importa quanto tu possa colpire (bravo sei, personalmente e professionalmente); risponderà sempre più forte. importa quanto puoi essere colpito e riuscire comunque ad andare avanti.

Il libro che consiglierei è: http://www.Amazon.com/Software-Measurement-Estimation-Quantitative-Engineering/dp/0471676225

5
lordspace

I miei due punti:

Ho colpito il mio dopo soli 2 anni nel settore. L'ho superato migliorando me stesso e imparando.

Il più delle volte, arriverà perché stai facendo sempre la stessa cosa. E se stai facendo sempre la stessa cosa ... beh ... stai sbagliando.

Migliorare sempre. Impara sempre. E diavolo, se la tua attuale compagnia non ti sta dando quell'atmosfera, vai a trovarne una che lo farà. L'ho fatto e gli ultimi 2 anni sono stati il ​​momento migliore della mia vita (probabilmente sono anche 100 volte migliore nel mio lavoro rispetto a 2 anni fa)

5
mendicant

Esistono molti programmatori, ma solo una piccola parte di essi è ingegneri del software di qualità. Suppongo che sia vero in qualsiasi professione.

5
David R Tribble

Benvenuto nel mondo reale ... sfortunatamente, ciò che descrivi accade nella maggior parte delle carriere con persone che non sono abbastanza appassionate di ciò che stanno facendo. C'è solo un'opzione (vale a dire, se ami il tuo lavoro): devi trovare un negozio migliore per lavorare, anche se non è facile ai giorni nostri ....

5
Luis Abreu

Ho anche osservato un altro problema che la maggior parte dei cosiddetti programmatori "senior" nel "mio ambiente di lavoro" in realtà non sono saggi da esperti senior. Sono "senior" solo perché sono programmatori da molto tempo, ma il codice che scrivono o le decisioni che prendono sono assolutamente spazzatura! Non vogliono imparare, non vogliono essere migliori, vogliono solo essere pagati

... seguito da ...

Mi sono imbattuto in uno stato mentale che non intendo più fare da programmatore per la mia futura carriera. Ho iniziato a pensare che forse ci sono cose migliori là fuori su cui lavorare.

Quindi è tempo di iniziare a cercare e di agire. Perché se rimani un programmatore con questo atteggiamento, finirai proprio come quelle persone "senior" che disprezzi così chiaramente. La parola operativa è "intrappolata": farai abbastanza soldi da non poter giustificare il passaggio a qualcos'altro e le tue abilità saranno così strette che non potrai muoverti all'interno del settore.

5
kdgregory

Forse pensi di andare a scuola di specializzazione? Ciò potrebbe aprire opportunità per un diverso tipo di lavoro più orientato al lungo termine.

3
Max Strini

Ho lavorato per 2 aziende in 2 continenti diversi con mentalità totalmente diverse, ma ciò che hanno in comune è che entrambi non si preoccupano dei programmatori ... Il programmatore di solito è associato al livello inferiore delle aziende ... Di solito sono associati ai principianti e hanno i salari più piccoli ... mentre i Project Manager, gli architetti ecc ... di solito prendono più soldi e fanno meno lavoro ...

Lavoro da quasi 4 anni e ho quasi la stessa sensazione che hai tu ... Passare da un progetto all'altro ... provare tutti i linguaggi di programmazione possibili ... C, C #, php, ASP.NET, WinForm, C++, Python, VB.NET, VBA ... e molto altro erano alcune delle lingue con cui ho lavorato ... Dal momento in cui i tuoi superiori scoprono che puoi farcela con qualsiasi lingua che ti danno, ti taggeranno come "buono" risorsa e ti dà tutto il lavoro sporco ...

Non ho nemmeno un mentore che mi guidi nella mia carriera ... e come molti che hanno scritto qui ... Trovo la mia soddisfazione solo quando realizzo i miei progetti personali ... ma sfortunatamente di solito le lunghe ore di lavoro non hanno fammi fare qualche lavoro serio ...

In conclusione, trascorrerò alcuni mesi persi fino a quando deciderò come la maggior parte dello sviluppatore appassionato di rinunciare e prendere un posto di architetto semplicemente noioso per ottenere più denaro

3
Zied

In qualche modo abbiamo una sensazione simile. Ora mi chiedo se questo sta accadendo perché entrambi abbiamo cinque anni di esperienza o a causa della crescita organizzata di quelle persone che leggono "Clean Code" (noi in Germania abbiamo una comunità abbastanza attiva attorno all'iniziativa "Clean Code Devloper" ), "Programmatore pragmatico" e "Codice completo" come ALT.NET e così via. Tutti i blog sono pieni di idee su come fare le cose nel modo giusto e pulito.

Quindi penso che i cinque anni di esperienza siano solo una coincidenza, mentre la ragione principale è il cambiamento del settore - che è abbastanza nuovo: case e ponti vengono costruiti da migliaia di anni, le macchine sono costruite per molti segreti di anni, materiale medico superiore dura cento anni, computer circa 50 anni e stiamo codificando in una lingua di terza generazione da 20 anni. Vedi il punto? Ci vuole tempo per diventare maturi per un'industria e penso che l'industria stia arrivando all'età dell'adolescenza :-)

3
Marc Wittke

Questa domanda descrive abbastanza bene il triste stato del nostro settore: la programmazione è fantastica ma la maggior parte dei lavori di programmazione fa schifo.

3
Rockcoder

Cambiare prospettiva è molto importante

Penso che noi programmatori ci lamentiamo e piangiamo per molte cose. Vogliamo che tutto sia " perfetto" (= vogliamo che tutto sia a modo nostro). Stavo (ancora cercando di cambiare) molto come te. Ma leggere " The Passionate Programmer " di Chad Fowler ha cambiato tutto per me. Ora mi ritengo fortunato ad essere un programmatore. Faccio il mio lavoro di 52-55 ore alla settimana (sì, questo è vero). Non è " perfetto". Ma provo a fare il mio lavoro con passione. Lavoro in un'azienda di outsourcing in India e il tipo di lavoro che svolgiamo è lungi dall'essere definito impegnativo. I programmatori sono fortunati ad avere una vasta gamma di opportunità per soddisfare i loro impulsi creativi. Possiamo lavorare sui nostri progetti. Possiamo lavorare su progetti open source. Possiamo fare freelance nei fine settimana. Penso che la maggior parte dei professionisti in altri campi non abbia quel lusso.

3
P.K

Penso che potresti confondere disaffezione con "Un lavoro" e disaffezione con "IL lavoro". Come altri hanno già detto, potresti aver bisogno di un cambiamento di situazione.

Lo sviluppo incentrato sul prodotto, piuttosto che i progetti Line-of-Business (LOB), potrebbe darti quella relazione più forte tra i tuoi sforzi/desiderio di qualità e risultati. Quando stai cercando di rendere un prodotto commerciale il meglio che può essere, sei molto concentrato e allineato con gli sforzi degli altri, specialmente se il tuo mercato è nell'area della tecnologia/programmatore - forse devi diventare uno sviluppatore di strumenti software, ad esempio ?

Ad ogni modo ti consiglierei sicuramente di non cercare aziende più grandi con più soldi - dove pensi che gli sviluppatori medi e inferiori alla media vadano a nascondersi?

Lasciami dare il punto di vista di un manager. L'offerta mondiale di opportunità di codifica supera di gran lunga le ore di talento disponibili disponibili per affrontarle. I manager gestiscono le aziende per realizzare un profitto, per cui cercano di applicare le ore di talento disponibili a quante più opportunità di codifica possibile, quindi è giusto e corretto che le cose vengano fatte in un Rush, e a buon mercato, a condizione che le conseguenze non influiscono sulla linea di fondo.

Nella mia esperienza, il lavoro migliore viene svolto quando il management non sta guardando, né come progetto skunkworks presso un'azienda più grande, o sempre più da collaboratori volontari che lavorano su progetti open source.

Il mio consiglio è di abbracciare la disciplina del controllo dei costi, cercare opportunità di skunkworks, trovare un progetto open source per impegnare il tuo tempo libero ed entrare in gestione, perché se non lo fai qualcuno con meno competenze tecniche potrà prendere delle decisioni.

PS. Sono stato uno sviluppatore C/C++ per 12 anni e ancora codice Java come regista.

2
Piers C

Pensa a questa come un'opportunità per cambiarti oltre te stesso. Ti suggerirei di prendere l'iniziativa per migliorare la tua atmosfera. Imparerai molto lungo la strada, indipendentemente dal fatto che falliresti o riuscissi.

È molto più facile lamentarsi (so che anche a me non piacciono queste parole) che fare cambiamenti positivi. Per cambiare dovresti essere in grado di influenzare gli altri; dovresti essere in grado di comunicare, dovresti essere in grado di inquadrare il terreno comune; dovresti essere persistente e paziente; dovresti essere in grado di ascoltare e motivare gli altri con la tua visione. Queste sono le abilità senza dati che andranno a beneficio di tutta la tua vita.

2
Bin Chen

Se sei bravo in quello che fai, come programmatore, la maggior parte delle persone che incontri nella vita aziendale, avrà più da perdere che da guadagnare. Il senior management trarrebbe vantaggio dalle tue capacità e devi assicurarti di avere il loro supporto.

Trova il tuo mentore. È una tua responsabilità, se ami questo gioco, trovare qualcuno che ti aiuti a crescere.

2
wentbackward

C'è una differenza tra 10 anni di esperienza e 1 anno di esperienza 10 volte.

2
PurplePilot

Mi sono sentito allo stesso modo per un po '. Sono in un grande negozio IT aziendale e vedo lo stesso genere di cose; gli anziani sono per lo più stagnanti e resistenti ai cambiamenti, e quella resistenza è così radicata che non possiamo nemmeno cavarmela con la semplificazione delle interfacce utente per il nostro software, finendo invece per clonare l'originale quasi esattamente.

Non aiuta che il software originale sia per lo più terribile; i progetti sono troppo complessi, molto inefficienti e ugualmente soggetti a errori ... eppure la direzione ci costringe a prendere molte delle stesse decisioni architettoniche.

Quindi sto lavorando al passaggio al libero professionista ...

2
Rakesh Malik

Post interessante. Sono a metà del mio quarto anno di sviluppo professionale .net. Sono davvero insoddisfatto del mio attuale lavoro (sto cercando ma finora non c'è stato molto da dire su questo fronte).

  1. Avevo un insegnante che una volta si è assurdamente assecondato per stressare documentando tutto. Non intendo codice, intendo "tutto". E ha detto che probabilmente non sarebbe ancora abbastanza. Bene, c'è una differenza tra conoscere una cosa e comprenderla e sono arrivato a capirla, e ha ragione. Non c'è mai abbastanza. Non riesco a documentarmi ma faccio apparire una conversazione recente, perdo. Documento, mi viene detto che ho frainteso qualcosa. Ho esaminato me stesso a lungo e duramente tutto questo, e penso che alcuni dei miei difetti siano sicuramente al lavoro. Ma la comunicazione è una strada a doppio senso, e non sono sempre io quello che fa una cazzata. È ancora peggio quando suggerisco cose o risolvo problemi, questi vengono spazzati via in quel momento e poi emergono più tardi. Di recente mi sono seduto a bocca aperta nell'ufficio del vicepresidente mentre lui e il mio capo mi chiedevano perché non avevo fatto qualcosa in una determinata pagina della nostra app rilasciata più di recente. Eppure avevo chiesto di fare quella cosa durante lo sviluppo e sono stato abbattuto. Roba del genere accade troppo spesso per i miei gusti.

  2. Imparare/tenere il passo con le tue abilità/ecc è talvolta discusso, ma noi non lo facciamo. Abbiamo opportunità per farlo sul posto di lavoro e ancora non lo facciamo. Molto deludente. Non mi aspetto che saltiamo sull'ultima e più recente tecnologia/strumento ogni volta che uno appare. Ma ad es. dovremmo fare sviluppo .net 3.5. Non ci sono argomenti per non fare lo sviluppo 3.5. Ma stiamo ancora facendo sviluppo 2.0. È stupido È soprattutto positivo che il mio capo sia diffidente nei confronti di cose nuove, ma è diventato sciocco. Ho provato a spiegargli LINQ di recente (quando discutevo di passare al 3.5) e la sua risposta è stata "sembra roba da interrogatori in lingua inglese". Mi rendo conto che parte del problema era che stavo facendo un pessimo lavoro spiegando LINQ. Ma tornando alla strada a due vie della comunicazione, c'era qualcuno dall'altra parte che non voleva ascoltare. Non mi aspetto che la compagnia mi faccia del tutoraggio la massima priorità. Ma il mio gruppo (solo 3 sviluppatori) potrebbe fare di più per favorire l'apprendimento.

  3. La posizione del mio gruppo nell'azienda è leggermente migliorata nell'ultimo anno e mezzo. Ma abbiamo ancora alcuni problemi. Il nostro vicepresidente è in gran parte responsabile di questo. È frustrante, ma potrei conviverci se alcuni altri aspetti del lavoro fossero più soddisfacenti.

  4. Ironspeed Designer - dio ti odio. E il fatto è che capisco perché un generatore di codice può essere utile. Ho desiderato generatori di codice per determinati compiti a volte nella mia vita. Tuttavia, sembra che stiamo diventando un gruppo guidato da Ironspeed. Non mi piace, poiché ostacolerà notevolmente la mia capacità di crescere sul posto di lavoro.

  5. Mi interessa l'arte dello sviluppo e della programmazione del software, anche se sono carente in entrambi. Non lavoro con persone che hanno a cuore l'arte dello sviluppo/programmazione del software. Nessuna recensione di codice. Spesso non riesco a ottenere aiuto per testare le cose (e quindi non riesco a far testare gli utenti anche se le cose sono andate meglio lì nell'ultimo anno ... e poi mi viene urlato se un bug si fa strada nella produzione in una versione. Sono un uomo. Posso fare solo così tanto).

Quindi provo ad imparare da solo (farei meglio con qualcuno che è interessato a vedermi imparare). Passo attraverso fasi in cui mi piace programmare al di fuori del lavoro e fasi in cui non riesco a sopportarlo. Recentemente abbiamo terminato un progetto particolarmente frenetico che mi ha visto fare straordinari straordinari, e quindi non ho fatto alcun apprendimento reale dal lavoro in circa 6 settimane. Ma tornerò indietro e rileggerò il C # di Skeet in Depth, e ne farò ancora un po 'giocando con MVC. . .

Ho combattuto molti dubbi (la fiducia in se stessi non è mai stata uno dei miei punti di forza in ogni caso) nell'ultimo anno e mezzo. Non lo definirei una crisi. Soldato perché do mi piace farlo. Anche lavorando in un lavoro schifoso.

2
peacedog

Ecco un libro:

  • Modelli di apprendistato: guida per l'aspirante artigiano del software/David H. Hoover, O’Reilly, 2010

Se stai pianificando una carriera nello sviluppo di software Agile, questo libro contiene buoni consigli. La prefazione è di Ward Cunningham. Vedi anche il sito dell'autore . 125 pagine.

2
rleir

A meno che non trovi un lavoro facendo quello che già volevi fare con la tua conoscenza della programmazione, lavorare a tempo pieno su una parte della programmazione correlata ma non interessante attutirà il tuo interesse per ciò che ti è piaciuto iniziare.

Oppure, qualcuno con un forte interesse per la robotica autoguidata che utilizza moderni algoritmi di pianificazione del percorso che fanno lo sviluppo del web a tempo pieno probabilmente non vorrà vedere un computer a casa, molto. La stessa persona che si fa strada verso la carriera che desiderava davvero e non fermarsi a metà strada spesso lavorerà volentieri più di una settimana di 40 ore, tornerà a casa felice e si sveglierà riposata al mattino.

In teoria, almeno.

2
Dean J

Ho questi su base ricorrente. Quello che succede è che generalmente perdo interesse per il mio lavoro e cerco di acquisire nuove competenze. Successivamente cerco di mettere queste competenze nel mio lavoro, ma raramente ne ho la possibilità. Ciò è dovuto alla micro-gestione e alla politica aziendale in costante evoluzione.

La cosa peggiore è che sono più o meno bloccato nel mio attuale datore di lavoro a meno che non mi trasferisca in un'altra parte del paese.

L'unico sviluppatore "senior" con noi in realtà non è uno sviluppatore, almeno ai miei occhi, è davvero produttivo, ma non l'ho mai visto scrivere alcun codice. E per quanto ne so, non ha un'esperienza lavorativa molto più lunga rispetto al resto di noi.

Mi piacerebbe davvero fare qualcos'altro, come costruire una barca o qualcosa del genere. Tuttavia, sento di aver davvero superato il punto di ritorno dopo 8 anni.

Ma se avessi la possibilità, farei qualcosa di diverso, ma sento in qualche modo che ritornerei perché questo è quello che sono. Conosco il codice.

2
Peter Lindqvist

Suggerisco che, data l'opportunità ovviamente, fai qualcos'altro per un po '. Come consulenza IT, data warehousing, vendite o persino supporto.

O riscoprirai la tua passione per la programmazione e sarai così felice di tornarci (che è quello che mi è successo) o sarai felice con il tuo nuovo lavoro e intraprenderai una carriera diversa a cui non avevi mai pensato prima.

Se torni alla programmazione, allora potresti anche aprire la possibilità di lavorare su diversi progetti in altri settori utilizzando tecnologie diverse rispetto a prima, il che può anche essere una buona cosa.

1

Molte persone hanno praticamente detto Impara qualcosa, e sono d'accordo. In particolare, suggerisco di trovare un dominio a cui sei particolarmente interessato e di ottenere buono con esso. Conosco troppi web designer che "volevano davvero essere artisti 3d ma non hanno mai capito come farlo". Di gran lunga il modo migliore per essere assunto per progetti o tecnologie interessanti è avere esperienza in altri progetti o tecnologie interessanti. Un ambiente di lavoro insoddisfacente ma poco impegnativo può essere utilizzato a tuo vantaggio, dandoti il ​​respiro mentale per assumere nuovi concetti.

In generale, il miglior consiglio che ho sentito in queste situazioni non è pensare positivamente ma pensare costruttivamente. Dove sono nella mia carriera? Dove voglio essere? Quali passi devo prendere per andare da qui a lì?

Anche avere una visione pratica e olistica delle attività della tua azienda può essere rinfrescante: quali alternative realistiche implementeresti al flusso di lavoro così com'è? ci sono piccoli componenti che possono essere introdotti senza troppe interruzioni? Presentare una proposta scritta di un nuovo modello insieme a un codice di lavoro per una parte di esso mostra visione e competenza tecnica. La differenza tra un buon programmatore junior e un buon programmatore senior è la portata delle soluzioni che sono necessarie per creare.

(Inoltre, 4 anni e un po 'di 9-5 rappresentano anche 10.000 ore messe in campo. Non particolarmente rilevante, ma ho pensato che fosse un metro preciso da sapere!)

1

Il progetto è la cosa. Veramente. Ho gestito la mia piccola azienda e team di medie e grandi dimensioni. La cosa più grande che vedo è che tutti sono motivati ​​quando scavano il progetto. Non lavorerai più a buon mercato se il progetto è davvero interessante? Non lavorerai più a lungo quando sei totalmente coinvolto in ciò che stai facendo e incaricato di vedere tutti gli altri allo stesso modo?

Facciamo ciò che apprezziamo di più. Quindi, come puoi reinserire valore nella tua carriera quando lavori per qualcuno che paga le tue bollette? Attraverso l'innovazione. Innovare e condividerlo con gli altri. Questo lo mantiene fresco.

1
Spanky

Immagina se la tua esperienza è stata meno di 4 anni, sii una donna, sii carina, sii completamente innamorata del tuo lavoro di sviluppatore e nessuno ti prenda sul serio. Anche se se hai schiacciato l'una e l'altra volta nella conoscenza degli uomini che ti circondano, devi sempre fingere di essere una ragazza sciocca. Sì, a volte è davvero frustrante, ma penso che tutto in diretta sia quanto ami quello che fai, e certamente l'unico modo per imparare davvero è con i nostri sforzi.

1
ae2

Dalla mia esperienza anche in alcune grandi aziende la situazione è la stessa. Ciò che conta sono i valori e le politiche dell'organizzazione e tanto meno le sue dimensioni.

Prova a trovare un sotto-campo dell'ingegneria del software di cui sei più appassionato e chiedi quali aziende hanno posti di lavoro nel settore e come è lavorare lì.

Gli anziani sono di solito persone che sono state lì per molto tempo o hanno posizioni chiave (ad esempio team leader, architetti, ...), tuttavia rimanere in una società per lungo tempo tende ad avere un aspetto negativo influenza, poiché ti abitui alla situazione loro e alle tecnologie che usano e ti sforzi di meno per cambiare le cose e provare nuovi approcci. - Le menti fresche sono molto importanti, l'esperienza interna è importante per sapere come fare le cose in quella società, le aziende dovrebbero avere una combinazione di entrambi.

Cerca anche di far sì che il tuo posto di lavoro ti invii a quanti più corsi esterni possibili, che ritieni possano migliorare le tue conoscenze tecniche e i metodi di lavoro.

1
Danny Varod

La realtà è che la durata dell'esperienza non equivale a nessun tipo di garanzia quando si tratta di competenza. Un buon modello di ciò che accade è il modello Dreyfus di acquisizione di abilità che sebbene originariamente reso popolare in infermeria ha avuto un po 'di rinascita nell'ingegneria del software - ecco un esempio applicato a Ruby (personalmente sono un po 'dubbioso sulla mappatura, ma comunque una lettura interessante).

Purtroppo la maggior parte delle persone non supera mai la fase "principiante avanzato" nelle proprie capacità (si noti che il modello dovrebbe essere applicato per abilità non a una persona nel suo insieme) - migliorerai non solo praticando l'auto-miglioramento ma scegliendo il giusto tipo di apprendimento che ti porterà alla fase successiva. Questo è il motivo per cui alcune persone possono fare molti corsi, superare gli esami ed essere ancora spazzatura.

Sembra che tu abbia raggiunto una fase particolare nello sviluppo delle tue abilità (competente o competente) e quindi riesci a differenziarti meglio dagli altri. Lo schema generale è che ci vogliono 10 anni per diventare pienamente esperti in una particolare abilità non banale, ma la maggior parte delle persone non lo fa mai.

1
FinnNk

Qualche divagazione da qualcuno che si chiede se dopo oltre 40 anni di hacking, forse una nuova carriera potrebbe essere in ordine ... :-)

Nah. Adoro questa roba. Da schede perforate e nastro di carta, attraverso i mainframe CDC, PDP- *, 4004, Alpha, Nova, Eclipse, Eagle (l'hardware che è venuto molto prima del software), Mac Mini e tutto il resto. E ci sono alcuni di noi che sono ancora curiosi di conoscere le nuove tecnologie dopo che molti, molti sono andati e venuti. La mia prima confessione è come, da bambina dell'industria del mini-computer, ho guardato le vecchie nebbie dell'era Cobol/Mainframe e le ho ritenute datate e crogiolate nella consapevolezza che noi giovani snapper di whipper eravamo qui per salvare la giornata tecnologica e ottenere roba fatta, per non parlare di fare milioni.

In tutto quel tempo non ho mai pensato seriamente di abbandonare davvero la programmazione perché ne restava troppo da fare. Gran parte del suo lavoro è stato creato da un manager privo di sensi in una corsa per consegnare un bambino di 5 mesi, volta dopo volta. Ed è quel lavoro che è la maggior parte del lavoro poco interessante svolto da 9-5 o da off-shoring.

Le cose interessanti sono state fatte da startup, piccole aziende e aziende come Apple e Google che per diversi motivi hanno creato ambienti di lavoro che favoriscono la programmazione creativa. E nelle grandi aziende con ambienti di lavoro disfunzionali da parte di maverick che sono disposti a sporgere il collo e di tanto in tanto a staccare la testa. Sono stato lì, l'ho fatto e lo farò ancora una volta, se non altro perché alla fine della giornata, non c'è proprio niente come vedere quell'applicazione , sistema o libreria effettivamente funzionanti e in uso, e soprattutto, sapendo che, ma per i tuoi sforzi, il prodotto finale sarebbe ancora peggio.

Da non preoccuparsi. Se ami queste cose, lo farai tra 30 anni. Altrimenti troverai, con un po 'di fortuna, ciò che ami e questo porterà alla soddisfazione interna e, si spera, molto di più. In ogni caso, ottima domanda se non altro per l'opportunità di esprimere una passione profondamente sentita.

1
pajato0

Ho lavorato per grandi società di software (enterprise) negli ultimi 4-5 anni e, come descritto nella domanda, ho visto una serie di soluzioni appena messe insieme senza alcun pensiero o progetto reale. Sono stato abbastanza fortunato da lavorare con alcune persone fantastiche, ma è un po 'deprimente vedere gli stessi errori commessi di volta in volta. Più spesso, i problemi non sono tecnici, ma sono il risultato di una cattiva gestione.

1
MagicAndi

sembra che sia il momento di iniziare a spacciare droga.

1
gweg

Parlando da solo, c'è un ciclo. Quando ho iniziato a sviluppare professionalmente ero eccitato, desideroso e mi sono divertito moltissimo a risolvere ogni nuovo problema. Dopo alcuni anni, ho finito per viaggiare per una compagnia per diversi mesi. Non ero davvero preparato per la quantità di viaggio richiesta e finivo per andare avanti. La prossima azienda per cui ho lavorato ha avuto problemi con l'essere troppo grande e non avere una chiara focalizzazione. Non c'è mai stato un chiaro intento o motivo commerciale per la codifica che stavo facendo. Di conseguenza, era soprattutto tempo di riempimento.

Successivamente, sono diventato un consulente e ho scoperto che le cose non sono molto diverse dal lavoro FTE. In genere sono stato in incarichi pluriennali in cui alla fine diventa un lavoro. Come altri hanno già detto, finisci per fare un sacco di cose cattive per portare a termine il lavoro e rimanere impantanato nella tecnologia che stai usando, al contrario di cose nuove e interessanti. Ho trascorso diversi anni in cui non mi importava molto della tecnologia. Ho visto il ciclo abbastanza volte ora che so che se ignori un round o due, non ti lascerai davvero condannare ... ma ci vuole un po 'di sforzo per tornare sul carro e recuperare il cambiamenti importanti. L'ultima volta che ho avuto un'intervista, Unit Testing e MVC non esistevano davvero nello spazio .NET e gli schemi erano a malapena citati nella comunità .NET.

Trovo il miglior fattore determinante se sto "facendo bene" è se sto programmando da solo nei fine settimana e nelle serate. Se è così, allora sono appassionato di tecnologia, interesse e apprendimento. Altrimenti, il mio lavoro probabilmente mi ha portato troppo sulla strada o mi ha fatto fare sempre la stessa cosa e ho perso interesse ... nel qual caso, probabilmente è tempo di andare avanti.

Ricorda: il tuo capo è responsabile del tuo lavoro, tu sei responsabile della tua carriera. (palesemente sottratto alla grande chiacchierata di Brian Prince sull'essere uno sviluppatore migliore)

1
Ben Von Handorf

:-) Ti assicuro che la legge del codice per il mercato è la seguente:

Più grande è la società nel minor tempo possibile sul mercato, le tempistiche del progetto continuano a ridursi e la concorrenza per ottenere il tuo prodotto più rapidamente rende quasi zero il tempo di scrivere la soluzione "perfetta" se mai ci fosse una cosa del genere.

Nella mia esperienza personale, circa 8 anni di sviluppo in grandi aziende, piccole imprese e poi medie imprese - i progetti che sono stato in grado di concentrare più tempo e la lucidatura è stato lo SMME (ragazzi piccoli) - Sicuramente il costo entra in gioco ma non venderti neanche!

Come sviluppatore difendi i tempi realistici, disponi di un piano di gioco che ti permetta un po 'di tempo per un po' di lucidatura che ti farà sentire meglio su ciò che hai consegnato. Non pianificare è come pianificare il fallimento, un termine coniato da molti fino ad oggi.

Buona fortuna con i tuoi piani/carriera futuri.

1
Microdot

La mia risposta è no Ora sono uno sviluppatore di software da 7 anni e il mio divertimento sta ancora migliorando. (Al momento sto realizzando app desktop in C #)

Per quanto riguarda il fatto di non sentirti più anziano, ti consiglio due cose:

  • Vai a una grande azienda con persone esperte
  • Ottieni una buona educazione. Non so cosa significhi dove vivi, ma a casa mia hanno un ottimo corso post-laurea di 2,5 anni part-time. Questo mi ha aperto gli occhi per un buon software e sviluppo in generale.
1
Marcel

Divertente, mi sono appena imbattuto in questo ... Ne ho abbastanza di programmazione e ho intenzione di andarmene, ma sembra che abbia avuto la carriera che desideri. Forse è meglio seguire questo mio thread e speriamo che le risposte ci aiuteranno entrambi: https://stackoverflow.com/questions/2055669/how-to-find-part-time-development-it-work = Capisco la tua frustrazione

1
Jonathan

Suggerirei che se ti piace davvero programmare, trova il tempo di lavorare sui tuoi progetti che ti interessano, al di fuori del lavoro. Anche se ti viene affidato un lavoro da sogno, la realtà quotidiana di lavorare su software di livello professionale spesso può toglierti il ​​divertimento, proprio come qualsiasi altra cosa nella vita.

C'è una buona ragione per cui i programmatori vengono pagati bene (è incredibilmente difficile costruire e mantenere sistemi software, è pieno di compromessi e spesso si lavora con vincoli di tempo ad alta pressione).

Il mio consiglio è di lavorare sodo mentre sei al lavoro, imparare cosa puoi da quelli intorno a te che ne conoscono di più o hanno più esperienza (anche se pensi di poter fare di meglio di loro) e continuare a goderti ciò che ti ha portato in questo casino in primo luogo: la passione per la programmazione.

1
dvanaria

Sono nella stessa situazione di un programmatore Java di quattro anni in un'azienda grande. Posso confermare che anch'io sto affrontando i problemi che hai citato.

La mia soluzione è guadagnare un dottorato in informatica per trovare nuove sfide.

1
Manuel Selva

Attualmente sto lavorando al mio terzo lavoro. Ho lavorato al mio primo lavoro per 4 anni e poi al mio secondo lavoro anche 4 anni.

Penso che sia una combinazione di voler fare qualcosa e cogliere opportunità e offerte di lavoro.

Voglio dire: quando lavori per un anno o giù di lì e i cacciatori di teste ti contattano, sei tipo: "no scusa, sono contento del mio lavoro attuale". Ma poi come dopo alcuni anni potresti essere tentato di cercare opportunità migliori fino a quando non raggiungi quel punto di rottura e cerchi davvero qualcos'altro.

1
Gerrie Schenck

Ho appena iniziato a lavorare circa 2 mesi fa in una piccola azienda. La programmazione non è affatto noiosa se la ami davvero. E mi affido anche a Internet per cercare le risposte alle mie domande, ma c'è anche il nostro manager (che è anche uno sviluppatore/programmatore) a cui posso chiedere. Bene, non si tratta solo di guadagnare enormi entrate ma la tua passione per fare le cose. Prova ad aggiungere alcune abilità. Non sto solo programmando ma sto anche scrivendo. Mi occupo anche della progettazione di database. Quando avrò il mio tempo libero, inizierò a fare il mio progetto personale. A partire da ora, mi piace quello che sto facendo e mi divertirò ancora dopo 5 anni.

0
jean27

cosa fai quando i "progetti personali" non ti danno più sufficiente apprendimento o motivazione?

0
Jonathan

La più grande strategia che ho trovato per migliorare il mio codice è la revisione del codice. Anche un dev meno esperto può occasionalmente trovare e suggerire un miglioramento. La parte più difficile è lasciare il mio ego fuori dal processo.

0
SnoopDougieDoug