Kies u eerste programmeertaal

Dit is beslis een van die vrae wat die meeste na my posbus kom as ons oor programmering praat. As ons 'n reeks artikels gaan begin waarmee u kan leer hoe u gratis kennis kan programmeer en teruggee in die vorm van bydraes tot gratis sagteware / open source-gemeenskappe regoor die wêreld, is dit nodig om hierdie basiese, as 'n bietjie moeilike vraag, te beantwoord. Watter programmeertaal moet ek leer?

'N bietjie geskiedenis

Om te begin om 'n programmeertaal te verstaan ​​en te kies, moet ons eers 'n bietjie weet van hul geskiedenis, hul gebruike en funksies en hoe hulle verskillende behoeftes oor tyd oplos.

Masjientale (lae vlak)

Algemeen bekend as Vergadering, is programmeertale wat ons kan definieer as dialekte van 'n meer algemene taal ... Dit klink 'n bietjie ingewikkeld, maar ek gaan dit illustreer ... Ons weet dat die universele taal van rekenaar elektrisiteit, dit beteken dat uiteindelik wat 'n rekenaar lees, is 0sy 1ja, kom ons noem dit erekenaar Engels. In hierdie voorbeeld is Spaans die basiese reël, maar soos ons goed weet is die Spaans wat deur Latino's gepraat word nie dieselfde as die Spaans wat in Spanje gepraat word nie, en selfs dan is die Spaans uit Peru nie dieselfde as die Spaanse uit Argentinië nie. Dit is duidelik dat ons almal amper dieselfde woorde het (0sy 1s), maar die gebruik en betekenis kan afhang van die konteks.

Dit gebeur op verwerkersvlak. As ons praat oor rekenaarargitekture, (amd64, intel, arm, ...) verwys ons na die dialek daarvan rekenaar Spaans. Dit is omdat verskillende ondernemings die volgorde en betekenis op hul eie manier verstaan, en sommige wissel in besonderhede, soos die stroom van die stroom of die volgorde waarin dit gehou sal word. 0sy 1s.

Hierdie programmeertale is baie vinnig, omdat dit op die laagste moontlike vlak van programmering werk, maar hulle is baie afhanklik van die argitektuur en is beslis 'n bietjie ingewikkelder om te leer as die ander. Dit vereis dikwels 'n breër konsepbasis om die data te transformeer en nuttige dinge daarop te gebruik. Vir liefhebbers van videospeletjies is SEGA-konsoles, wat Assembly gebruik het om hul speletjies te programmeer, byvoorbeeld. Dit was duidelik dat die hoeveelheid geheue op daardie tydstip minimaal was in vergelyking met vandag, en dat dit nodig was om 'n taal wat vinnig kon wees, te bemeester en ligte programme op te stel.

Hoëvlak-tale

Hierdie groot groep besin oor die tale wat daarna gekom het Vergadering. Die behoefte om draagbare kode te bekom, het gelei tot die ontstaan ​​van 'n groep tale wat genoem word saamgestel. Hieronder was die eerste wat voordeel getrek het uit C, wat sedert die 70's 'n oorheersing in programmering op die bedryfstelselvlak het.

Saamgestelde tale

Kom ons kyk na 'n praktiese voorbeeld van wat ek kommentaar lewer. Kom ons kyk na 'n baie eenvoudige C-taalprogram wat een kode kode afdruk.

Eie. Christopher Diaz Riveros

Na die samestelling daarvan het ons die volgende:

Eie ontwerp: Christopher Díaz Riveros

Kom ons kyk nou wat ons sal moet skryf om dieselfde resultaat in die vergaderingkode te herhaal:

Eie. Christopher Diaz Riveros

Dit is die vertaling van ons drie reëls kode van simple.c, die lêer simple.s word met behulp van die opdrag geskep gcc -S simple.c en dit is wat ons verwerker in 'n dialek sou verstaan Vergadering. Dit is duidelik dat om 'n uitvoerbare program te skep wat bestaan ​​uit 0sy 1s die lêer verwerk moet word simple.s en verbind dit met die gedeelde biblioteke van ons stelsel. Dit word gedoen met behulp van a samesteller (as) en 'n connector (ld).

Saamgestelde tale bied 'n groot voordeel bo lae tale draagbare. Draagbaarheid lewer kode wat op verskillende verwerkers uitgevoer kan word sonder om spesifieke kode vir elke argitektuur te genereer. 'N Ander ooglopende voordeel is die eenvoud wat dit gebruik by die lees en skryf van kode. Van die grootste nadele het ons 'n hoë kompleksiteit, want in vergelyking met die volgende tale wat ons sal sien, kan die vryheid wat C bied skadelik wees as u nie weet hoe om te beheer nie, dit is beslis soos die oorhandiging van 'n geweer. Dit kan gebeur dat in die gebrek aan ervaar dat iemand uiteindelik sy eie voet skiet in 'n poging om die geweer skoon te maak.

Interpreteerde tale

Binne hierdie groep het ons 'n groot verskeidenheid tale, waarvan die belangrikste Python, Ruby, Javascript, PHP, ens. Is ... Die basiese idee van hierdie tale is om 'n vinnige manier te bied om programme te skep en uit te voer, dit is omdat baie van die moeilike prosesse word in die tolk uitgevoer, en die programmering van die logika is wat in die kode geïmplementeer word. Kom ons kyk na dieselfde voorbeeld hierbo, maar hierdie keer in Python geskryf:

Eie. Christopher Diaz Riveros

