Esimese programmeerimiskeele valimine

Kindlasti on see üks küsimustest, mis programmeerimisest rääkides minu postkasti kõige rohkem jõuab. Kui hakkame alustama artiklite sarja, mis võimaldab teil õppida programmeerima ja andma tagasi tasuta teadmisi kaastööna tasuta tarkvara / avatud lähtekoodiga kogukondadele kogu maailmas, peate sellele põhilisele küsimusele vastama, kui see on veidi keeruline küsimus. Mis programmeerimiskeelt peaksin õppima?

Vähe de historia

Programmeerimiskeele mõistmiseks ja valimiseks peame kõigepealt teadma natuke nende ajaloost, kasutamisest ja funktsioonidest ning sellest, kuidas nad aja jooksul erinevaid vajadusi lahendavad.

Masinkeeled (madal tase)

Üldiselt tuntud kui Kokkupanek, on programmeerimiskeeled, mida võiksime määratleda üldisema keele murretena ... See kõlab küll natuke keerukalt, kuid näitlen seda ... Teame, et universaalne arvutuskeel on elekter, see tähendab, et lõppkokkuvõttes on see, mida arvuti loeb 0sy 1jah, nimetame seda earvuti inglise keel. Selles näites on põhireegel hispaania keel, kuid nagu me hästi teame, ei ole latiinode räägitav hispaania keel sama, mis Hispaanias, ja isegi nii ei ole Peruu hispaania keel sama Argentina argentiinlasega. Ilmselt on meil kõigil peaaegu samad sõnad (0sy 1s), kuid kasutus ja tähendus võivad olenevalt kontekstist erineda.

See juhtub protsessori tasemel. Kui me räägime arvutusarhitektuurid, (amd64, intel, arm, ...) viidame selle murdele arvuti hispaania keel. Seda seetõttu, et erinevad ettevõtted mõistavad järjestust ja tähendust omal moel, nii et mõned erinevad detailides, näiteks voolu voog või esemete säilitamise järjekord. 0sy 1s.

Need programmeerimiskeeled on äärmiselt kiired, kuna need töötavad programmeerimise võimalikult madalal tasemel, kuid sõltuvad suuresti arhitektuurist ja on kindlasti natuke keerukamad õppida kui ülejäänud. Need vajavad andmete laiendamiseks ja kasulike asjade käivitamiseks sageli laiemat mõistete baasi. Videomängusõpradele võiks näiteks tuua SEGA konsoolid, mis kasutasid Assambleed oma mängude programmeerimiseks. Ilmselgelt oli tol ajal mälumaht tänapäevaga võrreldes minimaalne ja oli vaja omandada keel, mis võiks olla kiire ja toota kergeid programme.

Kõrgetasemelised keeled

See suur rühm mõtiskleb nende keelte üle, mis tulid Kokkupanek. Vajadus hankida kaasaskantav kood tõi kaasa nn keelerühma tekkimise koostatud. Nende hulgas kasutas esimesena ära C, mis on alates 70ndatest opereerinud operatsioonisüsteemi tasemel programmeerimist.

Koostatud keeled

Vaatame praktilist näidet selle kohta, mida kommenteerin. Vaatame väga lihtsat C-keele programmi, mis prindib ühe koodirea.

Oma. Christopher Diaz Riveros

Pärast selle koostamist on meil järgmine:

Oma kujundus: Christopher Díaz Riveros

Kuid nüüd vaatame, mida me peame kirjutama, et sama tulemust kopeerida assamblee koodis:

Oma. Christopher Diaz Riveros

See on meie 3 koodirea tõlge simple.c, faili simple.s luuakse käsu abil gcc -S simple.c ja seda mõistaks meie töötleja murdes Kokkupanek. Ilmselt selleks, et luua käivitatav fail, mis koosneb 0sy 1s fail tuleb töödelda simple.s ja ühendage see meie süsteemi jagatud teekidega. Selleks kasutatakse a monteerija (as) ja ühenduspesa (ld).

Koostatud keeled pakuvad suurt eelist madalama tasemega keelte ees kaasaskantavad. Teisaldatavus pakub koodi, mida saab käivitada erinevates protsessorites, ilma et oleks vaja iga arhitektuuri jaoks konkreetset koodi genereerida. Teine ilmne eelis on lihtsus, mida see koodi lugemisel ja kirjutamisel kasutab. Selle peamiste puuduste hulgas on meil väga keeruline, sest võrreldes järgmist tüüpi keeltega, mida näeme, võib C-i pakutav vabadus olla kahjulik, kui te ei oska kontrollida, see on kindlasti nagu relva üleandmine , võib juhtuda, et vähese kogemuse tõttu laseb inimene relva puhastada ise jalga.

Tõlgendatud keeled

Selles rühmas on meil palju erinevaid keeli, kõige olulisemate hulgas on Python, Ruby, Javascript, PHP jne. Nende keelte põhiidee on pakkuda kiiret viisi programmide loomiseks ja käivitamiseks , seda seetõttu, et paljud keerulised protsessid viiakse läbi interpretaatoris ja koodis rakendatakse loogika programmeerimist. Vaatame ülaltoodud, kuid seekord Pythonis kirjutatud näidet:

Oma. Christopher Diaz Riveros

Kõige silmapaistvamate asjade hulgas näeme, et esimene rida vastutab tõlgi (meie rakenduse käivitava programmi) helistamise eest ja järgnev kood on "lihtsam" kui selle versioon C-s, kuna kõik rasked tööd tehakse tõlgi peal.

