Come scegliere un linguaggio di programmazione per imparare oggi e ottenere un ottimo lavoro in 2 anni

Possono essere necessari anni di lavoro dedicato per diventare un vero programmatore; quindi c'è un modo per scegliere la lingua giusta per iniziare da oggi, per essere assunto domani?

Possono essere necessari anni di lavoro dedicato per diventare un vero programmatore;  quindi c'è un modo per scegliere la lingua giusta per iniziare da oggi, per essere assunto domani?
Annuncio pubblicitario

La codifica non è facile; o almeno, l'apprendimento del codice non lo è, soprattutto quando si inizia da zero. Possono essere necessari anni di lavoro dedicato per diventare un vero programmatore; quindi c'è un modo per scegliere la lingua giusta per iniziare da oggi, per essere assunto in un paio d'anni?

Per scoprirlo, ho portato questa domanda al nostro gruppo di esperti residenti: mentre scriviamo tutti, molti di noi hanno anche esperienza di programmazione. Ciò che è seguito è stata una discussione interessante che vorresti leggere prima di intraprendere il tuo viaggio per diventare un programmatore professionista.

Un metodo per la follia?

crazy

Non è la prima volta che discutiamo la scelta di un linguaggio di programmazione: nel 2011 abbiamo discusso quale linguaggio di programmazione dovresti imparare per lo sviluppo del software? Quale linguaggio di programmazione dovresti imparare per lo sviluppo del software? Quale linguaggio di programmazione dovresti imparare per lo sviluppo del software? Quando inizi nel percorso di programmazione, è importante investire saggiamente il tuo tempo nella scelta di imparare qualcosa che ti avvantaggerà nell'immediato futuro con risultati visibili sulla tua piattaforma di ... Leggi di più, così come quale dovresti imparare per la programmazione Web Quale linguaggio di programmazione imparare - Programmazione Web Quale linguaggio di programmazione imparare - Programmazione Web Oggi daremo un'occhiata ai vari linguaggi di programmazione Web che alimentano Internet. Questa è la quarta parte di una serie di programmazione per principianti. Nella parte 1, abbiamo appreso le basi di ... Per saperne di più.

Ma questo non riguarda un consiglio (come "vai con JavaScript") ma una metodologia - qualcosa che le persone potrebbero utilizzare in due anni da oggi, in teoria . Come capire in realtà quali lingue sono in aumento? Quali metriche della popolarità del codice sono affidabili e quali non fidarsi (e perché)? Quali sono i migliori siti web di proiezione salariale? GitHub è un'indicazione o no?

Ad esempio, oggigiorno non troverai nessuno entusiasta di PHP - ma molti, molti sviluppatori stanno facendo un buon codice PHP, ed è ancora la maggior parte di ciò che funziona sul Web. Quindi imparare PHP ora è una cattiva idea? (Probabilmente…)

Non c'è una sola lingua

choices

È qui che James, il nostro sviluppatore Web e tecnico, è intervenuto per dire questo:

I programmatori generalmente non imparano comunque una singola lingua. Chiunque percorra la classica via CompSci finirà con un sacco di Java, un po 'di Haskell, alcuni Prolog se seguiranno un corso di intelligenza artificiale, qualche nodo se seguiranno un corso di ingegneria all'avvio, alcuni di PHP se impareranno il tradizionale CMS, alcuni .NET se lavorano in qualche ufficio aziendale senza valore, alcuni JavaScript se fanno web design, alcuni C ++ se fanno game design, e infine alcuni Ruby se vorrebbero sprecare la loro vita con lingue oscure che nessuno in realtà utilizza.

Non esiste una "metodologia" e non si sceglie una lingua da apprendere: si sceglie!

Imparare una lingua è come mangiare solo digestivi per un anno quando c'è un intero corridoio di biscotti. E seriamente, chi sceglie i lavori in base al salario previsto?

Ma cosa succede se non si impara CompSci?

Ho risposto a James, dicendo:

Ecco la cosa: questo non è per qualcuno che prende la classica via CompSci. A giudicare dall'esplosione del MOOC e dal numero di corsi di programmazione online, molte persone iniziano a scrivere codice da zero. E quando inizi così, hai bisogno di una lingua da cui partire. Forse te ne andrai più tardi, ma quella prima lingua sarà un investimento critico di tempo e fatica, quindi è meglio che ne valga la pena.

