Come giovane sviluppatore, dovrei essere preoccupato di dover usare la tecnologia "fuori moda" al lavoro? [chiuso]

10

Sono un neolaureato (lo scorso maggio!). Mentre ero ancora a scuola, volevo assicurarmi di avere un lavoro prima di laurearmi, e molto presto (probabilmente troppo presto) nella mia ricerca di lavoro mi sono stabilito in una regione in cui speravo di passare dopo lo studente .

Tuttavia, sono mesi che indovino questa decisione da mesi, per diverse ragioni. Uno è che non sono molto sfidato al lavoro, e mi sento come se non avessi migliorato molto in programmazione da quando ho iniziato qui. Posso sempre trovare il tempo per lavorare sull'open source (e avere nel passato) al di fuori del mio lavoro, però, quindi ho una sede per aggirare questa delusione. Ancora più importante, sono preoccupato dal fatto che il mio lavoro è fondamentalmente quello di lavorare su una vecchia web application Perl scurrile (usando Mason e uno strano ORM interno).

Mi sto sparando ai piedi qui lavorando con una tecnologia che non è più popolare e non mi aiuterà davvero a trovare un lavoro in futuro? Raramente vedo posti di lavoro in Perl, e quando lo faccio, di solito faccio qualcosa a cui non sono interessato (materiale di sviluppo web front-end).

La programmazione dei sistemi, la visualizzazione, la programmazione di rete o almeno lo sviluppo del web backend sono il tipo di argomenti che mi piacerebbe davvero lavorare - non sembra che la mia attuale esperienza di lavoro mi stia aiutando a posizionare qualsiasi di queste cose.

    
posta schwern 13.12.2011 - 21:35
fonte

12 risposte

50

Prima di tutto, smetti di pensare che il tuo lavoro non ti porti ulteriormente verso il lavoro dei tuoi sogni! Ogni lavoro fa! Tutto dipende solo da te!

  • Questo è il tuo primo lavoro dopo la tua laurea e tutti possono capire che non hai avuto una buona scelta o che potresti aver preso in considerazione altri fattori, come spostarti nel luogo in cui desideri soggiornare. Questa è una "scusa" valida, puoi dirlo se ti viene chiesto direttamente durante un colloquio di lavoro.
  • Ogni lavoro di programmazione contribuisce alla tua esperienza come sviluppatore. Esistono molte cose indipendenti dal linguaggio che ogni sviluppatore deve imparare da solo (implementazione di architetture liberamente accoppiate, debugging e profiling del codice, scrittura di unit test etc ...) che può essere appreso in QUALUNQUE lingua e Perl non è il peggiore da usare. Mi sono allenato tutti e tre in VBA per lo sviluppo di MS Access ed è stato molto divertente.
  • Questo non è produttivo, dopotutto : se consideri noioso e inutile il tuo attuale lavoro, non ne imparerai molto. In molti casi il tuo futuro datore di lavoro sarebbe interessato alla tua "curva di apprendimento": quanto sei veloce nel padroneggiare le nuove tecnologie, non a quanto sia noioso il tuo ultimo lavoro!

Quindi, i modi che ti aiutano sono i seguenti:

  • Cerca di padroneggiare la lingua con cui stai attualmente lavorando il più profondamente possibile . Guarda il tag perl sul sito SO e prova a rispondere alla domanda che le persone ci chiedono. Leggi i documenti su molte risorse per sviluppatori ecc. Cerca di diventare un guru in questo settore!
  • Perl è un linguaggio multi-paradigma, ora supporta OOP e molti altri paradigmi. Cerca di dividere quelli dalla lingua e guardarli individualmente. Che tipo di ereditarietà ha Perl? Quali sono i diversi tipi di modificatori di accesso disponibili qui per classi e membri della classe ecc? È strongmente digitato o no? Molte lingue funzionano in modo simile, purché tu sappia come funziona in generale puoi facilmente cogliere la differenza in altre lingue .
  • Acquisisci una profonda conoscenza del tuo attuale sistema : perché è implementato in Perl? In che modo sono risolti diversi aspetti, come le prestazioni, la sicurezza e l'affidabilità? Quali sono i problemi irrisolti, i caveat, le potenziali violazioni? Come faresti a sopportarli? Forse ci sono alcuni ragionevole refactoring dell'attuale base di codice è necessario?

