Domanda:
Lavorare con molti linguaggi di programmazione - Fare troppe cose diverse è un male per la mia carriera?
Vinay
2013-01-08 13:43:24 UTC
view on stackexchange narkive permalink

Lavoro come ingegnere del software e ho un'esperienza totale di un anno e sei mesi. Per il primo anno ho lavorato come sviluppatore Web con PHP e JavaScript. Con il mio interesse ho lavorato con Java negli ultimi 6 anni, come l'ho imparato dai tempi della scuola.

Ho pensato che avrei dovuto prima trovare un lavoro e mi sono unito come sviluppatore Web con PHP. Questo mi ha aiutato molto. Ho davvero imparato a conoscere PHP, JavaScript, HTML e CSS. Ho anche lavorato su Java in parte con altre società. Ora nel luogo in cui sto attualmente lavorando, sono abituato a tutte le tecnologie che conosco (sopra menzionate) e ho imparato Android. Si dice che impari ActionScript e che aumenta con l'apprendimento di nuove tecnologie come iOS. Sento che sono troppe cose! Mi sento come se stessi sbagliando.

Ora sono davvero preoccupato per questo, se avrà un impatto negativo sulla mia crescita professionale. Imparare cose nuove è davvero buono, ma voglio davvero andare sempre più in profondità (specialmente con Java) in una cosa.

Voglio davvero sapere se lavorare su diverse tecnologie influisce o meno sulla mia carriera, o è un vantaggio. È bene continuare su questa strada o cambiare carriera e concentrarsi su un'unica tecnologia?

La domanda centrale qui è generalizzabile a tutti i campi tecnologici ed è in effetti una ** davvero ** buona domanda secondo me. Tuttavia, suppongo che le risposte siano piuttosto dirette al software al momento.
La domanda * potrebbe * essere generalizzata a campi al di fuori della tecnologia, ma * come affermato * è "localizzata" nello sviluppo del software.
Questo scambio ospita a volte un atteggiamento così cattivo. Ignora questi commenti stupidi.
Questa è una variazione di quali abilità dovrei imparare e quindi fuori tema.
I miei attuali progetti * software * al lavoro usano: ARM assembly, C, C ++, Java, Python, Bash, Perl, SQL, JavaScript (Angular + node), GNU Make e probabilmente pochi altri.—— Questo non include gli strumenti per il mio lavoro sull'hardware.—— Se i progetti sono suddivisi in componenti semplici, l'apprendimento dello "strumento giusto" per il lavoro è più rapido e semplice rispetto all'utilizzo dello strumento sbagliato.—— Per i progetti di gruppo, è importante che tutti parlino lo stesso linguaggio (di programmazione), il che significa che insegno un po 'di GNU Make e Bash a metà del team, ma per altre cose - usa quello che funziona.—— In realtà sono un tipo C / C ++.
Cinque risposte:
jmort253
2013-01-08 14:33:01 UTC
view on stackexchange narkive permalink

Nella mia esperienza di lavoro per un'azienda con una mentalità da startup, concentrarsi troppo su una singola piattaforma, stack o tecnologia potrebbe essere dannoso e impariamo sempre cose nuove, soprattutto perché le tecnologie cambiano così rapidamente.

C'è ancora lo sviluppatore occasionale che incontro su Internet che concentra le sue energie su tecnologie vecchie di dieci anni che sono obsolete e che stanno lentamente svanendo.

A seconda di dove ti trovi stai lavorando e quali sono i tuoi obiettivi di carriera, potresti trovare successi migliori che dimostrano che sei in grado di acquisire, memorizzare, richiamare ed elaborare rapidamente la conoscenza delle nuove tecnologie e utilizzare quella conoscenza in modo efficace per costruire grandi cose. I datori di lavoro che rientrano in questa categoria, come le startup e le piccole imprese, sembrano preferire candidati diversi e che possiedono queste caratteristiche.

Ora, anche se lavori per un'azienda che si concentra su un'unica tecnologia, che si tratti di una piccola impresa o di un'impresa, considera che sebbene Java sia una grande piattaforma che molto probabilmente non verrà eliminata presto, è comunque una buona idea diversificare per un altro motivo: Quando impari altri linguaggi di programmazione, inizi a collegare i punti insieme molto meglio e padroneggiare in modo più approfondito determinati concetti. Ora, non sono uno sviluppatore Python, ma il solo passare del tempo a giocare con alcune demo di Django mi ha aiutato a capire di più su cosa fanno i servlet in Java, dal momento che Django risolve questo problema in un modo leggermente diverso.