Van die uitstaande dinge kan gesien word dat die eerste reël die tolk moet skakel (die program wat ons toepassing sal uitvoer) en die daaropvolgende kode is "eenvoudiger" as die weergawe in C, aangesien al die harde werk op die tolk uitgevoer.

Eie. Christopher Diaz Riveros

Geïnterpreteerde tale bied die ontwikkelaar 'n groter mate van sekuriteit, aangesien hulle strengere veiligheidskontroles het (let op dat dit nie perfek is nie, want selfs die beste kan foute maak) en ons loop nie meer die risiko om 'n wapen te skiet sonder om dit te besef nie, aangesien die tolk met die eerste probeerslag alarm gemaak het en die uitvoering gekanselleer sou word. Die grootste nadeel word duidelik by die uitvoering van die program, omdat dit stadiger is as die binêre eweknie, dit juis as gevolg van die groter hoeveelheid verwerking om te kan verseker dat die kode werk. As die program nie uiters kort spertye benodig nie, kan die verskil ongesiens verbygaan, maar as ons van duisende of miljoene data per sekonde praat, word die verskil eksponensieel opgemerk in saamgestelde tale.

Tik

Dit is 'n kenmerk van programmeertale, dit kan wees sterk swak getik. Ek gaan hierdie onderwerp vir 'n ander pos agterlaat, aangesien dit nodig en nuuskierig is om te verstaan ​​hoe geheue in 'n program gestoor word, maar vir nou hoef ons net die onderskeid te tref: sterk getikte tale is die tale wat vereis dat u die tipe data ken wat gaan om op 'n veranderlike of konstante gewerk te word, terwyl die swak soorte kan omskakelings uitvoer implisiet en alles sal afhang van 'n omskakelingshiërargie, gevolg deur die taal. (as dit nie nou verstaan ​​word nie, geen probleem nie, laat ons dit vir later)

paradigmas

Soos alles in die GNU / Linux-wêreld, is programmeertale gebaseer op paradigmas en word gemeenskappe rondom hulle gegenereer. Ons het byvoorbeeld die Python-stigting o Ruby o PHP o Bash (in welke geval dit die GNU-gemeenskap is). Wat ek hiermee wil bereik, is dat ek nie die groot aantal voor- en nadele wat elkeen het, kan uitdruk nie, maar ek kan u vertel dat daar 'n gemeenskap is om aan te leer en daaraan deel te neem waar daar 'n gratis programmeertaal is. Dit is die moeite werd om te noem dat baie, indien nie alle taal-tolke in C geskryf is nie, of as 'n enkele afgeleide instrument, en dat die ontwikkeling daarvan gewoonlik uitgevoer word deur 'n kleiner groep van die gemeenskap, wat verantwoordelik is vir die besluite wat alle taalgebruikers sal raak. Daar kan selfs instellings gevorm word om die korrekte ontwikkeling van taal te verseker, soos die geval C is.

Wat om te kies?

Ons het al genoeg oor tale gepraat en ek antwoord nog steeds nie die belangrikste ding nie 😛. Maar ek hoop dat dit na my hersiening van hierdie klein artikel nie nodig is om u te vertel watter taal u moet kies nie, want met hierdie inligting is u ten volle in staat om te soek na een wat nuuskierigheid wek. Dit is duidelik dat as u in 'n taal wil leer programmeer Vergadering dit sal lank duur voordat u iets funksioneels kan doen, die tyd sal aansienlik verminder word as u kies vir 'n saamgestelde taal. Behalwe dat u draagbaar is op * NIX-stelsels, kan u ook inligting oor die werking van dieselfde stelsel leer, aangesien kontak met C of afgeleides laat u op die een of ander manier leer hoe 'n bedryfstelsel op 'n algemene manier werk. Ten slotte, as u iets ligs wil leer en wat u in staat stel om baie te doen sonder dat u baie hoef te verstaan, is geïnterpreteerde tale 'n prettige manier om programmeringsvaardighede aan te leer en te ontwikkel.

Leer met iets opwindends

Dit is die beste raad wat ek u kan gee. As u iets wil leer, moet u eers iets opwindends vind, anders is dit moeilik om die tipiese leerkurwe van enige programmeertaal te oorkom. Gestel u bestuur stelsels, en dan moet u 'n ideale taal aanleer script (geïnterpreteer), hierbinne het ons Perl, Python, Bash, ens. ens. Miskien wil u 'n instrument op stelselvlak skep, want ons het C, Python, Perl, soos u sal sien, word herhaal, en dit is omdat baie tale vir baie take gebruik kan word, daarom definisie van veeldoelige tale in die meeste hiervan.

Begin 'n projek

Hiermee bedoel ek nie dat u die volgende samesteller of selfs die volgende programmeertaal skep nie, 'n projek kan wees om 'n klein fout in u gunsteling program op te los, en miskien selfs om die dokumentasie te verbeter. Waarom die dokumentasie? omdat daar geen beter manier is om te leer hoe die sagteware werk nie, as om die dokumentasie daarvan te lees en te help skryf, want na die bronkode is dit die grootste bron van inligting wat u oor die program sal vind. In 'n ander oomblik sal ons sien hoe om die kode van 'n projek te lees en die funksies en waardes wat hulle kry, te verstaan.

Baie dankie dat u hierheen gekom het, en soos altyd, help u kommentaar my om beter inhoud te genereer en te weet waar ek moet fokus, Groete.


Die inhoud van die artikel voldoen aan ons beginsels van redaksionele etiek. Klik op om 'n fout te rapporteer hier.