E non rimanere a lungo su questo lavoro se non sei soddisfatto - quanto basta per apprendere le abilità di base, per mostrare la tua volontà di imparare e la tua forza di volontà per superare l'ottusità dei tuoi compiti!

Quando fai domanda per il tuo secondo lavoro in un futuro più o meno prossimo, puoi ancora essere trattato come uno sviluppatore junior! Dovresti provare a mettere in risalto ciò che hai appreso nel tuo primo lavoro, come hai affrontato i tuoi problemi di mantenimento del codice legacy e del sistema brownfield, come hai ampliato i tuoi orizzonti e quali nuove fantastiche funzioni hai imparato lì.

Mai, mai dire durante il colloquio di lavoro che sei annoiato dal tuo attuale lavoro e questo è il motivo per cui stai cercando qualcos'altro. "Noioso" è così soggettivo e spesso significa che non sei abbastanza bravo da sopportare la sfida di imparare le cose nella tua posizione attuale e applicarle di conseguenza. Mostra la tua volontà di imparare, di espandere le tue conoscenze e otterrai il lavoro dei tuoi sogni, ne sono certo.

    
risposta data 13.12.2011 - 22:12
fonte
7

I primi lavori nell'industria del software sono spesso lavori scadenti. Mentre si apprendono alcune abilità di programmazione, l'educazione più importante che si sta ricevendo è come lavorare in un'azienda.

Presentarsi regolarmente, lavorando 8+ ore al giorno, utilizzando il software di controllo del codice sorgente, gestendo boss e amp; collaboratori, ricevendo la chiamata 3am perché il server di produzione è andato giù e ha bisogno di essere risolto ... quelle sono le abilità che stai imparando dal tuo primo lavoro.

Detto questo, se sei annoiato e non ti piace quello che fai, esci. Se ritieni che questo lavoro non ti aiuti ad entrare nel tuo obiettivo di carriera, esci. C'è un sacco di posti di lavoro là fuori per persone di talento.

    
risposta data 14.12.2011 - 01:43
fonte
6

Prenderò in considerazione diversi aspetti della tua domanda separatamente:

  1. Il tuo primo lavoro non sarà mai molto impegnativo. La ragione è che l'università ti insegna tutto ciò di cui avrai bisogno in 30 anni, mentre le aziende devono lavorare con tecnologie già disponibili. Si spera che il materiale trentennale sia più avanzato rispetto all'attuale stato dell'arte. L'intervallo di mezzo anno fa sì che il lavoro sia diverso da quello a cui sei abituato all'università.
  2. L'apprendimento è praticamente fatto nel tuo tempo libero. Questo è un dato sfortunato, ma il costo delle persone è così alto che devono sempre fare qualcosa di produttivo. La migliore alternativa sarebbe se fosse possibile combinare l'apprendimento e lo sviluppo produttivo, ma poi lavorerai con la tecnologia che non conosci ancora e potrebbe causare problemi semplicemente perché non capisci la tecnologia che stai utilizzando. Se vuoi creare cose che funzionano davvero, l'apprendimento deve essere fatto al di fuori dell'ambiente di produzione. In molte aziende questo significa solo che è il tuo tempo libero.
  3. Dovresti considerare perl solo come una sfida: come migliorare le tue pratiche di lavoro in modo che siano utili non solo a perl, ma a qualsiasi nuovo sistema che incontrerai nei prossimi 30 anni.
  4. Quando apprendi cose nuove, concentrati sui fondamentali. Perl ha espressioni regolari, tabelle di hash e molte buone strutture di dati. Tutta la conoscenza su come sfruttarli al meglio è utile in futuro.
risposta data 13.12.2011 - 22:16
fonte
5

