Merită să înveți python? Este pe moarte limbajul de programare Python? Nu există instrumente bune de distribuție

Python este un limbaj de programare cu o barieră de intrare destul de scăzută, așa că este adesea ales de codificatorii începători. Te-ai decis încă să înveți Python? Iată zece fapte despre el care te vor ajuta să-ți risipiți îndoielile și să vă faceți alegerea. Vor fi de interes nu numai pentru programatori!

1. Python funcționează aproape peste tot

Python rulează pe aproape toate platformele cunoscute - de la computere de buzunar și smartphone-uri până la servere de rețea. Versiunile Python au fost portate pe Windows, Linux/UNIX, macOS și macOS X, iPhone OS 2.0 și versiuni ulterioare, Palm OS, OS/2, AS/400 și chiar OS/390, Windows Mobile, Symbian și Android.

2. Python are rădăcini străvechi

Unii programatori consideră că acest limbaj de programare este tânăr. Cum să spun. În comparație cu limbajul C, Python este tânăr. Dar lucrările la ea au început la sfârșitul anilor 1980 și prima versiunea completa apărut în 1991. Așa că Python și-a sărbătorit de mult maturitatea. Este un limbaj de programare matur și în evoluție, dar nu este în niciun caz mort, așa cum cred unii oameni. Apropo, acum o lună, pe 17 iulie 2017, a fost lansată versiunea 3.6.2.

3. Susține „băieții mari”

Băieții mari - Google, Yahoo, NASA, Industrial Light & Magic și chiar Microsoft - folosesc Python. Confirmarea este ușor de găsit pe Internet. Deci, Google preferă C++, Java și Python, iar Microsoft chiar a deschis un Python Developer Center.

4. Python este unul dintre cele mai populare limbaje de programare din lume



Avantajele obținerii unei specialități la GeekUniversity sunt următoarele.

  • Sunt utilizate abordări de conducere centre de formare STATELE UNITE ALE AMERICII. Studentul va trebui să creeze patru proiecte - atât independent, cât și în echipă. Un an la GeekUniversity este un an de experiență reală de dezvoltare pentru CV-ul tău.
  • În timpul lecțiilor, vom crea nu o aplicație simplă precum „Bună ziua, lume”, ci una cu drepturi depline aplicație client-server - sistem de plata. Studentul va învăța să lucreze cu baze de date, să creeze aplicații GUI și aplicații sigure cu mai multe fire.
  • Studentul va avea un mentor-curator personal. Lucrul cu un mentor face ca învățarea să fie mai eficientă.
  • Scopul GeekUniversity este angajarea absolvenților. Angajarea este garantată tuturor absolvenților.
  • GeekUniversity funcționează pe baza licenței de stat nr. 038188. Absolventului i se eliberează un certificat de stat.


obține Informații suplimentare Puteți afla despre universitatea online lăsând o aplicație pe site.

Studenții Skillbox, un profesor și un dezvoltator vorbesc despre caracteristicile limbii și cerințele pieței.

La marcaje

Material pregătit cu sprijinul

Într-o serie de publicații, studenții platformei educaționale online vorbesc despre ceea ce i-a determinat să stăpânească o nouă specialitate, profesorii apără metode, iar experții explică de ce este nevoie de astfel de specialiști.

Acest limbaj de nivel înalt programare scop general. Sintaxa limbajului este minimalistă: acest lucru este necesar pentru a crește productivitatea dezvoltatorului și lizibilitatea codului.

Python este unul dintre cele mai populare și adaptive limbaje care se dezvoltă foarte repede. Dezvoltatorii Python sunt mereu solicitați pe piață.

Nikita Sobolev - dezvoltator, fondator al studioului Wemake.services

Dacă cunoașteți orice alt limbaj de programare, atunci învățarea Python va fi foarte ușoară. Aceasta este povestea mea - programam în Java, dar dintr-o dată a trebuit să învăț Python. Nu au fost probleme: limbajul era simplu, pragul de intrare era scăzut.

Aveam propriile mele proiecte în Java, dar mi-a plăcut mai mult Python. În special, cu această limbă reușesc să scriu mai mult cod. Productivitatea unui programator care lucrează în Python este de multe ori mai mare. Prin urmare, echipa noastră a trecut complet la această limbă.

După un an de lucru cu Python, poți deveni mult mai eficient. Pentru comparație, mă lupt cu limbile Erlang și Elixir de trei ani și încă nu știu prea multe, pentru că au propriile lor specificități. Python este mai puțin dificil.

Programatorii cu cunoștințe de Python sunt la mare căutare. Dacă indică în profilul tău Github proiecte cu Python care au cel puțin 10–15 stele, atunci te încadrezi automat în algoritmii specialiștilor de resurse umane, care încep să le inunde cu scrisori la fiecare două zile: stai jos, alege și acceptă orice ai ca.

Nikita Sobolev

Dezvoltator și fondator al studioului Wemake.services