Oma. Christopher Diaz Riveros

Tõlgendatud keeled pakuvad arendajale suurema turvakihi, kuna neil on rangemad turvakontrollid (HOIATAGE, et need pole täiuslikud, sest ka parimad võivad teha vigu) ja me ei kannata enam relva tulistamise ohtu. see, kuna esimesel katsel andis tõlk alarmi ja hukkamine tühistati. Peamine puudus ilmneb programmi käivitamisel, kuna see on aeglasem kui binaarne vaste, mis on tingitud just suuremast töötlemishulgast, et oleks võimalik tagada koodi toimimine. Kui programm ei nõua eriti lühikesi tähtaegu, võib erinevus jääda märkamatuks, kuid kui räägime tuhandetest või miljonitest andmetest sekundis, muutub erinevus kompileeritud keeltes eksponentsiaalselt märgatavaks.

Trükkimine

See on programmeerimiskeelte omadus, need võivad ka olla tugevalt nõrgalt kirjutatud. Jätan selle teema teise postituse jaoks, sest see on vajalik ja uudishimulik, kuidas mõista, kuidas mälu programmis salvestatakse, kuid praegu peame tegema vaid vahet: tugevalt sisestatud keeled on need, mis nõuavad tüüpi andmed, mida hakatakse töötama muutuja või konstandi korral, samas nõrgalt tüübid saavad konversioone sooritada kaudne ja kõik sõltub konversioonihierarhiast, millele järgneb keel. (kui sellest praegu aru ei saada, pole probleemi, jätame selle hilisemaks)

Paradigmad

Nagu kõik GNU / Linuxi maailmas, põhinevad ka programmeerimiskeeled paradigmade järgi ja nende ümber luuakse kogukondi. Näiteks on meil Pythoni fond o rubiin o PHP o Bash (sel juhul on see GNU kogukond). Ma tahan sellega jõuda sellega, et ma ei saa väljendada suurt hulka plusse ja miinuseid, mis neil kõigil on, kuid võin teile öelda, et seal, kus on tasuta programmeerimiskeel, on kogukond, kus õppida ja osaleda. Väärib mainimist, et paljud, kui mitte kõik keeletõlgid on kirjutatud C-s või mõnes lähedases tuletises ja nende arendamise viib tavaliselt läbi väiksem kogukonna rühm, kelle ülesandeks on otsuste vastuvõtmine, mis mõjutavad kõiki keelekasutajaid. Keele korrektse arengu tagamiseks võib moodustada isegi institutsioone, nagu C puhul.

Kumba valida?

Oleme keeltest juba piisavalt rääkinud ja ma ei vasta ikka kõige tähtsamale 😛. Kuid ma loodan, et pärast selle väikese artikli ülevaatamist ei ole mul vaja teile öelda, millist keelt valida, kuna selle teabe abil olete täiesti võimeline otsima keelt, mis tekitaks uudishimu. Ilmselgelt, kui soovite õppida programmeerima keeles Kokkupanek kulub palju aega, enne kui midagi funktsionaalset saab, aeg väheneb oluliselt, kui valite kompileeritud keele, kus lisaks * NIX-süsteemides teisaldatavusele saate teavet ka sama süsteem, kuna kokkupuutel C või derivaatidega saate ühel või teisel viisil teada, kuidas opsüsteem üldiselt töötab. Lõpuks, kui soovite õppida midagi kerget ja see võimaldab teil palju ära teha, ilma et oleks vaja palju aru saada, on tõlgendatud keeled lõbus viis programmeerimisoskuste õppimiseks ja arendamiseks.

Õppige millegi põnevaga

See on parim nõuanne, mida saan teile anda, kui soovite midagi õppida, peate kõigepealt leidma midagi põnevat, vastasel juhul on kõigi programmeerimiskeelte tüüpilisest õppekõverast üle saada üsna keeruline. Oletame, et haldate süsteeme, sellisel juhul peate võib-olla õppima ideaalse keele skriptimine (tõlgendatud), nendes on meil Perl, Python, Bash jne jne. Võib-olla on teie mängud, olenevalt soovitud mängu tüübist on palju projekte sellistes keeltes nagu Javascript, Lua, C ++ mängima. Võib-olla soovite luua süsteemitaseme tööriista, kuna meil on C, Python, Perl, nagu näete, mõned neist korduvad ja see on sellepärast, et paljude ülesannete jaoks saab kasutada paljusid keeli, mistõttu määratlus kohta mitmeotstarbelised keeled enamikus neist.

Alustage projekti

Selle all ei taha ma öelda, et loote järgmise kompilaatori või isegi järgmise programmeerimiskeele, projekt võib olla teie lemmikprogrammi väikese vea parandamine, võib-olla isegi dokumentatsiooni parandamine. Miks dokumentatsioon? kuna tarkvara toimimise õppimiseks pole paremat viisi kui selle dokumentatsiooni lugemine ja kirjutamise hõlbustamine, sest pärast lähtekoodi on see suurim teabeallikas, mille leiate programmi kohta. Teisel hetkel näeme, kuidas lugeda projekti koodi ning mõista nende omandatud funktsioone ja väärtusi.

Suur tänu siia jõudmise eest ja nagu alati, aitavad teie kommentaarid mul paremat sisu luua ja teate, kuhu keskenduda. Tervitused.


Jäta oma kommentaar

Sinu e-postiaadressi ei avaldata. Kohustuslikud väljad on tähistatud *

*

