Domanda:
Quali passi posso intraprendere per migliorare le mie capacità di programmatore e rendermi più commerciabile?
corway
2012-09-22 03:43:15 UTC
view on stackexchange narkive permalink

Ho conseguito una laurea in informatica nel 2005 e ho lavorato nella stessa azienda come programmatore negli ultimi sette anni. Ho guadagnato uno stipendio progressivamente migliore in questo periodo e ho goduto di una sicurezza lavorativa piuttosto confortevole.

Tuttavia, temo che le mie capacità di programmazione non siano più commerciabili. Ho trascorso la maggior parte degli ultimi sette anni a creare interfacce intranet per database o creare report online. Quindi la maggior parte della mia esperienza è in SQL, con alcuni ASP Classic. Mi sono laureato con una certa esperienza in C # e VB, ma il mio manager è molto anti-Visual Studio, quindi non uso queste competenze da anni. Ultimamente sono stato introdotto a progetti che coinvolgono mySQL e PHP. Ma anche dopo sette anni in questa posizione, non sono davvero un esperto in nessuna area particolare.

Ho esaminato molte offerte di lavoro, che richiedono un'ampia varietà di competenze e tecnologie, nessuna delle per cui sono qualificato. Sembra che questo abbia lasciato che questo lavoro mi dipingesse in un angolo per quanto riguarda la mia carriera. Cosa devo fare per uscire da questo vicolo cieco?

Dai un'occhiata a http://programmers.stackexchange.com/questions/44177/what-is-the-single-most-effective-thing-you-did-to-improve-your-programming-skil?answertab=votes# tab-top
Qualunque cosa tu faccia, non ripetere lo stesso errore. Chiediti sempre "Cosa sto ottenendo da questo lavoro, a parte i soldi?"
Sei risposte:
fecak
2012-09-22 06:41:57 UTC
view on stackexchange narkive permalink

Offro un'opinione diversa da @kolossus. Se hai solo 7 anni nella tua carriera, stai ancora raggiungendo il tuo potenziale come tecnologo. Hai molto di più da imparare e se intendi guidare in futuro dovresti avere più esperienza da trasmettere - più successi e fallimenti da vedere che ti renderanno un leader migliore. Pensare che dovresti essere un manager o un lead solo a causa della tua esperienza è un errore, poiché i migliori programmatori non sempre creano manager o lead di successo.

Le certificazioni, almeno negli Stati Uniti, sono generalmente di scarso valore. Il valore che forniscono, ai miei occhi, è accendere un fuoco affinché qualcuno impari un argomento dentro e fuori. La parte migliore di ottenere un certificato è l'apprendimento che ti viene imposto con una scadenza (il test) e il fallimento del test si traduce in uno spreco di tempo e denaro. Ti induco a studiare molto e la conoscenza vale molto di più del certificato.

Rimani nella programmazione e acquisisci alcune competenze più commerciabili. Probabilmente dovrai farlo nel tuo tempo libero. Le competenze dei database vengono trasferite a qualsiasi RDBMS, quindi sembra che tu abbia quello che fa per te. Anche solo acquisire competenze PHP più approfondite con la tua esperienza SQL dovrebbe portare a potenziali opportunità. Guarda in lingue come Ruby che sono popolari e generalmente considerate più facili da imparare. Allontanarsi dalle tecnologie Microsoft e più verso l'open source dovrebbe anche portare a maggiori opportunità su tutta la linea. Le aziende legate a Microsoft possono limitare le tue scelte, dove i negozi Unix / Linux possono avere diverse lingue in uso.

E potresti leggere questo post sul blog che ho scritto su come mantenere le competenze tecniche mentre si lavora in un ambiente tecnico limitante. http://fecak.com/taking-control-of-your-career-while-working-in-a-limited-technical-environment/
I programmatori dicono che la certificazione non ha alcun valore, ma di solito non sono quelli che assumono.
Parlavo come reclutatore di ingegneri del software, non come programmatore (non sono un programmatore). I miei clienti generalmente non hanno dato alcun valore alle certificazioni, e in realtà alcuni sono stati piuttosto diffidenti nei confronti dei candidati che semplicemente cercano di ottenere più certificati senza avere esperienza nel mondo reale. Questo può effettivamente funzionare contro di te secondo me: caricare su certificati o test Brainbench per provare e dimostrare le tue abilità può dare l'impressione di qualcuno che cerca di ingannare il sistema, e sarebbe meglio passare del tempo su progetti open source o progetti personali in cui il codice può essere visualizzato.
Amy Blankenship
2012-09-22 20:22:24 UTC
view on stackexchange narkive permalink