Companiile au nevoie de mulți oameni, dar pur și simplu nu există în acea cantitate. Pe piață există mai multe subsecțiuni ale dezvoltării Python, care sunt acum cele mai populare - angajatorii angajează chiar și începători. Primul este Data Science. Această direcție se bazează aproape în întregime pe Python. Specialiştii au nevoie de o bună pregătire matematică şi cunostinte de baza limba.

A doua subsecțiune este casarea. Dezvoltatorii scriu „păianjeni” care circulă și colectează informații pe site-uri și folosesc informațiile primite într-un scop sau altul. Astfel de specialiști au nevoie de cunoștințe de bază despre programarea Python.

Prin aceste două activități este ușor să intri în domeniul programării Python: învață Noțiuni de bază, îți găsești un loc de muncă, începi să obții bani reali, îți îmbunătățești nivelul și devii treptat un specialist serios.

Cu toate acestea, în mod firesc, există dezvoltare web, care este destul de greu de accesat doar cu cunostinte de baza. În acest domeniu, cel mai stabilit cerințe ridicate. Dar este, de asemenea, posibil să începeți dezvoltarea web în Python cu abilități de bază. Există două opțiuni de intrare - open source și freelance.

În opinia mea aprecieri subiective, majoritatea posturilor vacante sunt încă rezervate programatorilor Java și JavaScript. Dar Python este în primele trei. Se deschid multe perspective pentru un programator Python, deoarece platforma este destul de diversă și este folosită pentru tehnologii diferite. Creșterea carierei este, de asemenea, rapidă - datorită simplității limbii.

Dar, în ciuda cererii de dezvoltatori Python, există destul de mulți specialiști serioși și sunt greu de găsit. Toate sunt ascunse pentru că companiile îi protejează, îi protejează și se roagă pentru ei: găsirea unui înlocuitor pentru un astfel de specialist este extrem de dificilă.

Vadim Shandrinov - profesor de curs

Programez de 30 de ani. Am început în clasa a opta și am continuat prin facultate. Sunt implicat în dezvoltarea Python din 2000.

Avantajul acestui limbaj de programare este că are o barieră scăzută de intrare pentru învățare. Pentru a scrie un mic cod simplu, câteva zile vor fi suficiente. Dar va trebui să se aloce mult mai mult timp studierii lucrurilor mai subtile - biblioteci, principii și abordări.

Python - limbaj deschis, există surse. Programatorul poate vedea ce fac alți dezvoltatori și cum. Din moment ce limba este veche, multe biblioteci au fost scrise pentru ea - pentru toate ocaziile.

Acum, mi se pare, Python a devenit prea popular - multe organizații au început să-l folosească: NASA, Google, Dropbox, Instagram și altele. Situație similară a fost cu Java, care este folosit acum de marile companii. De exemplu, toată dezvoltarea Android are loc în această limbă.

Studiez posturile vacante care sunt publicate pe hh.ru: aproximativ 200 de oferte diferite sunt disponibile candidaților în fiecare zi. Piața este foarte mare, specialiștii sunt la mare căutare. Dar există un eșec - companiile, de regulă, au nevoie de un programator cu un nivel mediu sau superior. Aproape toate posturile vacante indică o experiență de lucru de doi până la trei ani. Foarte rar sunt necesari programatori juniori - de obicei doar companiile mari precum Yandex își pot permite să angajeze specialiști tineri.

Prin urmare, programatorii Junior se luptă să găsească de lucru - cunosc limba, au proiecte, dar nu își găsesc un loc de muncă, în ciuda cererii.

Cred că cursul nostru va contribui la eliminarea acestei decalaje: pregătim specialiști care cunosc nu doar limba, ci și bibliotecile și cadrele disponibile. Urmează să organizăm și stagii de practică: invităm companiile să devină parteneri pentru ca apoi să luăm ce e mai bun pentru stagiul nostru.

Particularitatea cursului este că formarea începe de la baza. Am inclus multe elemente de gamification - explic câteva puncte, după cum se spune, pe degete. De exemplu, folosind desene animate sau dramatizări.

Cursul are o componentă vizuală mare - fulgii de zăpadă, navele spațiale și alte elemente sunt afișate folosind cod. Acest lucru este mult mai interesant decât doar liniile din consolă.

Imersăm studenții într-un mediu profesional prin utilizarea unui sistem de control al versiunilor. Acesta este principalul instrument de lucru pentru toți programatorii. Interacționez cu studenții prin Git (sistem de control al versiunilor distribuite): ei scriu cod, îl commit, îl încarcă pe server și eu revizuiesc și las comentarii.

Un commit este un comentariu de dezvoltator care descrie modificările care au avut loc în cod.

Putem spune că emulăm viața profesională a unui programator. Acest lucru este necesar deoarece la angajare, companiile întreabă nu despre cunoștințele sistemelor de control al versiunilor, ci despre experiența de lucru cu acestea.