Ciò che chiami tecnologia "fuori stile" è la maggior parte di questo settore. La ragione è semplice: c'è più sviluppo fatto per mantenere i sistemi esistenti di quelli che ne stanno sviluppando di nuovi. E anche quando si sviluppano nuovi, spesso saranno sviluppati usando tecnologie più vecchie, ma collaudate e che si inseriscono in un panorama architettonico più ampio. Questa è solo la realtà dello sviluppo del software. Pochi sviluppatori sono in una posizione in cui sono sempre in grado di lavorare sul "bleeding edge" della tecnologia.

Secondo me, c'è meno gloria nel lavorare con [inserire qui la nuova tecnologia super-cool] che nel consegnare in tempo, nel budget e in base alle aspettative. Questo è qualcosa che puoi solo imparare attraverso l'esperienza e che è completamente indipendente dalla tecnologia. Direi che stai andando bene in questo momento. Continua a imparare il commercio e l'arte dello sviluppo del software sul posto di lavoro e tieniti al passo con la curva della tecnologia nel miglior modo possibile al di fuori del lavoro. Ecco come la maggior parte di noi lo fa.

    
risposta data 02.01.2012 - 16:38
fonte
5

Dissentendo con tutti gli altri, questo lavoro potrebbe benissimo farti male . Intervio regolarmente candidati che cercano di allontanarsi dal loro primo lavoro dopo il college. Di solito erano bloccati usando un linguaggio che tende ad essere usato per la manutenzione più una tonnellata di "quadri" interni. In altre parole, hanno imparato come utilizzare alcuni toolkit a cui non avranno mai più accesso, tempo perso per quanto riguarda l'occupabilità.

Inoltre, la maggior parte dei negozi di manutenzione a cui sono stato esposto non ti insegnano le competenze necessarie per far parte di un vero sforzo di sviluppo. Quando intervisto qualcuno che esce dal loro primo lavoro, voglio sapere che capiscono:

  1. Alcuni comuni cicli di sviluppo del software
  2. Controllo del codice sorgente
  3. Come testare il codice (TDD, unit test, selenio, qualcosa di simile)
  4. Principi OOD (ad esempio: al college si spera siano stati esposti a schemi di progettazione, ora mostrami che li hai effettivamente usati / visti)
  5. Comprensione di base dell'architettura aziendale (ad esempio, cos'è un sistema a 3 livelli e hai mai lavorato con uno di questi)
  6. Come lavorare con un team

La maggior parte di queste competenze mi è venuta in mente nel mio primo lavoro essendo esposta a persone intelligenti e lavorando con loro ogni giorno. Se non pensi di imparare qualsiasi (su software o azienda), quindi inizia a cercare un altro lavoro.

Modifica: come nota a margine, ricordo la caccia al lavoro al college. Ero in una fiera della carriera e ho iniziato a parlare con una compagnia che lavorava con studi legali. Ho iniziato a chiedere loro delle loro pratiche di sviluppo, ed è emerso che fanno tutto in VBA. Li ho ringraziati per il loro tempo e sono uscito di lì.

    
risposta data 02.01.2012 - 18:09
fonte
3

Se fossi in te, prenderei in considerazione la possibilità di leggere e programmare in un altro linguaggio (es. Python, Java, Scala, Ruby, C ++ e così via), quindi quando fai domanda per un altro lavoro puoi dimostrare di avere conoscenza delle lingue più diffuse rispetto a Perl. Inoltre, se hai altre aree di interesse, farei sicuramente qualche lettura in più.

D'altro canto, tieni presente che molte tecniche di programmazione che stai usando sono probabilmente le stesse indipendentemente dal linguaggio di programmazione.

Quindi, ancora una volta, il mio suggerimento sarebbe: non ti preoccupare troppo ma inizia a imparare qualcosa di nuovo nel tuo tempo libero. Non appena avrai raccolto abbastanza conoscenze, troverai sicuramente un lavoro più eccitante.

    
risposta data 13.12.2011 - 21:48
fonte
2

Se non vuoi lavorare in Perl, va bene così.

Proprio perché Perl non ha molti flash al momento, non significa che non sia popolare.