Potresti non considerarti davvero esperto in nessuna cosa, ma è esatto? Potresti paragonarti ingiustamente alle persone che sono attive nei blog e su Twitter. La stragrande maggioranza delle persone con cui intervisteresti o accanto a te non solo non è in quel campionato, e sia tu che loro sareste estremamente a disagio se voi foste.

Quindi, dai un'occhiata a quali sono stati i tuoi risultati nel lavoro. Questi parlano molto più forte delle particolari tecnologie sul tuo curriculum, soprattutto se riesci a trovare un modo per far sì che reclutatori e aziende si avvicinino a te, piuttosto che il contrario. Alcuni modi per farlo sono aggiornare il tuo profilo su Dice.com o LinkedIn.com, con il tuo nuovo, fiducioso curriculum.

Prenditi un paio di fine settimana per sperimentare lingue in cui non ti senti a tuo agio. Imparare nuove lingue è di per sé un'abilità, quindi questo ti aiuterà. Inoltre, saresti sorpreso di quanti concetti puoi raccogliere in un progetto del fine settimana. Scrivi un blog sulle tue scoperte, che consentirà ai potenziali datori di lavoro di valutare le tue capacità tecniche e di comunicazione, nonché il tuo atteggiamento e approccio.

Rispondi alle domande su siti come questo. Questo ti darà un'esperienza più ampia di quella che potresti ottenere sul lavoro, mentre cerchi le risposte alle domande degli altri.

Impara i tuoi schemi di progettazione. È spesso vero che le aziende che chiedono informazioni sui modelli di progettazione sono le peggiori a non usarli, quindi questo può provocare frustrazione per te. Tuttavia, devi superare il colloquio per essere in grado di non utilizzare le tue conoscenze sudate e di sentirti frustrato :).

Renditi conto che ci sono molte cose che puoi fare per migliorare la tua produttività. oltre alle tecnologie che conosci e al modo in cui codificare. Ad esempio, più scorciatoie da tastiera conosci, più tempo puoi dedicare a problemi di codifica (perché non perdi pochi secondi ogni volta che non prendi in mano un mouse),

Infine, investi tempo e attenzione sulle capacità delle tue persone, inclusa l'autopromozione. Devi trovare un modo per vedere il valore negli ultimi sette anni del tuo lavoro e trasmetterlo a potenziali datori di lavoro. Inoltre, puoi ottenere molto più tempo per ottenere supporto e acquistare da altri di cui hai bisogno (come quelli che ti forniscono progetti, dati o altre risorse), piuttosto che per pura genialità tecnica. Questa può essere una lezione difficile da imparare, ma è meglio impararla all'inizio della tua carriera che tardi.

Suggerirei anche di non pensare più a te stesso come un programmatore rigoroso. Ci sono molti titoli nello sviluppo di computer e software e potresti essere solo uno di questi altri titoli a questo punto con l'ampiezza della tua esperienza.
Jessica Brown
2012-09-23 04:40:18 UTC
view on stackexchange narkive permalink

Le tue capacità mi sembrano commerciabili . Quindi sarei propenso a chiederti se per "abilità di programmazione" intendi qualcosa di più specifico, come abilità di programmazione di applicazioni desktop o abilità nello scrivere algoritmi? L'ultima volta che ho verificato che quantità eccessive di siti Web utilizzano SQL (in genere ma non sempre MySQL) e ASP o PHP, quindi mi troverei in difficoltà a pensare che le competenze di programmazione web non siano commerciabili o richieste, o che ha acquisito una notevole conoscenza del dominio grazie ai tuoi anni di esperienza.

Considera le opportunità dove ti trovi . Potresti sicuramente avere una conversazione con il tuo capo e trasmettere le tue aspirazioni e fargli sapere come potrebbe aiutarti a raggiungere alcuni dei tuoi obiettivi di competenza nel dominio. Certo, le preoccupazioni aziendali possono venire prima e potresti non essere in grado di lavorare al 100% solo sulla tua parte preferita del lavoro, ma quando il tuo capo sta cercando di decidere se dovresti fare X e Joe, il tuo collega dovrebbe fare Y, o viceversa, se sa cosa vorresti fare, può aiutare a influenzare il processo decisionale per allineare i tuoi compiti ai tuoi interessi.

Decidi in cosa ti piacerebbe specializzarti . Se ritieni che la tua posizione attuale ti stia incasellando in una specialità che non ti interessa continuare a lungo termine, inizia valutando quale altra specialità preferiresti perseguire. Considerare quali lingue sono popolari nella tua zona o quali lingue e competenze sono richieste negli elenchi di lavoro può aiutare a restringere l'elenco di scelte. Preferiresti essere un programmatore C #? Un programmatore PHP? Impara Java o C ++? Diventa un guru del database? Ecc.