37 kommentaar, los joune

Laat u kommentaar

Jou e-posadres sal nie gepubliseer word nie. Verpligte velde gemerk met *

*

*

  1. Verantwoordelik vir die data: Miguel Ángel Gatón
  2. Doel van die data: Beheer SPAM, bestuur van kommentaar.
  3. Wettiging: U toestemming
  4. Kommunikasie van die data: Die data sal nie aan derde partye oorgedra word nie, behalwe deur wettige verpligtinge.
  5. Datastoor: databasis aangebied deur Occentus Networks (EU)
  6. Regte: U kan u inligting te alle tye beperk, herstel en verwyder.

  1.   anoniem dijo

    Soos altyd 'n 10 !!!!!! Dankie vir u artikels. Groete en nog wat kom !!!!

    1.    ChrisADR dijo

      Baie dankie 🙂 moedig my aan om aan te hou skryf. Cheers

  2.   Ruben dijo

    Ek dink dit is 'n fout om die vraag 'watter taal te kies?' Ek is een van diegene wat dink dat taal die minste daarvan is. Die belangrikste is om die basiese beginsels van programmering te leer en 'rekenaarmatig te dink'. Besluit op 'n sintaksis, hoe dit getik word, of dit OOP ondersteun, die nut daarvan, ens. Ek dink dit is iets wat vanselfsprekend sal wees in die studie, en elke programmeerder ken immers meer as 1, 2 en 3 tale ... en danksy die programmeringskonsepte (en nie sintaksis nie) wat hy het, kan hy programmeer in 'n taal waarin u nog nie ondervind het nie.
    Vir die ingewydes dink ek egter dat 'n goeie taal Python kan wees vir sy eenvoud, maar bowenal 'n bietjie verder gaan, algoritmes bestudeer en weet hoe dinge 'binne' werk.

    Groete ChrisADR

    1.    ChrisADR dijo

      Hallo Rubén, dankie vir die deel
      Daar is iets wat ek mettertyd geleer het in die wêreld van programmering, en dit is dat "hy wat baie dek, nie druk nie" en met hierdie bekende frase bedoel ek dat ek baie keer, en veral die mees entoesiastiese, besluit om te probeer almal 'n bietjie, en het baie vinnige draaie in terme van leer om te kodeer. Ek glo, en dit is 'n persoonlike mening, dat 'n goeie ontwikkelaar 'n samestellerstaal en 'n tolktaal moet ken en bemeester, bo en behalwe dat hy 'n idee het van die een of ander vergaderingdialek.
      Die rede is die volgende: die prototipering moet altyd iets eenvoudig en vinnig wees, maklik om te genereer en wat gewoonlik 'n resultaat toon, maar as dit nie genoeg is nie, moet daar 'n 'plan B' wees om na die tolk te kom tot sy limiet.
      Om 'n dialek van die Vergadering te ken, gee u nie net selfvertroue nie, maar leer u ook om 'rekenaarmatig' te dink, maar uiteraard is hierdie deel die ingewikkeldste van almal, en dit is beslis iets waarheen nie alle programmeerders kom nie.
      Maar terug na die onderwerp, want ek dink die hoofgedagte is: "kies 'n taal en oefen BAIE", want die enigste manier om goed te word met programmering is om kode te lees en te skryf, en dit is iets wat ek van die kerngemeenskap geleer het. As u lank dieselfde sintaksis hou, hou u op om die vorm te sien en begin u bekommerd wees oor die AGTERGROND. Die idee om 'n taal of sintaksis van die begin af te kies, is dat u die lees- en skryfwerk so kan gewoond maak dat u die BETEKENIS van die program kan begin lees in plaas van die sintaksis van die program.
      Dit is die hoofrede vir hierdie berig, dat elkeen sy taal kies sodat ons in die volgende die begrippe kan verduidelik, miskien hiermee die twyfel verhelder word 🙂
      Groete en dankie vir die deel.

  3.   deibis contraras dijo

    dankie vir die berig dit was goed.

    Groete

    1.    ChrisADR dijo

      Hallo Deibis, dankie vir die deel 🙂 Groete

  4.   JorgeFS dijo

    My raad: enigiets anders as PHP. Twintig jaar gelede het PHP 'n sekere sin in sy bestaan ​​gemaak as gevolg van die hoë kompleksiteit wat die web in CGI in 'n ander taal geprogrammeer het. Maar vandag is daar 'n groot verskeidenheid raamwerke om webontwikkeling aangenamer te maak in kragtige tale, soos Django vir Python, Spring vir Java of Rails vir Ruby. Alhoewel PHP tans op alle gewildheidskaarte verskyn, sal PHP myns insiens mettertyd verloor.
    Ek beveel sterk aan om met C \ C ++ te begin om die realiteit van programmering te verstaan, hoewel die leerkurwe steil is.
    Groete.

    1.    ChrisADR dijo

      Hallo Jorge, dankie vir die deel, onthou net van Laravel, wat 'n redelike soliede raamwerk is. Ek het persoonlik nooit van Lente of Java gehou vir webontwikkeling nie, ek vind dit nogal omslagtig, maar ek dink dit is deel van die hoeveelheid tyd waarin hulle gewees het in die mark, toe hulle pioniers was en beslis vandag, kon moderne alternatiewe (Js, Python en Ruby) die manier om kodering aan te bied wat leesbaar en aanpasbaar is sonder veel werk, verbeter.
      Ek is ook geneig om mense op 'n sekere punt in hul lewens C / C ++ te leer, ek het met Java begin, maar ek dink dit is die prag van programmering; u kan begin met alles wat u wil, solank u konsekwent is, sal dit nuttig wees Cheers

    2.    Ruben dijo

      Ek kan nie meer met u verskil nie. Ek het baie jare gelede met C en VB begin, om later op PHP en JS te fokus (aangesien ek my op webontwikkeling toegespits het) en later terwyl ek studeer, het ek hoofsaaklik C / C ++ en Java geleer.
      PHP het 'n aantal voordele wat ek nie in hierdie boodskap kon noem nie. PHP7 is vinnig (vinniger as Python ... sonder gebruik van hhvm, verskillende caches, raamwerke soos Phalcon of bytecode in die geval van Python), dit het 'n groot aantal biblioteke en raamwerke, dit het 'n groot hoeveelheid direk geïmplementeerde funksies om dit te eniger tyd te gebruik, sy sintaksis so baie soos C maak dit baie maklik om na ander tale te migreer.
      30% van die webwerwe word wêreldwyd gemaak met WordPress (PHP) en dit lyk asof dit nie verander nie, Wikipedia gebruik dit, Facebook (met hhvm) en 'n groot aantal webwerwe, in totaal 80%.

      Ek herinner u daaraan dat Ruby on Rails soos Django 12 jaar oud is! Watter kwota het hulle in hierdie tyd behaal? En natuurlik, ons praat oor 2 raamwerke wat feitlik 'n monopolie het en daar is geen fragmentasie nie. Watter ander ernstige alternatiewe het ek? Om te sê dat PHP relevansie gaan verloor, maak baie min sin.

      Noudat Python in die mode is omdat dit 'n vinnige leerkurwe het, is dit 'n eenvoudige taal en hulle verkoop dit aan u as die "word binne 20 uur 'n programmeerder met Python en daaraan werk", met die ondersteuning van maatskappye soos Google en dat daar nou die Die manier om nuwe tale te soek (Go, Dart ....) Om u in 'n CV te onderskei (of as die daaglikse geboorte van 50 raamwerke vir Javascript!), Beteken nie dat dinge verander nie.

      Ruby is 'n baie interessante taal, maar dit breek soveel van gevestigde patrone dat ek moeilik kan glo dat dit gewilder geword het as PHP. Natuurlik is Ruby volgens my die slegste taal om met almal te begin programmeer.
      Ek verstaan ​​dat u vir my sê dat Python lekker kan programmeer, selfs Ruby met sy oneindigheid van eienaardighede ... maar die lente met Java? Regtig? Java kan baie dinge wees ... maar aangenamer as Python en PHP?

      Dit is alles goed om met Python te begin, maar omdat u net by Python hou, loop u die risiko dat baie ondernemings sal glo dat u vlak van programmering nie 'diep' is nie (al is u baie goed met Python). Dit is omdat u meeding met ander "veeldoelige" tale soos C ++ of Java. U kan in Python programmeer sonder om die verskil te weet wat 'n wyser is, 'n bietjie wysheid, hoe 'n vullisverwyderaar werk en 'n lang ensovoorts.
      Python is miskien die minste soortgelyk aan 'klassieke programmering' wat bestaan ​​en gesien kan word as 'n 'kindertaal' (kry die metafoor), en dit is weer 'n voordeel en 'n nadeel.

      1.    JorgeFS dijo

        "Python is miskien die minste soortgelyk aan 'klassieke programmering' wat bestaan ​​en kan gesien word as 'n 'taal vir kinders' (verstaan ​​die metafoor), en dit is weer 'n voordeel en 'n nadeel." LOL, dit is een van die snaaksste dinge wat ek gesien het oor Python. Het u al ooit Python geleer?
        Hoe lank is dit wêreldwyd buite PHP?
        Vriend PHP is doodgebore. PHP (\ d +) het baie las as gevolg van 'n baie slegte aanvanklike ontwerp, en om die gebruikersgemeenskap te handhaaf, bly dit al die oorspronklike ontwerpfoute baie deeglik sleep. PHP is gebore sonder modulariteit, met baie funksies in die C-styl (wat ek terloops nie weet waar jy dit vandaan gekry het nie, want die sintaksis is soortgelyk aan C en kan maklik na ander tale oorgedra word). 'N Taal op hoë vlak, soos PHP moet optree, het sulke lelike dinge soos hierdie spoor van funksies wat op sy amptelike webwerf gelys word http://php.net/manual/en/indexes.functions.phpDit is omdat dit sonder modulariteit gebore is, so alles is vuil deurmekaar en sonder naamruimtes.
        Dit is 'n stuk PHP-kode:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        kan daar op 'n stadium bepaal word waar al hierdie 'stroom'-funksies ingevoer is? NEE, u sou dan kon sê dat dit geboufunksies is, maar dan is die hele ekosisteem geboufunksies? Daar is dus baie vullis in die PHP-kode, dat as u nie die kompleksiteit en nutteloosheid van so 'n slegte ontwerp kan verstaan ​​nie, vergewe my, maar dit het nog baie wêreld om te sien.
        Wordpress is 'n uitstekende sagteware-oplossing, maar dit beteken nie dat dit 'n goeie tegnologiese basis het nie. U kan met 'n klip hamer en naels met u tande uittrek, en u kan steeds uitstekende timmerwerk doen, maar natuurlik met baie meer werk as 'n ander timmerman wat 'n goeie hamer gebruik.

        Aan die ander kant: "word 'n programmeerder oor 20 uur met Python en werk daaraan", ek het nog nooit so 'n onnoselheid gesien nie. U mag binne 20 uur 'n webwerf in PHP bou sonder dat u kennis dra van hoe webprogrammering werk, of die programmering self. In werklikheid is dit die rede waarom PHP so gewild is, want beginners wat hierdie wêreld binnekom, sien PHP as 'n punt van vinnige ontwikkeling (dit is waarom soveel PHP-kode so hard suig).
        Wat Python se tekortkominge betref, was dit die enigste om suksesvol te wees om met aanwysers te werk, maar in elk geval is Python 'n hoëvlaktaal (net soos Java) en maak dit nie op sintaksisvlak gebruik nie; maar bitwyse bewerkings, ernstig?, bedoel u dit x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Ek het die vullisversamelaar-ding baie minder verstaan: https://docs.python.org/3/library/gc.html.
        PHP-leemtes:
        -PHP het 'n baie swak objekgerigte programmeringsontwerp (OOP).
        -Jy kan nog nie die operateurs oorlaai nie.
        -Verras, function overloading in PHP is dit nie wat u van hierdie konsep verwag nie.
        … .. en ek het net verveeld geraak hehe.
        Groete.

        1.    Ruben dijo

          Ek sit tussen hakies "verstaan ​​die metafoor" (deur die vergelyking van Python met C ++ / Java in dieselfde werksomgewing), dit is duidelik dat u dit nie verstaan ​​het nie. Ek sou jou kon sê dat 'n C ++ programmeerder baie vinniger Python kan leer as wat 'n Python programmeerder C ++ kan leer, net soos dit geen verrassing is dat die gemiddelde salaris van 'n C / C ++ programmeerder hoër is as 'n Python een nie.
          Ek kan dit aan u verduidelik met ander voorbeelde, selfs met 'n tekening! maar dit wil voorkom asof u slegs konsentreer op die dekontekstualisering en bespotting van wat ek gestel het.

          Ek het nog nooit gesê dat PHP die beste taal ter wêreld is of dat dit 'n voorbeeldige ontwerp het nie, ek weet nie waar jy dit vandaan kry nie. Ek dink dat u u leesbegrip moet verbeter voordat u die kennis van ander beoordeel. Wat wel waar is (en ek het in my boodskap gesê) is dat dit baie rats is om saam met dit te ontwikkel, benewens die hele ekosisteem van raamwerke, biblioteke en hulpprogramme wat u kan vind.
          Watter soort vergelyking tref ons ook? Python as 'n veeldoelige taal of vir die internet? Waarom vergelyk ons ​​dit in so geval met PHP? PHP het 'n spesifieke veld, en dit is in die veld waar Python (met 'n aandeel van 0.2%, wat nie vanjaar verander het nie) langs PHP verbleek.
          Nou gaan ons die PHP-tendense sien; van 82,4% in Januarie 2017 tot 83.1% in Januarie 2018: https://w3techs.com/technologies/history_overview/programming_language

          Gaan Python PHP onttroon? In watter jaar? in watter vyf jaar? dekade?
          Python kan in baie ander take gebruik word, en selfs meer gebruik word as PHP, maar Python as webontwikkelingstaal is ligjare ver van selfs relevant, 0.2% stagneer teenoor 83.1% (met 'n styging vanjaar).

          U aanvaar dinge ook as vanselfsprekend deur te sê dat ek nie buite PHP rondloop nie, en gee te kenne dat ek slegs PHP ken, as ek presies lanklaas in PHP geprogrammeer het haha. Op die oomblik programmeer ek meestal in Java om werkredes.
          Ek het ook nie gesê dat u nie kennis het van bitwise, 'n vullisverwyderaar of 'n wyser deur in Python te programmeer nie. U kan eerder in Python programmeer sonder om eers te weet wat dit is. Ek betwyfel egter sterk dat dit die geval sou wees vir 'n C ++ programmeerder. En natuurlik tref ek die vergelyking wanneer Python die veld van "multifunksietaal" betree, nie vir webprogrammering nie.

          Om binne 20 uur programmeerder te word, is bloot 'n grap, 'n oordrywing. Ek kan u egter verskillende skakels hier oor aanlynonderwysplatforms en kursusse plaas wat soortgelyke dinge belowe. Moet my nie kwalik neem nie, blameer dit op 'n arbeidsmark wat dink dat dit 'n kwessie van 20 uur is om 'n 'kundige programmeerder' te word. En Python is een van die modieuse tale en ook met die vinnigste leerkurwe ... wit en in 'n bottel.

          Ek dring daarop aan dat u u boodskap baseer daarop om te sê hoe sleg PHP is (wat ek in 'n sekere deel saamstem). Dit lyk vir my korrek, behalwe dat my boodskap nie daaroor gaan nie, maar waarom PHP steeds sal gebruik word en dat dit nie more sal verdwyn soos u dink nie.

          'N groet

  5.   niemand dijo

    C -> Gaan -> (Lisp | Haskell | Java | wat ook al)

    1.    ChrisADR dijo

      Onlangs het 'n leser my 'n aanbeveling van 'n Go-boek na my e-pos gestuur, sekerlik 'n taal om in die toekoms in ag te neem en waarvan hier miskien 'n boodskap sal wees 🙂 Baie grafieke om te deel

  6.   mvr1981 dijo

    Wel ... en wat programmeer ek? Waarom leer 'n programmeertaal vandag met sulke goeie en ervare programmeerders wat reeds bestaan? Watter probleme kan ek oplos wat ander nog nie op 'n baie doeltreffender manier opgelos het nie? ... Kortom: Hoe oorspronklik is om vandag 'n programmeerder te wees? Hoe kan ek met ander saamwerk sonder om deur my gebrek aan kennis en ervaring geskop of uitgesluit te word?

    1.    ChrisADR dijo

      Hallo mvr1981, regtig interessante vrae 🙂 ons gaan dit van die laaste tot die eerste rol.

      Hoe kan ek met ander saamwerk sonder om deur my gebrek aan kennis en ervaring geskop of uitgesluit te word?

      As u nie wil skop nie, is die eerste stap om die proses te leer, u kan u nie voorstel hoeveel mense na projekte wil kom wat dinge uitsluitlik op hul eie manier wil doen nie en die gemeenskap wil aanpas by hul wense. Dit is beslis soos ek na u huis kom en 'n warboel maak en u gesin minag (dit is hoe dit baie keer voel). As u wil voorkom dat dit gebeur, let goed op die riglyne om by te dra, die middele om dit te doen, en stuur nie iets onvolledigs nie, as u hulp nodig het, is daar altyd middele om te kommunikeer, maar 'n slegte werk sal waarskynlik slegte eerste indrukke skep. As u uself nie wil uitsluit wat aan u behoort nie, kan u hom sien as die nuttelose programmeerder wat nie weet wat hy doen nie, of die een op pad om 'n uitstekende programmeerder te word, en dit gebeur net met oefening en beslis met foute langs die pad. Ek was al baie keer verkeerd voordat ek my ontwikkelaarstatus op Gentoo gekry het, en dit het my nie verhinder om te probeer nie, ondanks die 'slegte tyd' 🙂.

      Hoe oorspronklik is dit om vandag 'n programmeerder te wees?

      -Dit gaan nie oor oorspronklikheid nie, dit is 'n noodsaaklikheid vandag, dink net aan die volgende, 20 of 30 jaar gelede, tik was 'n noodsaaklikheid, baie werk het afgelei dat u dit weet of ten minste kan doen. Vandag is die wete van Office 'n noodsaaklikheid; daar is feitlik geen werk wat u nie voor Office-dokumente plaas nie. Môre, binnekort, is programmering 'n noodsaaklikheid. En dit geld ook vanuit 'n persoonlike oogpunt, om vir my iets te weet wat gebeur in die programme waaraan u dinge so belangrik soos u geld, gesondheid, familie toevertrou, want u kan net weet wat hulle beperkings is as u weet hoe dit werk en waarvoor om dit te weet, moet u weet hoe om te programmeer.

      Watter probleme kan ek oplos wat ander nog nie op 'n baie doeltreffender manier opgelos het nie?

      -Jy sal verbaas wees oor die hoeveelheid kenmerke wat vandag benodig word, en om die waarheid te sê, maak dit nie saak dat daar die beste programmeerders ter wêreld in die gemeenskap is nie; die werk sal altyd groter wees as die werkvermoë van die ontwikkelaars. Ek kan dit in Gentoo verifieer; daar is mense wat die kernel, mense wat werk by Google, Sony, ens. ens ... die enigste ding wat ons almal gemeen het, is dat niemand soveel tyd het as wat hulle graag die lopende werk wil doen nie.

      Waarom leer 'n programmeertaal vandag met sulke goeie en ervare programmeerders wat reeds bestaan?

      -Dit word beantwoord in die tweede vraag 😉 Maar nou kan ek byvoeg dat geslagte die werk wat reeds ontwikkel is, moet kan ondersteun, hiermee bedoel ek dat die "ervare" ontwikkelaars geleidelik sal verdwyn en dit sal nodig wees vir die "jonger »Ontwikkelaars neem verantwoordelikheid en help om die kringloop lewendig te hou. 'N Gemeenskap wat nie jong en onervare mense het nie, is geneig om mettertyd te verdwyn, juis omdat daar geen geleentheid is om kennis oor te dra nie.

      En wat beplan ek?

      -Dit is miskien die moeilikste om te beantwoord, maar ek sal u 'n voorbeeld probeer gee. Ek het onlangs probleme ondervind met GNOME 24 en die verbinding met Wayland wat voorkom dat programme soos Shutter screenshots neem. Dit is vir my 'n probleem, want as ek my artikels skryf, moet ek u wys wat ek sê. As ek 'n bietjie rondkyk, kom ek na die GNOME Screenshot-toepassing, om die minste te sê 'n bietjie "minimalisties". Onder die funksies is daar een om 'n skermstreek te neem, maar wat gebeur as ek die foto nie goed neem nie? Wel, ek moet die program verlaat en weer binnegaan, seker iets verveligs, 'n knoppie wat sê "Herneem" of iets dergeliks laat my toe om 'n nuwe opname te neem sonder om uit te gaan en weer in te gaan, sal my help. dit is 'n klein programmeringsprojek, ek het nog nooit iets in die GNOME-raamwerk geprogrammeer nie, dus moet ek natuurlik baie leer voordat ek my "patch" met die nuwe knoppie stuur, maar onderweg leer ek om te programmeer en hopelik funksie dit sal meer as een help wanneer dit vir almal beskikbaar is.

      Dit is 'n voorbeeld, dit is iets eenvoudigs en dat enige ander "kundige" programmeerder dit sekerlik al sou kon doen, maar as gevolg van 'n klaarblyklike gebrek aan tyd was dit nog nie so nie, nou is dit ek wat die moontlikheid het om dit te doen, sonder om regtig 'n super programmeerder.

      Nou is dit net aan u om iets te vind wat u lewe "eenvoudiger" sal maak in die sagteware wat u so gereeld gebruik. Die skoonheid daarvan is dat die taal nie saak maak as ons die advies volg wat ek u in die volgende artikels gaan gee nie, want U sal die basiese beginsels ken om die kode wat u gelees het, te verstaan ​​en dit te verander om te doen wat u wil, dit is 'n baie spesiale gevoel 🙂

      Groete en nogmaals dankie

      1.    niemand dijo

        Ek dink dat slegs nadat ek die gnome-opnameprogram oopgemaak het, die maklikste ding is om na die sneltoetspaaie te gaan en drie kombinasies druk toe te ken om al die drukkies vas te lê om die aktiewe venster vas te lê en superdruk om 'n keuse uit die vangstreek, is die beskikbare kortpaaie reeds beskikbaar, dit is bloot 'n kwessie van toekenning

        1.    ChrisADR dijo

          Daarom gee ons u 'n voorbeeld 🙂 omdat klein dingetjies soos daardie knoppie programmeer, kan hulle sommige help, aangesien dit ongemerk deur ander kan bly, maar hulle voldoen beslis aan die hoofdoel, help om te leer om te programmeer en maak plek vir nuwe funksies, Na daardie knoppie kan baie dinge begin word, soos 'n sessiebestuur, of 'n voorskouskerm van al die foto's wat geneem is, of kortom, baie dinge wat gedoen kan word. Die idee is dat u iets vind wat u nuuskierig laat word; enige sagteware wat op u stelsel werk, sal moontlik verbeterings nodig hê of nuwe funksies wat weens gebrek aan tyd of personeel nog nie geïmplementeer is nie 🙂

      2.    mvr1981 dijo

        Te danke aan jou. is baie goeie antwoorde.

    2.    Guillermo dijo

      Wel, vir iemand wat nie 'n professionele persoon in die veld gaan wees nie, sal dit nodig wees om te sien in watter omgewing hulle werk, sowel vir administratiewe take as voorskrifte, dit kan interessant wees om byvoorbeeld Python / Basic te ken en te weet hoe om makro's in kantoorpakkette soos LibreOffice of MS Office te programmeer. Daar is tye dat dit baie ure werk kan bespaar vir u of ander werkers wat u omring en hulle vra om enige herhalende taak uit te voer. U kan 'n dashboard skep om die hoofverhoudings van die onderneming vinnig te bereken nadat u met die databasis gekoppel is. daarvan en voer 'n paar SQL-navrae uit.
      Soos alles, as u die gereedskap binne u vingers ken, kan u nadink oor hoe u dit optimaal kan benut. Nie alles is opgemaak nie.

  7.   Marcelo dijo

    Guillermo, stem heeltemal saam met u, "Nie alles word uitgevind nie" en wat uitgevind word, is aanpasbaar. U moet die beste gebruik maak van die gereedskap en die instrument gebruik wat die beste by u behoeftes pas.

  8.   Ricardo dijo

    Vir programmering is Engels die eerste taal om te leer, en dan die taal wat die meeste byval vind en vir hulle die mooiste lyk.

    1.    ChrisADR dijo

      Ek het dit nog nie geskryf nie, maar ware kennis van Engels help baie, want die meeste tale is daarin, maar ook omdat die groter hoeveelheid eerstehandse inligting ook baie dankie sê vir die deel

  9.   Ruben salgado dijo

    Uitstekende artikel, benewens motiverend.

    1.    ChrisADR dijo

      Baie vriendelik, baie dankie 🙂 Groete

  10.   Gonzalo martinez dijo

    Programmering is om te weet hoe om dit te redeneer en in instruksies te vertaal.

    Twee verduidelikings oor die artikel:

    1) Gebaseer op my ervaring as programmeringsonderwyser vir byna 10 jaar, maak dit nie saak met watter taal jy leer nie, maar hoe jy leer en hoe kompleks dit is.

    Ek dink dat 'n taal wat op 'n gestruktureerde manier geleer kan word en dan na ander meer komplekse dinge kan oorgaan, makliker is as om van die begin af met 'n taal soos Java te begin.

    Dit is makliker om iets soos 'n Hello World in C of Pascal as basis te leer, as met 'n paar reëls (PROGRAM in die geval van Pascal, of #include In die geval van C) kan u die algoritme begin ontwikkel en die program met sy logika direk kodeer, soos in Java, wat op sigself 'n klas, 'n metode en ander dinge benodig wat vir 'n beginner 'n oorbelasting van inligting is. onnodig, en dit kan goed geïgnoreer word en na ander dinge oorgaan, maar dit is begrippe wat daar is, en na my mening is dit nie 'n goeie manier om te leer nie, veral as die taal jou dwing om dit te gebruik. Dit is soos om 'n teikenoefening vir die eerste keer met 'n M-16 te begin en maande lank in semi-outomatiese modus te skiet, en die handvatsel met albei hande soos 'n pistool vas te hou.

    2) Of 'n taal geïnterpreteer of saamgestel word, hang af van die implementering daarvan, nie van die taal self nie. As u byvoorbeeld Python gebruik vir 'n webprogram wat wsgi gebruik (of dit nou mod_wsgi in apache is, of uwsgi vir Nginx), word die python-kode saamgestel wanneer u die ooreenstemmende module begin en genereer .pyc-lêers.

    Daar is ook binêre lêeropwekkers vir Java (wat inheemse binaries in plaas van bykode genereer), of samestellers van php-skrifte in suiwer binaries.

    Wat hulle sê oor PHP, is dit eenvoudig 'n taal wat in 'n ander era ontwerp is, met ander dinge in gedagte, en sonder om aspekte in ag te neem wat destyds nie bestaan ​​het nie. Die feit dat dit die meeste gebruik word, maak dit nie die beste vir enigiets in die wêreld nie, maar daar is 'n werklikheid: dit is die taal waarmee die grootste kans is om werk te kry in alle programmering. Om te weet dat dit nie seermaak nie, al hou u nie daarvan nie.

    Selfs ek werk al 'n paar jaar as 'n stelseladministrateur en verlaat die werk van ontwikkelaar. Ek moet so gereeld PHP-kode in iets sit.

    1.    ChrisADR dijo

      Hallo Gonzalo, dankie vir die deel,

      Beslis van oorbelasting van onnodige inligting, om te weet dat dieselfde taal geïnterpreteer of saamgestel kan word, is iets wat op hierdie stadium nie nodig is nie. The Die implementering is beslis belangrik, maar as ons dit op hierdie vlak sê, skep ons net verwarring. Op dieselfde manier word nie objekgerigte programmeringskwessies aangespreek nie, of ander konsepte wat geleidelik gedoseer moet word om mense nie duiselig te maak nie.

      Aangesien die ruimte beperk is, is die hoofdoel van die boodskap om lesers wat wil programmeer, aan te toon dat daar twee groot wêrelde van tale bestaan, dat die "tradisioneel" geïnterpreteerde meer "eenvoudig" is, en dat die "tradisioneel" saamgestel 'n bietjie is meer "ingewikkeld", maar dit is die moeite werd om 'n meer deeglike begrip te hê en dat dit aan elke persoon is om die taal te kies, aangesien hulle afhangende van die programmeringsbenadering in staat sal wees om hul gunsteling projekte te kies en terselfdetyd wat hulle lees en / of skryf 🙂

      Weereens baie dankie, groete.

      1.    Gonzalo martinez dijo

        Dit is 'n fout, daar is geen saamgestelde of geïnterpreteerde tale nie, daar is tolke en samestellers vir elke taal, beide vir verskillende gevalle.

        Dit is nie 'n oorbelasting van inligting om dit nou te noem nie, dit is 'n fout om so 'n stelling te maak. Myns insiens sou dit produktiewer gewees het om die tolke te ignoreer as u nie met inligting wou oorlaai nie.

        1.    ChrisADR dijo

          Dankie vir die toeligting, ek sal dit in ag neem as ek terugkeer na die onderwerp. Cheers

  11.   Ares dijo

    Watter taal beveel u aan vir die bediener, aangesien PHP in onguns is?
    Dieselfde vir databasisse, ek weet nie of daar iets beter en moderner as mySQL sal wees nie.

    1.    ChrisADR dijo

      PHP het nie in onguns verval nie ... Elke taal het sy lewensiklus, en php is beslis al 'n taal wat die skaal van "volwasse" betree, wat dit nuttig maak op besigheidsvlak, waar stabiliteit bo alles is ... Soos sommige banke waar dit nog in Java ontwikkel is, wat meer "volwasse" is as php en beslis sy aanhangers en nadele het ... En om nie te praat van COBOL nie ...

      As u eenvormigheid en moderniteit soek, word javascript een van die gunstelinge van die sogenaamde "full stack-ontwikkelaars", alhoewel die robynparadigma of die "eenvoud" van luislang ook goeie verwysings is ... Afhangend van die behoeftes, kan selfs perl die opsie wees

      Deesdae neem die ORM (object relational mappers) baie krag in terme van relasionele databestuur. Dit gaan van SQL-sintaksis na klas- en attribuuthantering ... Byna alle tale (indien nie almal nie) hanteer 'n paar ORM's.

      . Mongo DB is 'n alternatief vir relasionele databasisse wat baie belangrik geword het. Dit is egter nodig om die voordele en nadele daarvan te ken en te bevestig of dit die beste oplossing is, afhangende van die spesifieke behoefte.

      Ek hoop dit help jou, groete 🙂

      1.    Ares dijo

        Dankie, ek sal dit nagaan.

      2.    Ares dijo

        Ek het vergeet.

        Wat beveel u my aan om saam met JAVA in Linux te werk?
        As u beter kan onderskei tussen gratis en geslote.

        1.    ChrisADR dijo

          Eclipse en NetBeans is open source, ek weet nie of daar suiwer gratis sagteware is nie. Ek het die gewoonte om vim te gebruik, want soms maak die hoeveelheid kode die gebruik van 'n volledige IDE stadig en geneig tot uitvoeringsfoute. Groete 🙂

        2.    paulzeta dijo

          Om met Java in Linux te werk, gebruik ek IntelliJ, ek beveel u aan.

          1.    ChrisADR dijo

            PS, IntelliJ is 'n eie sagteware 🙂

  12.   je dijo

    Ouens onthou ook dat ... ek in 'n bank werk en ek sê vir u dat programmeertale op die agterste sitplek sit om SQL en Stored prosedures eers te laat verloop.

    1.    Gonzalo martinez dijo

      U moet dit in ag neem by die gestoorde prosedures, maar deur nie 'n draagbare taal tussen enjins te gebruik nie, gaan dit ten minste volgens my altyd daaroor om dit te vermy, tensy daar geen ander opsie is nie.