Vorrei sottolineare che lo slancio di Perl è aumentato drammaticamente solo negli ultimi 5 anni.

Ci sono state versioni più stabili di Perl in ciascuno degli ultimi 2 anni di quante ce ne siano state in uno qualsiasi degli anni precedenti.

Moose è considerato dalla maggior parte dei casi, per essere tra i migliori sistemi di oggetti Perl fino ad oggi, e risale solo agli inizi del 2006. Il i prossimi sistemi di oggetti più popolari sono fondamentalmente semplificati Moose sistemi di oggetti.

Se vuoi provare come popolare Moose , guarda quanti I moduli CPAN dipendono da Moose .

Tra quei moduli che richiedono Moose è Dist :: Zilla , che ha sempre richiesto Moose . Nel caso in cui non lo sapessi, Dist :: Zilla è probabilmente il singolo modo migliore per costruisci e rilascia CPAN moduli.

Inoltre ci sono ancora alcuni fantastici nuovi progetti che utilizzano Perl. La distesa Lacuna per uno.

    
risposta data 02.01.2012 - 00:04
fonte
2

Qualcuno deve raccogliere la spazzatura, pulire i bagni, scavare fossati e lavorare a McDonalds. In questo momento stai facendo la versione di sviluppo del software di questo.

C'è NOTHING sbagliato nel riconoscere che e aspirare a qualcosa di più grande!

Ciò che fai ora modella in modo definitivo ciò che fai domani, l'anno prossimo e i prossimi dieci anni!

Chiunque altro dice che sta cercando di tenerti giù o sentirsi meglio per essere nello stesso luogo deprimente!

Per quanto riguarda Perl, è fuori moda nel senso "carriera" della parola. Come a meno che tu non voglia fare una carriera come il ragazzo Perl , inizia a imparare qualcosa di più nuovo e più in voga. Python, Java, C # apriranno più porte e saranno più commerciabili o qualcosa che è in vetta a colpirlo in un paio di anni come Erlang.

Tutto ciò che ho detto, * imparare come non fare ** è prezioso tanto quanto come fare , e imparare dagli altri errori è meno doloroso che imparare dal tuo proprio.

In questo momento stai prendendo lezioni su entrambe queste cose.

    
risposta data 14.12.2011 - 00:44
fonte
1

C'è ancora molta richiesta di persone buone con Perl. Scoprirai che il settore del networking e molti lavori basati su sysadmin basati su * nix usano estesamente il perl.

Detto questo, faccio eco ad altri che suggeriscono di spingere i propri confini. Anche se stai lavorando con perl, trova i modi per ottimizzare e ottimizzare i programmi. Ad esempio, se vedi un approccio lineare preso con un programma (spesso il segno di un programmatore inesperto), puoi trovare un modo per modulare il codice per migliorare la manutenibilità? La capacità di base di leggere un po 'di codice, indipendentemente dalla lingua, e di ottimizzarla e trasformarla in codice migliore è un'abilità molto ricercata.

    
risposta data 13.12.2011 - 22:03
fonte
1

Cerca opportunità per creare e mantenere l'esperienza in altre lingue, dimostrando allo stesso tempo che sei un dipendente dedicato in grado di affrontare la sfida. Guidati per mantenere un output di lavoro costante della massima qualità che puoi ottenere, e usa un po 'di tempo libero per assumere più lavoro o se è permesso creare cose che ti permetteranno di sviluppare abilità e conoscenze in altre aree. Anche una semplice demo che risolve un vero problema di business in un modo diverso (con un linguaggio più in voga) ti permetterà di migliorare le abilità e mostrare al tuo capo che stai pensando attivamente fuori dagli schemi. Fai solo attenzione a evitare di essere visto come sottrarti alle altre tue mansioni semplicemente per lavorare su progetti collaterali.