In breve, se la tua conoscenza è più diversificata, acquisirai più capacità di problem solving che ti aiuteranno a lavorare con successo con la tua lingua preferita. Non limitarti a non immergere almeno l'alluce in acqua e almeno a familiarizzare con altre tecnologie.

Voglio anche aggiungere che questo non è vero solo per la programmazione. Se sei un tecnico automobilistico specializzato in Toyota, ma hai anche lavorato su Ford, Chevrolet e Honda, probabilmente sarai un meccanico migliore, un risolutore di problemi migliore, di qualcuno che lavora solo su una particolare marca / Modello. Vedere le cose da una prospettiva diversa è la chiave per diventare un esperto nel tuo campo.

La tua risposta mi aveva fatto provare sollievo per la mia vita. Vorrei avere la possibilità di darti +1000 .. Grazie mille @jmort253.
+1 per "Vedere le cose da una prospettiva diversa è la chiave per diventare un esperto nel tuo campo".
In breve: è piuttosto vero il contrario.Aggiungerei anche che concentrarsi su una sola tecnologia ti renderà praticamente inutile quando diventerà obsoleto
seeknew
2013-01-08 17:42:36 UTC
view on stackexchange narkive permalink

Il tuo motto dovrebbe essere "Jack of all trades, but master of (at least) ONE".

Sebbene sia positivo imparare varie tecnologie, penso che dovresti anche concentrarti su una tecnologia e andare più in profondità e padroneggiarlo al meglio delle tue capacità.

Una volta che avrai una comprensione più profonda di una tecnologia, sarai in grado di apprezzare i vantaggi e i limiti delle varie tecnologie. Questo ti renderà una persona tecnica più matura che può apprezzare il motivo per cui qualcuno sceglie una particolare tecnologia.

Man mano che acquisisci maggiore esperienza, ti aiuterebbe anche a saperne di più sui vari sistemi operativi (OS), il hardware su cui girano, perché un'azienda sceglie una particolare tecnologia / sistema operativo / hardware ecc.

In definitiva ti renderai presto conto che una persona che è indipendente dalla tecnologia e che può facilmente acquisire nuovi linguaggi / tecnologie e che può esserlo produttivo in un tempo minore sarà il più ricercato.

Per dare una prospettiva diversa, diciamo ad esempio Lavoro in un'attività di ristorazione come chef specializzato in cucina cinese. Mentre cerco di eccellere al meglio delle mie capacità per padroneggiare i vari aspetti della cucina cinese, mi aiuterebbe anche a capire le altre cucine del mondo come italiana, indiana, giapponese, ecc. Questo non solo mi aiuterebbe ad essere più utile ai miei ristorante come cuoco versatile, mi aiuterebbe anche a sperimentare con la mia abilità di base della cucina cinese e migliorarla o provare qualcosa di completamente nuovo. Ad un altro livello nello stesso ristorante, posso anche provare a dilettarmi nel lavorare ai tavoli, gestire le prenotazioni dei tavoli, gestire i clienti, il loro ego e i loro ordini, lavorare come cassiere, gestire i fornitori ecc. Le competenze apprese in queste aree potrebbero aiutare vado in un ruolo completamente diverso come direttore di ristorante o potrei iniziare il mio ristorante.

molte grazie. Mi fa davvero sentire così felice di essere andato sulla strada giusta. Devo saperlo grazie a voi ragazzi
Hey seeknew, questa è un'ottima risposta. +1, ma pensi che la tua valutazione possa essere applicata anche ad altri campi? Se puoi [modificare] il tuo post ed eventualmente aggiungere un paragrafo su quell'argomento, possiamo usare le risposte a questa domanda per determinare in modo più definitivo se sarebbe in tema o fuori tema (e un possibile candidato per la migrazione a Programmers SE ). Questo non è richiesto, ovviamente, ma se * puoi * aggiungere una prospettiva generalizzata, credo che possa aiutarci a sostenere che la domanda può rimanere. :) In bocca al lupo!
HLGEM
2013-01-09 00:47:04 UTC
view on stackexchange narkive permalink

Ci sono molteplici percorsi di carriera aperti a ogni sviluppatore e quello che scegli dipende da te.