Cursul este împărțit în două părți. Primul este dedicat lui Python în sine, abilități de programare în el. După parcurgerea primei părți, elevul înțelege dacă este potrivit pentru el sau nu. A doua parte a cursului este dezvoltarea web folosind framework-ul Django. După absolvire, studentul se poate poziționa ca un puternic programator Junior.

Igor, 25 de ani - student cu puțină experiență de programare în C++

Lucrez ca profesor în cluburi de robotică - predau copii despre electronică și programare. Am o educație tehnică superioară, dar pot numi calitatea acesteia „nu bună”. De asemenea, am abilități de bază de programare C++.

Citesc regulat reviste - „Mecanica populară”, „Mașini și mecanisme” și RBC. Aceste publicații vorbesc despre dezvoltarea industriei IT, învățarea automată, Internetul lucrurilor, blockchain, calculatoare cuantice si altii. Python este adesea folosit în aceste domenii: este popular și aplicațiile sale sunt largi. Putem spune că limba te va ajuta să intri un numar mare de diferite sfere.

Am vrut să mă implic mai mult în programare și am decis să încerc să învăț Python. Am căutat cursuri pe Internet și le-am revizuit diferite varianteși s-a stabilit pe Skillbox.

După fiecare modul există teme - fără a-l finaliza nu vei putea trece mai departe subiectul următor. Sarcinile sunt diferite. De exemplu, odată ce a fost necesar să se programeze un simulator de viață bazat pe text în care există oameni și pisici - a fost necesar să se înțeleagă câte animale ar putea hrăni.

Profesorii verifică munca din punct de vedere profesional, la fel ca într-o companie reală: codul nu trebuie doar să funcționeze, ci și să fie curat. La început, se pare că profesorul se pricepe, dar, de fapt, studiază codul temeinic - asta este bine.

Igor Sensky

Dacă există întrebări sau probleme problematice, sarcinile sunt trimise spre revizuire. Am reușit să trec de nivelul inițial doar prima dată. teme pentru acasă. La finalul instruirii trebuie să existe un proiect final.

Cursul oferă cunoștințe de bază - pentru asta este conceput, în funcție de conținutul și prețul său. Pentru persoanele care nu au abilități de programare, probabil că va fi potrivit, dar la un moment dat poate părea complicat. La început sunt date concepte de bază, cu care totul este simplu, dar pentru cele mai complexe ai nevoie de o anumită mentalitate și experiență.

Scopul meu principal este să verific cât de potrivit este acest format de formare pentru mine, deoarece este prima dată în viața mea când mă înscriu la un curs online. Dacă totul merge bine, plănuiesc să găsesc mai târziu lecții despre dezvoltarea Python cu o scufundare mai profundă.

În opinia mea, cunoștințele de bază pe care le oferă cursul sunt egale cu experiența unui dezvoltator Junior. Aceasta înseamnă că puteți obține un stagiu la o companie sau alta.

Alexandra, 29 de ani - studentă cu experiență în programare în C++

Programez de cinci ani. Una dintre limbile pe care le cunosc este C++. Dar meseria mea este legată de știință, iar scrierea codului nu se află în fruntea listei mele de responsabilități.

La un moment dat am observat că îmi pierdusem abilitățile de programare pentru că anul trecut Am petrecut foarte puțin timp cu el. Hotărând că am uitat cum să scriu cod, am decis să învăț ceva nou.

M-am abonat la Skillbox de mult timp și am văzut informații despre un curs despre dezvoltarea Python. Nu mai lucrasem niciodată cu această limbă și nu eram interesată de ea, deși știam despre existența ei. Degeaba: s-a dovedit că acesta este un limbaj de programare cool și interesant.

Alexandra Oleynikova

Student

M-am înscris recent la curs și sunt în faza incipientă de învățare. Ni se oferă lecții video, dar dacă aveți întrebări, puteți scrie profesorului. După fiecare subiect sunt teme pentru acasă - profesorul le verifică manual și apoi vă spune ce să corectați. Când rezultatul este satisfăcător, puteți trece la următoarea lecție.

La început, sarcinile mi s-au părut plictisitoare pentru că cursul pleacă de la bază și se adresează persoanelor care nu știu nimic despre programare. Prima temă este foarte simplă - trebuie să afișați niște valori sau să calculați ceva. Dar cu fiecare lecție, sarcinile devin mai complicate și apar sarcini în care îți poți arăta imaginația.

Găsesc că subiectele precum variabilele, buclele și condițiile sunt ușor de stăpânit de studenți fără cunoștințe de programare. Dar poate deveni greu atunci când începe programarea orientată pe obiecte.

Dar profesorii sunt interesați ca elevii să înțeleagă totul. Uneori chiar arată desene animate în clasă pentru a explica puncte dificile. Acest lucru, desigur, mi se pare amuzant, dar dacă este neclar și dificil pentru studenți, atunci această abordare poate ajuta.

