Alegerea primului limbaj de programare

Cu siguranță, aceasta este una dintre întrebările care vin cel mai mult în căsuța de e-mail când vine vorba de programare. Dacă vom începe o serie de articole care vă vor permite să învățați să programați și să oferiți înapoi cunoștințe gratuite sub formă de contribuții la software-ul liber / comunitățile open source din întreaga lume, este necesar să răspundeți la această întrebare de bază, dacă este puțin dificilă. Ce limbaj de programare ar trebui să învăț?

Un pic de istorie

Pentru a începe să înțelegem și să alegem un limbaj de programare, trebuie mai întâi să știm puțin despre istoria lor, despre utilizările și funcțiile lor și despre modul în care acestea rezolvă diferite nevoi în timp.

Limbi mașină (nivel scăzut)

Cunoscut în mod obișnuit sub numele de AsamblareSunt limbaje de programare pe care le-am putea defini ca dialecte ale unui limbaj mai general ... Acest lucru sună cam complicat, dar am să-l exemplific ... Știm că limbajul universal al computerului este electricitate, asta înseamnă că în cele din urmă ceea ce citește un computer sunt 0sy 1da, să numim asta ecomputer engleză. În acest exemplu, spaniola este regula de bază, dar, după cum știm bine, spaniola vorbită de latini nu este aceeași cu cea vorbită în Spania și, chiar și așa, spaniola din Peru nu este aceeași cu spaniola din Argentina. Evident, toți avem aproape aceleași cuvinte (0sy 1s), dar utilizarea și semnificația pot varia în funcție de context.

Acest lucru se întâmplă la nivel de procesor. Când vorbim despre arhitecturi de calcul, (amd64, intel, arm, ...) ne referim la dialectul respectiv computer spaniolă. Acest lucru se datorează faptului că diferite companii înțeleg ordinea și semnificația în felul lor, astfel încât unele variază în detalii precum fluxul curentului sau ordinea în care trebuie păstrate articolele. 0sy 1s.

Aceste limbaje de programare sunt extrem de rapide, deoarece funcționează la cel mai scăzut nivel posibil de programare, dar sunt foarte dependente de arhitectură și sunt cu siguranță puțin mai complicate de învățat decât restul. Acestea necesită adesea o bază mai largă de concepte pentru a transforma datele și a rula lucruri utile pe ele. Pentru iubitorii de jocuri video, un exemplu ar fi consolele SEGA, care foloseau Assembly pentru a-și programa jocurile. Evident, la acea vreme cantitatea de memorie era minimă în comparație cu ziua de azi și era necesar să stăpânești un limbaj care să poată fi rapid și să producă programe ușoare.

Limbi de nivel înalt

Acest grup mare are în vedere acele limbi care au urmat Asamblare. Nevoia de a obține cod portabil a dat naștere unui grup de limbi numite compilat. Dintre acestea, primul care a profitat a fost C, care a avut o predominanță în programare la nivelul sistemului de operare încă din anii '70.

Limbi compilate

Să vedem un exemplu practic de ceea ce comentez. Să ne uităm la un program de limbaj C foarte simplu care tipărește o linie de cod.

Proprie. Christopher Diaz Riveros

După compilare, avem următoarele:

Proiectare proprie: Christopher Díaz Riveros

Dar acum să vedem ce ar trebui să scriem pentru a reproduce același rezultat în codul Asamblării:

Proprie. Christopher Diaz Riveros

Aceasta este traducerea celor 3 linii de cod din simple.c, fișierul simple.s este creat folosind comanda gcc -S simple.c și este ceea ce procesorul nostru ar înțelege într-un dialect Asamblare. Evident, pentru a crea un executabil care constă din 0sy 1s fișierul trebuie procesat simple.s și conectați-l la bibliotecile partajate ale sistemului nostru. Acest lucru se face folosind un asamblator (as) și o conector (ld).

Limbile compilate oferă un mare avantaj față de cele de nivel scăzut portabil. Portabilitatea oferă cod care poate fi executat pe diferite procesoare fără a fi nevoie să genereze cod specific pentru fiecare arhitectură. Un alt avantaj evident este simplitatea pe care o folosește la citirea și scrierea codului. Printre principalele sale dezavantaje avem o complexitate ridicată, deoarece, comparativ cu următorul tip de limbaje pe care le vom vedea, libertatea pe care C o oferă poate fi dăunătoare dacă nu știi cum să controlezi, este cu siguranță ca livrarea unui pistol, s-ar putea întâmpla ca în lipsa de experiență o persoană să ajungă să-și tragă propriul picior în încercarea de a curăța arma.

Limbi interpretate

În cadrul acestui grup avem o mare varietate de limbi, printre cele mai importante avem Python, Ruby, Javascript, PHP, etc ... Ideea de bază a acestor limbi este de a oferi o modalitate rapidă de a crea și rula programe , acest lucru se datorează faptului că multe dintre procesele dificile sunt efectuate în interpret, iar programarea logicii este ceea ce este implementat în cod. Să vedem același exemplu de mai sus, dar de data aceasta scris în Python:

Proprie. Christopher Diaz Riveros

Printre cele mai remarcabile lucruri putem vedea că prima linie este însărcinată cu apelarea interpretului (programul care va executa aplicația noastră), iar codul ulterior este mai „simplu” decât versiunea sa în C, deoarece toată munca grea este efectuat la interpret.

