Fiți calificați în învățarea limbajelor de programare

Învățarea limbilor de programare suplimentare

este mai ușor dacă știți mai multe limbi de programare. Adică, devine mai ușor de fiecare dată când învățați o nouă limbă. Puteți accelera acest lucru prin învățarea diferitelor tipuri de limbi.

metodă

Imaginea intitulată Deveniți calificați la Limbi de programare pentru învățare Pasul 1
1
Știți ceva despre structurile și algoritmii de date. Toate limbile de programare din lume nu fac prea bine dacă nu știți despre algoritmi și structuri de date. Acestea sunt instrumente care extind limbajul, platforma și instrumentele de dezvoltare a limbajului de învățare. Este de ex. util să știți despre sortare, chiar dacă în majoritatea limbilor veți avea, probabil, rutine de bibliotecă care fac sortarea pentru dvs.
  • De asemenea, este bine să cunoașteți câteva logici de bază, matematică și lingvistică, dar nu esențiale.
  • Imaginea intitulată Deveniți calificați la Limbi de programare pentru învățare Pasul 2
    2
    Cunoașteți diferitele tipuri de limbi.
    • Cunoașteți diferența dintre un limbaj de scripting și un limbaj de sistem. Aceasta a fost o dată mai clară decât este astăzi: mulți oameni folosesc limbi de scriptare, cum ar fi Python, Ruby și jаvascript (ECMAScript) pentru sisteme mai mari și mai complexe, în timp ce API-urile de platformă sunt disponibile într-o varietate de limbi.
    • Cunoașteți diferența dintre sistemele de tip. Articolul din engleză Ce trebuie să știți înainte de dezbaterea sistemelor de tip explică bine acest lucru.
    • Cunoașteți diferența dintre programele stack și heap.
    • Cunoașteți diferența dintre valoarea "trece de" și "trece prin".
    • Cunoașteți diferența dintre programarea structurată, obiectuală, funcțională și procedurală. O limbă se concentrează, de obicei, pe una, dar unele se amestecă și ea.
    • Cunoașteți diferența între rularea codului compilat, codul tradus, codul compilat just-in-time și codul pe o mașină virtuală. Ele au caracteristici diferite și permit sau necesită diferite stiluri de programare. Știind când să folosești o mașină virtuală și când să rulezi un cod nativ asupra arhitecturii sistemului poate face diferența între succesul și eșecul unui proiect.
  • Imaginea intitulată Deveniți calificați la Limbi de programare pentru învățare Pasul 3
    3
    Încercați limbi care vă permit să utilizați diferite funcții și stiluri de programare.
    • Veți găsi adesea că, pentru un anumit stil de programare, există o limbă foarte simplă, dar puțin folositoare pentru a învăța acel stil de programare și o limbă mai practică pe care o puteți utiliza în fiecare zi. Pentru a obține mai bine la învățarea limbajelor de programare, merită să învățați câteva dintre aceste limbi simple (de cercetare), deoarece vă ajută să învățați mai rapid limbile practice.
    • Ca exemplu de programare orientată pe obiecte, încercați să învățați Smalltalk. Nu veți reuși să faceți prea mult, dar a fost unul dintre limbile de programare orientate spre obiecte timpurii. Ruby poartă o parte din patrimoniul Smalltalk, în timp ce este o limbă mai practică pe care o puteți folosi pentru o varietate de sarcini de programare. Java, C # și C ++ sunt limbi de nivel înalt cu suport de programare orientat pe obiecte.
    • Pentru limbile care utilizează interfețe, încercați Java, C # sau C ++. Python, C ++ și multe alte limbi permit moștenire multiplă, în timp ce Scala folosește trăsături, o combinație interesantă de interfețe, moștenire multiplă și rezumate.
    • Aflați jаvascript (ECMAScript) pentru programarea bazată pe prototipuri orientate pe obiecte. jаvascript nu are clase: în schimb are prototipuri. Sine este limba originală care a început programarea bazată pe prototip, iar ActionScript, Lua și REBOL pot fi folosite pentru acest tip de programare.
    • Pentru programarea funcțională, luați în considerare învățarea OCaml sau Haskell. Acestea sunt limbi de programare funcționale de tip static. Luați în considerare câteva limbi de programare funcționale mai practice, Scala (pe mașina virtuală Java) sau F # (pe .NET).
    • Dacă doriți să încercați un limbaj de programare foarte dinamic, încercați Ruby, Python, Perl sau Lisp. Aceste limbi sunt foarte diferite de limbi precum Java sau C. Merită să încercați aceste limbi pentru a vedea ce fel de lucruri trebuie să faceți pentru a rezolva aceste diferențe - testarea unităților, tehnicile de metaprogramare, tastarea rațelor etc.
    • Încercați limbile specifice domeniului. Acestea sunt limbi dezvoltate în scopuri foarte specifice sau pentru abstractizarea unei limbi existente pentru a exprima anumite funcționalități. Acestea includ SQL, XSLT, FreeMarker, ASP.net, C # LINQ, Shell Scripts, YACC, AWK, SED și alte sute. Ambele Ruby și Scala pot fi folosite pentru a crea limbi specifice domeniului. Rețineți că multe limbi specifice domeniului nu sunt Turing Complete.
  • Imaginea intitulată Deveniți calificați la Limbi de programare pentru învățare Pasul 4
    4
    Aflați despre diferitele abordări ale concurenței.
    • Concurrency este o problemă dificilă a calculatorului și multe limbi noi oferă noi modalități de scriere a rutinelor concurente. Unele dintre aceste abordări nu pot fi create ușor cu biblioteci și, în schimb, au nevoie de suport pentru limba în sine.
    • Threading este modalitatea cea mai larg acceptată de a susține concurrency, dar poate fi foarte dificil de implementat. Java, C ++ și multe alte limbi suportă filetarea, în timp ce unele limbi, cum ar fi Python și Ruby, acceptă doar "filete verzi", mai degrabă decât filetare la nivel de sistem. Threadingul devine complicat deoarece toate firele au nevoie de acces la același set de date globale, ceea ce poate duce la condiții de simultaneitate și probleme similare. Așa că au fost introduse și alte abordări ...
    • Memoria de tranzacționare software (STM) este o soluție. Erlang și Clojure sunt două limbi foarte diferite care pun în aplicare acest lucru.
    • Message-Passing Actors este o altă soluție: merită să te uiți la Scala și Erlang pentru asta.
    • Uită-te în Python și Ruby Twisted și EventMachine, care oferă bucle de eveniment. Alternativ, uitați-vă la Node.js, un cadru jаvascript (server-side) pentru crearea buclelor de evenimente.
    • Co-rutinele reprezintă o altă modalitate de a rezolva problemele legate de concurență: limba Google Go este un nou sistem de limbaj static, derivat de la tip, care ar trebui să fie similar cu performanța C, dar în sintaxă și simplitate, cum ar fi Python. Utilizează gorutinele, o implementare a co-rutinelor. O altă limbă dezvoltată în jurul co-rutinelor este Icon.
    • Cozile de dispecerizare reprezintă o altă soluție pentru aceasta: pe Mac OS X 10.6 și ulterior, "Grand Central Dispatch" este un sistem de așteptare dezvoltat de Apple pentru utilizarea în C, C ++ și Obiectiv-C. Implementarea open source a GCD este disponibilă ca libdispatch. Există, de asemenea, o implementare Java și Scala numită HawtDispatch.
  • Imaginea intitulată Deveniți calificați la limbile de programare pentru învățare Pasul 5
    5
    Citiți codul. Una dintre cele mai bune modalități de a învăța un nou limbaj de programare și de a învăța cum să înveți limbi este de a citi codul. Există o mulțime de cod sursă deschisă și, odată ce ați citit codul din câteva aplicații, veți recunoaște codul bun și rău și veți dezvolta un gust pentru ceea ce vă place și nu vă place și o înțelegere a motivului pentru care funcționează anumite stiluri și tehnici de programare Paradigmele sunt bune pentru diferite sarcini.
  • Imaginea intitulată Deveniți calificați la limbile de programare pentru învățare Pasul 6
    6
    Mai întâi găsiți un proiect. În general, este mai ușor să înveți un nou limbaj de programare dacă există un anumit proiect sau un obiectiv pe care doriți să îl atingeți. Învățarea unui nou limbaj de programare prin scrierea "salut lume" este mult mai dificilă și nu arată adevăratele abilități ale limbii.
  • Imaginea intitulată Deveniți calificați la Limbi de programare pentru învățare Pasul 7


    7
    Izolați diferența dintre bibliotecă și limbă. Poate deveni confuz în unele limbi, între bibliotecă și limbă pentru a distinge. Poate fi și o confuzie între generatoare de cod și limbă da. Când învățați o nouă limbă similară unei limbi pe care ați învățat-o deja, se întâmplă adesea că învățarea bibliotecii și a idiosincrasiilor sale este cea mai mare sarcină.
  • Imaginea intitulată Deveniți calificați la limbile de programare a învățării Pasul 8
    8
    Încercați diferite instrumente. Unele limbi de programare sunt concepute pentru a funcționa bine cu anumite instrumente. Multe limbi de programare pot fi scrise cu ușurință utilizând un editor de text cum ar fi Vim, Notepad2 sau TextMate, dar lucrul cu limbajul de programare Lisp poate fi simplificat prin utilizarea suportului încorporat pentru mediile REPL atunci când se utilizează Emacs. Dacă lucrați cu limbajul C # sau .NET, Visual Studio sau MonoDevelop sunt ideale. Dacă lucrați cu Java, există Eclipse, NetBeans, IntelliJ IDEA și multe altele pentru a alege de la. Chiar și sistemul de operare și versiune selectat poate schimba codul scris.
    • Nu lăsați instrumentele să determine programarea și nu lăsați schimbarea instrumentului să devină o obsesie. Învățarea poate veni din încercarea unor noi instrumente din curiozitate pură. Adesea instrumentul utilizat poate încetini procesul și acest lucru nu va fi evident decât în ​​comparație cu un nou instrument. Schimbarea instrumentului numai pentru "progres" poate încetini efectiv lucrurile din cauza curbei de învățare, a erorilor sau a incompatibilităților simple între procesele existente. Uneori instrumentele vechi pe care le înțelegeți sunt mai bune decât instrumentele de brand nou pe care le-ați ales deoarece sunt la modă.
  • Imaginea intitulată Deveniți abilitați la Limbi de programare pentru învățare Pasul 9
    9
    Aflați în viața reală. Programarea Dojos, Conferințe, Tabere de Bar, Zilele Hack, Grupurile de utilizatori și Tabelele de coduri sunt modalități excelente de a învăța. Aceste grupuri pot fi utile, chiar dacă nu participați în mod regulat pentru a introduce idei noi și pentru a găsi noi modalități de a face lucruri. Există un avantaj în a fi provocați într-un mediu nou.
  • Imaginea intitulată Deveniți calificați la Limbi de programare pentru învățare Pasul 10
    10
    Asigurați-vă ca limbile noi să funcționeze. Programatorii profesioniști pot găsi oportunități de a aduce noi cunoștințe despre limbajele de programare la locul de muncă. Nu încercați să fiți un avocat nebun, ci găsiți oportunități în care alte limbi de programare ar putea rezolva problema mai bine. Forțarea unei limbi într-un proiect care nu se potrivește doar pentru a utiliza o nouă limbă este o rețetă pentru eșec. Având mai multe instrumente în cazul sculei oferă tot mai multe oportunități și flexibilitate.
    • În timp ce sunteți la serviciu, de exemplu lucrează la un proiect Java, aceasta înseamnă că atunci când Ruby se poate utiliza ca script-uri construi pot fi scrise în Buildr, iar bibliotecile de testare existente pot fi folosite pentru a scrie codul de test (test / Ruby, Trebuia să, RSpec etc). Puteți rula apoi cu aplicația Java folosind JRuby.
    • Limbile de scripting pot fi întotdeauna încorporate în programele existente pentru a permite script-uri pentru codul generat dinamic sau târziu. Ruby, Python, jаvascript, XSLT și Lua sunt candidați buni pentru acest lucru.
    • Pluginurile editorului și integrarea controlului versiunii pot fi adesea scrise mai ușor într-o limbă ușoară, cum ar fi jаvascript, Perl sau Ruby, decât în ​​Java sau în C.
    • Dacă trebuie să scrieți un frontend pentru un program simplu, încercați un limbaj de scripting ca IronPython sau MacRuby.
    • Dacă aveți nevoie pentru a scrie un backend complex, pentru o aplicație de înaltă performanță, trage o departe de limbi pe care le oferă un suport mai bun pentru activități concurente: Erlang, Scala, Clojure etc.
    • Notă: Nu toate companiile o apreciază atunci când speli în limbi de programare nedorite. Și dacă totul merge prost, tu ești cel care este acuzat de asta!
  • Imaginea intitulată Deveniți calificați la Limbi de programare pentru învățare Pasul 11
    11
    Contribuiți la Open Source. Dacă nu vă puteți pune abilitățile de programare noi, puteți lucra mereu pe proiecte open source. Există multe aplicații de divertisment pentru fiecare platformă (Linux, Windows, Mac etc.), precum și instrumente de linie de comandă, biblioteci, funcții de limbă sau chiar limbaj nou-nouț. Un proiect open source poate fi un înlocuitor excelent dacă nu puteți găsi un proiect individual dacă doriți să învățați un nou limbaj de programare.
  • Imaginea intitulată Deveniți calificați la Limbi de programare pentru învățare Pasul 12
    12
    Aflați lucruri noi care nu sunt direct legate de programare. Aflați o nouă bază de date sau un API în fiecare an. Sau chiar mai bine, aflați câteva abilități care nu au nimic de-a face cu programarea. Gătitul, un instrument muzical și fotografia sunt întotdeauna populare în cercurile geek. Un sport sau activitate vă oferă timp să gândiți și să lăsați noi idei de programare scurgeri. Acest lucru este la fel de important.
  • Imaginea intitulată Deveniți calificați la Limbi de programare pentru învățare Pasul 13
    13
    O nouă limbă în fiecare an? Cartea "Programatori pragmatici" sugerează că ar trebui să învățați un nou limbaj de programare în fiecare an. În fiecare an poate fi prea mult, dar încercați să vă angajați să învățați în mod regulat noi limbi de programare și să fiți la curent cu cele mai recente evoluții. Chiar dacă în cele din urmă utilizează limba nu pentru proiecte de lucru sau sursă personale sau deschise, tot vei mai valoros pentru un angajator dacă o poate, și că ar trebui să aducă, de asemenea, satisfacția personală.
  • Sfaturi

    • În unele limbi de programare, aveți mai multe opțiuni pentru scrierea codului. Există de ex. multe moduri pentru un script C # pentru a schimba culoarea de la ceva la roșu, albastru și așa mai departe.
    Distribuiți pe rețelele sociale:

    înrudit