Încă nu am de gând să folosesc Python în practică, deoarece nu am de gând să renunț la slujbă. Am văzut acest curs ca o reîmprospătare pentru ca creierul meu să-și amintească programarea: indiferent de limbaj, elementele de bază sunt aceleași și există ceva de reținut. Dar, desigur, nu mi-aș dori să termin cursul și să uit complet de Python: este un limbaj foarte cool.

Python este al doilea cel mai popular limbaj de programare din lume. Un curs practic de programare Python de 4 luni cu un mentor individual este potrivit pentru cei care doresc să învețe elementele de bază ale programării într-un limbaj universal, ușor de înțeles și concis.

  • Peste 80 de lecții video în 16 module.
  • Verificarea tuturor teme pentru acasă profesor.
  • Certificat de absolvire a cursului.

Există engleză. Oamenii comunică pe el. Și, de asemenea, în germană, filipineză, spaniolă, greacă și o mulțime de altele.

Există Python (voce plictisitoare despre nume corect). Aceasta este limba în care o persoană comunică cu un computer. Puteți comunica cu un computer într-o mulțime de limbi: C, Pascal, Haskell, Go, Swift, Ruby, PHP, BASIC, Erlang, Er și multe altele.

Vom învăța Python aici. Sa incepem cu scurtă recenzie cum diferă de alte limbi. Nu trebuie să faceți nimic: citiți, amintiți-vă câteva puncte și gata, vă puteți lăuda cu tot ceea ce sunteți în subiect (nu face asta).

Concizie

Python are o astfel de comunitate încât nu acceptă confuzia în utilizarea limbii. Un standard de codare face parte din limbaj. Filosofia scrierii codului face, de asemenea, parte din limbaj. Prin urmare doi bun programator va scrie un cod foarte asemănător: nu e nevoie să pierzi timpul cu „la naiba, ce a vrut să spună aici?...”.

Python are o astfel de sintaxă încât ajută la scrierea codului foarte scurt. Fără paranteze în plus, lung Cuvinte cheie, trucuri dificile și toate astea. Descrieți logica, traduceți-o în engleză, adăugați indentări și sintaxă - asta este, programul este gata.

Python are o bibliotecă atât de standard încât ajută la efectuarea unei mulțimi de operațiuni de rutină. Vă va ajuta să trimiteți un e-mail, să codificați un șir, să configurați un server web, să aflați ora, să ștergeți un fișier, să calculați variația, să arhivați un fișier, să extrageți date dintr-o bază de date și să faceți mai multe în doar câteva rânduri.

Python are această sumă module de la terți, ceea ce poate economisi mii de ore-om de muncă. Trebuie să scrieți un site web? A preda Retea neurala rezolva captcha? Descărcați audio de la VKontakte? Recunoașteți oamenii în fotografii? Simulați zborul unei rachete? Scrieți un bot? Pentru toate acestea există module gata făcute, trebuie doar să le instalați și să le folosiți.

Toate acestea fac ca procesul de scriere a codului să fie foarte rapid.

Mișto documentație

Încercați să căutați pe google sau, de exemplu. Primele rezultate vor conține un link către https://docs.python.org - site-ul oficial de documentare.

Acest lucru se datorează faptului că documentația este foarte detaliată: are materiale pentru începători, documentație pentru fiecare modul, recomandări de utilizare, capcane și lecturi suplimentare. Și asta este totul pentru fiecare versiune a limbii. Nimeni nu are o documentație atât de convenabilă și detaliată.

Există și http://stackoverflow.com/ - un site unde unii programatori răspund altor programatori la întrebări despre programare. În timpul existenței sale, acolo au fost puse toate întrebările posibile. Serios: orice întrebare de tipul „cum se face asta în Python” sau „de ce nu funcționează acest cod” a fost deja pusă, vizualizată și răspuns.

Toate acestea fac procesul de învățare și scriere a codului rapid: toate informațiile necesare sunt doar la o interogare de căutare reușită distanță.

Care dintre aceste întrebări nu se află în întrebările frecvente oficiale ale documentației oficiale?

  • De ce obțin rezultate ciudate cu operații aritmetice simple?
  • De ce este instalat Python pe mașina mea?
  • Cum pot implementa clasa de bază abstractă din fabrică în Python?
  • A scrie C este greu; exista alternative?

Tastare dinamică puternică

Tastare dinamică- înseamnă, în aceeași variabilă în timp diferit valorile pot fi stocate tipuri diferite. Acum este un număr, apoi este un șir și totul este într-o singură variabilă.

În multe limbi, acest lucru nu este posibil: ați creat o variabilă întreagă, așa că stocați numere întregi în ea. Acest lucru este convenabil pentru computer, dar nu întotdeauna convenabil pentru programator.

Tastare puternică- aceasta înseamnă că nu puteți efectua doar acțiuni cu obiecte de diferite tipuri. De exemplu, nu puteți adăuga un șir cu un număr: mai întâi trebuie să transformați șirul într-un număr și abia apoi să îl adăugați. Python în sine nu va face o astfel de conversie.