Sviluppa le abilità nella specialità che desideri . Dopo aver scelto un'area su cui concentrarti, dovresti trovare un modo per sviluppare quelle abilità. Se il tuo capo non è interessato a usare queste lingue internamente, potresti prendere in considerazione un progetto al di fuori del lavoro. Non è necessario che sia un progetto impegnativo, ma qualcosa per riavere quell'altra lingua fresca nella tua mente. Forse potresti partecipare e contribuire a un progetto open source . È un ottimo modo per mettere piede nella porta per lavorare con una tecnologia nuova o diversa, con l'ulteriore vantaggio che il tuo codice sorgente non è proprietario, quindi puoi utilizzarlo in un portfolio per futuri datori di lavoro. Potresti anche prendere in considerazione l'adesione a un gruppo di sviluppo professionale per persone interessate alla tecnologia che ti interessa, se disponibile nella tua zona. O anche solo iniziare a leggere un paio di libri o cercare corsi di estensione universitaria per professionisti in cui insegnano quella lingua per rispolverarla.

Vendi la tua esperienza per tutto il suo valore . Alla fine, quello che stai cercando di mostrare è che, anche se, ad esempio, non hai 3 anni di esperienza nella programmazione C #, la tua nuova direzione professionale desiderata, hai sette anni di esperienza nella programmazione in altri linguaggi in cui hanno appreso tutti i tipi di abilità trasferibili (astrazione e scomposizione di problemi, manutenzione del codice esistente, lavoro con i team, apprendimento di nuove / diverse tecnologie, ecc. ecc. cercando, il che ti rende un candidato molto più fantastico nel complesso.

O forse, solo trovare uno sbocco per le abilità che non usi al lavoro sarebbe sufficiente per sentirti soddisfatto. Questa è la tua chiamata.

Tangurena
2012-09-22 07:17:55 UTC
view on stackexchange narkive permalink

Raccomanderò il libro Programmatore appassionato. La prima edizione del libro si intitolava "Il mio lavoro è andato in India". Gran parte del libro parla di come mantenere aggiornate le tue capacità identificando dove sei debole e come entrare in un posto migliore sia tecnicamente che esperto di affari. In un altro thread, ho pubblicato una serie di libri che consiglio a persone che hanno la "cosa" di sviluppo in esaurimento, ma non hanno le capacità per occuparsi di uffici e politica dell'ufficio.

A differenza delle altre risposte, consiglierò di ottenere un paio di certificazioni (scegli qualcosa che conosci) e di aggiornare i certificati ogni due anni. Essendo un'avventura irripetibile, i certificati non sono eccezionali: rappresentano un'istantanea del fatto che conoscevi la tecnologia X alla data Y. Come sforzo continuo, mostra ai potenziali datori di lavoro che sei al passo con le nuove tecnologie e non ti fermi su cosa hai fatto decenni fa. Sono anche uno sviluppatore e il mio obiettivo è .NET. Di conseguenza, ho i certificati Microsoft dal 1998 e ogni due anni ottengo una nuova certificazione di 4 lettere. Quindi posso indicare questa progressione come una prova che non mi allento quando si tratta di stare al passo con la tecnologia.

Ho passato la maggior parte degli ultimi sette anni a creare interfacce intranet per database o a creare report online

Il buzzwordy nome per questo è "business intelligence". Essere bravi con Crystal Reports o Pentaho (esiste una versione open source) o SSIS potrebbe essere una nuova direzione per intraprendere la tua carriera.

HLGEM
2012-09-25 03:24:24 UTC
view on stackexchange narkive permalink

Considera la possibilità di esaminare le posizioni degli analisti dei dati. Ci sono molte buone posizioni di pagamento in cui la conoscenza del database è fondamentale. Gli scrittori di report sono molto richiesti. Gli specialisti di BI sono molto richiesti.

kolossus
2012-09-22 04:17:15 UTC
view on stackexchange narkive permalink