Proprie. Christopher Diaz Riveros

Limbajele interpretate oferă dezvoltatorului un nivel mai mare de securitate, deoarece au controale de securitate mai riguroase (ATENȚIE că nu sunt perfecte, deoarece chiar și cei mai buni pot face greșeli) și nu mai suferim riscul de a trage o armă fără să ne dăm seama acesta, întrucât la prima încercare, interpretul ar declanșa o alertă și executarea ar fi anulată. Principalul dezavantaj devine evident la executarea programului, deoarece este mai lent decât omologul său binar, tocmai datorită cantității mai mari de procesare pentru a putea asigura că codul funcționează. Dacă programul nu necesită termene limită extrem de scurte, diferența poate trece neobservată, dar dacă vorbim despre mii sau milioane de date pe secundă, diferența devine vizibilă exponențial în limbile compilate.

Tastare

Aceasta este o caracteristică a limbajelor de programare, acestea pot fi puternic slab dactilografiat. Voi lăsa acest subiect pentru o altă postare, deoarece este necesar și curios să înțelegem cum este stocată memoria într-un program, dar deocamdată trebuie doar să facem distincția: Limbajele puternic tastate sunt cele care necesită cunoașterea tipului de date care urmează să fie lucrat la o variabilă sau constantă, în timp ce slab tipurile pot efectua conversii într-un implicit și totul va depinde de o ierarhie de conversie urmată de limbă. (Dacă nu se înțelege acum, nicio problemă, o vom lăsa pentru mai târziu)

Paradigme

Ca orice în lumea GNU / Linux, limbajele de programare se bazează pe paradigme, iar comunitățile sunt generate în jurul lor. De exemplu, avem Fundația Python o Rubin o PHP o Bash (caz în care este comunitatea GNU). Ceea ce vreau să ajung la asta este că nu pot exprima numărul mare de argumente pro și contra pe care le are fiecare, dar vă pot spune că acolo unde există un limbaj de programare gratuit, există o comunitate în care să învețe și să participe. Merită menționat faptul că mulți, dacă nu toți interpreții de limbă sunt scrise în C, sau un derivat apropiat, iar dezvoltarea lor este de obicei realizată de un grup mai mic al comunității, care este responsabil de luarea decizii care vor afecta toți utilizatorii de limbi. Se pot forma chiar instituții pentru a asigura dezvoltarea corectă a limbajului, așa cum este cazul C.

Care să alegi?

Am vorbit deja suficient despre limbi și încă nu răspund la cel mai important lucru 😛. Dar sper că, după ce am revizuit acest mic articol, nu este necesar să vă spun ce limbă să alegeți, deoarece cu aceste informații sunteți pe deplin capabil să căutați unul care să genereze curiozitate. Evident, dacă doriți să învățați să programați într-o limbă Asamblare va dura mult timp până când veți putea avea ceva funcțional, timpul va fi mult redus dacă optați pentru un limbaj compilat, unde pe lângă faptul că aveți portabilitate în sistemele * NIX, veți putea afla informații cu privire la funcționarea aceluiași sistem, de când sunteți în contactul cu C sau derivate te face să afli într-un fel sau altul cum funcționează un sistem de operare într-un mod general. În cele din urmă, dacă doriți să învățați ceva ușor și care vă permite să faceți multe fără a fi nevoie să înțelegeți foarte mult, limbajele interpretate sunt un mod distractiv de a învăța și de a dezvolta abilități de programare.

Învață cu ceva interesant

Acesta este cel mai bun sfat pe care vi-l pot oferi, dacă doriți să învățați ceva, trebuie mai întâi să găsiți ceva interesant, altfel va fi destul de dificil să depășiți curba tipică de învățare a oricărui limbaj de programare. Să presupunem că gestionați sistemele, în acest caz poate fi necesar să învățați un limbaj ideal Scripting (interpretat), în cadrul acestora avem Perl, Python, Bash, etc etc ... Poate că ale dvs. sunt jocuri, există multe proiecte în limbi precum Javascript, Lua, C ++, în funcție de tipul de joc pe care doriți să îl jucați. Poate că ați dori să creați un instrument la nivel de sistem, deoarece avem C, Python, Perl, așa cum veți vedea, unele sunt repetate și acest lucru se datorează faptului că multe limbi pot fi utilizate pentru mai multe sarcini, de aceea definiția limbi polivalente în cele mai multe dintre acestea.

Începeți un proiect

Prin aceasta nu vreau să spun că creați următorul compilator, sau chiar următorul limbaj de programare, un proiect poate fi să remediați o mică eroare în programul dvs. preferat, poate chiar ajuta la îmbunătățirea documentației. De ce documentația? deoarece nu există o modalitate mai bună de a învăța cum funcționează software-ul decât citind și ajutând la scrierea documentației sale, deoarece după codul sursă, este cea mai mare sursă de informații pe care o veți găsi despre program. Într-un alt moment vom vedea cum să citim codul unui proiect și să înțelegem funcțiile și valorile pe care le dobândesc.

Vă mulțumesc foarte mult pentru că ați ajuns aici și, ca întotdeauna, comentariile dvs. mă ajută să generez conținut mai bun și să știu unde să mă concentrez, Salutări.


Lasă comentariul tău

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *

*

