Come scegliere un linguaggio di programmazione per imparare oggi e ottenere un ottimo lavoro in 2 anni
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; così 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?
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 si inizia sul percorso di programmazione, è importante investire saggiamente il proprio tempo nella scelta di apprendere qualcosa che sia vantaggioso per l'immediato futuro con risultati visibili sulla propria piattaforma di ... Leggi di più, oltre a quale si dovrebbe imparare per Web programmazione Quale linguaggio di programmazione da apprendere - Programmazione Web Quale linguaggio di programmazione da apprendere - Programmazione Web Oggi daremo un'occhiata ai vari linguaggi di programmazione Web che alimentano Internet. Questa è la quarta parte in 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 usare in due anni da oggi, teoricamente. Come capire in realtà quali lingue sono in aumento? Quali metriche sulla popolarità del codice sono affidabili e quali non fidarsi (e perché)? Quali sono i migliori siti web di proiezione salariale? GitHub è un'indicazione oppure 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
È 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 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 c'è “metodologia”?? e tu non scegli una lingua per imparare: ti sceglie!
Imparare una lingua è come mangiare solo digestivi per un anno quando c'è un intero corridoio di biscotti. E seriamente, chi sceglie i lavori secondo il 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 - chi 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 tratta di farlo, le persone siamo 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
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 di usarlo.
Se qualcuno stava cercando di imparare a programmare puramente per gli scopi di un lavoro, fallirebbe. Se guardassero solo perché amano il suono di imparare a programmare qualcosa, non importa quale lingua hanno scelto fintanto che potrebbe innescare 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 “standard” Software.
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 “per farti un ottimo lavoro in 2 anni” un po 'mi infastidisce anche me. Sottolinea l'aspetto sbagliato dell'apprendimento della programmazione. Una volta che puoi programmare, è abbastanza facile ottenere il blocco di un'altra lingua.
Ottenere assunto per conoscere una lingua specifica è simile a essere assunto come un 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
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 persino 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 tutto ciò che la lingua fa importa, in una misura:
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 una passeggiata se sei ben fondato in C++.
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:
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 un codice scritto 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, “Cosa stava pensando questo ragazzo??”, o dove il programmatore originale stava sfruttando una funzionalità specifica o 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:
Matteo 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.
Scopri di più su: ricerca di lavoro, programmazione.