La conoscenza di .NET è sufficiente per una carriera di successo nel settore IT? [duplicare]

8

Recentemente, non so da dove ho avuto un pensiero nella mente che, "sto conoscendo abbastanza bene l'ambiente di sviluppo .NET per una carriera di successo nel settore IT". Dovrei imparare anche più lingue o .NET mi basterà per i prossimi 10-15 anni.

Per carriera di successo intendo guadagnare una vita decente e avere buone opportunità di crescita.

    
posta rsapru 19.11.2010 - 07:40
fonte

15 risposte

19

Se vuoi rimanere bloccato nello stesso posto per sempre, allora conosci .NET e dimentica tutto il resto.

Poiché la tecnologia si muove, così come gli ambienti di sviluppo e i linguaggi, anche gli sviluppatori devono muoversi.

Esempio (anche se sono un po 'strano), in 25 anni ho utilizzato attivamente APL, BASIC (più varietà di quelle che ricordo), Fortran (diverse varianti), C, C ++, Pascal, Delphi, Ada e un altro in più che non ricordo nemmeno.

Sono stati tutti progetti grandi e complessi. Quindi alcuni di questi erano su sistemi operativi (Windows, unix [es], linux, altri strani sistemi proprietari, IBM MVS / TSO, ecc.). E alcuni sono stati sull'hardware bare metal (molte cose incorporate), alcuni avevano un ambiente RTOS, altri no.

Il punto che sto facendo qui è che se impari nuove cose e ti muovi in nuove direzioni man mano che sorgono i bisogni, sarai più informato e più impiegabile.

Il pericolo di imparare solo una cosa è che l'obsolescenza si insinua su di te. Al giorno d'oggi non ci sono molti lavori per i programmatori di Fortran - o per i produttori di buggy-whip:)

    
risposta data 19.11.2010 - 08:42
fonte
16

“is knowing .NET development environment enough for a successful carrier in IT industry”.

No.

Probabilmente puoi avere una carriera solo conoscendo .NET, ma questa attitudine è l'antitesi dell'atteggiamento che ogni singolo sviluppatore di successo o di successo che abbia mai incontrato ha avuto.

I buoni sviluppatori sono curiosi, i buoni sviluppatori sono sempre affamati nell'apprendere nuovi modi di fare cose, nuove tecnologie, nuove tecniche. L'accumulo di conoscenze e knowhow è catnip per i buoni sviluppatori.

Gli sviluppatori malintenzionati non vogliono imparare nuove cose, mantenere la loro zona di comfort, mettere una scatola intorno ai limiti di ciò che sono preparati ad apprendere.

Quindi la risposta, di nuovo è no. Non perché ci sia qualcosa di sbagliato in .NET (la risposta sarebbe la stessa a seconda di quale tecnologia è stata menzionata) ma a causa dell'atteggiamento inerente alla domanda.

    
risposta data 19.11.2010 - 10:43
fonte
4

La tecnologia continua a evolversi nel tempo. Impostare gli obiettivi di carriera basati su un solo ambiente di sviluppo può essere rischioso. Credo che da 10 a 15 anni siano troppo lunghi per prevedere lo stato di qualsiasi tecnologia.
Dovremmo essere aperti a lavorare su qualsiasi ambiente di sviluppo nella nostra carriera di sviluppo software. Certo, potremmo avere i nostri preferiti e potremmo avere più esperienza rispetto alla lingua rispetto ad altri, ma conoscere l'altro ambiente di sviluppo aiuterà. Diciamo, se diventi manager del team che sta sviluppando software in ambienti diversi, almeno sarai in grado di guidare e comprendere gli interni del progetto in corso.

    
risposta data 19.11.2010 - 08:15
fonte
4

Molte di queste risposte si sono concentrate sulla questione dei linguaggi di programmazione. E sono d'accordo, ci saranno pochi programmatori di successo che imparano solo una lingua.

Ma la domanda mi sembra più sulla programmazione dei mondi. E puoi vivere con successo in un mondo. Se il tuo obiettivo è fare la programmazione Microsoft, non hai davvero bisogno di conoscere Java e i relativi framework. Ma potrebbe essere necessario passare da VB a C # a F #, ecc.

    
risposta data 19.11.2010 - 11:27
fonte
3