C'è il Jack of Trades: questa persona conosce le basi di molte tecnologie ed è specializzata nell'apprendimento nuove cose rapidamente. Tendono a raggrupparsi intorno alle parti dell'industria in cui il cambiamento è più rapido e spesso si trovano nelle start-up.

C'è l'esperto. Questa persona approfondisce almeno una e talvolta due o più tecnologie mentre acquisisce almeno una conoscenza di base delle tecnologie circostanti. Questa è la persona che alla fine vorrà scrivere libri e fare presentazioni sulla sua tecnologia scelta. Spesso finiscono come consulenti.

C'è lo specialista. Questa persona tende a concentrarsi su una sola tecnologia e una meno comune di quanto impara l'Esperto. Queste sono le persone che sono programmatori di database, programmatori di linguaggi statistici, ecc. Tendono a lavorare solo per grandi organizzazioni che possono permettersi di avere persone specializzate. Gli specialisti tendono a fare più soldi di Jack of All Trades, ma le loro opportunità di lavoro sono più limitate.

Poi c'è l'esperto in materia. Questa è una persona che invece di specializzarsi in una lingua, è specializzata in un settore o in un tipo di lavoro come i sistemi integrati o la finanza. Apprendono in profondità il loro settore e qualsiasi linguaggio di programmazione di cui hanno bisogno per il loro lavoro. Vedono i linguaggi di programmazione come uno strumento per portare a termine un determinato lavoro, non come un risultato finale in sé. Spesso lavorano in campi in cui è necessaria molta conoscenza aziendale per scrivere buoni programmi come nel software di contabilità o nella programmazione medica.

DA.
2013-01-09 02:43:29 UTC
view on stackexchange narkive permalink

Alcune buone risposte qui.

In generale, ci sono più percorsi di carriera nel settore tecnologico. Alcuni si basano su conoscenze specialistiche, altri su un'ampia conoscenza generale.

Quale scegliere è davvero una domanda per te e per la tua personalità. Alcune persone amano trascorrere 20 anni concentrandosi su un'area di nicchia della tecnologia e diventandone degli esperti. A condizione che l'area di nicchia non diventi obsoleta, è probabile che troverai sempre un lavoro.

Alcune persone (come me) odiano fare la stessa cosa giorno dopo giorno e prosperano indossando più cappelli. Può essere frustrante non avere mai una competenza, ma ho scoperto che le persone sono sempre alla ricerca del mio tipo di set di abilità (generalista) e ha funzionato per me.

Questi sono spesso chiamati a forma di T e Persone a forma di io. Le persone a forma di T hanno una profonda conoscenza di un'area, ma possono comunicare ampiamente attraverso altre aree di conoscenza. Ho formato le persone che tendono ad essere esperte in un'area e solo in un'area, e preferisco non avventurarsi fuori da quella.

Philipp Murry
2014-06-25 15:57:57 UTC
view on stackexchange narkive permalink

Dici di avere "un'esperienza totale di un anno e sei mesi". Sei molto nuovo in questo campo, quindi il mio consiglio sarebbe questo: Non specializzarti troppo presto!

Potresti essere interessato a come funziona Java nei suoi interni e potresti pensare che questo è quello che vuoi fare da molto tempo, ma ci sono due problemi:

  • Come puoi sapere che vuoi specializzarti in qualcosa, se non ti metti in contatto con altre tecnologie?
  • Come dovresti diventare un esperto quando ti manca così tanta conoscenza contestuale?

Con quest'ultima intendo che l'informatica è un campo in cui molti le cose sono collegate tra loro: se vuoi davvero capire come viene gestita internamente la gestione della memoria in Java, allora è probabilmente bene sapere come viene gestita nei programmi C. Lo stesso con multi threading, servlet, database e così via. Se vuoi essere un professionista in qualcosa, assicurati di avere almeno una buona comprensione anche di altri concetti di base. Ho imparato così tanto programmando in C e imparando cosa fa effettivamente un kernel del sistema operativo, che mi ha davvero aiutato a diventare migliore in qualsiasi altra cosa relativa al computer; che si tratti di reti, programmazione, sicurezza e così via.

Quindi non restringere la tua competenza dopo solo 1,5 anni di esperienza, questo è MOLTO troppo presto.

questo sembra semplicemente ripetere i punti fatti e spiegati in una [risposta precedente] (http://workplace.stackexchange.com/a/7574/168) pubblicata più di un anno fa. Nota che una delle regole per rispondere su questo sito è: [Non ripetere altri] (http://meta.workplace.stackexchange.com/q/255/168)


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...