Quali aree di specializzazione all'interno della programmazione consiglieresti a un principiante [chiuso]

StackOverflow https://stackoverflow.com/questions/17320

  •  08-06-2019
  •  | 
  •  

Domanda

Sono uno studente che studia sviluppo software e ritengo che la programmazione, in generale, sia una materia troppo ampia per cercare di sapere tutto.Per essere abile, devi decidere su quali aree concentrare il tuo apprendimento e la tua comprensione.Alcuni set di competenze sono in sinergia tra loro, come lo sviluppo web basato sui dati e l'esperienza SQL.Tuttavia, tutta l'esperienza API Win32 nel mondo potrebbe non essere direttamente applicabile allo sviluppo Linux.Questo mi porta a credere che, come programmatore principiante, dovrei iniziare a decidere dove specializzarmi dopo aver acquisito una conoscenza generale dei principi di base dello sviluppo del software.

Questa è davvero una domanda in più parti:

  1. Quali sono le specializzazioni comuni nell'ambito della programmazione informatica e dello sviluppo software?
  2. Quale di queste specializzazioni ha più valore a lungo termine, sia come base per altre specializzazioni che/o come competenze commerciabili?
  3. Quali set di competenze si completano a vicenda?
  4. Ci sono aree di specializzazione che ostacolano la tua capacità di sviluppare altre aree di specializzazione.
È stato utile?

Soluzione

Ben, quasi tutti i programmatori esperti sono ancora studenti di programmazione.Non si smette mai di imparare nulla quando sei uno sviluppatore.Ma se stai davvero iniziando la tua carriera, dovresti preoccuparti meno della specializzazione.Tutte le API, i framework e le competenze che ti aspetti che ti diano un'esistenza a lungo termine sul campo non si realizzeranno.La tecnologia sembra cambiare molto e dovresti essere abbastanza versatile e flessibile da imparare qualsiasi cosa.La conoscenza acquisita su una piattaforma/api/framework non muore.Puoi applicare le competenze alla piattaforma/api/framework più grande successiva.

Detto questo dovresti semplicemente smettere di preoccuparti del futuro e concentrarti sulle basi.Strutture dati, analisi e progettazione di algoritmi, progettazione del compilatore, progettazione del sistema operativo sono il minimo indispensabile di cui hai bisogno.Inoltre dovresti essere disposto a tornare indietro e leggere i libri in quel campo in qualsiasi momento della tua carriera.Questo è tutto ciò che serve.Buona fortuna.

Scusate se sono sembrato un grande consigliere;ma è quello che penso.:-)

Altri suggerimenti

Non per rifiutare direttamente la tua premessa, ma in realtà penso che essere un generalista sia una buona posizione nella programmazione.Svilupperai sicuramente competenze in aree specifiche, ma è probabile che sia il prodotto di un interesse personale o di una necessità lavorativa.Nel corso del tempo, ciò che sei in grado di trasferire attraverso linguaggi e domini problematici diventa il cuore di ciò che rende buoni programmatori.

Penso che la domanda più importante sia:Quali aree di specializzazione ti interessano maggiormente?

Una volta che lo sai, inizia ad imparare in quell'area!

Penso che l'abilità più grande di tutte sia quella di adattarsi ai tempi, perché se il tuo datore di lavoro riesce a vedere questo potenziale in te, allora sarebbe saggio tenerlo stretto.

Detto questo, ti consiglierei di immergerti nell'area che ti piacerebbe. L’apprendimento è guidato dall’entusiasmo.

Dal momento che il mio attuale impiego è presso un provider Internet, ho trovato particolarmente utile la conoscenza del networking.Ma un giorno mi piacerebbe giocare con la grafica 3D (non necessariamente con i giochi).

Vai il più in profondità possibile iniziando da un ambiente, win32, .net, Java, Objective C...Qualunque cosa.

È importante comprendere a fondo come funziona X...in modo che tu possa tradurre gli stessi concetti in altri linguaggi o piattaforme/ambienti, se lo desideri.

"Esistono aree di specializzazione che ostacolano la tua capacità di sviluppare altre aree di specializzazione." Un po ', ma non credo niente di permanente.

Dato che anch'io sono relativamente inesperto (meno di 4 anni), provengo da una mentalità davvero OOP.Raramente sono uscito da .NET, quindi ho avuto difficoltà in un lavoro quando sono entrato in contatto con il codice incorporato.Con i programmatori embedded che temono la creazione di oggetti e la perdita di prestazioni dell'ereditarietà.Ho dovuto imparare l'ambiente da cui provenivano, memoria seriamente scarsa e tempi di orologio lenti.Quelli sono tempi per crescere, mi sono divertito di più perché ho capito abbastanza bene il mio settore.

Dirò che se scegli qualcosa in cui specializzarti per commerciabilità e denaro, probabilmente ti esaurirai rapidamente.Se inizi a specializzarti, scegli qualcosa che ti piace.Adoro la programmazione GUI e odio le cose lato server, il mio amico è l'opposto, ma entrambi amiamo il nostro lavoro.Se lui dovesse fare il mio lavoro, e io il suo, impazziremmo entrambi per la noia.

Come studente, consiglierei di dimenticare ciò che stai programmando e di concentrarti sul processo del software stesso.Comprendere come analizzare un problema e porre le domande giuste;impara ogni modello di progettazione che puoi e in realtà applicateli tutti acquisire una reale comprensione e apprezzamento della progettazione orientata agli oggetti;scrivi i test e poi codifica solo quanto necessario per farli superare.Penso che il modo migliore per imparare davvero sia programmare quanto più possibile: la lingua e il dominio non sono importanti, cerca sourceforge E carne fresca per qualsiasi progetto interessante e lasciati coinvolgere.Ciò che è importante è comprendere i fondamenti dell'ingegneria del software.

E sì, questo include C.Oppure assemblatore.Questo è il modo più semplice per comprendere bene come funziona il tuo computer e cosa sta effettivamente facendo il tuo codice di alto livello.

Infine, non smettere mai di imparare: l'architettura orientata ai servizi, l'inversione del controllo, i linguaggi specifici del dominio, la gestione dei processi aziendali mostrano tutti enormi vantaggi, quindi è importante essere consapevoli. Ma quando finisci di studiare e ti unisci alla forza lavoro che sa quale sarà la prossima grande novità?

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top