Ci sono due distinte serie di abilità coinvolte nello sviluppo di uno sviluppatore:

  1. Il Generico relativo a come analizzare, progettare e costruire applicazioni decenti
  2. Lo specifico relativo al set di strumenti che usi per implementare quelle applicazioni

Ci sono - o certamente sono state - persone che esistono ad un livello di "coder" e il cui skillset è limitato ad una singola lingua ma, penso, progressivamente meno così come ogni programmatore è (o almeno dovrebbe essere) previsto per essere più arrotondati.

Se hai il primo e la possibilità di adattarti a nuove varianti o set di strumenti alternativi, non dovresti avere problemi.

In questo momento io scrivo applicazioni .NET - ho fatto per 8 anni, probabilmente continuerò per un tempo lungo ... ma così facendo ho anche bisogno di capire HTML, SQL, XML , XSLT e JavaScript tra le altre cose. Sto imparando le meraviglie di jQuery e anche di XAML. Sto guardando F # (tra le altre cose) perché potrei utilmente essere in grado di applicarlo. Né il framework .NET né le lingue che è possibile utilizzare sono fermi. E non devo dimenticare PowerShell ...

Prima c'era VB.OLD e alcuni Turbo Pascal e prima c'era una varietà di cose.

Ho anche, negli ultimi 25 anni, guardato e imparato su una varietà di diversi settori e imprese mentre mi sforzo di imparare i domini mentre sviluppo soluzioni per loro. Ho anche una comprensione discreta (anche se non allo standard di un sysadmin) di sistemi e reti e di far parlare le cose l'un l'altro - semplicemente dalla necessità di essere in grado di avere le piattaforme su cui sviluppare.

Proprio qui, in questo momento, .NET è una piattaforma ampia e capace con linguaggi e strumenti decenti e un posto da utilizzare come ovunque - più importanti (penso) sono le competenze più ampie, unit-testing, metodologie agili , applicazione di schemi (comprensione dei principi fondamentali come inversione di controllo) e buone pratiche (uso di VCS e server di compilazione e simili): si tratta di competenze portatili che devono essere tenute aggiornate man mano che le cose si sviluppano.