*

  1. Responsabil pentru date: Miguel Ángel Gatón
  2. Scopul datelor: Control SPAM, gestionarea comentariilor.
  3. Legitimare: consimțământul dvs.
  4. Comunicarea datelor: datele nu vor fi comunicate terților decât prin obligație legală.
  5. Stocarea datelor: bază de date găzduită de Occentus Networks (UE)
  6. Drepturi: în orice moment vă puteți limita, recupera și șterge informațiile.

  1.   anonim el a spus

    Ca întotdeauna un 10 !!!!!! Vă mulțumim pentru articole. Salutări și multe altele de urmat !!!!

    1.    ChrisADR el a spus

      Mulțumesc foarte mult 🙂 mă încurajează să continui să scriu. Noroc

  2.   Ruben el a spus

    Cred că este o greșeală să puneți întrebarea „ce limbă să alegeți?” Sunt unul dintre cei care cred că limbajul este cel mai mic dintre ei, important este să înveți elementele de bază ale programării și să „gândești calculal”. Decideți o sintaxă, tastarea acesteia, dacă acceptă OOP, utilitatea sa etc. Cred că este ceva care va veni natural în studio și la urma urmei, fiecare programator știe mai mult de 1, 2 și 3 limbaje ... și datorită conceptelor de programare (și nu a sintaxei) pe care le are, este capabil pentru a programa într-o limbă în care încă nu ați experimentat.
    Cu toate acestea, pentru cei inițiați, cred că un limbaj bun poate fi Python pentru simplitatea sa, dar, mai presus de toate, mergeți mai departe, studiați algoritmi și știți cum funcționează lucrurile „în interior”.

    Salutări ChrisADR

    1.    ChrisADR el a spus

      Bună Rubén, mulțumesc pentru distribuire
      Există ceva ce am învățat de-a lungul timpului în lumea programării, și anume că „cel care acoperă multe nu stoarce” și prin această binecunoscută frază vreau să spun că de multe ori, și mai ales cei mai entuziaști, decid să încercați puțin și faceți curbe foarte rapide în ceea ce privește modul în care învățați să codificați. Cred, și este opinia personală, că un dezvoltator bun ar trebui să cunoască și să stăpânească un limbaj de compilare și un limbaj de interpretare, pe lângă faptul că are o noțiune de dialect al Asamblării.
      Motivul este următorul, prototiparea trebuie să fie întotdeauna ceva simplu și rapid, ușor de generat și care să arate în general un rezultat, dar dacă nu este suficient, trebuie să existe un „plan B” la care să recurgă atunci când interpretul a ajuns la limita sa.
      Cunoașterea unui dialect al Asamblării nu numai că îți dă încredere, dar te învață să gândești „din punct de vedere computerizat”, dar, evident, această parte este cea mai complicată dintre toate și este cu siguranță ceva la care nu vin toți programatorii.
      Revenim însă la subiect, pentru că ideea principală pe care o cred este „alege un limbaj și practică MULTE”, pentru că într-adevăr singura modalitate de a te pricepe la programare este citind și scriind cod, iar acest lucru este ceva ce am învățat de la comunitatea kernel Când păstrați aceeași sintaxă pentru o lungă perioadă de timp, nu mai vedeți formularul și începeți să vă faceți griji cu privire la CONTEXT. Ideea de a alege un limbaj sau o sintaxă de la început este că cineva este capabil să-și obișnuiască citirea și scrierea în așa fel încât să poată începe să citească SIGNIFICATUL programului în loc de sintaxa programului.
      Acesta este principalul motiv pentru această postare, că fiecare își alege limba, astfel încât în ​​cele ce urmează să putem explica conceptele, poate cu aceasta sunt clarificate îndoielile 🙂
      Salutări și mulțumiri pentru distribuire.

  3.   Deibis Contreras el a spus

    multumesc pentru post a fost bine.

    În ceea ce priveşte

    1.    ChrisADR el a spus

      Bună ziua Deibis, vă mulțumesc că ne-ați împărtășit 🙂 Salutări

  4.   JorgeFS el a spus

    Sfatul meu: orice altceva decât PHP. În urmă cu douăzeci de ani, PHP a avut un anumit sens în existența sa, datorită nivelului ridicat de complexitate care programează webul într-un alt limbaj folosind CGI. Dar astăzi există o mare varietate de cadre pentru a face dezvoltarea web mult mai plăcută în limbaje puternice, cum ar fi Django pentru Python, Spring pentru Java sau Rails pentru Ruby. Deși PHP apare în prezent pe toate graficele de popularitate a limbajului, în opinia mea, PHP își va pierde relevanța în timp.
    Vă sfătuiesc să începeți cu C \ C ++ pentru a înțelege realitatea programării, deși curba de învățare este abruptă.
    Salutări.

    1.    ChrisADR el a spus

      Bună Jorge, mulțumesc pentru partajare, amintindu-mi doar Laravel, care este un cadru destul de solid personally Personal nu mi-a plăcut niciodată Spring sau Java pentru dezvoltarea web, mi se pare destul de greoaie, dar presupun că face parte din timpul în care au stat piața, pe vremea aceea erau pionieri și cu siguranță astăzi alternative moderne (Js, Python și Ruby) au reușit să îmbunătățească modul de prezentare a codului care poate fi citit și modificat fără multă muncă.
      De asemenea, sunt înclinat să învețe C / C ++ la un moment dat în viața lor, am început cu Java, dar presupun că asta este frumusețea programării, puteți începe cu orice doriți, atâta timp cât sunteți consecvenți, va fi fii de ajutor 🙂 Noroc

    2.    Ruben el a spus

      Nu mai pot să nu fiu de acord cu tine. Am început acum mulți ani cu C și VB, pentru a mă concentra mai târziu pe PHP și JS (de când m-am concentrat pe dezvoltarea web) și mai târziu, în timp ce studiam, am învățat în principal C / C ++ și Java.
      PHP are o serie de avantaje pe care nu le-am putut enumera în acest mesaj. PHP7 este rapid (mai rapid decât Python ... fără a utiliza hhvm, diferite cache-uri, cadre precum Phalcon sau bytecode în cazul Python), are un număr mare de biblioteci și cadre, are un număr mare de funcții implementate direct de utilizat în orice moment, sintaxa sa atât de asemănătoare cu C facilitează migrarea către alte limbi.
      30% dintre site-urile din întreaga lume sunt realizate cu WordPress (PHP) și asta pare să nu se schimbe, Wikipedia îl folosește, Facebook (cu hhvm) și un număr mare de site-uri, în total, 80%.

      Vă reamintesc că Ruby on Rails ca Django au 12 ani! Ce cotă au atins în acest timp? Și, desigur, vorbim despre 2 cadre care au practic un monopol și nu există niciun fel de fragmentare. Ce alte alternative serioase mai am? A spune că PHP își va pierde relevanța are foarte puțin sens.

      Acum că Python este la modă, deoarece are o curbă de învățare rapidă, este un limbaj simplu și ți-l vând ca „devine programator în 20 de ore cu Python și lucrează la el”, cu sprijinul unor companii precum Google și că acum există moda Căutării de noi limbi (Go, Dart ...) pentru a vă diferenția într-un CV (sau ca naștere zilnică a 50 de cadre pentru Javascript!), nu înseamnă că lucrurile se schimbă.

      Ruby este un limbaj foarte interesant, dar se rupe atât de mult de tiparele stabilite încât îmi este greu să cred că a devenit mai popular decât PHP. Desigur, Ruby cred că este cel mai rău limbaj pentru a începe programarea dintre toate.
      Înțeleg că îmi spui că Python poate fi distractiv de programat, chiar și Ruby cu infinitatea sa de particularități ... dar Spring cu Java? Într-adevăr? Java poate fi multe lucruri ... dar mai plăcut decât Python și PHP?

      Este foarte bine să începeți cu Python, dar pe măsură ce rămâneți la Python singur, riscați ca multe companii să creadă că nivelul dvs. de programare nu este „profund” (chiar dacă sunteți foarte bun la Python). Acest lucru se datorează faptului că concurați cu alte limbaje „multifuncționale” precum C ++ sau Java. Puteți programa în Python fără să știți diferența ce naiba este un pointer, operații în biți, cum funcționează un colector de gunoi și un etcetera lung.
      Python este probabil cel mai puțin asemănător cu „programarea clasică” care există și poate fi văzut ca un „limbaj pentru copii” (înțelegeți metafora) și, la rândul său, este un avantaj și un dezavantaj.

      1.    JorgeFS el a spus

        „Python este probabil cel mai puțin similar cu„ programarea clasică ”care există și poate fi văzut ca un„ limbaj pentru copii ”(obțineți metafora) și, la rândul său, este un avantaj și un dezavantaj.” LOL, acesta este unul dintre cele mai amuzante lucruri pe care le-am văzut despre Python. Ai învățat vreodată Python cu adevărat?
        Cât timp a fost în jurul lumii în afara PHP?
        Prietenul PHP era încă născut. PHP (\ d +) are o mulțime de tracțiune datorită unui design inițial foarte prost și, pentru a menține comunitatea de utilizatori, trage toate acele erori de proiectare foarte bine. PHP s-a născut fără modularitate, cu o mulțime de funcționalități în stil C (care, apropo, nu știu de unde ați venit, deoarece sintaxa sa este similară cu C poate fi ușor portată în alte limbi). Un limbaj la nivel înalt, așa cum ar trebui să se comporte PHP, are lucruri atât de urâte precum această pistă de funcții enumerate pe site-ul său oficial http://php.net/manual/en/indexes.functions.phpAcest lucru se datorează faptului că sa născut fără modularitate, deci totul este murdar amestecat și fără spații de nume.
        Aceasta este o bucată de cod PHP:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        la un moment dat puteți stabili de unde au fost importate toate aceste funcționalități de „flux”? NU, ai putea spune atunci că sunt funcții buildin, dar atunci întregul ecosistem este funcții buildin. Așadar, există o mulțime de gunoaie în codul PHP, că dacă nu ești capabil să înțelegi complexitatea și inutilitatea unui design atât de prost, iartă-mă, dar are încă multă lume de văzut.
        Wordpress este o soluție software excelentă, dar asta nu înseamnă că are o bază tehnologică bună. Puteți ciocani cu o piatră și scoate cuie cu dinții și puteți face în continuare o lucrare de tâmplărie excelentă, dar, desigur, cu mult mai multă muncă decât un alt tâmplar care folosește un ciocan bun.

        Pe de altă parte: „deveni programator în 20 de ore cu Python și lucrează la el”, nu am văzut niciodată o asemenea prostie. Puteți construi un site web în PHP în 20 de ore și fără a avea cunoștințe despre modul în care funcționează programarea web sau programarea în sine. De fapt, acesta este motivul pentru care PHP este atât de popular, deoarece începătorii când intră în această lume văd PHP ca un punct de dezvoltare rapidă (motiv pentru care atât de mult cod PHP este atât de tare).
        În ceea ce privește neajunsurile Python, singurul în care a avut succes a fost să lucreze cu pointeri, dar în orice caz, Python este un limbaj de nivel înalt (la fel ca și Java) și nu le folosește la nivel de sintaxă; dar operații bitbit, serioase?, vrei să spui acest x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Am înțeles serios chestia cu colectorul de gunoi mult mai puțin: https://docs.python.org/3/library/gc.html.
        Lacune PHP:
        -PHP are un design foarte slab de programare orientată pe obiecte (OOP).
        -Încă nu puteți supraîncărca operatorii.
        -Surprinde, function overloading în PHP nu este ceea ce vă așteptați în mod natural de la acest concept.
        ... .. și tocmai m-am plictisit hehe.
        Salutări.

        1.    Ruben el a spus

          Am pus între paranteze „înțelegeți metafora” (prin comparația Python cu C ++ / Java în același mediu de lucru), este clar că nu ați înțeles-o. Aș putea să vă spun că un programator C ++ poate învăța Python într-un mod mult mai rapid decât un programator Python poate învăța C ++, așa cum nu este o surpriză faptul că salariul mediu al unui programator C / C ++ este mai mare decât un Python unul.
          Aș putea să vi-l explic cu alte exemple, chiar și cu un desen! dar se pare că te concentrezi doar pe decontextualizarea și ridiculizarea a ceea ce am pus.

          Nu am spus niciodată că PHP este cel mai bun limbaj din lume sau că are un design exemplar, nu știu de unde obțineți asta. Cred că înainte de a judeca cunoștințele celorlalți ar trebui să vă îmbunătățiți înțelegerea citirii. Ceea ce este adevărat (și am spus în mesajul meu) este că dezvoltarea cu el este foarte agilă, pe lângă întregul ecosistem de cadre, biblioteci și utilități pe care le puteți găsi.
          De asemenea, ce fel de comparație facem? Python ca limbaj multifuncțional sau pentru web? În acest caz, de ce îl comparăm cu PHP? PHP are un câmp specific și este în acel domeniu unde Python (cu o cotă de 0.2%, care nu s-a schimbat anul acesta) pălește lângă PHP.
          Acum vom vedea tendințele PHP; de la 82,4% în ianuarie 2017 la 83.1% în ianuarie 2018: https://w3techs.com/technologies/history_overview/programming_language

          Python va detroniza PHP? În ce an? în ce cinci ani? deceniu?
          Python poate fi utilizat în multe alte sarcini și chiar poate fi utilizat pe scară mai largă decât PHP, dar Python ca limbaj de dezvoltare web este la ani lumină distanță de a fi chiar relevant, 0.2% stagnează față de 83.1% (cu o creștere în acest an).

          De asemenea, luați lucrurile de la sine înțeles spunând că nu merg în afara PHP, sugerând că știu doar PHP, când tocmai nu am programat în PHP de mult timp haha. În prezent, din motive de muncă, programez mai ales în Java.
          Nici nu am spus că programând în Python nu aveți cunoștințe despre bit, un colector de gunoi sau un pointer. Mai degrabă, puteți programa în Python fără să știți măcar ce este acesta. Cu toate acestea, mă îndoiesc că ar fi cazul unui programator C ++. Și, evident, fac comparația când Python intră în acel câmp de „limbaj multifuncțional”, nu pentru programarea web.

          A deveni programator în 20 de ore este pur și simplu o glumă, o exagerare. Cu toate acestea, aș putea să vă pun aici diverse linkuri despre platformele de educație online și cursurile care promit lucruri similare. Nu mă învinovățiți, dați-i vina pe o piață a muncii care crede că a deveni un „programator expert” este o chestiune de a urma un curs de 20 de ore. Și Python fiind unul dintre limbajele la modă și, de asemenea, cu cea mai rapidă curbă de învățare ... alb și într-o sticlă.

          Insist, vă bazați mesajul pe a spune cât de rău este PHP (ceea ce, într-o anumită parte, sunt de acord). Mi se pare corect, cu excepția faptului că mesajul meu nu este despre asta, ci de ce PHP va continua să fie folosit și nu va dispărea mâine așa cum credeți.

          Un saludo

  5.   nimeni el a spus

    C -> Go -> (Lisp | Haskell | Java | orice)

    1.    ChrisADR el a spus

      Recent, un cititor mi-a trimis o recomandare pentru o carte Go la adresa mea de e-mail, cu siguranță o limbă de care să ții cont în viitor și despre care poate va exista o postare aici 🙂 Multe imagini de distribuit

  6.   mvr1981 el a spus

    Ei bine ... și ce programez? De ce să înveți un limbaj de programare astăzi cu programatori atât de buni și experimentați care există deja? Ce probleme pot rezolva pe care alții nu le-au rezolvat deja într-un mod mult mai eficient? ... Pe scurt: Cât de original este să fii programator astăzi? Cum pot colabora cu alții fără să fiu lovit sau exclus de lipsa mea de cunoștințe și experiență?

    1.    ChrisADR el a spus

      Bună ziua mvr1981, întrebări cu adevărat interesante 🙂 le vom derula de la ultima la prima.

      Cum pot colabora cu alții fără să fiu lovit sau exclus de lipsa mea de cunoștințe și experiență?

      Dacă nu vrei să fii lovit cu piciorul, primul pas este să înveți procesul, nu-ți poți imagina numărul de oameni care vin la proiecte care doresc să facă lucrurile exclusiv în felul lor, dorind ca comunitatea să se adapteze la dorințele lor. Este cu siguranță ca și cum aș veni la tine acasă și aș face o mizerie și a-ți respecta familia (așa se simte de multe ori). Dacă doriți să împiedicați acest lucru, acordați o atenție deosebită orientărilor pentru a contribui, mijloacelor prin care să faceți acest lucru și nu trimiteți ceva incomplet, dacă aveți nevoie de ajutor, există întotdeauna mijloace de comunicare, dar o treabă prost realizată va probabil creează prime impresii proaste. Dacă nu vrei să te excluzi, depinde de tine, îl poți vedea ca fiind programatorul inutil care nu știe ce face sau cel care se îndreaptă spre a deveni un programator excelent și asta se întâmplă doar cu practica și cu siguranță cu bug-uri pe parcurs. M-am înșelat de multe ori înainte de a obține statutul de dezvoltator Gentoo și asta nu m-a împiedicat să încerc, în ciuda „momentului rău” 🙂.

      Cât de original este să fii programator astăzi?

      -Nu este vorba de originalitate, este o necesitate astăzi, doar gândiți-vă la următoarele, acum 20 sau 30 de ani, tastarea era o necesitate, multe lucruri deduceau că știați sau măcar că o puteți face. Astăzi cunoașterea Office este o necesitate, practic nu există nicio slujbă care să nu te pună în fața documentelor Office. Mâine, foarte curând, programarea va fi o necesitate. Și acest lucru se aplică și din punct de vedere personal, știind ce se întâmplă în programele cărora le încredințați lucruri la fel de importante ca banii, sănătatea, familia, este ceva logic pentru mine, pentru că le puteți cunoaște limitările doar dacă știți cum munca și pentru a o ști, trebuie să știi cum să programezi.

      Ce probleme pot rezolva pe care alții nu le-au rezolvat deja într-un mod mult mai eficient?

      -Ai fi surprins de suma de caracteristici care sunt necesare astăzi și, ca să spun adevărul, nu contează că există cei mai buni programatori din lume în comunitate, munca va fi întotdeauna mai mare decât capacitatea de lucru a dezvoltatorilor, pot verifica acest lucru în Gentoo, acolo sunt oameni care dezvoltă nucleul, oameni care lucrează pentru Google, Sony, etc etc ... singurul lucru pe care îl avem în comun cu toții este că nimeni nu are atât de mult timp cât ar dori să poată face toate lucrările în așteptare.

      De ce să înveți un limbaj de programare astăzi cu programatori atât de buni și experimentați care există deja?

      -Acest lucru este răspuns în a doua întrebare 😉 Dar acum pot adăuga că generațiile trebuie să poată sprijini munca care a fost deja dezvoltată, prin aceasta vreau să spun că acei dezvoltatori „cu experiență” vor dispărea treptat și va fi necesar pentru „ mai tineri »Dezvoltatorii își asumă responsabilitatea și ajută la menținerea ciclului în viață, o comunitate care nu are oameni tineri și fără experiență este predispusă să dispară în timp, tocmai pentru că nu va exista nicio oportunitate de a transmite cunoștințe.

      Și ce programez?

      -Acesta este probabil cel mai dificil lucru la care să răspund, dar voi încerca să vă dau un exemplu poco Am început recent să sufăr de probleme cu GNOME 24 și conexiunea sa la Wayland care împiedică programele precum Shutter să facă capturi de ecran. Aceasta este o problemă pentru mine, deoarece atunci când îmi scriu articolele, trebuie să vă arăt ce spun 🙂 căutând puțin am venit la aplicația GNOME Screenshot, oarecum „minimalistă” ca să spun cel puțin. Printre funcțiile sale, există una de a face o regiune de ecran, dar ce se întâmplă dacă nu am făcut fotografia bine? Ei bine, trebuie să plec și să intru din nou în program, ceva plictisitor cu siguranță, un buton care spune „Reprindeți” sau ceva de genul asta îmi permite să fac o nouă captură fără să trebuiască să plec și să intru din nou, m-ar ajuta. Este un mic proiect de programare, nu am programat nimic în cadrul GNOME, așa că, evident, am multe de învățat înainte de a-mi trimite „patch-ul” cu noul buton, dar pe parcurs învăț să programez și cu puțin noroc este trăsătură va fi de ajutor mai multor persoane când va fi disponibil tuturor.

      Acesta este un exemplu, este ceva simplu și că cu siguranță orice alt programator „expert” ar fi putut să o facă deja, dar din cauza lipsei evidente de timp, nu a fost așa, acum eu sunt cel care are posibilitatea de a face fără a fi de fapt un super programator.

      Acum depinde doar de tine să găsești ceva care să-ți facă viața „mai simplă” în acel software pe care îl folosești atât de des, frumusețea este că, dacă urmăm sfaturile pe care ți le voi da în articolele următoare, limba nu va conta, deoarece vor cunoaște elementele de bază pentru a începe să înțeleagă codul pe care l-au citit și să îl modifice pentru a face ceea ce doriți, acesta este un sentiment foarte special special

      Salutări și mulțumiri din nou

      1.    nimeni el a spus

        Cred că numai după ce am deschis programul de capturi gnome, cel mai simplu lucru este să merg la comenzile rapide de la tastatură și să atribui trei combinații de imprimare pentru a captura toate alt-print pentru a captura fereastra activă și super-print pentru a face o selecție din regiunea de captură, comenzile rapide sunt disponibile, este pur și simplu o chestiune de atribuire a acestora

        1.    ChrisADR el a spus

          De aceea, vă oferim un exemplu 🙂 deoarece lucruri mici precum acel buton programează, pot ajuta pe unii deoarece pot trece neobservați de alții, dar cu siguranță îndeplinesc obiectivul principal, ajută la învățarea programării și cedează locul noilor caracteristici, După acel buton, pot fi pornite multe lucruri, cum ar fi gestionarea unei sesiuni sau un ecran de previzualizare a tuturor fotografiilor făcute sau, pe scurt, o mulțime de lucruri care ar putea fi făcute. Ideea este că găsești ceva care te face să îți scapi curiozitatea, orice software care rulează pe sistemul tău ar putea avea nevoie de îmbunătățiri sau de noi caracteristici care, din lipsă de timp sau de personal, nu au fost încă implementate 🙂

      2.    mvr1981 el a spus

        Multumita tie. sunt răspunsuri foarte bune.

    2.    Guillermo el a spus

      Ei bine, pentru cineva care nu va fi un profesionist în domeniu, ar fi necesar să vedem în ce mediu lucrează, atât pentru sarcini administrative, cât și pentru directive, poate fi interesant să știm, de exemplu, Python / Basic și să știm cum pentru a programa macrocomenzi în pachete Office, cum ar fi LibreOffice sau MS Office. Există momente în care acest lucru poate economisi multe ore de muncă pentru dvs. sau pentru alți lucrători care vă înconjoară și le cereți să efectueze orice sarcină repetitivă, puteți crea un tablou de bord pentru a calcula rapid principalele rapoarte ale companiei după conectarea la baza de date a acesteia și efectuați o interogare SQL.
      La fel ca orice, dacă cunoașteți instrumentele la îndemână, vă puteți gândi cum să profitați la maximum. Nu totul este inventat.

  7.   Marcelo el a spus

    Guillermo, sunt total de acord cu tine, „Nu totul este inventat” și ceea ce este inventat este modificabil. Trebuie să profitați la maximum de instrumente și să utilizați cel care se potrivește cel mai bine nevoilor dvs.

  8.   Ricardo el a spus

    Pentru programare, primul limbaj care trebuie învățat este engleza, apoi cel care le atrage cel mai mult și li se pare cel mai frumos.

    1.    ChrisADR el a spus

      Nu o scrisesem, dar adevărat 🙂 cunoașterea limbii engleze ajută foarte mult, deoarece majoritatea limbilor sunt scrise în ea, dar și pentru că și cantitatea mai mare de informații de primă mână 🙂 Vă mulțumesc foarte mult pentru distribuire

  9.   Ruben salgado el a spus

    Articol excelent, pe lângă motivare.

    1.    ChrisADR el a spus

      Foarte amabil, mulțumesc mult 🙂 Salutări

  10.   Gonzalo martinez el a spus

    Programarea înseamnă să știi să raționezi și să transmiți acest raționament în instrucțiuni.

    Două clarificări despre articol:

    1) Pe baza experienței mele ca profesor de programare de aproape 10 ani, nu contează cu ce limbă înveți, ci cum înveți și cât de complex este.

    Cred că un limbaj care poate fi învățat într-un mod structurat și apoi trece la alte lucruri mai complexe, este mai ușor decât să începi cu un limbaj ca Java de la început.

    Este mai ușor să înveți ceva de genul Hello World în C sau Pascal ca bază, decât cu câteva linii (PROGRAM în cazul lui Pascal sau #include În cazul lui C) puteți începe să dezvoltați algoritmul și să codificați programul direct cu logica sa, ca în Java, care în sine are nevoie de o clasă, o metodă și alte lucruri care pentru un începător reprezintă o supraîncărcare a informațiilor inutile și care pot fi ignorate și trecute la alte lucruri, dar sunt concepte care există și, în opinia mea, trecerea cu vederea a lucrurilor nu este o modalitate bună de a învăța, mai ales dacă limbajul te obligă să le folosești. Este ca și cum ai începe o practică țintă pentru prima dată cu un M-16 și să tragi luni întregi în modul semi-automat ținând mânerul cu ambele mâini ca un pistol.

    2) Dacă un limbaj este interpretat sau compilat depinde de implementarea acestuia, nu de limba în sine. De exemplu, dacă utilizați Python, pentru o aplicație web care folosește wsgi (fie că este mod_wsgi în apache sau uwsgi pentru Nginx), codul python este compilat la pornirea modulului corespunzător, generând fișiere .pyc

    Există, de asemenea, generatoare de fișiere binare pentru java (care generează binare native în loc de bytecode) sau compilatoare de scripturi php în binare pure.

    Referitor la ceea ce spun ei despre PHP, este pur și simplu un limbaj conceput într-o altă eră, având în vedere alte lucruri și fără a lua în considerare aspecte care nu existau la acea vreme. În mod clar, faptul că este cel mai folosit nu îl face cel mai bun pentru nimic din lume, dar există o realitate: este limbajul cu care există cele mai multe șanse de a obține un loc de muncă în toate programările. Știind că nu te doare, chiar dacă nu îți place.

    Chiar și eu, care lucrez ca administrator de sistem de câțiva ani și am părăsit postul de dezvoltator, din când în când trebuie să pun codul PHP în ceva.

    1.    ChrisADR el a spus

      Bună Gonzalo, mulțumesc pentru distribuire,

      Desigur, vorbind despre supraîncărcări de informații inutile, știind că același limbaj poate fi interpretat sau compilat este ceva care nu este necesar în această etapă 🙂 Cu siguranță implementarea este importantă, dar dacă spunem că la acest nivel, nu generăm mai mult decât confuzie. În același mod, problemele de programare orientate pe obiecte nu sunt abordate sau alte concepte care trebuie dozate treptat pentru a nu ameți oamenii.

      Deoarece spațiul este limitat, principalul obiectiv al postării este de a arăta cititorilor care doresc să programeze că există două mari lumi de limbi, că interpretările „tradiționale” sunt mai „simple”, că „tradițional” compilate sunt ceva mai mult „complex”, dar merită acel nivel de complexitate să aibă o înțelegere mai solidă și că revine fiecărei persoane să aleagă limba, întrucât, în funcție de abordarea de programare, vor putea alege proiectele lor preferate și în același timp timp în care vor putea înțelege ceea ce citesc și / sau scriu 🙂

      Vă mulțumesc din nou mult, salutări.

      1.    Gonzalo martinez el a spus

        Aceasta este o greșeală, nu există limbaje compilate sau interpretate, există interpreți și compilatori pentru fiecare limbă, ambele pentru cazuri diferite.

        Nu este o supraîncărcare de informații să o menționăm acum, este o greșeală să faci o astfel de afirmație. În opinia mea, ar fi fost mai productiv să ignorați interpreții dacă nu ați dori să supraîncărcați cu informații.

        1.    ChrisADR el a spus

          Mulțumesc pentru clarificare, o voi lua în considerare când mă întorc la subiect. Noroc

  11.   Ares el a spus

    Ce limbă recomandați pentru partea serverului, ținând cont de faptul că PHP a scăpat din favoare?
    La fel și pentru bazele de date, nu știu dacă va exista ceva mai bun și mai modern decât mySQL.

    1.    ChrisADR el a spus

      PHP nu a scăpat din favoare ... Fiecare limbă are ciclul său de viață, iar php este cu siguranță deja un limbaj care intră în scara „matur”, ceea ce îl face util la nivel de afaceri, unde stabilitatea este mai presus de toate ... La fel ca unele bănci în care este încă dezvoltat în java, care este mai „matur” decât PHP și cu siguranță are adepții și detractorii săi ... Și ca să nu mai vorbim de COBOL ...

      Dacă ceea ce căutați este uniformitate și modernitate, javascriptul devine unul dintre favoritele așa-numiților „dezvoltatori full stack”, deși paradigma rubin sau „simplitatea” python sunt și referințe bune ... Chiar și perl ar putea fi opțiunea în funcție de necesități 🙂

      În zilele noastre ORM (mapare relaționale de obiecte) ia multă forță în ceea ce privește gestionarea datelor relaționale. Trece de la sintaxa SQL la tratarea claselor și a atributelor ... Aproape toate limbile (dacă nu toate) gestionează unele ORM.

      . Mongo DB este o alternativă la bazele de date relaționale care a devenit destul de importantă; totuși, este necesar să îi cunoaștem argumentele pro și contra și să validăm dacă ar fi cea mai bună soluție în funcție de nevoile specifice.

      Sper să vă ajute, salutări 🙂

      1.    Ares el a spus

        Mulțumesc, voi verifica asta.

      2.    Ares el a spus

        Am uitat.

        Ce îmi recomandați să lucrez cu JAVA în Linux?
        Dacă poți face diferența între liber și închis mai bine.

        1.    ChrisADR el a spus

          Eclipse și NetBeans sunt open source, nu sunt sigur dacă există vreun software pur gratuit, am obiceiul de a folosi vim, deoarece uneori cantitatea de cod face ca utilizarea unui IDE întreg să fie lent și predispus la erori de execuție. Salutări 🙂

        2.    paulzeta el a spus

          Pentru a lucra cu Java în Linux folosesc IntelliJ Vă recomand.

          1.    ChrisADR el a spus

            PS, IntelliJ este un software proprietar 🙂

  12.   je el a spus

    Băieții își amintesc, de asemenea, că ... Lucrez într-o bancă și vă spun că limbajele de programare ocupă locul din spate pentru a lăsa mai întâi procedurile SQL și Stored.

    1.    Gonzalo martinez el a spus

      Trebuie să le țineți cont de procedurile stocate, dar prin utilizarea unui limbaj portabil între motoare, cel puțin din experiența mea, este întotdeauna să le evitați, cu excepția cazului în care nu există altă opțiune.