Ciò che ha risuonato di più con me è l'ultima cosa che ha detto - che sceglie i lavori secondo il salario previsto . Penso che alcune persone lo facciano, ma penso anche che non sia un ottimo modo per farlo.

Quando si arriva a questo, le persone stanno cercando di capire quale lingua iniziare, e l'uso che la lingua ottiene nel mondo reale ha un peso in quella decisione (non solo quanto sia facile imparare - Pascal ...).

Scegli prima un progetto, poi una lingua

trending-projects

James è tornato con questo:

Bene, forse uno dei punti di questa metodologia dovrebbe essere: non avere una metodologia. Quando mi sono imbattuto per la prima volta in PHP, era attraverso WordPress. Ho avuto un background CompSci nella programmazione e in alcune esperienze di web design, ma non avevo mai visto PHP in precedenza. L'ho imparato perché WordPress sembrava abbastanza semplice, e volevo pasticciare con WordPress. Non perché avevo guardato un elenco di tecnologie di tendenza, o stavo considerando una mossa di carriera, ma perché qualcosa di interessante volevo sapere sull'usarlo.

Se qualcuno stava cercando di imparare a programmare puramente per gli scopi di un lavoro, fallirebbe. Se guardassero solo perché amano il suono dell'apprendimento su come programmare qualcosa, non importa quale linguaggio hanno scelto fintantoché potrebbe suscitare la loro passione.

Un altro motivo per scegliere un progetto

Questo è quando Simon è intervenuto con un consiglio pragmatico:

Innanzitutto, dipende se vuoi sviluppare per il Web o software "standard".