Acest lucru poate părea incomod, dar de fapt protejează împotriva erorilor. Pentru a înțelege despre ce vorbim, uitați-vă doar la JavaScript, un limbaj scris slab:

Gestionarea automată a memoriei

Gestionarea memoriei este atunci când pentru fiecare grămadă de date dintr-un program trebuie să alocați manual spațiu în RAM. Asigurați-vă că datele nu depășesc această locație. Nu uitați să eliberați acest spațiu atunci când datele nu mai sunt necesare. În general, hemoroizii infernali.

În Python, nu trebuie să vă gândiți la asta: limbajul de programare va face totul pentru programator. Adevărat, nu o va face perfect: trebuie să știți cum funcționează Python cu memoria.

Si mult mai mult

Pe lângă cele de mai sus, Python este renumit pentru multe alte lucruri: indentare, introspecție, zen, portabilitate, GIL, nume.

De ceva vreme, mi se învârte în cap gândul dacă ar trebui să scriu o scurtă notă pe tema de ce limbajul Programare Python Merită să studiați și, mai mult, să creați proiecte software pe el.

Unii dintre voi știți că recent am participat la cel mai mare eveniment din comunitatea de programare Python - . Toate cheltuielile au fost acoperite integral de mine, fără implicarea sponsorilor sau angajatorilor. Poate că, pentru a participa la un astfel de eveniment, trebuie să ai un anumit atașament emoțional față de subiect, iar acest lucru este adevărat.

Ce este Python?

Python este un limbaj de programare de uz general care vizează în primul rând creșterea productivității programatorului însuși, mai degrabă decât codul pe care îl scrie. Într-un limbaj uman simplu, puteți scrie aproape orice în Python (aplicații web/desktop, jocuri, scripturi de automatizare, sisteme complexe calcule, sisteme de control al suportului vieții și multe, multe altele) fără probleme vizibile. Mai mult, bariera de intrare este scăzută, iar codul este în mare măsură concis și de înțeles chiar și pentru cei care nu au scris niciodată în el. Datorită simplității codului, întreținerea ulterioară a programelor scrise în Python devine mai ușoară și mai plăcută în comparație cu Java sau C++. Și din punct de vedere al afacerii, aceasta presupune o reducere a costurilor și o creștere a productivității angajaților.

Pentru a demonstra concizia, să ne uităm la codul Python și Java care deschide un fișier și stochează conținutul acestuia într-o variabilă:

Fișier = open("fișier.txt") conținut = fișier.read()

Import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; public static void main(String args) aruncă IOException ( String content = new String(Files.readAllBytes(Paths.get("file.txt"))); )

Codul Java folosește o interfață actualizată pentru a lucra cu sistemul de intrare/ieșire. Vechiul mod ar arăta și mai rău :)

Cine folosește Python?

Chiar și cel mai avansat limbaj de programare nu are valoare dacă nimănui nu-i pasă de el. Una dintre componentele succesului oricărei tehnologii este comunitatea creată în jurul acesteia. Acesta este cel care predetermina viitorul vector de dezvoltare prin eforturi comune. Comunitatea Python este una dintre cele mai puternice din lumea IT. Acesta este un organism complex, bine organizat și în continuă dezvoltare. Pe lângă sute de mii de dezvoltatori individuali și mici companii de software, Python este susținut de giganți IT precum:

Si multe altele. Impresionant, nu-i așa? În ceea ce privește proiectele mari și populare scrise în Python, aceștia sunt monștri precum:

  • YouTube (majoritatea bazei de cod este în întregime în Python)
  • Prima versiune a păianjenului de căutare Google a fost scrisă în Python, iar mai târziu, din cauza cerințelor extrem de mari de încărcare și viteză, a fost rescrisă în C++.
  • Client desktop Dropbox
  • Reddit
  • Instagram (500 de milioane de utilizatori Python)
  • Bitbucket (Python 2.7 și Django 1.7.11)
  • EVE Online MMOPG
  • Quora
  • Spotify
  • Serviciile critice ale PayPal procesează până la 2 miliarde de solicitări pe zi. Puteți afla mai multe în podcastul TalkPython, episodul #54
  • Servicii Mozilla
  • Serviciu popular Idei Pinterest
  • Serviciu Comentarii Disqus(Il folosesc in acest blog, serviciul este implementat in Django)
  • Intern servicii Facebook(vezi afișul din al meu)
  • Sistemul de control al versiunilor Mercurial (până în urmă cu ceva timp, dezvoltatorii Python îl foloseau în munca lor)
  • Servicii de jocuri de război

și sunt sigur că sunt multe altele interesante și aplicații populare, pe care am uitat să le enumer aici (bun venit în comentarii).

Ce înseamnă acest lucru? Despre multe lucruri. Și cel mai important lucru este că marile corporații nu se tem să-și construiască afacerea în jurul Python, sunt încrezători că tehnologia va supraviețui și, prin urmare, nu ar trebui să se aștepte la probleme cu găsirea specialiștilor. Mai mult, varietatea aplicațiilor este și ea impresionantă, demonstrând gama largă de probleme pe care Python le rezolvă cu măiestrie.