La dedizione è la chiave. Non ci si aspetta che i laureati abbiano anni di esperienza in molte lingue. Puoi sempre trascorrere un anno sviluppando abilità comunicative essenziali e dimostrando che puoi affrontare la sfida, anche se la sfida è guardare oltre le cose che ritieni "noiose". Scopri come aumentare le tue capacità quando arriva il momento di andare avanti. Siete attesi per continuare ad apprendere sul posto di lavoro e per mostrare al prossimo datore di lavoro che state cercando attivamente di migliorare le competenze.

Ricorda che a nessuno piace usare un "tutto-sa". Ho sempre cercato di assumere persone - anche per posizioni senior - che vogliono imparare e crescere ulteriormente.

    
risposta data 14.12.2011 - 01:27
fonte
1

Schwern,

Ero solito pensare esattamente come te in molti modi. Sono uscito dall'università con forti competenze in Java e Python. Il mio primo lavoro è stato lavorare con Delphi. Sono stato subito preoccupato per questo, ma dato che non avevo lavoro ed ero appena uscito dall'università, ho deciso di mordere il proiettile e prendere il lavoro come avrei esperienza lavorando come programmatore indipendentemente dalla lingua.

Il mio secondo lavoro consisteva nel lavorare in una grande banca facendo lo sviluppo di Smalltalk il più delle volte, con un po 'di Perl e Java. I miei amici hanno riso di me perché non riuscivo a trovare un lavoro come sviluppatore Java principale e mi ha detto che stavo danneggiando il mio curriculum. Ora non vedo l'ora di iniziare un nuovo lavoro in poche settimane che abbia tutte le tecnologie con cui voglio lavorare e abbia uno stipendio migliore.

Ovviamente, non posso dire che la tua esperienza sarà la stessa della mia, ma ci sono alcune lezioni che puoi toglierle per rimuginare. In primo luogo, la programmazione è secondaria rispetto a ciò che fai. Se possiedi buone capacità di modellazione di domini e puoi imparare rapidamente i processi di business, questo a lungo termine ripagherà più dividendi anziché evitare di imparare come funziona l'attività e passare più tempo a specializzarsi in problemi minori, che ho visto in molti posti Ho lavorato.

La seconda cosa che devi ricordare è che sei sull'orologio di un'altra persona. Se vuoi avere la tua opinione su cosa fare e avere il pieno controllo su tutto, allora inizia la tua attività. Ho visto fin troppe persone entrare in una società e lamentarsi della tecnologia legacy, l'ho fatto io stesso quando mi sono laureato. In genere queste persone sono considerate tossiche per il posto di lavoro e non durano molto a lungo. La cosa fondamentale da ricordare è che la tecnologia è lì per supportare il business, non il contrario. Il meglio che puoi fare in queste situazioni è possibile creare opportunità da loro, altrimenti è il momento di fare i bagagli e partire e cercare un impiego alternativo, ma il fatto di trovare tutte le società per cui lavori ha problemi di qualche tipo.

Al di là di ciò che ho sollevato, dirò che non vuoi sembrare "istituzionalizzato". Ciò che intendo per questo è che sei bloccato ad usare particolari linguaggi e tecnologie e non puoi andare oltre. Vuoi coltivare un po 'di flessibilità nella tua carriera, che include le abilità di modellizzazione del dominio. Da quando hai iniziato la tua carriera, ti indicherò del buon materiale che vorrei avere a disposizione quando ho iniziato:

Il programmatore appassionato

Il programmatore pragmatico

Progetto basato sul dominio

Il programmatore di carriera

    
risposta data 02.01.2012 - 19:06
fonte
0

Codice un po 'fuori dal lavoro, ma non mi sento ancora ferito. Sei un noleggiatore recente, quindi sei uno sviluppatore entry level: in questa fase del gioco dovresti imparare cose come il ciclo di sviluppo e come le cose "dovrebbero" essere fatte.

Perseguire alcune cose al di fuori del lavoro in modo da poter riempire le tue statistiche. Secondo me, puoi codificare o non puoi. Il linguaggio e la sintassi possono essere appresi, ma la capacità di pensare e risolvere i problemi da soli non può.

    
risposta data 13.12.2011 - 22:07
fonte

Leggi altre domande sui tag