Per quest'ultimo, Java è abbastanza buono:

  • OO semplice
  • Multipiattaforma (Linux, Windows, Mac, Android)
  • Sintassi simile a molti altri linguaggi di programmazione (JS, C #).

Non posso dire molto sullo sviluppo Web, anche se HTML / JS / CSS / PHP / MySQL sembra funzionare per molte persone. Anche Python.

Ma sì, il "farti un ottimo lavoro in 2 anni" mi irrita anche me. Sottolinea l'aspetto sbagliato dell'apprendimento della programmazione. Una volta che puoi programmare, è abbastanza facile ottenere il blocco di un'altra lingua.

Essere assunti per conoscere una lingua specifica è simile a essere assunti come PA per sapere come gestire MS Excel. Se questa è la qualifica principale, probabilmente sarà un brutto lavoro.

Non apprendere una lingua: apprendi la progettazione del software

software-design

Stava iniziando a formarsi un consenso. Bruce Epper, della fama di MakeUseOf Answers, ha avuto questo da dire:

Il linguaggio in sé non ha molta importanza. Quando si tratta di programmare lavori, gli aspetti più importanti tendono a comprendere la progettazione e l'architettura del software di base, il processo di codifica in generale, la conoscenza dei modelli di progettazione, la conoscenza di quando utilizzarli e come applicare un modello specifico all'attività in questione - tutto ciò è indipendente dalla lingua. Una volta che un programmatore li conosce, prendere una lingua completamente nuova è un gioco da ragazzi.

Esistono anche la gestione del progetto, la documentazione e le capacità di scrittura che sono più importanti per un programmatore rispetto alla conoscenza di una lingua specifica.

La base su cui stai costruendo le cose: inglese o latino?

Questo è stato quando Guy è intervenuto per ricordarci che la lingua ha importanza, in una certa misura:

latin

Il linguaggio in sé non è la cosa più importante per ottenere un lavoro, sono d'accordo. Tuttavia, la base su cui stai costruendo lo fa. Dato che ho eseguito entrambe le rotte, ho intenzione di confrontare i linguaggi di programmazione con le lingue umane.

Python sembra essere l'inglese di oggi. Sempre di più, vedo che Intro CompSci e i corsi di programmazione iniziano con Python anziché con Java, che sembrava essere più popolare per circa 10 anni. Puoi fare molto di quello che vuoi fare con Python.

C ++ è il latino del mondo di programmazione. Se lo impari, puoi imparare i principi sottostanti di una moltitudine di lingue e apprenderli più facilmente. Python sarebbe un gioco da ragazzi se sei ben fondato in C ++.

Che cos'è un "lavoro di programmazione", comunque?

Adesso è stato il turno di Matthew, a ricordarci che essere un programmatore può significare cose molto diverse per persone diverse:

suit

Una cosa di cui non si è parlato a lungo è il tipo di lavoro di programmazione che si vorrebbe.

Non sei troppo preoccupato per i vantaggi offerti ai dipendenti Startup? Vuoi stabilità e un pacchetto retributivo decente, ma nessuna equità? Ti piace indossare abiti da cerimonia business? Impara C #, Java o COBOL. COBOL ha anche il vantaggio di avere ogni singola applicazione bancaria mai concepita (l'iperbole, ma tu hai l'idea) di esservi stata scritta. Con la maggior parte degli sviluppatori COBOL in pensione o morti, c'è molta richiesta per gli sviluppatori COBOL con alcuni salari a sei cifre! Tuttavia, lavorerai su basi di codice enormi e mal scritte create in più decenni. Non è divertente

Ma cosa succede se la sicurezza del lavoro non fa per te? Vuoi lavorare su prodotti interessanti, ma sei disposto a rischiare di rimanere senza lavoro quando il modello di business non funziona? Ho scoperto che in corso (Hacker News) è un modo sicuro per scoprire le lingue utilizzate dalle startup. Quando mi sono dedicato a un lavoro iniziale, abbiamo utilizzato un mix di Go, Python e CoffeeScript. Altre startup utilizzano Rails e Groovy e tutti i tipi di framework e linguaggi oscuri. Scegline uno e troverai un lavoro interessante da qualche parte.

Nuovo codice o vecchio?

Scrivere un nuovo codice è un'esperienza molto diversa dal mantenimento di un'applicazione esistente, come ha aggiunto Bruce:

Con i tuoi commenti su COBOL, colpisci un'altra considerazione: vuoi lavorare su un nuovo codice o mantenere il codice di qualcun altro? Questo può essere un elemento enorme quando si decide quale direzione spostare. Per progetti più piccoli, mantenere una base di codice scritta da qualcun altro potrebbe non essere poi così male, ma ho visto alcune sezioni di codice in cui ci sono diverse persone che lo fissano per ore chiedendo: "A cosa stava pensando?", Oppure dove l'originale il programmatore si stava avvantaggiando di una caratteristica specifica o di un bug nel compilatore (che potrebbe essere stato corretto nel compilatore corrente) per realizzare qualcosa.

Cosa succede se non hai una scelta?

Guy è tornato per ricordarci che non tutti hanno una vasta gamma di scelte:

choice

Matthew solleva una bella domanda con: " Che tipo di lavoro di programmazione vuoi?

Stranamente, non ho mai veramente pensato che avrei avuto molta scelta in merito. Sapevo che volevo fare sviluppo web quando ho iniziato, avendo fatto altre programmazioni in modo ricreativo. Ma ho pensato che sarebbe stato meglio essere pronto a prendere qualsiasi lavoro che potessi ottenere, ed essere disposto ad imparare mentre andavo. Ora sono un tuttofare, esperto in diverse tecnologie - maestro di nessuno.

Per quanto riguarda capire dove vuoi lavorare, è importante determinare il tipo di stile di vita che desideri. Quindi guarda i messaggi inviati da quelle aziende che sembrano soddisfare i tuoi criteri e vedere quello che stanno cercando in generale. Mettere insieme un portafoglio di cose simili a quello che fanno può essere molto utile, specialmente se non si ha una formazione formale nelle tecnologie che usano. Forse hai imparato Java a scuola, ma loro usano C #. Quindi insegni a te stesso C # e fai alcuni programmi con esso come prova che sai cosa stai facendo e che hai un'intelligenza fluida.

Nessuna risposta semplice

Se c'è qualcosa che questa discussione mostra, è che le domande semplici non hanno sempre risposte semplici. Eppure, dopo aver letto le opinioni di tutti, mi sono sentito molto più informato - hanno cambiato idea.

Sono sicuro che non abbiamo catturato tutti i possibili punti di vista qui - ecco a cosa serve la sezione commenti. Sarei molto interessato a sentire la tua opinione su questa domanda, indipendentemente dal fatto che tu sia un programmatore professionista o meno. Come sceglieresti un linguaggio di programmazione per ottenere un buon lavoro in due anni? E 'anche un buon modo per scegliere una lingua? Condividi i tuoi pensieri qui sotto.

In this article