Într-o notă despre cartea „”, am scris că a fost luată ca bază ca material educațional pentru un curs introductiv de programare la MIT, limbajul calculatorului pe atunci dialectul Lisp era Scheme. Vremurile se schimbă, acum ce conduce ca lingua franca digitală...? Așa este, Python. Este folosit ca un instrument de încredere într-un astfel de meșteșug uimitor.

Dezavantaje Python

Un cititor care nu este familiarizat cu Python poate avea impresia că este un panaceu pentru toate bolile, un glonț de argint și un leac pentru cancer. Dar nu totul este atât de roz și minunat. Ca orice, Python are o serie de deficiențe proprii, care uneori pot fi critice și pot influența alegerea nu în favoarea șarpelui.

Viteză

Unul dintre principalele dezavantaje este relativ viteza mica execuţie. Python este un limbaj tip complet dinamic, control automat memorie. Deși la prima vedere acest lucru poate părea un avantaj, atunci când se dezvoltă programe cu cerințe de eficiență crescute, Python poate fi semnificativ mai lent decât frații săi statici (C/C++, Java, Go). În ceea ce privește omologii săi dinamici (PHP, Ruby, JavaScript), lucrurile sunt mult mai bune aici, în cele mai multe cazuri, Python execută codul mai rapid datorită pre-compilării în bytecode și o parte semnificativă; bibliotecă standard, scris în C. La conferințe am avut ocazia să comunic cu băieți din companii mari precum Wargaming, mulți dintre ei au tendința de a se îndrepta către statică și cel mai adesea acesta este Go, Rust.

Un raport interesant despre viteza și optimizarea CPython (implementarea nativă a limbajului în C) a fost citit la PiterPy 2015 din Sankt Petersburg:

Tastare dinamică

Pentru programatorii începători, un limbaj de programare tip dinamic la prima vedere (și la a doua și chiar la a treia) poate părea o ieșire, o plăcere cerească, mai ales pentru cei care s-au confruntat anterior cu „statica”. Dar există și partea din spate lună. Pe măsură ce baza de cod crește (și acesta este adesea un proces inevitabil în proiectele de succes), fiți cu ochii pe tip transmisă unui prieten Poate fi foarte dificil pentru un prieten de date (și în absența documentației și a testelor clare, este aproape imposibil), aici apar probleme când, de exemplu, încearcă să apeleze o metodă pe None sau să acceseze un atribut în timpul codului execuţie. Pentru a rezolva acest tip de problemă, limbajele dinamice sunt acoperite cu tot felul de cârje, fluiere și trucuri sub formă de adnotări de tip, proiecte mypy analiza statica cod și așa mai departe. Acest lucru, la rândul său, pune o conotație negativă pe partea estetică a codului.

Din cauza limitărilor de limbaj, apar implementări alternative ale interpreților: PyPy, Pyston, Jython, Cython și multe altele. Acum tendința este clar vizibilă în această direcție, de exemplu, Pyston este dezvoltat în interiorul zidurilor așa-numitului. Mecca programatorilor Python - Dropbox :)

Concluzie

În ciuda mai multor probleme inerente din punct de vedere istoric Python, acesta continuă să fie un instrument de vârf într-o serie de nișe:

  • Dezvoltare de aplicații web (aici avem liderul incontestabil sub forma Django).
  • Analiza datelor și învățarea automată (scipy, scikit-learn, panda, pachete numpy recunoscute de comunitatea științifică globală).
  • Introducere în programare (pygame, broasca testoasă sunt bune la motivarea copiilor să înceapă să codeze).
  • Prototiparea rapidă a ideilor în afaceri datorită abundenței de biblioteci gata făcute, a barierei scăzute de intrare în limbaj și a productivității ridicate a programatorilor care scriu în Python.
  • Scrierea de scripturi (scenarii) pentru automatizarea sarcinilor. Python vine în mod implicit cu toate distribuțiile de sisteme de tip Unix și este un înlocuitor excelent pentru Bash în toate sensurile.

Sunt sigur că am uitat altceva. În general, Python guvernează!

Legături

  • Excelent raport despre GIL(Global Interpreter Lock). GIL este unul dintre blocajele serioase din Python pe drumul către programarea paralelă.
  • Discuția lui Guido van Rossum despre adnotări de tip la PyCon US de anul trecut.
  • Raymond Hettinger la PyCon de anul trecut citeste un raport excelent pe tema abordării pythonice a scrierii codului, arătând cum să transformați cod asemănător Java în cod asemănător Python. Necondiţionat trebuie să urmăriți.
  • Postare pe blogul tehnologiei Instagram despre modul în care gestionează sarcinile de lucru folosind Python și Django.
  • 10 mituri ale Enterprise Python pe blogul PayPal.