Questo è il tuo spunto per iniziare la transizione al ruolo di responsabile della gestione / del team. Avvia la transizione. Questa attività non è amichevole per gli sviluppatori obsoleti che non sono aggiornati con la tecnologia all'avanguardia. Dopo sette anni in libertà con (presumibilmente) ricca esperienza e profondità, sei maturo e pronto per guidare un team o gestire progetti. Considera quanto segue per la tua transizione

  1. Voglio credere che in questi sette anni tu abbia acquisito alcune conoscenze specifiche del settore (come sviluppatore finanziario , Ho padroneggiato ISO 8583 , risoluzione, riconciliazione e arbitrato delle controversie). Quindi è necessario essere in grado di classificare alcune conoscenze / esperienze come specifiche del settore. La competenza in materia è inestimabile per l'ascesa a ruoli senior.

  2. Ottieni una certificazione indipendente dal fornitore . Qualcosa che non ha assolutamente nulla a che fare con la programmazione di base. Osserva questi tre PMP , ITIL V3 (Foundation è adeguato) , CISM e / o CISA . Queste certificazioni sono in ordine di responsabilità verso l'ente di certificazione. Con PMP o ITIL , puoi semplicemente ottenere la certificazione e iniziare subito ad esercitarti e iniziare a ottenere ritorni sul tuo investimento senza dover pagare una quota di mantenimento o crediti di ricertificazione annuali ecc. EDIT (chiarimento) Ottenere il certificato ti mette nel giusto stato d'animo e ti dà la formazione necessaria per assumerti maggiori responsabilità e un diverso punto di vista nel business.

  3. Scegli due o tre delle tecnologie che hai utilizzato in precedenza e dedica parti extra del tuo tempo libero per svilupparti ulteriormente in esse . A nessuno piace un tuttofare, maestro di nessuno . In qualità di responsabile / manager tecnico, è fortemente consigliabile che tu sia un esperto in materia o vicino a uno in una tecnologia specifica. Un generale non può guidare le sue truppe senza essere mai stato lui stesso sulla linea di tiro.

  4. In te stesso che non stai più cercando un lavoro di programmazione durante la tua ricerca di lavoro . Stai cercando ruoli di gestione del progetto, team / responsabile tecnico o sviluppatore senior . La ricerca di lavoro è tanto quanto ciò che c'è nel mercato quanto ciò per cui sei nel mercato. Non venderti allo scoperto o per quello per cui ti stai posizionando

7 anni non sono certo una grande esperienza e OP sembra insicuro delle sue capacità. Ora non è il momento per la gestione per lui. Ha bisogno di più tempo per crescere, di più per imparare, prima che possa aspettarsi di trasmettere la conoscenza agli altri.
@fecak Credo fermamente che 7 anni siano sufficienti per un ruolo di leader di squadra se ha avuto l'esperienza come leader di squadra. La ricchezza di esperienza, non solo abilità o numero di anni, è un fattore che contribuisce alla somma totale di un professionista. Ho incontrato persone che hanno visto, fatto e sperimentato di più in 5 anni di lavoro tecnico, di quanto molte persone possano sperimentare in 10. Se ha gestito una responsabilità sufficiente nei suoi 7 anni, perché non può spingere per un ruolo di leader di squadra al minimo indispensabile?
Dice che "non è veramente un esperto in una particolare area". Nella tua risposta, # 3 dice "a nessuno piace un Jack o all trades ..." Stai dicendo che quelli che non hanno esperienza dovrebbero guidare? Non voglio mancarti di rispetto, ma OP dovrebbe davvero cercare di sviluppare le sue capacità e non pensare nemmeno alla leadership a meno che non abbia una capacità innata di guidare. La sua domanda riguardava il miglioramento delle sue capacità di programmazione e l'essere commerciabili. Non è commerciabile come manager (nessuna esperienza nella gestione sembra). È in qualche modo commerciabile come programmatore, soprattutto se apprende abilità di programmazione più commerciabili.
dove OP menziona la sua esperienza di guida del team? Mi riferisco alla tua prima frase "se ha avuto l'esperienza come capo squadra". Cosa ti fa supporre quell'esperienza?
@fecak, non preoccuparti. Quello che ho detto al numero 3 credo sia legato a quello che hai detto. "In qualità di responsabile / responsabile tecnico, è fortemente consigliabile che tu sia un esperto in materia o vicino a uno in una tecnologia specifica", è il modo in cui ho completato la dichiarazione che hai citato. Ovviamente deve avere una profonda esperienza in campi specifici. È una transizione, non un lasciare il tuo lavoro oggi e fare domanda per il prossimo lavoro del pm. Transizione. Dovrebbe iniziare ora e probabilmente essere pronto a trasferirsi in 2-4 anni.
Grazie per il chiarimento. Non sarò rispettosamente d'accordo e dirò che ha più tecnologia da imparare prima di considerare il livello successivo. Sono contento che riesca a vedere opinioni diverse.
@fecak Lol. Nessun problema capo. Ecco perché siamo tutti qui.
Voglio solo sottolineare che è necessario avere un certo grado di [esperienza per richiedere la certificazione PMP (Project Management Professional)] (http://pm.stackexchange.com/q/6603/34). Ciò include 3 anni di esperienza nella gestione di progetti, nonché una laurea di 4 anni o una formazione sulla gestione dei progetti.


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