Hoe om `n kundige leerprogrammeertaal te wees
Hier is baie programmeertale
Dit word bietjie makliker, as jy reeds verskeie programmeertale ken. Met ander woorde, as jy nuwe tale leer, word dit makliker om `n nuwe taal te leer. U kan hierdie proses vaartbelyn deur verskillende tipes taal te leer.stappe
1
Leer `n bietjie oor die datastruktuur en algoritmes. Dit sal jou nie goed doen om al die programmeringstale wat in die hele wêreld bestaan, te ken nie, as jy niks van algoritmes en datastruktuur weet nie. Dit is gereedskap wat die taal, platforms en ontwikkelingsinstrumente wat jy later leer, sal oortref. Byvoorbeeld, dit sal nuttig wees om te weet hoe om hulle te klassifiseer, alhoewel dit baie waarskynlik is dat jy biblioteekprosedures gebruik om hulle in die meeste tale te klassifiseer.
- Basiese kennis van logika, wiskunde en taalkunde is ook baie nuttig, maar nie noodsaaklik nie.
2
Ken die verskillende tipes tale.
U moet die verskille tussen opdrag lêer en stelseltaal ken. Dit was belangriker as wat dit nou is: baie mense gebruik programmeertale soos Phyton, Ruby en jаvascript (ECMAScript) vir programme met `n breër en meer ingewikkelde inhoud, terwyl die IPA (Application Programming Interface) platforms is. word `n verskeidenheid tale.U moet die verskillende tipes stelsels kan onderskei.Wat om te weet voor besprekingstipe stelsels Dit gee jou `n beter verduideliking.Leer die verskil tussen stapelprogrammering en heuwelprogrammering.U moet die verskil tussen die parameter stap vir waarde en deur verwysing ken.Leer die verskillende tipes programmering, soos gestruktureerde programmering, objekgeoriënteerde, funksionele en prosedure. `N Besondere taal fokus gewoonlik op een van hierdie tipes programmering, maar sommige is geneig om dit te kombineer.Weet die verskil tussen saamgestelde uitvoeringskode, geïnterpreteerde kode, saamgestelde kode, saamgestelde runtime kode en virtuele masjienkode. Dit kan op verskillende maniere uitgevoer word en verskillende soorte programmering toelaat of benodig. Om te weet wanneer `n virtuele masjien gebruik moet word en wanneer `n uitvoeringskode natuurlik gebruik word, kan die verskil tussen die mislukking of die sukses van `n projek maak.3
Gebruik tale wat jou toelaat om verskillende karakters en programmeringsstyle in te voer.
Jy sal algemeen opmerk dat daar vir `n bepaalde programmeringstyl `n baie suiwer taal sal wees, maar dit is baie onwaarskynlik dat dit gebruik kan word om daardie programmeringsstyl te leer - daar sal ook `n veel meer praktiese taal wees wat jy in die daaglikse lewe kan gebruik. Om `n kenner te wees om programmeertale te leer, is dit die moeite werd om van hierdie suiwer tale (navorsing) te leer, solank hulle jou help wanneer jy die praktiese tale vinniger leer.Byvoorbeeld, jy kan objekgeoriënteerde programmering in Smalltalk leer. Jy sal nie baie in hierdie program kan skep nie, maar dit was een van die eerste tipes objekgeoriënteerde programmering. Ruby hou nog van die kenmerke van Smalltalk en het nog `n baie praktiese taal wat jy kan gebruik vir `n wye verskeidenheid programmeringstake. Java, C # en C ++ is hoëvlak tale met tegniese bystandsdienste vir objekgeoriënteerde programmering.Vir tale wat interfaces gebruik, kan jy Java, C # of C ++ gebruik. Python, C ++ en ander tale laat `n meerdere opeenvolging toe, terwyl Scala karakters, `n interessante kombinasie van koppelvlakke, verskillende rye en abstrakte gebruik.Vir objekgeoriënteerde programmering gebaseer op prototipes, gebruik HavaScript (ECMAScript). jаvascript het nie klasse nie, maar prototipes. Die taal waarmee programmering gebaseer is op prototipes begin en is `n oorspronklike en individuele taal. ActionScript, Lua en REBOL kan vir hierdie tipe programmering gebruik word.Jy kan oorweeg om OCalm of Haskell te leer wanneer dit kom by funksionele programmering. Dit is statiese funksionele tipe programmeringstale. Vir effens meer praktiese tale kan u Scala (in die Java Virtual Machine) of F # (in lyn) kies.As jy `n baie dinamiese taalprogram wil hanteer, kan jy Ruby, Python, Perl of Lisp gebruik. Die tipe stelsels in hierdie tale wissel baie van ander tale soos Java of C. Dit is die moeite werd om hierdie tipe tale te gebruik om die soort dinge te sien wat jy moet programmeer as jy nie hierdie tipe stelsels het nie - eenheidstoetsing, metaprogrammingstegnieke , dinamiese tik van data (Duck Typing), onder andere.Probeer spesifieke tale te hanteer, dit is tale wat ontwerp is vir spesifieke voorwerpe of abstraksie tale wat hoofsaaklik ontwerp is in `n program wat reeds bestaan, om sommige van die spesifieke groepe funksionaliteit uit te druk. Onder hierdie is SQL, XSLT, FreeMarker, ASO.net, C # LINQ, Shell Scripts, YACC, AWK, SED onder honderde ander. Ruby en Scala kan beide gebruik word om domein-spesifieke tale te skep. U kan besef dat baie van die domein-spesifieke tale nie Full Turing is nie.4
Leer die verskillende gelyktydigheidsbenaderings.
Bywoning is `n baie moeilike probleem op hierdie gebied en baie van die nuwe tale skep nuwe maniere om gelyktydige roetines te skryf. Sommige van hierdie benaderings kan nie maklik met biblioteke ontwerp word nie, maar hulle benodig die hulp van dieselfde program.Subprocessing is die breedste vorm van hulp vir gelyktydigheid, maar terselfdertyd kan dit moeilik wees om te ontwerp. Java, C + + en baie ander tale kan nuttig wees vir subprosessering, terwyl sommige van die tale soos Python en Ruby meer bruikbaar is vir `die drade wat deur `n virtuele masjien verwerk word` as vir die uitvoerende drade van nivelleringsisteme waar. Die subprosessering word omdat al die uitvoeringsdrade toegang tot dieselfde groep globale veranderlikes vereis, wat tot mededingingstoestande en ander soortgelyke probleme kan lei. Dit is die rede waarom ander benaderings ingestel is ...Transaksionele geheue kan `n oplossing wees: Erlang en Clojure is twee baie verskillende taalsoorte wat hierdie geheue implementeer.Die akteurs van Passage of Messages is nog `n oplossing: dit is die moeite werd om Scala en Erlang vir hierdie doel te gebruik.Jy kan in Python en Ruby `n gebeurtenismasjien en `n gedraaide masjien sien, wat geleentheidslusse bied. Nog `n moontlike manier is om in Node (bedienerskant) die jаvascript-raamwerk te soek om gebeurtenislusse te ontwerp.Corutinas is `n ander manier om ooreenkomste probleme op te los: die Google-Go-taal is `n nuwe statiese tipe, `n stelseltaal van inferensiële tipe wat vir funksies soos C gemaak word, maar met die sintaksis en eenvoud van Python. Dit gebruik verskeie roetines "Go" (Go) en `n implementering van corutinas. Nog `n taal wat op corutinas ontwerp is, is die ikoon.Stuur lyste is `n ander moontlike oplossing vir hierdie probleem: Mac OS X10.6 en meer kapasiteit, "Grand Central Dispatch" is `n lys van Apple stelsel, geskep vir gebruik in C, C ++ en Doel C. Die implementering van open source van GCD is beskikbaar as libdispatch. Die Java en Scala implementering genoem HawDispatch is ook beskikbaar. 5
Die leeskode program Dit is een van die beste maniere om nuwe tale en vinniger te leer. Daar is baie oop kodes beskikbaar en sodra jy `n paar aansoeke deur die kode gelees het, begin jy goeie of slegte kodes te sien en `n smaak te ontwikkel vir wat jy wil en wat jy nie hou nie. Sowel as om te verstaan waarom sekere style van programme en paradigmas goed is vir verskillende funksies.
6
Eerstens moet jy `n projek hê waarin jy kan werk. Dit is gewoonlik makliker om `n nuwe taal te leer as jy reeds `n spesifieke projek of doelwit het. Om `n nuwe taal te leer deur "Hallo vir die hele wêreld" te skryf, is baie moeiliker as wat dit lyk en stel nie die ware taalvaardighede in die praktyk nie.
7
U moet weet hoe om tussen `n biblioteek en `n taal te onderskei. In sommige van die tale kan dit baie verwarrend wees om te weet hoe om te onderskei tussen "biblioteek" en "taal". Dit kan ook baie verwarring veroorsaak om "kode genereerders" en "taal" te onderskei. As jy `n nuwe taal leer wat soortgelyk is aan een wat jy alreeds weet, is hierdie geval van leer om `n biblioteek te manipuleer en sy idiosyncrasie gewoonlik die langste taak.
8
Probeer verskillende gereedskap. Sommige programmeringstale is ontwerp om goed te werk met sekere gereedskap. Baie van die tale kan met net `n teksredakteur soos Vim, Notepad2 of TextMate geskryf word, maar met die gebruik van `n Lisp-taal kan dit makliker wees as jy Emacs gebruik, as gevolg van die hulp wat dit bied om REPL-kontekste in te sluit. As jy in C # of `n ander aanlyn taal werk, moet jy ideaal Visual Studio of MonoDevelop gebruik. As jy Java gebruik, kan jy Eclipse, NetBeans, IntelliJ IDEA en vele ander kies. Selfs die keuse van bedryfstelsels of `n weergawe beheerstelsel kan die skryf van die kode verander.
Moenie toelaat dat die gereedskap die programmering definieer nie, en laat ook die verandering daarvan nie obsessie word nie. Jy kan leer om verskillende gereedskap te gebruik, net uit nuuskierigheid. Dikwels kan die gereedskap wat jy gebruik, die proses vertraag en dit word nie opgemerk voordat jy dit met `n nuwe instrument vergelyk nie. Die verandering van die tipe gereedskap wat slegs tot voordeel van "vordering" kan word, kan egter feitlik alles afneem, weens die truuks en die antivirus of die onverenigbaarheid wat dit met die proses het. Soms is ou en verstaanbare gereedskap beter as die nuwe en skitterende gereedskap wat jy kies, net omdat hulle modieus is.9
Leer met werklike lewensgebeure. U kan leer deur byeenkomste van programmeerders, konferensies, Internasionale Netwerk van Konferensies (Barkampe), hackathon-dae, gebruikersgroepe en ander tipes ontkoppelings by te woon. Om deel te wees van hierdie groepe kan baie behulpsaam wees, insluitende gereelde bywoning, om nuwe idees toe te pas en nuwe metodes te identifiseer om sekere dinge te doen. Dit is `n voordeel wat in nuwe kontekste getoets moet word.
10
Gebruik jou nuwe taal by die werk. Professionele programmeerders kan geleenthede vind in hul werk om hul nuwe kennis in programmeertale te gebruik. Probeer om nie `n mal evangelis te word nie, maar jy kan met die tale speel, sodat hulle korrek pas. Om `n taal aan te pas in `n projek waar dit nie pas nie, net deur `n nuwe taal te gebruik, is net `n manier om te misluk. Deur baie gereedskap in jou boks te hê, gee jy altyd meer geleenthede en meer buigsaamheid.
Byvoorbeeld, terwyl jy aan `n Java-projek in jou werk werk, word deur Ruby gebruik gemaak van die ontwerp-lêers wat op Buildr geskryf kan word. Die toetsbiblioteke wat reeds bestaan, kan as toetskodes gebruik word om te skryf (toets / robyn, shoulda, RSpec, ens.) En word uitgevoer met die Java-program met behulp van JRuby.Die instruksies lêer taal kan ingebed word in bestaande programme wat "opdrag skryf" vir dinamiese, gegenereerde of vertraagde uitvoer kodes toelaat. Ruby, Python, jаvascript, XSLT en Lua is baie goeie kandidate vir hierdie proses.Die byvoegingsredakteur, onder meer die weergawebeheerverbinding, kan gewoonlik vinniger geskryf word in `n ligte taal, gewoonlik vrye vorm soos jаvascript, Perl of Ruby, eerder as Java of C.As jy `n frontend-koppelvlak vir `n eenvoudige aansoek moet skryf, probeer om `n bestandsleuteltaal soos IronPython of MacRuby te gebruik.As jy `n finale rugmotor moet skryf vir `n beter werking van die aansoek, gooi een van die tale wat jou beter hulpmiddel vir gelyktydigheid bied: soos Erlang, Scala, Clojure en ander.Wees baie versigtig: nie alle maatskappye stem saam met nie-wettige programmeringstale. En as alles verkeerd gaan, sal jy as skuldig beskou word!11
Dra by tot kodes. As jy nie kommentaar kan lewer op jou nuwe kennis in programmeertale in jou werk nie, kan jy altyd deel wees van oopbronprojekte. Daar is baie snaakse programme wat ontwerp kan word vir enige platform (Linux, Windows, Mac, ens.), Sowel as aanlyn opdraggereedskap, biblioteke, taalkenmerke of selfs vir `n nuwe taalstyl. `N Open source-projek kan `n goeie vervanging wees as `n persoonlike projek nie gevind kan word as jy `n nuwe taal probeer leer nie.
12
Leer nuwe dinge wat niks met programmeringstale te doen het nie. Leer elke jaar `n nuwe databasis of `n nuwe programprogrammeringsvlak. Of, nog beter, verkry vaardighede wat niks met programmering te doen het nie. Kook, speel `n musiekinstrument of neem professionele foto`s is baie gewilde aktiwiteite in rekenaar geek sirkels. Om `n sport te oefen of om enige ander aktiwiteit te doen, gee jou tyd om te dink en nuwe idees te hê oor gefilterde programmering. Dit is baie belangrik.
13
Leer `n taal per jaar? Die boek Pragmatiese programmeerders stel voor dat jy elke jaar `n nuwe programmeertaal moet leer. Dit kan baie per jaar wees, maar probeer om jouself te verbind om elke keer nuwe tale aan te leer en tred te hou met nuwe ontwikkelings. Selfs as jy nie die tale in jou werk of oopbronprojekte gebruik nie, sal jy net weet dat dit jou waardeer as enige ander werknemer. Jy sal ook daardie tevredenheid binne jou hê.
wenke
- Sommige van die programmeringstale bied baie maniere om `n kode te skryf. Byvoorbeeld, daar is baie maniere om die kleur van iets te rooi of blou te verander met `n C # bevellêer.
Deel op sosiale netwerke:
Verwante