Înainte de a începe să învețe un anumit limbaj de programare, oamenii se gândesc de obicei la cum își pot aplica cunoștințele și abilitățile în practică. În ceea ce privește Python, acest limbaj de uz general este util în multe domenii diferite. Dezvoltator și fondator al startup-ului CS Dojo Ek Sugi a vorbit despre cei trei cel mai mult moduri frecvente folosind Python.

1. Dezvoltare web

Cadre bazate pe Python, cum ar fi DjangoȘi Balon, au câștigat recent o mare popularitate în rândul dezvoltatorilor web. Aceste cadre vă permit să creați cod pe server (cod backend) în Python, care rulează pe server, spre deosebire de codul frontend care rulează pe dispozitivele și browserele utilizatorului.

Pentru ce sunt cadrele web?

Cadrele web simplifică dezvoltarea logicii serverului: procesarea URL-urilor, accesarea bazelor de date, crearea de fișiere HTML pe care utilizatorii le văd în browsere.

Ce cadre sunt cele mai bune de utilizat pentru dezvoltarea web?

Cele mai populare două cadre web pentru Python sunt Django și Flask. Sunt recomandate dezvoltatorilor începători.

Care este diferența dintre Django și Flask

Am pregătit un articol excelent ca răspuns la această întrebare. Gareth Dwyer.

Principalele diferente:

  • Flask este un cadru simplu și flexibil cu foarte setări detaliate. Utilizatorul poate decide singur cum să implementeze anumite lucruri.
  • Django oferă o funcționalitate completă de dezvoltare a aplicațiilor imediat din cutie: o interfață de administrare încorporată, API de acces la baze de date, ORM și structură de directoare pentru aplicații și proiecte.

Este mai bine să utilizați:

  • Flask dacă scopul dezvoltatorului este experiența și oportunitățile de învățare sau dacă trebuie să aleagă independent ce componente să folosească (de exemplu, ce baze de date să folosească sau cum să interacționeze cu acestea).
  • Django, dacă principalul este produs final. Mai ales dacă trebuie să construiți o aplicație intuitivă, de exemplu, un site de știri, magazin online, blog, pe care utilizatorul să le poată naviga cu ușurință.

Astfel, Flask este de preferat să fie folosit pentru începători, deoarece acest cadru nu are o funcționalitate atât de bogată, precum și pentru cei care prețuiesc capacitatea de a-l personaliza la propria discreție. În plus, datorită flexibilității sale, Flask este mai potrivit decât Django pentru dezvoltarea API-urilor REST. Pe de altă parte, dacă trebuie să creați un produs simplu, va fi mai rapid să o faceți cu Django.

2. Prelucrarea datelor (inclusiv învățarea automată, analiza și vizualizarea datelor)

Ce este învățarea automată

Învățarea automată este explicată cel mai bine cu un exemplu clar. Să presupunem că trebuie să dezvoltați un program care să recunoască automat obiectele descrise în imagini. În prima imagine, programul ar trebui să identifice câinele.

Pe al doilea, ea ar trebui să recunoască masa.

Prima modalitate este să scrii pentru asta cod special. De exemplu, dacă o imagine are o mulțime de pixeli maro deschis, înseamnă că există un câine în ea. Sau puteți găsi o modalitate de a recunoaște limitele obiectelor: dacă există multe linii drepte în imagine, atunci acesta este un tabel.

Evident, această soluție va fi inutilă dacă imaginea arată, de exemplu, un câine deschis la culoare, care nu are deloc blană maro, sau doar un blat rotund fără picioare. Aici se deschid perspectivele învățare automată.

Învățarea automată utilizează de obicei un algoritm care caută automat un anumit model în datele de intrare. De exemplu, puteți introduce o mie de poze cu câini și o mie de tabele. În continuare, algoritmul de învățare automată va identifica diferența dintre câine și masă. Când algoritmul primește o nouă imagine a unui câine sau a unei mese, va putea identifica obiectul.

Adică, sistemul este antrenat exemple concrete: nu i se arată semne individuale ale cutare sau acel obiect, ci i se arată multe imagini și i se spune că acest obiect este desenat pe toate. Antrenează-te în același mod

Cei mai cunoscuți algoritmi de învățare automată sunt:

  • rețele neuronale,
  • invatare profunda,
  • mașină vectorială de sprijin,
  • „pădure aleatorie”.

Oricare dintre acești algoritmi poate fi utilizat pentru a rezolva problema de etichetare a imaginilor de mai sus.

Python pentru Machine Learning

Există biblioteci și cadre de învățare automată populare pentru Python. Cei doi mai mari dintre ei sunt scikit-learnȘi TensorFlow. scikit-learn vine încorporat cu unii dintre algoritmii de învățare automată bine cunoscuți discutați mai sus. TensorFlow este o bibliotecă de nivel inferior care vă permite să construiți algoritmi personalizați.

Cum să înveți învățarea automată