Potrei andare avanti (nel caso non l'avessi notato) - ma la semplice risposta è che fintanto che ti accorgi di essere uno "sviluppatore che lavora sulla piattaforma .NET" piuttosto che uno "sviluppatore .NET" ( o peggio di uno "sviluppatore C #" starai bene.

    
risposta data 19.11.2010 - 09:49
fonte
3

IMHO: Peter Norvig ha già risposto a questa domanda molto meglio di chiunque altro:

Learn at least a half dozen programming languages. Include one language that supports class abstractions (like Java or C++), one that supports functional abstraction (like Lisp or ML), one that supports syntactic abstraction (like Lisp), one that supports declarative specifications (like Prolog or C++ templates), one that supports coroutines (like Icon or Scheme), and one that supports parallelism (like Sisal).

    
risposta data 19.11.2010 - 10:34
fonte
2

Prime cose - tempi. .NET non ha intenzione di durare 40 anni ma scoprirai che in modo relativamente naturale segway in qualcos'altro mentre muore quindi presumo tu voglia dire "sta conoscendo .NET abbastanza mentre .NET è in giro".

Dipende da come si definisce successo.

Se intendi, guadagnerai un sacco di soldi, inizierai a fare un lavoro interessante e lavorerai in alcune aziende OK con persone decenti, allora sì. Le tecnologie MS tendono a "cluster" in quanto le aziende utilizzano spesso una piattaforma MS completa, quindi .NET da solo coprirà una grossa fetta dei loro bisogni e potrete farne una carriera e molte persone lo faranno. Inoltre, qualsiasi cosa tu possa leggere sul declino della SM sono ancora molto vive e non vanno da nessuna parte in fretta, quindi ci saranno molte opportunità per il prossimo futuro.

Tuttavia, probabilmente scoprirai che ti piacerebbe che un programmatore vedesse qualcosa di più del modo in cui MS fa le cose e che potrebbe darti una comprensione più profonda di quello che stai facendo, anche se decidi di portare quella esperienza torna a lavorare come sviluppatore .NET.

Quindi puoi avere successo - sì. Potresti potenzialmente avere più successo e forse più felice se vedessi cos'altro era là fuori - di nuovo, sì.

    
risposta data 19.11.2010 - 11:18
fonte
2

Ci sono molti posti di lavoro per chi fa COBOL, e .NET rimarrà per ragioni simili. Suppongo che decidere di diventare l'equivalente di un programmatore COBOL nel 2025.

Per te, la carriera è solo un metodo per guadagnare denaro per tutta la vita, o è almeno in parte un viaggio di esplorazione e apprendimento? Personalmente, penso che la vita sia abbastanza breve da non voler spendere così tanto semplicemente facendo soldi, e quindi sono contento di essere in questo business così come sono.

    
risposta data 19.11.2010 - 16:39
fonte
2

Pur sapendo che .Net può essere un vantaggio, dubito strongmente che si possa rimanere solo all'interno di .Net e non finire per entrare in un linguaggio specifico dell'interfaccia utente come JavaScript o qualche lavoro di database, possibilmente T-SQL o PL / SQL per dare un paio di esempi. Mentre questi possono essere considerati all'interno di un ambiente di sviluppo .Net in senso lato, sono altre abilità tecniche che possono essere utili per garantire l'occupazione.

Farei anche attenzione a cercare di diventare troppo specializzato in quanto la piattaforma .Net potrebbe crescere in una certa misura in una certa misura. Ci possono essere momenti in cui una nuova versione del framework porta in qualche altro grande cambiamento, come il modo in cui la versione 3.0 ha aggiunto WPF e WCF per fornire un paio di esempi. In altre parole, anche all'interno di .Net possono esserci nuove cose che possono cambiare le cose nei prossimi 10 anni.

    
risposta data 19.11.2010 - 20:47
fonte
1

Se ti rifiuti di imparare qualcos'altro allora potrebbe (e solo potrebbe) non essere sufficiente.

Ora se espandi la domanda a "Conosco abbastanza bene le tecnologie basate su Microsoft e .Net ..." allora la risposta è un sonoro sì! In base.

Mi sto avvicinando a 20 anni solo conoscendo le tecnologie Microsoft (VB then .Net). Fai una bella vita e goditi immensamente il mio lavoro. Attendo ogni giorno andando al lavoro e sapere che ci sono molti posti di lavoro là fuori che mi assumerebbe lo sviluppo di piattaforme .Net / Microsoft.

Non sento il desiderio di apprendere nuove piattaforme.

Quindi di nuovo non desidero ottenere un altro lavoro. Mi piace stare nella stessa piccola azienda che offre soluzioni personalizzate e mirate a una popolazione diversificata.

Non sto dicendo che non imparerò mai una piattaforma. Potrebbe essere necessario se tutto va all'inferno. E ho letto sempre i libri Java / C ++ / LanguageWhatever. Non capisco molto della piattaforma di cui parla il libro, ma le buone idee attuali si incontrano perfettamente. Efficace Enterprise Java è uno che torno indietro di volta in volta. Ce ne sono altri

Trovo divertente che così tanti che dicono qualcosa all'effetto di "pre-ottimizzazione è la radice di tutti i mali" diranno anche che è necessario pre-ottimizzare la tua carriera.

All'interno di .Net è possibile eseguire procedurali, OOP, funzionali, basati su insiemi (sql), ecc. All'interno di .Net è possibile implementare tutti i modelli di progettazione che si potrebbero immaginare. Do P2P, Client Server, Web Whatever.0 ecc. Ecc.

Saresti un programmatore migliore se imparassi una piattaforma / un framework diverso? Ehh, forse ma probabilmente no. Nessuna ricerca che io conosca dice che lo farai. Quindi non ho intenzione di sprecare il mio tempo prezioso per imparare qualcosa che probabilmente non userò mai e invece mi concentrerò sull'apprendimento di ciò di cui ho bisogno per rendere felici i miei clienti e il mio capo. Questo sarà probabilmente sufficiente.

    
risposta data 19.11.2010 - 20:11
fonte
0

Sono d'accordo con FarmBoy.

Le persone che conoscono solo HTML / PHP possono avviare un'attività e guadagnare una discreta quantità di denaro.

Sono d'accordo anche con Quickly_now, anche se .NET non è qualcosa che diventerà facilmente vecchio ..

    
risposta data 19.11.2010 - 15:00
fonte
0

Sì. Non ho dubbi.

Ma non è necessariamente più facile che uscire dal negozio di MS. Da quando è stato avviato .NET, abbiamo dovuto continuare ad apprendere. Le nuove lingue stanno cavalcando il quadro. Le nuove tecnologie (LINQ, Silverlight, WF, ecc.) Continueranno a modificare la tecnologia. VB e C # stanno crescendo insieme, ma stanno anche crescendo.

Il "conoscere .NET" include SQL Server? Dipende dal tuo lavoro, ma sì - dovresti considerare che lo fa. "Conoscere SQL Server" include conoscere sia DTS che SSIS? Sì, oggi lo fa.

Tra quindici anni ci sarà ancora un bazillion di posti di lavoro ben pagati per le persone che conoscono queste cose e hanno tenuto il passo con la tecnologia ma si trasforma? Non ho dubbi.

    
risposta data 19.11.2010 - 20:37
fonte
0

Un "sì" qualificato.

Dopo aver letto altre risposte, cercherò qualcosa di più pratico delle risposte un po '"ideali"

Devi separare professionisti e hobby.

Oltre ad apprendere una mezza dozzina di lingue e modi di pensare ti rende un individuo migliore, non sei pagato per imparare, ad esempio, Haskell se sei impiegato a magnificare un sito intranet aziendale in un negozio di MS

Una parte di tale accordo sarebbe che il datore di lavoro ti faciliti nell'addestramento delle tue specialità e in generale delle abilità di sviluppo: successiva versione .net, tecniche OO generali, diventa Scrum Master, passa a SQL Pass ecc.

Sentiti libero di imparare Python, Perl, OpenGL, qualunque cosa nel tuo tempo libero per il tuo divertimento e le tue soddisfazioni. Conosco molte persone che fanno questo.

Riepilogo: Sì, puoi, ma non rinunciare a "interessi esterni"

    
risposta data 19.11.2010 - 21:13
fonte
0

William Hung ha interpretato il suo cattivo canto su American Idol in una carriera da celebrità C-list. Ciò non significa che in genere consiglierei a qualcuno di perseguire il canto cattivo come fondamento di una carriera nell'intrattenimento. Puoi avere una carriera di successo come sviluppatore solo conoscendo .Net? Certo, migliaia di persone lo fanno. Ciò non significa che sia una buona strategia di carriera.

Temo che la tua domanda sia pericolosamente vicina a chiedere "Qual è il minimo che posso fare per diventare uno sviluppatore di successo?". Il guaio è che il mercato del lavoro software è competitivo, e lo è sempre di più ogni giorno. Mirare a fare il minimo è una ricetta per una carriera molto vulnerabile.

Una domanda molto più ragionevole (e più difficile) è come si assegna il tempo tra la padronanza della piattaforma primaria e il mantenimento di aggiornamenti importanti su altre piattaforme. Ovviamente non puoi sapere tutto e saresti ben motivato a dedicare la maggior parte del tuo tempo allo sviluppo della tua esperienza .Net. Ma semplicemente adottando una regola che ignori tutte le altre piattaforme è pigro. Se hai una carriera solida, devi continuamente esercitare il tuo giudizio e le tue capacità critiche per capire quali sviluppi in quali piattaforme saranno significative per il settore.

    
risposta data 20.11.2010 - 23:54
fonte
0

No.

Per rimanere sempre al passo con il mondo IT in costante movimento, devi costantemente imparare nuove tecnologie. Se ti concentri solo sulla piattaforma .NET, questo ti limiterà.

    
risposta data 21.11.2010 - 16:33
fonte

Leggi altre domande sui tag