*

  1. Andmete eest vastutab: Miguel Ángel Gatón
  2. Andmete eesmärk: Rämpsposti kontrollimine, kommentaaride haldamine.
  3. Seadustamine: teie nõusolek
  4. Andmete edastamine: andmeid ei edastata kolmandatele isikutele, välja arvatud juriidilise kohustuse alusel.
  5. Andmete salvestamine: andmebaas, mida haldab Occentus Networks (EL)
  6. Õigused: igal ajal saate oma teavet piirata, taastada ja kustutada.

  1.   anonüümne DIJO

    Nagu ikka 10 !!!!!! Täname artiklite eest. Tervitusi ja palju muud tulemas !!!!

    1.    ChrisADR DIJO

      Suur aitäh 🙂 julgustab mind edasi kirjutama. Terviseks

  2.   Rubén DIJO

    Ma arvan, et on viga esitada küsimus "millist keelt valida?" Olen üks neist, kes arvab, et keel on sellest kõige vähem, oluline on õppida programmeerimise põhitõdesid ja "arvutuslikult mõelda". Otsustage süntaks, selle kirjutamine, kui see toetab OOP-d, selle utiliiti jne. Ma arvan, et see tuleb uuringu käigus loomulikult ja iga programmeerija teab ju rohkem kui 1, 2 ja 3 keelt ... ja tänu programmeerimiskontseptsioonidele (ja mitte süntaksile), mis tal on, on ta võimeline programmeerida keeles, milles te pole veel kogenud.
    Algatatute jaoks arvan siiski, et hea keel võib olla Python oma lihtsuse poolest, kuid ennekõike minge veidi kaugemale, uurige algoritme ja teadke, kuidas asjad "sees" toimivad.

    Tervitused ChrisADR

    1.    ChrisADR DIJO

      Tere Rubén, aitäh jagamast
      On midagi, mida olen aja jooksul programmeerimismaailmas õppinud, ja see on see, et "see, kes palju katab, ei pigista" ja selle tuntud fraasi all mõtlen, et mitu korda ja eriti kõige entusiastlikumad otsustavad proovige kõike natuke ja kasutage kodeerimise õppimise osas väga kiireid pöördeid. Usun ja see on minu isiklik arvamus, et hea arendaja peaks lisaks mõne assamblee dialekti mõistele oskama ja valdama ka kompilaatori keelt ja tõlgi keelt.
      Põhjus on järgmine: prototüüp peab olema alati midagi lihtsat ja kiiret, hõlpsasti genereeritav ja see näitab üldiselt tulemust, kuid kui sellest ei piisa, peab olema "plaan B", mille poole pöörduda, kui tõlk on jõudnud selle piir.
      Assamblee murde tundmine ei anna mitte ainult enesekindlust, vaid õpetab ka "arvutuslikult" mõtlema, kuid ilmselgelt on see osa kõige keerulisem ja kindlasti pole see kõik, mida kõik programmeerijad jõuavad.
      Aga tagasi teema juurde, sest minu arvates on peamine mõte "vali keel ja praktiseeri PALJU", sest tegelikult on ainus viis programmeerimisega hästi hakkama saada koodi lugedes ja kirjutades ning see on asi, millest olen õppinud kerneli kogukond Kui hoiate pikka aega sama süntaksit, lõpetate vormi nägemise ja hakkate TAUST muretsema. Keele või süntaksi algusest peale valimise idee seisneb selles, et selle lugemist ja kirjutamist on võimalik harjutada nii, et saab hakata programmi süntaksi asemel lugema programmi TÄHENDUST.
      See on selle postituse peamine põhjus, et igaüks valib oma keele nii, et järgnevalt saaksime mõisteid selgitada, võib-olla sellega selguvad kahtlused 🙂
      Tervitused ja tänud jagamise eest.

  3.   Deibis Contreras DIJO

    aitäh postituse eest oli hea.

    seoses

    1.    ChrisADR DIJO

      Tere Deibis, aitäh jagamast 🙂 Tervitused

  4.   Jorgefs DIJO

    Minu nõuanne: midagi muud kui PHP. Kakskümmend aastat tagasi oli PHP-l oma olemasolus teatud mõte tänu keerukusele, mis programmeeris veebi teises keeles CGI abil. Kuid tänapäeval on palju raamistikke, mis muudavad veebiarenduse võimsamates keeltes palju nauditavamaks, näiteks Django Pythoni jaoks, Spring Java jaoks või Rails Ruby jaoks. Kuigi PHP ilmub praegu kõigis keelte populaarsuse edetabelites, kaotab minu arvates aja jooksul PHP oma olulisuse.
    Soovitan tungivalt alustada tähega C \ C ++, et mõista programmeerimise tegelikkust, kuigi õppimiskõver on järsk.
    Tervitused.

    1.    ChrisADR DIJO

      Tere, Jorge, aitäh jagamast, meenutades lihtsalt Laraveli, mis on üsna kindel raam 🙂 Mulle isiklikult ei meeldinud Spring ega Java veebiarenduse jaoks, minu arvates on see üsna tülikas, kuid küllap on see osa ajast, mil nad on olnud turul, sel ajal kui nad olid teerajajad ja kindlasti on tänapäevased alternatiivid (Js, Python ja Ruby) suutnud ilma suurema tööta parandada loetava ja muudetava koodi esitamise viisi.
      Ma olen ka kalduv, et inimesed õpiksid mingil hetkel oma elus C / C ++ keelt. Alustasin Java-st, kuid arvan, et see on programmeerimise ilu. Võite alustada kõigest, mida soovite, kui olete järjekindel ole abiks 🙂 Terviseks

    2.    Rubén DIJO

      Ma ei saa teiega enam nõus olla. Alustasin aastaid tagasi C ja VB-ga, et hiljem keskenduda PHP-le ja JS-ile (kuna keskendusin veebiarendusele) ning hiljem õppides õppisin peamiselt C / C ++ ja Java.
      PHP-l on mitmeid eeliseid, mida ma ei saanud selles kirjas loetleda. PHP7 on kiire (kiirem kui Python ... ilma hhvmi, erinevaid vahemälusid, raamistikke nagu Phalcon või Pythoni puhul baitkoodi kasutamata), sellel on tohutult palju teeke ja raame, sellel on tohutult palju otse rakendatud funktsioone neid igal ajal, selle C-ga nii sarnane süntaks muudab teistesse keeltesse migreerumise väga lihtsaks.
      30% kogu maailmas asuvatest veebisaitidest on loodud WordPressi (PHP) abil ja see ei näi muutuvat, Vikipeedia kasutab seda, Facebook (koos hhvm-ga) ja suur osa saite, kokku 80%.

      Tuletan teile meelde, et Ruby on Rails nagu Django on 12-aastased! Mis kvoodi nad selle ajaga saavutanud on? Ja muidugi räägime kahest raamistikust, millel on praktiliselt monopol ja puudub ühtegi killustumistüüpi. Mis mul veel tõsiseid alternatiive on? Väita, et PHP kaotab asjakohasuse, on väga vähe mõtet.

      Nüüd, kui Python on moes, kuna sellel on kiire õppimiskõver, on see lihtne keel ja nad müüvad seda teile kui Google'i ja 20-aastase Pythoniga programmeerijaks ning töötavad selle kallal. et nüüd on moes uute keelte otsimine (Go, Dart ....), et CV-s eristuda (või Javascripti 50 raamistiku igapäevane sünd!), ei tähenda, et asjad muutuksid.

      Ruby on väga huvitav keel, kuid see murdub väljakujunenud mustritega nii palju, et mul on raske uskuda, et see sai populaarsemaks kui PHP. Muidugi on minu meelest Ruby kõige halvem keel programmeerimise alustamiseks.
      Ma saan aru, et ütlete mulle, et Pythoni programmeerimine võib olla lõbus, isegi Ruby oma eripära lõpmatusega ... aga Spring with Java? Kas tõesti? Java võib olla palju asju ... aga nauditavam kui Python ja PHP?

      See kõik on väga hea, kui alustate Pythonist, kuid ainult Pythoni juurde jäädes on oht, et paljud ettevõtted usuvad, et teie programmeerimistase pole "sügav" (isegi kui olete Pythonis väga osav). Selle põhjuseks on see, et võistlete teiste mitmeotstarbeliste keeltega, nagu C ++ või Java. Pythonis saab programmeerida, teadmata erinevust, mis kurat on osuti, bitipõhised toimingud, kuidas töötab prügikoguja ja pikk jne.
      Python on võib-olla kõige vähem sarnane "klassikalisele programmeerimisele", mis on olemas ja mida saab vaadelda kui "lastekeelt" (saate metafoori) ja see on omakorda eelis ja puudus.

      1.    Jorgefs DIJO

        "Python on võib-olla kõige vähem sarnane" klassikalisele programmeerimisele ", mis on olemas ja mida saab vaadelda kui" lastekeelt "(saate metafoori) ja see on omakorda eelis ja puudus." LOL, see on üks naljakamaid asju, mida ma Pythoni kohta rääkinud olen. Kas olete kunagi Pythoni tõesti õppinud?
        Kui kaua on see kogu maailmas olnud väljaspool PHP-d?
        Sõber PHP sündis surnuna. PHP-l (\ d +) on väga halva esialgse kujunduse tõttu sellega palju koormust ja kasutajaskonna säilitamiseks lohistab see kõiki neid esialgseid disainivigu väga põhjalikult. PHP sündis ilma modulaarsuseta, paljude C-stiilis funktsionaalsustega (mida ma muide ei tea, kust sa selle said, kuna selle süntaks on sarnane C-ga, seda saab hõlpsasti teistesse keeltesse teisaldada). Kõrgel tasemel keelel, nagu PHP peaks käituma, on nii inetuid asju nagu see funktsioonide rada, mis on loetletud selle ametlikul saidil http://php.net/manual/en/indexes.functions.phpSeda seetõttu, et see sündis modulaarsuseta, seetõttu on kõik räpane segamini ja ilma nimeruumideta.
        See on jupp PHP-koodi:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        mingil hetkel saab kindlaks teha, kust kõik need "voo" funktsioonid imporditi? EI, siis võiks öelda, et need on ehituskonstruktsioonid, kuid siis on kogu ökosüsteem ehituskonstruktsioonid? Nii et PHP-koodis on palju prügi, et kui te ei suuda mõista sellise halva disaini keerukust ja kasutust, andestage mulle, kuid sellel on veel palju maailma näha.
        Wordpress on suurepärane tarkvaralahendus, kuid see ei tähenda, et sellel oleks hea tehnoloogiline baas. Võite kiviga vasarata ja naelu hammastega välja ajada ning saate siiski suurepäraseid puusepatöid teha, kuid loomulikult palju suurema tööga kui mõni teine ​​tisler, kes kasutab head haamrit.

        Teiselt poolt: "hakake Pythoniga 20 tunni jooksul programmeerijaks ja töötage selle kallal", pole ma nii rumalust näinud. Veebisaidi saate PHP-s luua 20 tunni jooksul ja teil pole mingeid teadmisi veebiprogrammeerimise toimimise või ise programmeerimise kohta. Tegelikult on PHP sellepärast nii populaarne, sest siia maailma sisenevad algajad näevad PHP-d kiire arengu punktina (mistõttu imeb nii palju PHP-koodi nii kõvasti).
        Mis puutub Pythoni puudustesse, siis ainus, kus see õnnestus, oli osutitega töötamine, kuid igal juhul on Python kõrgetasemeline keel (nagu ka Java) ega kasuta neid süntaksitasandil; kuid bitipõhised toimingud, tõsised?, mõtlete seda x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Mõistsin tõsiselt prügikoguja asja palju vähem: https://docs.python.org/3/library/gc.html.
        PHP lüngad:
        -PHP-l on väga halb objekt-orienteeritud programmeerimise (OOP) disain.
        - Te ei saa operaatorit veel üle koormata.
        -Üllatus, function overloading PHP-s pole see, mida te sellelt kontseptsioonilt loomulikult ootate.
        ... .. ja mul hakkas lihtsalt igav, hehe.
        Tervitused.

        1.    Rubén DIJO

          Panin sulgudesse "mõista metafoori" (kui võrrelda Pythoni C ++ / Java-ga samas töökeskkonnas), on selge, et te ei saanud sellest aru. Võiksin teile öelda, et C ++ programmeerija saab õppida Pythoni palju kiiremini kui Pythoni programmeerija C ++, nii nagu pole üllatav, et C / C ++ programmeerija keskmine palk on suurem kui Pythoni palk.
          Võiksin seda teile selgitada teiste näidetega, isegi joonistusega! kuid tundub, et keskendute ainult minu poolt dekontekstualiseerimisele ja naeruvääristamisele.

          Ma pole kunagi öelnud, et PHP oleks maailma parim keel või et see oleks eeskujulikult kujundatud, ma ei tea, kust te selle saate. Ma arvan, et enne teiste teadmiste hindamist peaksite parandama oma arusaamist lugemisest. Mis on tõsi (ja ütlesin oma sõnumis), on see, et sellega koos arenemine on väga kiire, lisaks kogu raamistike, teekide ja utiliitide ökosüsteem, mille leiate.
          Samuti, millist võrdlust me teeme? Python kui mitmeotstarbeline keel või veebi jaoks? Miks me sel juhul PHP-ga võrdleme? PHP-l on spetsiifiline väli ja just selles valdkonnas kahvatub Python (0.2-protsendilise osakaaluga, mis pole terve aasta muutunud) PHP kõrval.
          Vaatame nüüd PHP trende; 82,4% -lt 2017. aasta jaanuaris 83.1% -le 2018. aasta jaanuaris: https://w3techs.com/technologies/history_overview/programming_language

          Kas Python kavatseb PHP-d troonida? Mis aastal? mis viie aasta pärast? kümnend?
          Pythoni saab kasutada paljudes muudes ülesannetes ja isegi laialdasemalt kasutada kui PHP, kuid Pythoni kui veebiarenduse keelt on valgusaastad eemal isegi asjakohasest, 0.2% stagneerub 83.1% vastu (selle aasta tõusuga) .

          Samuti võtate asju iseenesestmõistetavalt, öeldes, et ma ei käi väljaspool PHP-d ringi, vihjates, et tean ainult PHP-d, kui ma pole PHP-s pikka aega programmeerinud haha. Praegu programmeerin tööalastel põhjustel enamasti Java-s.
          Samuti ei ole ma öelnud, et Pythonis programmeerides pole teil teadmisi bitipõhiselt, prügikogujast ega osutist. Pigem saate Pythonis programmeerida, isegi teadmata, mis see on. Kuid ma kahtlen väga, kas see oleks nii C ++ programmeerija puhul. Ja ilmselgelt võrdlen ma seda siis, kui Python siseneb sellele "mitmeotstarbelise keele" väljale, mitte veebi programmeerimiseks.

          20 tunniga programmeerijaks saamine on lihtsalt nali, liialdus. Kuid ma võiksin teile siia panna erinevaid linke veebipõhiste haridusplatvormide ja sarnaseid asju lubavate kursuste kohta. Ärge süüdistage mind, süüdistage seda tööturul, kes arvab, et "eksperdi programmeerijaks" saamine on 20-tunnise kursuse läbimise küsimus. Ja Python on üks moodsamaid keeli ja ka kõige kiirema õppimiskõveraga ... valge ja pudelis.

          Nõuan, et lähtute oma sõnumis väitest, kui halb on PHP (mis teatud osas olen nõus). Mulle tundub see õige, välja arvatud see, et minu sõnum pole selles, vaid selles, miks PHP-d jätkatakse ja see ei kao homme, nagu arvate.

          tervitused

  5.   keegi DIJO

    C -> mine -> (Lisp | Haskell | Java | mis iganes)

    1.    ChrisADR DIJO

      Hiljuti saatis üks lugeja mulle minu e-postile soovituse Go-raamatu kohta, mis on kindlasti keel, mida tulevikus arvestada ja millega võib-olla on siin postitus 🙂 Palju graafikaid, mida jagada

  6.   mvr1981 DIJO

    Noh ... ja mida ma programmeerin? Miks õppida programmeerimiskeelt juba täna nii heade ja kogenud programmeerijate juures? Milliseid probleeme saan lahendada, mida teised pole veel palju tõhusamalt lahendanud? ... Lühidalt: kui originaalne on täna programmeerija olla? Kuidas ma saan teistega koostööd teha ilma teadmiste ja kogemuste puudumise tõttu löömata või tõrjutuna?

    1.    ChrisADR DIJO

      Tere mvr1981, tõeliselt huvitavad küsimused 🙂 kerime need viimasest esimeseni.

      Kuidas ma saan teistega koostööd teha ilma teadmiste ja kogemuste puudumise tõttu löömata või tõrjutuna?

      Kui te ei soovi jalaga lüüa, on esimene samm protsessi õppimine, te ei kujuta ette, kui palju inimesi projektidesse soovib teha asju ainult omal moel, soovides, et kogukond nende soovidega kohaneks. See on kindlasti nii, nagu ma tulen teie koju ja ajaksin sassi ja austaksin teie perekonda (nii on mitu korda tunne). Kui soovite seda juhtuda, pöörake suurt tähelepanu juhenditele, mille kaudu panustada, vahenditele, kuidas seda teha, ja ärge saatke midagi puudulikku, kui vajate abi, on suhtlemiseks alati vahendeid, kuid halb töö tõenäoliselt luua halbu esmamuljeid. Kui te ei soovi ennast välja jätta, see sõltub sinust, võite näha teda kui kasutut programmeerijat, kes ei tea, mida ta teeb, või seda, kes on teel suurepäraseks programmeerijaks saamisel, ja see juhtub ainult harjutamise korral ja kindlasti vigadega mööda teed. Olen enne Gentoo arendajastaatuse omandamist mitu korda eksinud ja see ei takistanud mind proovimast hoolimata "halvast ajast".

      Kui originaalne on olla programmeerija täna?

      -See ei puuduta originaalsust, see on tänapäeval hädavajalik, mõelge vaid järgnevatele, 20 või 30 aastat tagasi, kirjutamine oli hädavajalik, paljud töökohad järeldasid, et teadsite või vähemalt oskasite seda teha. Täna on Office'i tundmine hädavajalik, praktiliselt pole ühtegi tööd, mis teid Office'i dokumentide ette ei seaks. Homme, varsti on programmeerimine hädavajalik. Ja see kehtib ka isiklikust vaatenurgast, teadmine, mis juhtub programmides, millele usaldate nii olulised asjad nagu teie raha, tervis, perekond, on minu jaoks midagi loogilist, sest nende piiranguid saate teada ainult siis, kui teate, kuidas nad töö ja selle teadmiseks peate teadma, kuidas programmeerida.

      Milliseid probleeme saan lahendada, mida teised pole veel palju tõhusamalt lahendanud?

      - Teid üllataks summa Omadused mida tänapäeval nõutakse, ja tõtt-öelda pole vahet, et kogukonnas on maailma parimaid programmeerijaid, töö on alati suurem kui arendajate töövõime, võin seda kontrollida Gentoos, seal on inimesed, kes arendavad kernelit, Google'is, Sony'is jne töötavad inimesed jne ... ainus asi, mis meil kõigil on ühine, on see, et kellelgi pole nii palju aega, kui ta tahaks, et saaks kogu poolelioleva töö ära teha.

      Miks õppida programmeerimiskeelt juba täna nii heade ja kogenud programmeerijate juures?

      -Sellele vastatakse teisele küsimusele 😉 Kuid nüüd võin lisada, et põlvkonnad peavad suutma toetada juba välja töötatud tööd, sellega mõtlen, et need "kogenud" arendajad kaovad järk-järgult ja see on vajalik " nooremad »Arendajad võtavad vastutuse ja aitavad tsüklit elus hoida, kogukond, kus pole noori ja kogenematuid inimesi, kipub aja jooksul kaduma just seetõttu, et pole võimalust teadmisi edastada.

      Ja mida ma ajastan?

      -Selle kohta on võib-olla kõige raskem vastata, kuid proovin tuua teile näite pocost, mida hakkasin hiljuti vaevama GNOME 24 ja selle ühendusega Waylandiga seotud probleemide tõttu, mis takistavad Shutteri taolistel programmidel ekraanipilte tegemast. See on minu jaoks probleem, sest oma artikleid kirjutades pean ma teile näitama, mida ma ütlen, veidi otsides jõudsin GNOME Screenshot rakendusse, pehmelt öeldes veidi "minimalistlik". Selle funktsioonide hulgas on üks ekraanipiirkonna jäädvustamine, kuid mis juhtub, kui ma ei teinud fotot hästi? Noh, ma pean programmist lahkuma ja uuesti sisenema, kindlasti on see midagi tüütut, nupp, mis ütleb "Uuesti" või midagi sellist, mis võimaldab mul teha uue võtte ilma, et peaksin uuesti väljuma ja uuesti sisenema. See on väike programmeerimisprojekti, pole ma GNOME-i raamistikus kunagi midagi programmeerinud, nii et ilmselgelt on mul enne uue nupuga "plaastri" saatmist palju õppida, kuid selle käigus õpin programmeerima ja natuke õnne see on tunnusjoon see on abiks mitmele, kui see on kõigile kättesaadav.

      See on näide, see on midagi lihtsat ja kindlasti oleks võinud seda teha ka iga teine ​​"asjatundlik" programmeerija, kuid ilmse ajapuuduse tõttu pole see nii olnud, nüüd on mul see, kellel on võimalus seda teha seda, olemata tegelikult superprogrammeerija.

      Nüüd on ainult teie ülesanne leida midagi, mis muudaks teie elu selles programmis, mida te nii sageli kasutate, "lihtsamaks", selle ilu on see, et kui järgime järgmistes artiklites esitatud nõuandeid, pole oluline, sest saate teada põhitõdesid, et lugenud koodist aru saada ja seda muuta, et teha seda, mida soovite, see on väga eriline tunne 🙂

      Tervitused ja tänud veelkord

      1.    keegi DIJO

        Ma arvan, et ainult siis, kui olen gnome captures programmi avanud, on kõige lihtsam minna klaviatuuri otseteedele ja määrata kolm kombinatsiooni printida, et hõivata kogu alt-print aktiivse akna hõivamiseks ja super-print, et teha valik pildistamisest piirkonnas on saadaolevad otseteed juba olemas, küsimus on lihtsalt nende määramises

        1.    ChrisADR DIJO

          Sellepärast toome teile näite 🙂 kuna sellised pisikesed asjad nagu nupp on programmeerimine, võivad nad mõnda aidata, kuna teised võivad jääda märkamatuks, kuid kindlasti täidavad nad peamist eesmärki, aitavad programmeerida ja annavad võimalusi uutele funktsioonidele, Pärast seda nuppu saab käivitada paljusid asju, näiteks seansihaldust või kõigi tehtud fotode eelvaate ekraani või lühidalt öeldes paljusid asju, mida saaks teha. Idee on selles, et leiate midagi, mis paneb teid uudishimu tekitama, võib teie süsteemis töötav tarkvara vajada täiendusi või uusi funktsioone, mida pole aja- või personalipuuduse tõttu veel rakendatud 🙂

      2.    mvr1981 DIJO

        Tänu sulle. on väga head vastused.

    2.    Guillermo DIJO

      Noh, keegi, kes ei hakka olema selle ala professionaal, peaks nägema, millises keskkonnas ta töötab, nii haldusülesannete kui ka direktiivide jaoks võib olla huvitav teada saada näiteks Python / Basic ja teada, kuidas makrode programmeerimiseks kontoripakettides, näiteks LibreOffice või MS Office. Mõnikord võib see säästa teie või teiste töötajate ümber, kes teid ümbritsevad ja paluvad neil teha korduvaid ülesandeid, mitu tundi töötamist. Võite luua juhtpaneeli, et kiiresti arvutada ettevõtte põhisuhtarvud pärast ühenduse loomist selle andmebaasiga ja täita mõni SQL-päring.
      Nagu kõik, kui teate tööriistu käeulatuses, võite mõelda, kuidas sellest maksimumi võtta. Kõik pole välja mõeldud.

  7.   Marcelo DIJO

    Guillermo, nõustuge teiega täielikult: "Kõike pole leiutatud" ja see, mida leiutatakse, on muudetav. Tööriistadest tuleb maksimumi võtta ja kasutada seda, mis sobib kõige paremini teie vajadustega.

  8.   Ricardo DIJO

    Programmeerimise jaoks on esimene õpitav keel inglise keel, seejärel keel, mis neile kõige rohkem meeldib ja tundub neile kõige ilusam.

    1.    ChrisADR DIJO

      Ma ei olnud seda kirjutanud, kuid tõsi, inglise keele oskus aitab palju, kuna enamik keeli on selles kirjutatud, aga ka seetõttu, et suurem hulk omast käest saadud teavet on ka suur aitäh jagamise eest

  9.   Ruben salgado DIJO

    Suurepärane artikkel, lisaks motiveeriv.

    1.    ChrisADR DIJO

      Väga lahke, suur aitäh 🙂 Tervitused

  10.   Gonzalo martinez DIJO

    Programmeerimine on teadmine, kuidas seda arutluskäiku tõlgendada ja juhisteks tõlkida.

    Kaks selgitust artikli kohta:

    1) Minu peaaegu 10-aastase programmeerimisõpetaja kogemuse põhjal pole oluline, millise keelega õpitakse, vaid see, kuidas õpitakse ja kui keeruline see on.

    Ma arvan, et keel, mida saab struktureeritult õppida ja seejärel liikuda muude keerukamate asjade juurde, on lihtsam kui algusest peale alustada sellist keelt nagu Java.

    Tere maailma nagu baasil C või Pascal on lihtsam õppida kui mõne reaga (Pascali puhul PROGRAMM või #include C) puhul saate hakata arendama algoritmi ja kodeerima programmi otse selle loogikaga, nagu Java-s, mis iseenesest vajab klassi, meetodit ja veel mõnda muud, mis algajale on info üleküllus ebavajalik, ja seda võib küll ignoreerida ja liikuda edasi muude asjade juurde, kuid need on mõisted, mis on olemas, ja minu arvates pole asjade tähelepanuta jätmine hea õppimisviis, eriti kui keel sunnib neid kasutama. See on nagu esmakordselt sihtmärgi harjutamise alustamine M-16-ga ja laskmine kuude kaupa poolautomaatrežiimis, hoides kahe käega käepidemest nagu püstolist.

    2) Kas keelt tõlgendatakse või kompileeritakse, sõltub selle rakendamisest, mitte keelest endast. Näiteks kui kasutatakse Pythoni, kompenseeritakse veebirakenduse jaoks, mis kasutab wsgi-d (kas mod_wsgi apache'is või uwsgi Nginxi jaoks) vastava mooduli käivitamisel, genereerides .pyc-faile.

    Java jaoks on olemas ka binaarfailide generaatorid (mis genereerivad baitkoodi asemel natiivseid binaarfaile) või puhtadesse binaarfailidesse PHP-skriptide kompilaatorid.

    Mis puutub PHP kohta öeldu, siis see on lihtsalt mõnes teises ajastu disainitud keel, pidades silmas muid asju ja arvestamata aspekte, mida tol ajal veel polnud. Ilmselgelt ei muuda asjaolu, et seda kasutatakse enim, maailma parimaks, kuid on reaalsus: see on keel, millega on kõige suurem võimalus kogu programmeerimisel tööd saada. Teadmine, et see ei tee haiget, isegi kui see teile ei meeldi.

    Isegi mina olen mitu aastat töötanud süsteemiadministraatorina ja lahkunud arendaja töökohast, nii tihti pean PHP-koodi millessegi panema.

    1.    ChrisADR DIJO

      Tere Gonzalo, aitäh jagamast,

      Kindlasti rääkides mittevajalikest teabe ülekoormustest, on teadmine, et sama keelt saab tõlgendada või koostada, mis pole selles etapis vajalik 🙂 Kindlasti on rakendamine oluline, kuid kui me ütleme, et sellel tasemel ei tekita me enamat kui segadust. Samamoodi ei käsitleta objektorienteeritud programmeerimisküsimusi ega muid mõisteid, mida tuleb järk-järgult doseerida, et mitte inimesi uimastada.

      Kuna ruumi on vähe, on postituse peamine eesmärk näidata lugejatele, kes soovivad programmeerida, et on kaks suurt keelemaailma, et "traditsiooniliselt" tõlgendatud on "lihtsamad", et "traditsiooniliselt" koostatud on natuke rohkem "keeruline", kuid selle keerukuse tasemel on mõistmine kindlam ja keele valimine on igaühe enda teha, kuna sõltuvalt programmeerimisviisist saavad nad valida oma lemmikprojektid ja samal ajal kui nad saavad aru, mida nad loevad ja / või kirjutavad 🙂

      Tänan teid veel kord, tervitused.

      1.    Gonzalo martinez DIJO

        See on viga, kompileeritud ega tõlgendatud keeli pole, iga keele jaoks on olemas tõlgid ja koostajad, nii erinevatel juhtudel.

        Selle mainimine pole praegu ülekoormus, sellise avalduse esitamine on viga. Minu arvates oleks olnud produktiivsem tõlke eirata, kui te ei soovi teabega üle koormata.

        1.    ChrisADR DIJO

          Täname selgituse eest, võtan selle teema juurde naastes arvesse. Terviseks

  11.   Ares DIJO

    Mis keelt soovitate serveripoolele, kui arvestada, et php langes soosikust välja?
    Sama ka andmebaaside puhul, ma ei tea, kas tuleb midagi paremat ja kaasaegsemat kui mySQL.

    1.    ChrisADR DIJO

      PHP pole soosunud ... Igal keelel on oma elutsükkel ja PHP on kindlasti juba keel, mis jõuab "küps" skaalale, mis muudab selle kasulikuks äritasandil, kus stabiilsus on ennekõike ... Nagu mõned pangad, kus see on Java-s endiselt arenenud, mis on "küpsem" kui php ja millel on kindlasti oma järgijad ja halvustajad ... Ja rääkimata COBOList ...

      Kui otsite ühtsust ja kaasaegsust, on javascript muutumas niinimetatud "täispakettide arendajate" üheks lemmikuks, ehkki rubiiniparadigma või pythoni "lihtsus" on ka head viited ... Isegi perl võiks olla võimalus sõltuvalt vajadustest 🙂

      Tänapäeval võtab ORM (objekti relatsioonide kaardistajad) relatsiooniandmete haldamise osas palju jõudu. See läheb SQL-i süntaksist klassi ja atribuutide käsitlemiseni ... Peaaegu kõik keeled (kui mitte kõik) käsitsevad mõnda ORM-i.

      . Mongo DB on suhtelise andmebaasi alternatiiv, mis on muutunud üsna oluliseks; siiski on vaja teada selle plusse ja miinuseid ning kinnitada, kas see oleks parim lahendus sõltuvalt konkreetsest vajadusest.

      Loodan, et see aitab teid, tervitused 🙂

      1.    Ares DIJO

        Aitäh, kontrollin seda.

      2.    Ares DIJO

        Ma unustasin.

        Mida soovitate mul Linuxis JAVA-ga töötada?
        Kui suudate paremini eristada vaba ja suletud.

        1.    ChrisADR DIJO

          Eclipse ja NetBeans on avatud lähtekoodiga, ma pole kindel, kas on olemas puhtalt tasuta tarkvara, mul on kombeks kasutada vimi, sest mõnikord muudab koodi hulk kogu IDE-i kasutamise aeglaseks ja altid täitmisvigadele. Tervitused 🙂

        2.    paulzeta DIJO

          Java-ga töötamiseks Linuxis kasutan IntelliJ-i, soovitan teid.

          1.    ChrisADR DIJO

            PS, IntelliJ on patenteeritud tarkvara 🙂

  12.   je DIJO

    Poisid mäletavad seda ka ... Ma töötan pangas ja ütlen teile, et programmeerimiskeeled on tagaistmel, et lasta SQL-il ja Stored-protseduuridel kõigepealt minna.

    1.    Gonzalo martinez DIJO

      Peate neid arvestama salvestatud protseduuridega, kuid kui mootorite vahel kaasaskantavat keelt ei kasutata, on vähemalt minu kogemuste kohaselt alati nende vältimine, kui pole muud võimalust.