Cum de a alege o limbă de programare pentru a învăța astăzi și a obține un loc de muncă excelent în 2 ani
Codificarea nu este ușor; sau cel puțin, învățarea de a codifica nu este, mai ales atunci când începe de la zero. Poate dura ani de muncă dedicată pentru a deveni un programator cu adevărat bun; deci există o cale de a alege limba potrivită pentru a începe de azi, pentru a fi angajat în câțiva ani?
Pentru a afla, am luat această întrebare panoului nostru de experți rezidenți: În timp ce scriem cu toții, câțiva dintre noi au și experiență de codificare. Ceea ce a urmat a fost o discuție interesantă pe care ați dori să o citiți înainte de a vă angaja în călătoria dvs. pentru a deveni un pro coder.
O metodă pentru nebunie?
Nu este prima dată când discutăm despre alegerea unui limbaj de programare: Înapoi în 2011, am discutat care limbă de programare ar trebui să învățați pentru dezvoltarea de software? Care limba de programare ar trebui să înveți pentru dezvoltarea de software? Care limba de programare ar trebui să înveți pentru dezvoltarea de software? Când începeți pe calea de programare, este important să vă investiți timpul cu înțelepciune în alegerea de a învăța ceva care vă va beneficia atât în viitorul apropiat, cu rezultate vizibile pe platforma dvs. de ... Citește mai mult, precum și pe care ar trebui să învățați pentru Web programarea ce limbaj de programare să învățați - programare web Ce limba de programare să învățați - programare web Astăzi vom examina diferitele limbi de programare web care alimentează Internetul. Aceasta este a patra parte dintr-o serie de programare pentru incepatori. În partea 1, am învățat de bază ... Citește mai mult .
Dar nu este vorba despre un sfat (cum ar fi “mergeți cu JavaScript”), ci o metodologie - ceva ce oamenii ar putea folosi în doi ani de astăzi, teoretic. Cum să înțelegeți care limbi sunt în creștere? Ce metrici de popularitate a codului trebuie să aibă încredere și pe care să nu le încredințezi (și de ce)? Care sunt cele mai bune site-uri de proiectie a salariilor? GitHub este o indicație sau nu?
De exemplu, veți găsi pe nimeni care nu se mișcă despre PHP în aceste zile - dar mulți, mulți dezvoltatori fac o codificare bună a vieții PHP, și este totuși cea mai mare parte a ceea ce rulează pe Web. Așa că învățați PHP acum o idee rea? (Probabil ...)
Nu există nici o limbă
Aici, James, dezvoltatorul nostru Web rezident și tehnicianul, a intervenit pentru a spune acest lucru:
Programatorii, în general, nu învață niciodată o singură limbă. Oricine merge pe traseul clasic CompSci se va termina cu o mulțime de Java, un pic de Haskell, un Prolog dacă vor lua un curs în AI, un Nod dacă vor lua un curs în inginerie start-up, unii PHP dacă vor învăța tradițional CMS, unele .NET dacă se află la un birou corporativ fără valoare, unele JavaScript dacă fac designul web, unele C ++ dacă fac designul jocului și în cele din urmă și unele Ruby dacă doresc să-și piardă viața cu limbi obscure pe care nimeni nu utilizează efectiv.
Nu este “metodologie”și nu alegeți o limbă de învățat: te aleg!
Învățarea unei singure limbi este ca să mănânci numai digestive pentru un an când există un culoar întreg de cookie-uri. Și serios, care alege locurile de muncă în funcție de salariul proiectat?
Dar dacă nu învățați CompSci?
I-am răspuns lui James, spunând:
Iată ce se întâmplă: nu este pentru cineva care ia cursul clasic CompSci. Judecând după explozia MOOC și numărul de cursuri de programare on-line, o mulțime de oameni se confruntă cu codificarea doar de la zero. Și când începeți astfel, aveți nevoie de o limbă pentru a începe. Poate că vă veți îndepărta de ea mai târziu, dar prima limbă va fi o investiție critică a timpului și a efortului - așadar, mai bine meritați.
Ceea ce a rezonat cel mai mult cu mine este ultimul mic pic - care alege locurile de muncă în funcție de salariul proiectat. Cred că unii oameni fac, dar cred, de asemenea, că nu este o modalitate foarte bună de a face asta.
Când vine vorba de asta, oameni sunteți încercând să aflăm în ce limbă să începem și folosirea acestei limbi în lumea reală să aibă o greutate în acea decizie (nu doar cât de ușor este să înveți - Pascal ...).
Alegeți mai întâi un proiect, apoi o limbă
James sa întors cu acest lucru:
Bine, poate unul dintre punctele acestei metodologii ar trebui să fie: nu aveți o metodologie. Când am întâlnit pentru prima dată PHP, a fost prin intermediul WordPress. Am avut un fundal CompSci în programare și o experiență de design web, dar nu am văzut niciodată PHP înainte. Am învățat-o pentru că WordPress părea destul de ușor și am vrut să mă încurc cu WordPress. Nu pentru că m-am uitat la o listă de tehnologii trending sau am avut în vedere o mișcare de carieră, ci pentru că am vrut să știu ceva interesant.
Dacă cineva căuta să învețe programarea numai în scopul unui loc de muncă, ei ar eșua. Dacă ar fi în căutarea doar pentru că le place sunetul de a învăța cum să programeze ceva, nu ar contează ce limbă au ales atâta timp cât ar putea să le stârnească pasiunea.
Un alt motiv pentru a alege primul proiect
Atunci Simon a intrat cu un sfat pragmatic:
În primul rând, depinde dacă doriți să vă dezvoltați pentru Web sau “standard” software-ul.
Pentru aceasta din urmă, Java este destul de bun:
- Simplu OO
- Multi-platformă (Linux, Windows, Mac, Android)
- Sintaxă similară cu multe alte limbi de programare (JS, C #).
Nu pot spune multe despre dezvoltarea web, deși HTML / JS / CSS / PHP / MySQL pare să funcționeze pentru o mulțime de oameni. Și Python.
Da, da “pentru a vă face o treabă excelentă în 2 ani” De asemenea, ma sperie. Subliniază aspectul greșit al învățării programării. Odată ce puteți programa, este destul de ușor să obțineți atârnarea unei alte limbi.
Obținerea angajării pentru cunoașterea unei anumite limbi este similară cu a fi angajată ca PA pentru a ști cum să se ocupe de MS Excel. Dacă aceasta este calificarea principală, va fi probabil o activitate proastă.
Nu învățați o limbă: aflați designul de software
A început să se formeze un consens. Bruce Epper, de la faima MakeUseOf Answers, a avut de spus:
Limba însăși nu contează. Când vine vorba de programarea locurilor de muncă cele mai importante aspecte tind să fie înțelegerea design-ului de bază și a arhitecturii, procesul de codificare în general, cunoașterea modelelor de design, cunoașterea momentului de utilizare a acestora și modul de aplicare a unui model specific sarcinii la îndemână - toate acestea fiind independente de limbă. Odată ce un coder știe aceste lucruri, ridicarea unei limbi complet noi este o briză.
Există chiar și abilități de management al proiectelor, de documentare și scris, care sunt mai importante pentru un programator decât cunoașterea oricărui limbaj specific.
Baza pe care construiți chestiuni: engleza sau latina?
Atunci a intrat Guy pentru a ne reaminti toate limbile face materie, într-o măsură:
Limba în sine nu este cel mai important lucru în obținerea unui loc de muncă, sunt de acord. Cu toate acestea, baza pe care vă construiți face. De când am făcut ambele rute, voi compara limbile de programare cu limbile umane.
Python pare a fi limba engleză a zilelor noastre. Din ce în ce mai mult, văd Intro CompSci și cursurile de programare vă încep cu Python în loc de Java, care păreau cel mai popular timp de aproximativ 10 ani. Puteți face multe din ceea ce doriți să faceți cu Python.
C ++ este latină a lumii programării. Dacă o înveți, puteți învăța principiile fundamentale ale unei multitudini de limbi și le puteți învăța mai ușor. Python ar fi un cakewalk dacă sunteți bine întemeiat în C++.
Ce e “Programarea locului de muncă,” Oricum?
Era rândul lui Matthew acum, pentru a ne reaminti că faptul de a fi un coder poate însemna lucruri foarte diferite pentru diferiți oameni:
Un lucru despre care nu sa vorbit în nici un fel de lungă durată este ce fel de muncă de programare doriți.
Nu esti prea fussed despre avantajele aruncate la angajatii Startup? Vrei stabilitate și un pachet de remunerare decent, dar nu există un capital echitabil? Îți place să faci afaceri de afaceri? Aflați C #, Java sau COBOL. COBOL are, de asemenea, avantajul de a avea fiecare aplicație bancară concepută vreodată (hiperbolă, dar tu ai ideea) fiind scrisă în ea. Cu majoritatea dezvoltatorilor COBOL, fie pensionari, fie morți, există o mulțime de cereri pentru dezvoltatorii COBOL, cu unele salarii salariale pe șase cifre! Cu toate acestea, veți lucra pe baze de coduri imense, scrise greu, create peste mai multe decenii. Nu e distractiv.
Dar dacă siguranța locului de muncă nu este chestia ta? Doriți să lucrați pe produse interesante, dar sunteți dispus să renunți la un loc de muncă atunci când modelul de afaceri nu funcționează? Am descoperit că întâlnirea (Hacker News) este o modalitate sigură de a afla limbile utilizate de noile companii. Când am internat la o slujbă timpurie, am folosit o combinație de Go, Python și CoffeeScript. Alte companii utilizează Rails și Groovy și tot felul de cadre și limbi obscure. Alege unul și vei găsi un loc undeva interesant.
Cod nou sau vechi?
Scrierea unui nou cod este o experiență foarte diferită de menținerea unei aplicații existente, așa cum a adăugat Bruce:
Cu comentariile tale despre COBOL, te-ai lovit la un alt aspect: vrei să lucrezi la un nou cod sau să păstrezi codul altcuiva? Acesta poate fi un element uriaș atunci când se decide ce direcție să se miște. Pentru proiectele mai mici, menținerea unei coduri de bază scrise de altcineva poate să nu fie atât de rea, dar am văzut câteva secțiuni de cod în care mai multe persoane se uită la ea ore întregi, “Ce gândea tipul ăsta?”, sau în cazul în care programatorul original a profitat de o caracteristică sau de o problemă specifică în compilator (care poate fi stabilit în compilatorul curent) pentru a realiza ceva.
Dacă nu ai o alegere?
Guy sa întors să ne reamintească faptul că nu toată lumea are o gamă largă de opțiuni:
Matthew ridică o bună întrebare cu, “Ce fel de muncă de programare vrei?”
Ciudat, nu m-am gândit niciodată că aș avea mult de ales în această chestiune. Știam că am vrut să fac dezvoltarea web atunci când am început, făcând alte programe de recreere. Dar m-am gândit că mai bine mă pregătesc să-mi iau orice treabă și să fiu dispus să învăț când m-am dus. Acum, eu sunt un cârlig de toate meseriile, cu competențe în mai multe tehnologii - maestru al niciunui.
În ceea ce privește imaginea în care doriți să lucrați, determinarea tipului de stil de viață pe care îl doriți este important. Apoi, uitați-vă la postările de la acele companii care par să îndeplinească criteriile dvs. și pentru a vedea ce caută în general. Reunirea unui portofoliu de lucruri similare cu cele pe care le fac poate fi foarte utilă, mai ales dacă nu aveți pregătire formală în tehnologiile pe care le folosesc. Poate ați învățat Java în școală, dar ei folosesc C #. Deci te înveți C # și faci câteva programe cu el ca dovadă că știi ce faci și că ai inteligență fluidă.
Nici un răspuns simplu
Dacă este ceva ce arată această discuție, întrebările simple nu au întotdeauna răspunsuri simple. Și totuși, după ce am citit părerile tuturor, m-am simțit mult mai informat - mi-au schimbat mintea.
Sunt sigur că nu am reușit să surprindem toate punctele de vedere posibile aici - pentru asta este vorba secțiunea de comentarii. Aș fi foarte interesat să vă aud în legătură cu această întrebare, indiferent dacă sunteți un pro coder sau nu. Cum ați alege un limbaj de programare pentru a obține o slujbă bună în doi ani? Este chiar o modalitate bună de a alege o limbă? Împărtășește-ți gândurile de mai jos.
Explorați mai multe despre: Căutare de locuri de muncă, Programare.