2010-11-04 15 views
11

Mi sono laureato presso la mia università quasi un anno fa. Da allora ho lavorato con molte tecnologie diverse, come PHP, JQuery, ASP.NET, C# ecc. Recentemente sono passato a un'azienda in cui il powerbuilder viene utilizzato per lo sviluppo.È necessaria la specializzazione nello sviluppo del software

Il problema è che non ho padroneggiato nessuna delle lingue di cui sopra. Posso fare cose con quelli, ma quando si tratta di compiti complessi, spesso mi diverto perché non ho abbastanza conoscenza profonda a riguardo. Dopo aver consultato il powerbuilder per alcuni giorni, ho la sensazione che ciò accadrà di nuovo perché la maggior parte del codice dell'applicazione è stata eseguita utilizzando una sorta di libreria che richiede un livello avanzato di abilità sul powerbuilder.

La mia domanda è: per me è corretto lavorare su tecnologie diverse senza padroneggiarne uno solo?

+0

Non è il posto giusto per questa domanda, ma penso che sia necessario specializzarsi in un'area/lingua/piattaforma specifica. Il mio è C# /. NET. – leppie

+0

Meglio su [Programmatori] (http://programmers.stackexchange.com). Anche se credo che troverai domande equivalenti già poste ... – dmckee

risposta

6

Se si sceglie di specializzarsi si sta prendendo un costo opportunità rendendosi non disponibili per altri tipi di lavoro. Ciò è positivo se puoi essere sicuro che la tua specializzazione scelta durerà per un periodo di tempo ragionevole. Tuttavia, puoi garantire (insieme a morte e tasse) che il software cambierà. Dovrai sempre imparare qualche nuovo quadro o approccio per rimanere aggiornato.

Quindi, per evitare di trovarti in un vicolo cieco intellettuale (i transputer sono ancora in uso ovunque?) Dovresti adottare una dottrina di apprendimento costante. L'apprendimento è solitamente divertente e quasi sempre porta alla gioia di scoprire qualche nuovo strumento o design. E non tenere mai questa conoscenza per te (ha solo un'emivita di 18 mesi lo stesso). Condividi ciò che hai imparato con gli altri.

Quindi per rispondere alla tua domanda: non specializzarsi.

4

Secondo il libro Pragmatic Programmer, uno dei suggerimenti per un buon programmatore è:

Invest Regularly in Your Knowledge Portfolio 
Make learning a habit. 

Questo significa che si deve sempre usare, o conoscere, le nuove tecnologie. Mentre diventare un maestro in una particolare tecnologia può essere gratificante, le tecnologie vanno e vengono, oggi più rapidamente che mai. Una padronanza in un particolare linguaggio di programmazione, strumento o API potrebbe renderti un guru oggi, ma domani potrebbe non significare nulla.

IIRC hanno anche consigliato agli sviluppatori di padroneggiare diverse tecnologie, ma restano versati in molti - almeno nel senso di averne sentito parlare, di aver giocato con loro, di essere in grado di impegnarsi in una conversazione su di loro.

Quindi, direi di sì - la specializzazione è necessaria, ma questo non significa che uno dovrebbe ignorare domini al di fuori del proprio.

+2

In altre parole: http://www.agilemodeling.com/essays/generalizingSpecialists.htm –

+0

Vorrei poterlo sviare, ma non ho l'autorizzazione necessaria :(. –

+0

Ora ho il privilegio: -d –

3

Non esiste una "risposta giusta" a questa domanda se non "dipende".

Troverai più facile trovare lavori migliori se sei specializzato, come lo chiami. Lo penserei più come lavorare con un linguaggio/una struttura specifici. Inoltre, è importante risolvere problemi difficili e acquisire esperienza, indipendentemente dalla lingua scelta.

Una volta accettato il suddetto come un truismo e specializzato, allora suggerirei di espandersi e imparare nuove lingue. Fortunatamente, le lingue diventano più facili da imparare quando hai più esperienza.

Tuttavia, più di ogni altra cosa, devi cercare di mantenere te stesso interessato per un lungo periodo di tempo. Questa è la vera chiave. Se hai interesse, continuerai ad apprendere e acquisire esperienza. Forse questo significherà che tu fai qualcosa che non è particolarmente rilevante per la maggior parte dei lavori, come scrivere un compilatore di lingue. O forse scoprirai che la fretta di lavorare per grandi clienti su grandi progetti è più importante di un linguaggio/framework specifico.

Quindi è tutto - continua a interessarti e continua ad imparare. E, dove possibile, concentrati sulla cosa che ti interessa, in modo da rendere più facile per te trovare lavoro in futuro.

+0

Vorrei poterlo sviare, ma non ho l'autorizzazione necessaria :( –

+0

+1 per aiutare IL TEAR DI HEAVEN –

2

È importante essere specializzati in almeno un linguaggio/piattaforma di programmazione, soprattutto all'inizio della tua carriera. Con specializzazione intendo leggere un libro su di esso, copertine per coprire e avere ampie mani sull'esperienza che si sta sviluppando per questo, al lavoro o partecipando a un progetto open source.

L'idea alla base di questo è che quando ti specializzi in una lingua, imparerai molti concetti che puoi portare su diverse lingue/piattaforme. ad esempio: il padrone di una lingua può padroneggiarne un altro con relativa facilità.

Inoltre nella tua carriera l'esposizione a molte piattaforme è una buona cosa, mentre inizi a passare dallo sviluppatore a uno sviluppatore/architetto e devi prendere decisioni su quale piattaforma utilizzare, i pro ei contro di ogni piattaforma e quindi no.

Quindi il mio consiglio è cercare di padroneggiare almeno una lingua, insieme ai suoi strumenti e strutture. Dopodiché puoi passare a piattaforme diverse. È importante utilizzare la piattaforma destra per il progetto corrente , sarà necessario determinarlo caso per caso, con l'assistenza di uno sviluppatore senior.

Problemi correlati