Pentru a învăța elementele de bază ale acestei tehnologii, puteți urma cursuri de la Universitatea Stanford sau. Dar pentru a înțelege o parte din material, veți avea nevoie de cunoștințe de bază de analiză matematică și algebră liniară.

Apoi, informațiile primite trebuie să fie fixate pe site-ul web Kaggle. Aici puteți concura cu alți dezvoltatori pentru a crea cel mai bun algoritmînvățare automată pentru diverse sarcini. Site-ul oferă și tutoriale utile pentru începători.

Analiza datelor și vizualizarea datelor

Ca exemplu, putem lua un analist de date pentru o companie imaginară care vinde bunuri prin Internet. Un analist poate prezenta rezultatele vânzărilor sub forma unei diagrame cu bare.

Graficul arată că într-o anumită duminică, bărbații cumpărători au achiziționat mai mult de 400 de unități ale produsului, iar femeile cumpărători au cumpărat aproximativ 350. Un expert poate avea mai multe ghiciri cu privire la motivul pentru care a apărut acest decalaj.

O explicație evidentă este că produsul este mai solicitat în rândul bărbaților decât al femeilor. Un alt motiv posibil este că eșantionul nu a fost suficient de mare, iar diferența ar putea fi atribuită întâmplării. A treia opțiune este că din anumite motive bărbații tind să cumpere acest produs mai mult doar duminică. Pentru a înțelege ce explicație este adevărată, puteți desena o altă diagramă.

Este necesar să se țină cont de statisticile vânzărilor nu numai duminica, ci și pentru întreaga săptămână. După cum se poate vedea din diagramă, o astfel de dinamică poate fi urmărită în toate zilele. Această mică analiză sugerează că motivul cel mai plauzibil pentru diferența de vânzări este că produsul este pur și simplu mai popular în rândul bărbaților decât în ​​rândul femeilor.

Dar dacă diagrama arată așa,

s-ar putea concluziona că dintr-un motiv sau altul, bărbații sunt mai activi în achiziționarea acestui produs doar duminica.

Acesta este un exemplu foarte simplu de analiză a datelor. Și pentru aceasta, companiile folosesc și Python, iar pentru vizualizarea datelor, biblioteca Matplotlib.

Analiza și vizualizarea datelor în Python

Matplotlib este una dintre cele mai comune biblioteci pentru vizualizarea datelor. Cel mai bine este să începeți pentru că este simplu și, de asemenea, pentru că și alte biblioteci se bazează pe el, cum ar fi seaborn. Prin urmare, cunoștințele despre Matplotlib vă vor ajuta să le stăpâniți în viitor.

Cum să înveți analiza și vizualizarea datelor în Python

În primul rând, trebuie să înveți elementele de bază. Ek Sugi oferă propriul său videoclip introductiv la analiza și vizualizarea datelor în Python și Matplotlib pe YouTube, precum și un curs practic complet pe platforma de educație Pluralsight, care este gratuit cu un abonament de 10 zile Perioada de probă Pe net. După aceasta, este util să studiezi elementele de bază ale statisticii, de exemplu pe Coursera și Khan Academy.

3. Scrierea de scenarii

Ce este scripting-ul

Acest lucru este de obicei înțeles ca crearea programe mici pentru a automatiza sarcini simple. De exemplu, companiile folosesc diverse sisteme relații Clienți e-mail. Pentru a analiza mesajele primite, companiile trebuie să numere câte dintre ele conțin anumite cuvinte cheie.

Acest lucru se poate face fie manual, fie puteți scrie un program simplu (script) pentru a procesa automat mesajele. Python este excelent pentru sarcini de genul acesta, în principal datorită sintaxei sale relativ simple și pentru că face ușor și rapid să scrieți și să testați proiecte mici.

Python și aplicații încorporate

Mulți dezvoltatori pentru Raspberry Pi și alte componente hardware folosesc acest limbaj pentru a programa.

Python și jocuri pe calculator

Pentru a dezvolta jocuri, puteți folosi biblioteca PyGame, deși există altele mai populare motoare de joc. Puteți crea proiecte de amatori pe el, dar pentru a dezvolta jocuri serioase ar trebui să căutați ceva mai bun.

De exemplu, puteți începe cu Unity în C# - acesta este unul dintre cele mai cunoscute medii de dezvoltare jocuri pe calculator. Vă permite să creați jocuri multi-platformă pentru Windows, Mac, iOS și Android.

Aplicații Python și desktop

Aplicațiile desktop pot fi dezvoltate în Python folosind Tkinter, dar aceasta nu este nici cea mai comună alegere: dezvoltatorii de aplicații desktop preferă Java, C# și C++. Recent, unele companii au început să folosească JavaScript pentru asta. De exemplu, aplicația desktop Slack este construită în cadrul Electron, care utilizează JavaScript. Acest limbaj face posibilă reutilizarea codului din versiunea web a aplicației, dacă este disponibilă.

Python 3 sau Python 2

Este mai bine să alegeți Python 3, deoarece astăzi este o versiune mai modernă și mai populară a limbajului.