Programovacie jazyky a ich rozdiely. Podmienky úspechu akéhokoľvek programovacieho jazyka. Strojový kód a nízkoúrovňové jazyky

  • 18.06.2019

Rôzne programovacie jazyky a ich oblasti použitia. Prednáška v Yandex

Náš prvý tohtoročný príspevok sme sa rozhodli venovať úplne základnej téme, o ktorej odznela prednáška na Malom SHAD. Zúčastňujú sa ho stredoškoláci, ktorí sa zaujímajú o techniku, preto tá špecifickosť prezentácie – prednáška zaujme najmä tých, ktorí s programovaním len začínajú a premýšľajú, akým smerom sa ďalej rozvíjať. Pre nich má Yandex kurz „Úvod do programovania (C++)“, ktorý je možné absolvovať na platforme Stepic.org.

Prednášajúci Michail Gustokashin - kurátor akademických programov v Yandex, riaditeľ Centra pre študentské olympiády Fakulty informatiky HSE. Michail pripravil desiatky víťazov a víťazov celoruských programovacích olympiád.

Prednáška hovorí o tom, aké sú programovacie jazyky, ako sa líšia, ako sa objavili a ktoré sú lepšie a ktoré horšie. Na začiatku si povieme niečo o histórii jazykov - ako sa objavili, ako ľudia začali programovať, ako sa všetko vyvíjalo, čo sa deje teraz. Druhá časť sa bude dotýkať toho, na aké úlohy sa ktorý jazyk hodí, ako si „vybrať svoj obľúbený jazyk a užívať si život“. Lektor trochu porozpráva aj o tom, ako sa podľa neho toto všetko naučiť a následne zamestnať.

Ako vždy, pod zostrihom je podrobný prepis prednášky, aby ste sa mohli orientovať v jej obsahu.

História programovacích jazykov

Začnime od úplného začiatku. Na začiatku počítače nemali ani klávesnice! To znamená, že všetko bolo veľmi zlé - nemali klávesnicu ani obrazovku, mali dierne štítky (to sú také malé veci s dierami alebo bez dier). Podľa toho tam boli buď špendlíky nastrčené, alebo tam svietili svetlom. Ak je tam diera (alebo naopak nie) - znamenalo to nulu alebo jednotku. A programy sa v tej dobe písali pomocou strojových kódov – každá operácia v počítači (sčítanie, odčítanie, nejaké zložitejšie operácie) mala nejaký strojový kód. Tento kód si ľudia sami vyberali z taniera, všelijaké adresy v pamäti, všetko to vyklepali rukami a vrazili do čítačky – a všetko sa zvažovalo. Samozrejme, že práca programátora vtedy asi nebola veľmi zaujímavá - robiť diery - a s rozvojom vedy a techniky samozrejme začali prichádzať na všelijaké „zaujímavejšie“ veci. Napríklad assembler (Assembler), ktorý už život trochu uľahčil.

No a ako si uľahčil život? Namiesto toho, aby sme si pamätali, že pre príkaz existuje nejaký „magický“ kód, použili sa najrôznejšie slová podobné „ľudskej“ angličtine – niektoré sa pridali alebo presunuli – no a potom sa vypísali registre alebo pamäťové oblasti, premenné, pomocou ktorých sa vykonávať operácie. Ale je jasné, že si to vo všeobecnosti vyžadovalo aj dostatočne veľkú mentálnu námahu, aby sme mali na pamäti, v ktorom registri čo leží, kde sú premenné a čo sa celkovo deje. Prečo sa to stalo? Pretože počítače boli „hlúpe“ a nedokázali pochopiť nič „inteligentnejšie“. V skutočnosti si tiež vyžaduje čas a pamäť na zostavenie strojového kódu z assembleru (v tej dobe ho samozrejme nebolo dosť).

Postupne sa ukázalo, že je veľmi ťažké vyvinúť také veľké komplexné programy. Produktivita programátora v týchto príkazoch bola extrémne nízka - to znamená, že napísal niekoľko riadkov denne (zmysluplné) a každý riadok nerobil nič zvláštne - nejaké jednoduché aritmetické operácie. A ľudia chceli, aby sa jazyky oveľa viac podobali ľudskému jazyku, najmä angličtine, aby bolo jednoduchšie a pohodlnejšie písať programy. A ideme!

Staré a mŕtve jazyky

Jedným z prvých jazykov bol Fortran. Mimochodom, vybíjalo sa to aj na diernych štítkoch - existovali špeciálne dierne štítky na vyraďovanie programov Fortran. Ale ak si teraz vezmete tento Fortran - podľa mňa je to dokonca niekde medzi 50-60 rokmi. objavil - a skús na to niečo napísať, bude ti to veľmi nepríjemné, to ti garantujem! Moderný Fortran je stále živý, ale už celkom odlišný od toho, čo bol predtým.

Iné jazyky - teraz napíšem jednu vec, o ktorej ste pravdepodobne počuli, ale iba na všetkých druhoch podujatí, kde sa hovorí o histórii programovania - to je COBOL. Bol to jazyk na písanie obchodných aplikácií. Čo sú obchodné aplikácie? Nejaké transakcie v bankách, niečo iné, to všetko bolo napísané v Cobole. Nie sme, samozrejme, veľmi populárni. Myslím, že programátora Cobol nájdete v Moskve veľmi ťažko. A niekde nie v Moskve – s ešte väčšími ťažkosťami. Ale prekvapivo ešte pred 10 rokmi bola viac ako polovica všetkého kódu napísaného ľudstvom napísaná v Cobole. A doteraz značná časť všetkých bankových transakcií prebieha pomocou programov, ktoré sú na ňom napísané (COBOL), a ľudia naň stále niečo píšu.

Existuje aj „zábavný“ jazyk, nazýval sa Algol (68. verzia, ktorá charakterizuje rok jeho vzniku). Je to algoritmický jazyk. Vo všeobecnosti tam niečo vedeli, ale teraz nás veľmi nezaujíma, čo dokážu. A tým sa naša exkurzia do staroveku a relatívne nepoužívaných jazykov môže zavŕšiť a môžeme prejsť k tomu, čo je stále živé (a aktívne žije).

Staré, ale živé jazyky

Algol bol vynájdený v Európe a Fortran sa používal hlavne v štátoch - neexistujú žiadne veľké rozdiely. Aký trend je viditeľný? Spočiatku bolo všetko ťažké a na písanie ste museli byť takmer inžinier, elektroinžinier, aby ste pochopili, kde sú ktoré kontakty uzavreté, a niečo iné na programovanie. Aj vtedy bolo treba pri listoch sedieť a spomienku počítať, dohliadať na ňu. A postupne sa všetko zjednodušovalo, zjednodušovalo, zjednodušovalo a ďalej ešte ľahšie pre programátora – čo najmenej, aby človek rozmýšľal, čo najviac automaticky. Okolo konca tohto obdobia (prednášajúci ukazuje na Algol a Kobol) sa začínajú objavovať jazyky, ktoré v istom zmysle „prežili“ dodnes.

ZÁKLADNÉ. Možno na to ešte stále niečo píšu, aspoň som videl, že v niektorých inštitúciách učia v QBasic - také modré okienko, kde je napísané „1989“. Vo všeobecnosti „s mocným a hlavným“ životom! Bol koncipovaný ako jazyk pre neprogramátorov. V tom čase bol programátor taká veľmi špecializovaná profesia. A tu vám povedia: "Máme tu skvelý základný jazyk a každý rozumný človek si v ňom vezme a napíše program - je to jednoduché." Opäť platí, že BASIC a moderný BASIC je obrovský rozdiel. Všetky tieto riadky od 10, všelijaké GOTO a iné horory - už nemajú nič spoločné s moderným BASICom a dokonca majú málo spoločného s BASICom 89. ročníka.

Ďalšou úsmevnou historkou je jazyk Pascal, všeobecne známy v univerzitných kruhoch, hlavne v Rusku a v krajinách bývalého Sovietskeho zväzu. Prekvapivo sa používal a stále používa ako vyučovací jazyk. Vo zvyšku sveta je menej bežný, ale tiež živý a zdravý. Existuje taká osoba Wirth - tu je vedec, teoretik. Zúčastnil sa diskusie o Algole, nepáčilo sa mu, čo sa stalo, a prišiel s vlastným jazykom - Pascalom. A potom to vzala spoločnosť Borland (a predtým mnoho iných spoločností - najmä Apple) a všetko zničila. Mal krásnu teóriu, štíhlu – „všetko bude dobré,“ – a zobrali ju a napchali do nej to, čo ľudia potrebujú k práci. No nedopadlo to tak pekne, ako chcel.

A nakoniec, . C bol vynájdený inžiniermi. Ak Pascal vynašiel vedec, potom C vynašiel Kernighan a Ritchie, pracovali ako inžinieri v Bell. Ako sa to stalo? V tom čase sa v týchto jazykoch (prednášajúci ukazuje na Fortran, COBOL, Algol) nedalo napísať nič systémové. Čo je to „systémové“? Napríklad operačný systém, nejaké ovládače, niečo iné. Tieto jazyky boli určené na matematické výpočty, obchodné výpočty, na všetko. A všetko ostatné bolo napísané v assembleri. Existovali nejaké jazyky, teraz sú mŕtve, to znamená, že jazyk C sa neobjavil okamžite z Assemblera, ale cez nejaké prechodné veci.

Aká je pointa? Kernighan a Ritchie sa radi hrali s hračkou Asteroids - letí vesmírna loď a sú tam asteroidy, strieľa na ne a ony sa rozpadnú. Mali server, kde hrali, ale bolo tam veľa ľudí a hračka sa spomalila. A niekde v kancelárii našli, že majú nejaký počítač, ktorý nikto nepoužíva. Vyskytol sa však problém - hra mala inú architektúru a hra bola napísaná v assembleri.

Prepísali ho, samozrejme, dokonca pridali nejaké funkcie na hranie na ňom. To ich však priviedlo k myšlienke, že prepisovať zakaždým na novú architektúru nie je príliš chytré. A rozhodli sa napísať vysokoúrovňový jazyk, ktorý by bol vhodný na systémové programovanie, teda v ktorom by bolo možné spravovať pamäť, v ktorej by bolo možné pochopiť, kde čo leží a ako sa k týmto kúskom pamäte dostať. . A tak sa objavil jazyk C, ktorý mal obrovský vplyv na všetko, čo nasledovalo. Všetky (prednášajúci ukazuje na Algol, Fortran a ďalšie spomenuté jazyky) mali veľký vplyv, ale C - správne, áno ...

V súlade s tým to bol hlavný jazyk v Unixe, operačnom systéme, ktorý bol vtedy ešte populárnejší ako teraz. A okolo 80-tych rokov bola situácia asi takáto (lektor ukazuje v Basic, C a ďalších uvedených jazykoch). Predpokladajme, že toto všetko už s nami pomaly umrelo (prednášajúci vymazáva odkazy na Assembler, Fortran a Algol) ... A v 80. rokoch sa počítače zmenšovali, inteligentnejšie, lacnejšie a ľudia chceli všelijaké podivnosti, aby mohli žiť ešte lepšie, žiť ešte zábavnejšie.

Jazyky z 80-tych rokov

Jednou z prvých zvláštností bol jazyk C++. Jazyk C má obrovské množstvo nedostatkov (no, proste jeden obrovský) – dá sa v ňom robiť všetko, vrátane streľby do nohy, streľby do nohy fikciou, do druhej nohy, streľby jednou nohou do druhá noha, vo všeobecnosti - to, čo chcete robiť. Zároveň sa tam ale dosť sťažujú niektoré architektonické veci – opäť ako v Assembleri musíme sledovať, kde sa nachádzame, akú a akú pamäť máme pridelenú; je to tam po celú dobu "tečie" niekde túto pamäť - to znamená, že sme pridelili, zabudli vymazať, vymazali zlú vec, vyliezli z pamäte, vo všeobecnosti - hrabali veľa problémov.

C++ bol pôvodne vytvorený ako súbor rozšírení jazyka C, ktoré by uľahčili vývoj. V tom čase prišlo do módy objektovo orientované programovanie a ľudia sa rozhodli, že všetko sa dá opísať ako hierarchia, teda máte loptu (abstraktnú), zdedíte z nej futbalovú loptu, volejbalovú loptu, ďalšiu abstraktnú loptu. Potom bolo v móde, že „teraz všetko píšeme vo forme akejsi hierarchie a všetko bude v poriadku, život sa zlepší, všetko bude v poriadku a hotovo“. C++ v istom zmysle implementovalo tento objektový prístup – nebol to prvý objektovo orientovaný programovací jazyk, ale stal sa pomerne populárnym a začali sa v ňom objavovať všetky možné funkcie. C++ si zároveň zachovalo takmer úplnú kompatibilitu (v tom čase) s jazykom C, program napísaný v C bol v 99% prípadov úspešne skompilovaný ako C++ a dokonca fungoval rovnako. Toto bolo určené na uľahčenie migrácie z C do C++.

Okrem objektového prístupu (v C++) sa pomerne rýchlo objavila aj štandardná knižnica šablón (STL). Myslím, že v škole tí, ktorí ešte študovali Pascal, zistili, že po prvé nemáte zabudované triedenie (v starom, modrom Borland Pascal, teraz je to už v moderných verziách) - existuje príklad (zdroj) triedenia , dá sa skopírovať a vložiť. Ale ak tu chcete zoradiť celé čísla, tu chcete reálne čísla a tu chcete reťazce, ktoré sa dajú navzájom porovnávať, museli ste napísať tri rôzne zoradenia, ktoré robia presne to isté, len majú rôzne dátové typy. To nie je príliš dobré a šablóny, ktoré sa v C ++ okamžite neobjavili, tento problém výrazne uľahčili. To znamená, že ste mali abstraktný program, ktorý úspešne triedil niečo, čo sa dalo navzájom porovnávať.

Skriptovacie jazyky z 90-tych rokov

Čas však nezastal, v 80. rokoch sa udialo veľa zaujímavého. Ale niekde na prelome 80. a 90. rokov sa počítače stali tak dobrými, že už bolo možné robiť veľmi zvláštne a veľmi neefektívne veci. Konkrétne išlo o skriptovacie jazyky, ktoré neboli kompilované do strojového kódu, ale interpretované. BASIC bol tiež niekedy interpretovaný, ale tieto skriptovacie jazyky boli určené hlavne na spracovanie textu - napríklad Perl, Python (vtedy to nebolo veľmi známe), PHP, Ruby - to sú skriptovacie jazyky ​​že v jednom alebo do určitej miery stále žijú (všetci sa dokázali objaviť pred rokom 2000, dokonca oveľa skôr).

Poďme si ich trochu prejsť, pretože toto sú špecifické veci a teraz sa používajú na mnohých miestach. aká je myšlienka? Ak nekompilujeme, môžeme si dovoliť oveľa viac. Napríklad, program sa môže pozrieť na svoj kód a nejako ho použiť; vie, čo sa v nej deje a vďaka tomu môžete robiť veľa zaujímavých vecí.

Perl bol navrhnutý na spracovanie textu – v tých časoch už bolo v počítačoch toľko pamäte, že ste tam mohli vložiť nejaký text a urobiť s ním niečo užitočné (napríklad počítať slová, nejaké hľadať). Ale podľa môjho názoru ho navrhli ľudia, ktorí boli tak trochu blázni, pretože je o tom taký vtip: "Akákoľvek znaková sada napísaná v Perle je správny program." Podľa mňa sa na to dá len písať, nie čítať. Keď sa pozriem na kód v Perle a snažím sa niečomu porozumieť, nerozumiem ničomu. Možno keby som ho lepšie poznal, niečomu by som rozumel, ale ako som počul od tých ľudí, ktorí to ešte vedia, vravia, že sa to prepisuje ľahšie. To znamená, že programy sú krátke a skutočne ľahšie sa prepisujú, než zisťovať, čo tam je a opravovať to.

Približne v tom čase, v polovici 90. rokov, sa objavil internet. Najprv to bola pošta, stránky so statickým HTML, ale ľudia tam chceli pridať nejakú dynamiku, aby sa všetko dialo dynamicky, dali sa vypĺňať nejaké formuláre, robiť knihy návštev, niečo iné. V súlade s tým si to vyžadovalo určitý druh interakcie, prišli s protokolom, ako to interaguje, a čo je najdôležitejšie, s generovaním týchto statických (podmienečne) stránok, ktoré budú používateľovi „vypľuté“ v reakcii na jeho požiadavku.

Vo všeobecnosti sa nič iné ako Pearl v tom čase nehodilo. Písať v čistom obslužnom programe C alebo C++ bol zlý nápad. A pre nedostatok lepšieho v tom čase (a dostatočne dlho), Pearl bol jazyk, ktorý sa používa na vývoj webových aplikácií. Samozrejme, rozsah nemožno porovnávať s tým, čo sa deje teraz.

PHP sa objavilo ako ... náhodou. Jeden človek s tým celkom rýchlo prestal – spravil si nejakú vlastnú stránku, mal nejakú knihu návštev, niečo iné, nejaké veci. A napísal súbor niektorých makier pre Perl, ktoré vyzerali ako C, pretože vedel, ako používať C, jednoducho preto, že to bolo pre neho také pohodlné. A nazval ju Osobná domovská stránka. Zdieľal to a povedal: "Ľudia, pozrite sa, čo som napísal, všetko je tu oveľa jasnejšie ako v Perle a môžete to upraviť." A ľuďom sa to páčilo.

Potom tú vec nechal. Vo všeobecnosti, ako výsledok, toto PHP začalo žiť a časom sa stalo oveľa populárnejšie ako Perl. Ale táto jeho „pôrodná trauma“ (nápad ako súbor makier pre Pearl) si s ním zahrala dosť krutý vtip. Jazyk je zvláštny. To znamená, že sa to vyvíjalo samo, nikto to nenavrhoval, nikto neadministroval proces vývoja (ani firma, ani nikto), ale bolo veľa skupín, z ktorých si každá pílila, čo sa jej páčilo. Výsledkom je, že funkcie sa tam volajú inak, nie je tam ani štýl, všetko je cez podčiarknutie, vo všeobecnosti aj tak sú nastavenia tu a tam a ako to všetko bude fungovať, nie je príliš jasné. Ale môžete si sadnúť a písať v PHP za dve hodiny, pretože si to myslel.

Python a Ruby: Ruby je teraz menej populárny, Python je akosi lepšie „hobľovaný“, povedzme si o ňom neskôr. Je jasné, že v tých časoch to boli (prednášajúci poukazuje na Perl, Python, Ruby, PHP) vysoko špecializované jazyky na vysoko špecializované účely. Vo všeobecnosti na nich vtedy nikto nenapísal žiadne systémové programovanie, žiadnu obchodnú logiku a teraz to ani veľmi nerobí.

Kompilované jazyky z 90. rokov

Pôjdeme približne v rovnakom čase, ale iným smerom. V tom čase sa C++ používalo takmer na všetko, čo bolo potrebné napísať nie pre web, nie na spracovanie textu, ale len na aplikácie, pre operačné systémy, na hračky - vo všeobecnosti na čokoľvek. Ale C++ je strašidelný jazyk, naozaj. prečo? Pretože, po prvé, zdedil všetky problémy C kvôli spätnej kompatibilite. Stále ste sa tam mohli zabiť miliónmi rôznymi spôsobmi, tými istými, ktoré boli v C (prirodzene, v C ++ boli pridané nové spôsoby). Zároveň, ak všetko dobre a správne napíšete, ako to zamýšľali autori C++, tak sa samozrejme už nedalo zabiť starými céčkovými spôsobmi a zdá sa, že tam bolo ich menej. Mal však svoj vlastný veľmi zvláštny objektový model. Rozdelenie programu na moduly, na časti, nejako prišlo z C (ak môžete napísať include v C alebo C++ - v skutočnosti to bolo koncipované ako vloženie textu knižnice do vášho programu, ako výsledok, keď napíšte kopu include, máte všetko - ak je to “primitívne”, ako to bolo na úplnom začiatku - všetko sa vloží do jedného súboru a potom sa to celé skompiluje strašne dlho, lebo to ide niekoľkokrát. ten istý Pascal, Virtovský, bol v tomto smere oveľa premyslenejší, neskoršie verzie sú ešte lepšie.

Vo všeobecnosti má C++ veľa nedostatkov. Kvalifikácia programátora musela byť vysoká, aby mohla písať v C++ a takíto programátori boli drahí (aj školenia, aj niečo iné, to znamená, že je ťažké nájsť programátorov na trhu, musia veľa platiť, no, vo všeobecnosti to nie je vec ... ). A naše počítače počítajú rýchlejšie a rýchlejšie, sú stále lacnejšie, ľudia si kupujú nové počítače a chcú viac aplikácií, viac hračiek pre svoje telefóny, celkovo viac radosti.

Tak sa zrodila Java. Existuje aj celkom úsmevná historka o tom, ako tento jazyk dostal svoje meno. Sú tam programátori, kávu pijú neustále a vtedy bolo v móde piť kávu, ktorá rástla na ostrove Jáva. Jazyk bol koncipovaný ako jazyk pre vstavané zariadenia, najmä pre kávovar. Tak vznikol názov...
Čo sa u nej vo všeobecnosti začalo, čo bolo v nej dobré a prečo si získala veľkú obľubu? Najprv sa úplne zbavili Sishnoiovho dedičstva. Žiadne ukazovatele, tým menej spôsoby, ako si vystreliť časť tela a zlomiť všetko. Po druhé, zaviedli oveľa novšie nápady, pokiaľ ide o objektový model - to znamená, že C ++ sa objavilo oveľa skôr ako Java a používalo archaickejší, "divoký" objektový model. No tu (prednášajúci ukazuje na Javu) to už bolo vtedy premyslenejšie a teoreticky ľudia mysleli a v praxi aplikovali a urobili všetko oveľa cool.

A nakoniec, tretí. Naše programy v Jave neboli zostavené do strojového kódu, ale do kódu pre virtuálny stroj. To znamená, že ste mali virtuálny stroj (VM) JVM - Java. Vaše programy boli zostavené do akejsi strednej reprezentácie a potom s pomocou tohto stroja už boli spustené. čo to dalo? Po prvé spomaľoval, po druhé žral pamäť strašnou silou, po tretie bol prenosný kdekoľvek (teoreticky) - aj do kávovaru, aj do mlynčeka na kávu, dokonca aj do počítača, dokonca aj do mobilu. Na jednej strane je to dobré, to znamená, že ste práve napísali implementáciu virtuálneho stroja a potom všade spúšťate svoje Java programy. Ale na druhej strane je zlé, že v tom istom telefóne bolo v tom čase málo pamäte, mal nízky výkon a to všetko sa navyše začalo otupovať a spomaľovať.

Ale ani toto nie je hlavná vec, pre ktorú bol jazyk vo všeobecnosti vynájdený. Jazyk Java bol vynájdený s cieľom znížiť požiadavky na kvalifikáciu programátorov. To znamená, že horší programátori môžu písať dobré programy v Jave, pretože vám neumožňuje písať zlé programy - neexistujú spôsoby, ako písať programy zle. Tam môžete písať iba dobré programy. No v chápaní tvorcov jazyka.

To znamená, že ak v C, v C++, v Pythone, na čomkoľvek dokážeme splodiť nejaké strašné smetisko z nášho projektu, kde máme všetko pomiešané, ide hodiny a je tam niečo iné. Na Jave je tiež možné chovať odpadkový kôš, ale na to už musíte vynaložiť určité úsilie. To znamená, že v predvolenom nastavení to nie je „skládka odpadu“, ukazujú sa ďalšie problémy, že sa tam niečo zdedilo, zdedilo - vo všeobecnosti sa desať nie veľmi zmysluplných ukazuje ako jeden zmysluplný riadok. Ale možno taký stredne zručný programátor dokáže napísať dosť kvalitný kód.
Už sme skoro na konci. Ďalšia vec, ktorá sa nám objavila, je .Net (dotnet) a konkrétne nás zaujíma C # (takmer to isté [prednášajúci ukazuje na Javu], teda rozdiely v detailoch, ak si vyberiete medzi - pozrite sa, kde platia viac peňazí).

A ešte jedna vec - JavaScript. Nemá nič spoločné s jazykom Java, objavil sa v tom istom roku - slovo bolo módne, získali licenciu na používanie ochrannej známky.

Čo je najdôležitejšie venovať pozornosť? (Lektor kreslí šípky z C++ do Java, .Net, C#, JavaScript a PHP). Ak chcete napísať jednoduchý program v jednom z týchto jazykov a v mnohých ďalších - ak viete C ++, vo všeobecnosti nepotrebujete vedieť nič iné - zoberiete a napíšete v C ++ a potom na začiatku pridáte doláre , niečo iné urobí maličkosti a začne vám to fungovať na čomkoľvek (lektor ukáže na jazyky, ku ktorým boli priradené šípky z C++). To znamená, že v niektorých jednoduchých veciach sú si mimoriadne podobní. Ak riešite nejaké školské problémy, vzdelávacie problémy, niečo iné (nenavrhujete veľký projekt - máte jeden súbor, ktorý číta čísla, zobrazuje čísla v konzole, robí niečo iné), tak medzi týmito jazykmi nie je takmer žiadny rozdiel . Je jasné, že JavaScript a PHP sú špecializované, všetko majú trochu inak. A tu (prednášajúci ukazuje na Java a C #) je veľmi malý rozdiel.

Odvtedy sa objavili všelijaké ďalšie zaujímavosti, no nie je jasné, či budú žiť alebo úspešne zomrú. Čo teraz, na aké úlohy to používajú?

Výber jazyka v závislosti od úlohy

Predpokladajme, že stojíte pred úlohou napísať ovládač pre grafickú kartu. Aký jazyk použijete dnes? (Kričte z publika: Java!) Prečo... Java je skvelá, ale prečo nie v Ruby alebo PHP? (Prednášajúci hovorí sarkasticky.)

nízkoúrovňové programovanie

Ak píšete niečo nízkoúrovňové, potom je C najlepšia voľba, ale počul som (ale nevidel som), že sa na to používa C++. Ale tomu neverím, pretože v C môžete jasne ovládať - keďže ste dali toľko bajtov pamäte, znamená to, že ich bude toľko. A ako sa v C++ (STL) implementuje reťazec? No, nejako implementované. A nakoniec nevieme, ako a čo sa tam stane, možno nám dôjde pamäť na našej grafickej karte alebo sa stane niečo iné. Preto C stále žije a neumiera, stále existujú také úlohy programovania systému - napíšte operačný systém, napíšte ovládače, napíšte niečo iné - C je na to skvelé. Okrem toho sa teraz objavujú najrôznejšie zariadenia (internet vecí sľubuje, že to čoskoro príde), ktoré žijú na batérie (a, samozrejme, budú ich milióny, všetko bude ovešané týmto internetom vecí) , musia byť veľmi lacné a spotrebúvajú veľmi málo elektriny. V súlade s tým tu budú 2 KB pamäte, procesor na 5 kHz a, samozrejme, v blízkej budúcnosti nebude fungovať naskrutkovať nejaký virtuálny stroj alebo skriptovací jazyk - čo znamená, že budete musieť niečo napísať v C. A dokonca aj teraz, napríklad výpočty na grafickej karte (OpenCL alebo nejaká iná technológia) - neprichádzajú s novým jazykom na písanie programov pre nich - robia C s niektorými veľkými obmedzeniami. Len preto, že ľudia už vedia ako, prečo sa učiť niečo nové? Formálne je to pravdepodobne tiež v istom zmysle C.

Webové programovanie

Povedzme, že chcete napísať nový Facebook (sociálna sieť). Na čo to napíšeš? (Z publika sa hovorí o HTML a CSS.) HTML, CSS je dizajn a my chceme, aby sa tam dalo pridávať fotky, kamarátiť sa, zanechávať komentáre.

Pre časť skriptu – teda to, čo sa bude diať na strane klienta – je to JavaScript. Navyše sa niekedy JavaScript vygeneruje v inom jazyku a odošle (stáva sa, že sa skript vygeneruje ... pretože niekedy je jednoduchšie zvládnuť niektoré zmeny v logike).

Prekvapivo je napísaný v PHP – a Facebooku a mnohých ďalších veľkých projektoch. Samozrejme, musel som si napísať svoje veci, aby to stále fungovalo dobre, a nie tak, ako sa to robí, ale urobili to. V princípe je jedno v čom píšeš, ale Perl neodporúčam. Tu a teraz, samozrejme, nikto nenapíše pre web nič od začiatku. Každý píše nejaký rámec alebo niečo iné. Internetový obchod? Stiahli sme framework pre internetový obchod – to je všetko, napísali sme internetový obchod.

Obchodné programovanie

Ďalej chcete napísať nejakú nudnú bankovú žiadosť. Alebo napríklad máte niekoho, kto predáva sim karty? Možno ste si niekedy kúpili telefón alebo niečo podobné a povedali vám: „Systém tu visí, nemôžeme nič robiť.“ Na čo napíšete takúto žiadosť? (Krik z publika o Pythone) V Pythone nemôžete písať takéto veci, čo si?! Nič pre podnikanie by nemalo byť napísané v Pythone. prečo? Pretože keď niečo napíšete v Pythone, nemôžete nájsť značné množstvo chýb v procese písania. Python sa všemožne dynamicky typuje a vo všeobecnosti sa dá chyba skryť tak, že vyskočí v takej situácii, že ani nepochopíte, čo tam tí pokrivení užívatelia robili, že všetko rozbil sa pre teba. To znamená, že je lepšie písať v Pythone pre seba, malé skripty - chápete, čo sa tam deje a čo sa robí. Alebo niečo, čo vám nevadí vyhodiť: chcete niečo uviesť na trh pred konkurenciou, tak čo ak sa to pokazí zakaždým. Napísali ste v Pythone a to je všetko - zachytili ste trh. A ak niečo píšete dlho, napríklad nejakú bankovú aplikáciu (aby schvaľovala úvery, niečo iné) - napíšete to v Jave. Lebo tam ide o vážnu vec, papiere, peniaze, doklady, ešte niečo, ale nemôžete to tak pokaziť, že sa všetko pokazí, inak sa ľudia urazia - peniaze im odišli a nikam nesiahli, lebo máte v určitom okamihu sa reťazec zmenil na číslo alebo naopak. Čiže to znamená, že metodicky beriete a píšete v Jave, píšete... Nuž, alebo na .Net, aj takéto situácie sa v zásade stávajú. Tam, samozrejme, môžete tiež naraziť na problémy, ale pravdepodobnosť je stále o niečo nižšia.

Programovanie pre armádu, letecký priemysel

Teraz si predstavte, že sa vás rozhodli poslať na Mesiac raketou. Čomu by ste dali prednosť pri napísaní kódu, ktorý riadi motory rakety? Pozrime sa. Toto pravdepodobne (prednášajúci ukazuje na Perl, Python, PHP, Ruby) nestojí za to - spomaľuje sa, deje sa niečo iné, vo všeobecnosti by som nesúhlasil s lietaním na takejto rakete. V C++? Aby som bol úprimný, ani by som nie, pretože v C++ je príliš veľa spôsobov, ako sa zabiť. Keď ste niekde vo vesmíre, nie je to veľmi dobré.

Možno v Jave? Zdá sa, že všetko je tam dosť spoľahlivé a architektúra je dobrá, žiadne divoké typy, žiadne prekročenie pamäte navyše. Povedzme, že nastala tá najdôležitejšia chvíľa a naša Java sa rozhodla zbierať za nás odpadky. Musíme pristáť, spomaliť a ona hovorí: "Nie, smeti idú." Vo všeobecnosti ani nie tak veľmi.

Aby som bol úprimný, bol by som radšej, keby bol tento program napísaný v jazyku Pascal. Samozrejme, nemám rád Pascala, ale nejako v takýchto veciach by to bolo veľmi cool.

Používanie viacerých jazykov na vývoj softvéru naraz

Čo by sa malo povedať o moderných jazykoch vo všeobecnosti. V súčasnosti mnohé projekty nežijú v jednom jazyku, to znamená, že niektoré z nich žijú v jednom jazyku, niektoré v inom a iné v treťom. Napríklad, ak máte nejaký druh webovej aplikácie, ktorá spracováva obrovské množstvo informácií, prístupy na disky (dokonca ani databázy, tie sú také obrovské, že ani tam už napísaná databáza sa nedá stiahnuť) sú pravdepodobne zapísané v takých nízkych -úroveň C, zapisovať na disk veľmi rýchlo a tak ďalej. Prirodzene, neoplatí sa písať celý projekt v C. Možno existuje nejaká prechodná logika napísaná v jazyku Java, ktorá volá funkcie C na rýchle volania. No a frontend (to, na čo sa používateľ pozerá), je samozrejme už na niečom napísaný, na nejakých skriptoch, na tom, čo priamo vykonáva prehliadač (JavaScript). A to všetko spolu žije a úspešne sa vzájomne ovplyvňuje.

Pri vývoji niektorých aplikácií, dokonca aj veľkých, niekedy ľudia robia čo? Vezmú to a napíšu prototyp v Pythone (ako to celé bude fungovať), načrtnú, premyslia nejakú architektúru. Písanie na ňom je naozaj veľmi rýchle – hodili prototyp, zaexperimentovali s ním a povedali: „Páni! To je skvelé! A úplne prepísané. Zdalo by sa, že prácu urobili dvakrát, čo trvalo dvakrát dlhšie (dobre, jeden a pol). Ale nie! Často sa ukáže, že tento spôsob nie je zlý, pretože ak hneď napíšete do niečoho, napríklad v Jave, a potom sa rozhodnete: „Nie, poďme zrefaktorovať, úplne zmeniť architektúru a tak ďalej,“ strávite 10 krát viac času. Aj takéto veci existujú a žijú.

Podmienky úspechu akéhokoľvek programovacieho jazyka

Teraz si povedzme, prečo niektoré dobre vyzerajúce jazyky neprežili alebo nežili vo veľmi obmedzenom priestore. Keď Wirth videl, čo zlé spoločnosti Apple, Borland a všetko, čo urobili s jeho Pascalom, prišiel s ešte lepším jazykom – Oberon. Bolo to len divoko minimalistické - to znamená, že tam bolo veľmi málo príkazov (Stringy? Prečo potrebujeme reťazce? Vytvoríme pole znakov!). No niečo sa mu nedarilo, do tej miery, do akej by ísť mohlo.

Ešte jedna vec. Americká armáda ich požiadala, aby vyvinuli cool jazyk, v ktorom všetko funguje a všetko sa dá napísať. Výsledkom bol dosť obludný jazyk Ada, v ktorom sa však stále niečo píše, ale opäť – len pre armádu.

Aký je problém? Prečo niektoré jazyky ako Python, ktoré na začiatku žiadna spoločnosť nepodporovala, prevzali trh. PHP, ktoré je tiež zle navrhnuté, sa tiež ujalo a uchvátilo trh (väčšinu) samo. A investovali sa všelijaké miliardy dolárov (prednášajúci ukazuje na Aďu) a nikam nešli, nič sa nedialo. S čím to súvisí? Je to preto, že okolo týchto jazykov neexistuje žiadna infraštruktúra. To znamená, že jazyk môže byť skvelý, ale pokiaľ neexistuje žiadna dokumentácia, pokiaľ neexistuje komunita, ktorá by mohla odpovedať na otázky (na Stack Overflow), a napokon, čo je najdôležitejšie, pokiaľ neexistuje veľká počet knižníc, jazyk nestrieľa. To znamená, že ste napríklad chceli napísať webovú stránku na Oberon. A čo to je, prečo nie? A problém začína... Nemôžete nastaviť svoj webový server na Oberone tak, aby ste ho ľahko otestovali, nemôžete pripojiť žiadne knižnice, pretože nie sú na Oberone. A to všetko sa robí cez akési barličky, sily odchádzajú a vo všeobecnosti pľujete a píšete svoje stránky v čistom C namiesto Oberonu. A tie jazyky, ktoré dokážu používať knižnice z iných jazykov, žijú dobre. Rovnaký Python na miestach, kde sa spomaľuje. Všeobecne platí, že všetky druhy štandardných vecí ako triedenie a niečo iné sú napísané v C a on (Python) vie, ako s nimi interagovať.

Java má tiež natívne rozhranie Java. Toto je v podstate C, to znamená, že tam (podľa môjho názoru chcú vždy zakázať, ale zdá sa, že ešte nezakázali), tieto jazyky môžu interagovať s existujúcimi knižnicami (hlavne Cs). A vďaka tomu berú a pracujú. Rozumiete myšlienke, ktorú sa vám snažím sprostredkovať, však? Nepíšte v tých jazykoch, ktoré nevedia, ako pripojiť C-knižnicu. No, ak chcete použiť niečo skvelé. No a postupne si (jazyky) osvoja akú-takú infraštruktúru. A žijú dobre.

Programovací jazyk a kariérové ​​poradenstvo

Teraz sa porozprávajme o tom, ako pochopiť, čo v živote chcete. Čo sa stane zo skvelých vecí? Môžete robiť nejaké systémové programovanie, však? Je skvelé počítať tam tieto bajty, chcete spustiť kvadrokoptéry, nejaký druh kamier, urobiť niečo iné. Potom je C pravdepodobne vašou voľbou.

Ak chcete písať, možno nie najzaujímavejšie aplikácie v živote, ale je pre vás skvelé ich navrhnúť, premýšľať o tom všetkom a zarobiť veľa peňazí za to, že väčšinu času sedíte a nudíte sa (za toto si musíte zaplatiť ak ste dobrý v tom, chýba vám), tu sú - Java, .Net. Ideš robiť do nejakej banky, píšeš, chodíš do práce o deviatej v bielej košeli, dostaneš dobrý plat a píšeš podľa odporúčaní najlepších Java vodov, oviec .Net a toho všetkého ...

Ak chcete písať nejaké aplikácie, nejaký prehliadač, nejaké hračky, niečo iné, potom je C ++ skvelé. Ak chcete písať webové stránky, tu sú, jazyky podľa vášho výberu (lektor ukazuje Perl, Python, PHP, Ruby), nie je veľký rozdiel. Jediná vec je, že PHP zomrie skôr ako Python, takže ak ste príliš leniví učiť sa nové veci, naučte sa Python. Nespozorujete veľký rozdiel, no dlhšie vydržíte.

Čo sa stane s Ruby, je tiež nejasné. No, dá sa aj PHP, ak ste sa ho už naučili, keďže sú také jednoduché, že ich preučenie netrvá tak dlho.

A nakoniec je tu ďalšia oblasť použitia programovacích jazykov - vtedy ich používa neprogramátor. Povedzme, že ste matematik, fyzik, chemik, analytik, ktokoľvek a potrebujete rýchlo niečo vypočítať, analyzovať nejaké údaje (pre biológov napríklad, koľko líšok žije na veliteľských ostrovoch). To všetko môžete vložiť do tabuľky v Exceli alebo to niečím analyzovať. Dobre sa na to hodí aj Python, vie pracovať s textom a knižnice sú plné všelijakých, štatistických a podobne. Ak chcete urobiť nejaký druh strojového učenia, spracovať nejaké údaje, predpovedať, Python to teraz robí najrýchlejšie. Je pravda, že je potrebné poznamenať, že úlohy sú veľmi odlišné. Napríklad, ak chcete okamžite obchodovať na burze v podmienkach, keď sa kotácie neustále menia, potom bez ohľadu na to, aké skvelé Machine Learning napíšete v Pythone, ľudia, ktorí to majú napísané v niečom rýchlejšom, budú mať čas kúpiť všetko skôr, kým vás nebudú počítať, aj keď sú ich algoritmy horšie. Preto aj tieto úlohy strojového učenia (niektoré z nich) vyžadujú vysoký výkon (a extrémne vysoký), a teda aj iné jazyky.

Jediný spôsob, ako pochopiť, čo chcete, je vyskúšať všetko. Teraz poviem ako jednu z vízií, ako sa dá všetko vyskúšať. Ako sa stať programátorom a byť šťastným? Takže Začíname od nuly. Tu sa v škole učíte matematiku, ruský jazyk a ďalšie povinné a voliteľné predmety a na tabuli (lektor ukazuje na prázdnu tabuľu) sa momentálne odrážajú vaše znalosti z oblasti programovania. A ty sa chceš stať šťastným človekom, robiť to, čo miluješ, zarábať veľa peňazí a nič si neodopierať a byť šťastný.

Jeden zo spôsobov, ako to dosiahnuť. Existujú, samozrejme, všelijaké inšpiratívne príbehy o ľuďoch, ktorí vôbec nechodili na vysoké školy, alebo odišli a stali sa z nich miliardári, majitelia firiem atď. Treba si však uvedomiť, že väčšina ľudí, ktorí sa možno nestali miliardármi, no zároveň si dobre žijú, univerzitu v určitom okamihu ukončila.

Aká je u nás situácia s nástupom na vysokú školu (teraz študuješ na škole)? Kým ste v škole, musíte pochopiť, že ďalším krokom je zapísať sa a postarať sa o to. Zložte skúšku alebo vyhrajte olympiádu. Na skúške môžete použiť Pascal, C ++ (vrátane čistého C), Python (nebudem ich ďalej spomínať). Na olympiáde - rovnaký Pascal, rovnaký C ++, rovnaký Python (teraz si povieme o jeho problémoch) a najčastejšie je tam Java. V závislosti od olympiády sa stane čokoľvek iné, ale o to nejde.

Ako vyzerá harmonogram distribúcie jazykov na celoruskej olympiáde v informatike? O čom píšu ľudia, ktorí sa zúčastňujú najlepšej olympiády v ruštine? Vyzerá to takto (tu to znamená Pascal a tu je to okolo 2000 a tu je to okolo nuly, tu je to C ++ a tu je to 2015).

V roku 2000 takmer nikto nepísal C++. Prešlo 15 rokov a takmer nikto nepíše v Pascale, napriek tomu, že Pascal je moderný. Je to jazyk, ktorý dokáže v podstate to isté. Je to tak, že každý je príliš lenivý na to, aby sa to naučil, so všetkými druhmi nových trendov a každý pokračuje v písaní v Borland Pascal, ktorý, samozrejme, nemôže nič robiť. V C++ ľudia píšu nejaké algoritmy (STL) na triedenie - skvelé, napísali triedenie () a to je všetko. Na Pascal, na obvyklom, na starom - to je problém. Napísali nejakú sadu (potrebnú) - výborné, napísali to v C ++, v Pascale zase čisté muky. Na nových Pascaloch to samozrejme môžete urobiť, ale vo všeobecnosti stoja peniaze. Možno ste si to nevšimli, ale je to tak.

Existuje aj Java, ale v Jave je veľa písmen. Je to pre veľké projekty, ale pre malé jednorazové programy sa to ukazuje ako dosť zlé, pretože je tam veľa písmen navyše. Ale aj niektorí ľudia píšu, môžete sa na tom naučiť písať. Ale nie je k dispozícii na USE a USE bude musieť byť stále z väčšej časti.

Čo je najlepšie na skúšku? Na skúšku je najlepšie (ak nič nevieš a v škole ťa nič nenaučia) naučiť sa Python. Niektoré zo skúšobných otázok sú na ňom dobre vyriešené. Na olympiáde sa vo všeobecnosti ukazuje, že C ++ je (používa sa), pretože Python je veľmi pomalý, nie je na ňom všetko vyriešené.

Takže ste sa naučili nejakú malú podmnožinu jazyka a nejaké algoritmy (možno) a vyriešili veľa problémov, aby ste získali diplom z olympiády a mohli ísť na univerzitu, aby ste získali vyššie vzdelanie.

Teraz budem hovoriť o tom, ako budujeme kurz na HSE, v akom poradí sa jazyky vyučujú, ako sa študujú v aplikovanej matematike a informatike Fakulty aplikovaných vied, čo robíme s Yandexom. V prvom semestri - Python (nie v plnom znení, o tom, ako by vás mali učiť v škole) a C ++ (už širšie, oveľa širšie, ako sa to bežne vyučuje na školách). Povedzme hneď, aby ste sa nezľakli, ak to zrazu chcete urobiť, poviete si: „Čo, toto všetko už viem, prečo by som mal ísť niekam študovať? Idem radšej niekam inam." Pre tých, ktorí už vedia dobre programovať, je tu možnosť okamžite prejsť na štúdium algoritmov, a to skôr v teoretickej príprave. Teraz sa na nich nepozeráme, toto (ukazuje na tabuľu) je pre tých, ktorí programujú priemerne alebo vôbec.

Prvý semester vás naučí základy Pythonu, len aby sa ľudia naučili programovať a aby sa nikto príliš neurazil. Python sa na školách vyučuje len zriedka, väčšinou ľudia prichádzajú so znalosťou jazyka Pascal alebo C++. V podstate aj Pascal, ak ide o masovú školu. No, aby sa nikto neurazil, každý sa učí nový jazyk (akoby rovnocenný). A C++ jednoducho preto, že z C++ potom môžete ísť kamkoľvek.

Potom nasleduje kurz "Algoritmy" a samostatný projekt kurzu. Klasické algoritmy s implementáciou. Nie že by sme teoreticky niečo zobrali, vypočítali zložitosť. Na prednáške sme zobrali, vypočítali zložitosť, na seminári - zobrali, implementovali algoritmus. Projekt je, že študenti robia niečo dokončené. Napríklad jeden z projektov bol: vypočítať... Povedzme, že máte v Moskve veľa bytov a rozumiete: „Ach, mám veľa vecí navyše, jeden si prenajmem. A stanovili nejakú cenu a nikto si od vás nechce prenajať byt - pravdepodobne príliš drahý. Alebo navýšili cenu, hneď vám ju stiahli a vy si pomyslíte: „Ach, asi som to lacno minul“ – a tiež ste naštvaný. To znamená, že bolo potrebné vypočítať, koľko stojí prenájom bytu? Vchádzate do údajov – vytvoria pre vás hodnotenie. Taká stránka, ktorá sa skladala z niekoľkých vecí: vezmite vety, analyzujte, aplikujte nejaký algoritmus strojového učenia (pravdepodobne) jednoducho a vytvorte krásnu webovú tvár, v ktorej si môžete niečo vybrať, niečo nahnať, nejaké metre, nejaký počet miestností, počet sáun, počet jacuzzi vo vašom byte a približný odhad nákladov. Teda nejaká hotová, nie veľmi zložitá vec. Tu to znamená (prednášajúci ukazuje na kurz o algoritmoch) taký rázny C++, s konzolovým I/O. Nuž a tu (prednášajúci ukazuje na nápis „projekt“) niečo pod vedením mentora, možno s databázami, možno s parsovaním textu a niečo iné.
Potom nasleduje tretí semester – kurz s názvom „Počítačové systémy“. Na pochopenie je dosť málo assembleru (veľmi málo) a potom niečo podobné ako čisté C a interakcia s operačnými systémami, v podstate systémové programovanie. A projekt na seminár je aj niečo na tému všemožných sieťových interakcií, dosť nízkoúrovňové: vyviňte nejakú utilitu, napríklad rsync (synchronizácia, asi viete. V čistom C viac-menej napíšte analóg rsync, ktorý budete mať cez sieťové synchronizačné priečinky so všetkými prístupmi k súborom atď.).

A nakoniec štvrtý. Ani neviem, ako to nazvať, je to taká zmes technológií, ktoré sú potrebné pre skutočný vývoj, akým je vývoj webu. To znamená, že ide o praktickú aplikáciu databáz, opäť niečo podobné ako v projekte (lektor ukazuje 2 kurzy o projekte), ale už viac do hĺbky. Teda už také viac-menej konkrétne veci, praktické programovanie. Paralelne s tým existuje akákoľvek teória, no, tu stále robia vedu.

A po dvoch kurzoch sa ľudia rozutekajú robiť to, čo ich zaujíma, pretože táto vec pokrýva také základy programovania pomerne široko a v tomto momente už ľudia chápu, že sa v žiadnom prípade nechcú zaoberať počítačovými systémami (napr. , nepáčilo sa im systémové programovanie ), ale chcú sa zaoberať nejakými teoretickými algoritmami, zložitosťou počítania, vymýšľaním nejakých nových vecí, distribuovaných alebo niečím iným. Alebo si naopak myslia, že tu toho veľa nemajú ( lektor ukazuje na riadok prvého kurzu s Pythonom a C ++) išiel, potom ( lektor ukazuje na líniu tretieho kurzu, so systémovým programovaním) - ako sa ti to nepáči, počítaj bajty a nastav si všelijaké obmedzenia čítania-zápisu, rob streamy, vlákna a niečo iné. A v súlade s tým si ľudia vyberajú nejaký smer a študujú. Teda v princípe, aby sa u vás nerozvinul „syndróm káčatka“ – ako prvý ste videli svojho Pascala a teraz si povedali „Pascal je sila“; alebo pokročilejší - videli ste C ++ a začali ste o všetkých hovoriť, že C ++ je sila a všetko ostatné tam nie je veľmi dobré.

Tu sa na to treba pozrieť (lektor ukazuje na zoznam predmetov na tabuli) širšie - toto je jedna z metód, ktorá bola zvolená najmä na HSE (v poslednej dobe sa objavila, takže je celkom moderná) . Existujú aj iné spôsoby, ako sa stretnúť. Iné dobré univerzity majú trochu iné poradie a iné akcenty. Ale snažia sa aj ľudí zoznámiť so všetkým, čo majú.

Ako si nájsť prácu programátora

Ty si ( lektor ukazuje na zoznam kurzov) robil všetko, učil sa na univerzite, robil ešte dva roky niečo produktívnejšie a treba ísť do práce. Ako si vyberáte niečo, s čím budete pracovať? Po prvé, všetko ste spoznali, zašli niekam hlboko a už viete, čo máte radi. Musíte si vybrať, čo sa vám páči prirodzene. Pretože ak milujete, budete investovať svoje úsilie, budete mať motiváciu a vo všeobecnosti bude všetko v poriadku. Pretože tu nejde len o peniaze, ale aj o to, aby to bolo pre vás zaujímavé a príjemné. No a chcete sa dostať do skvelej spoločnosti, zamestnajte sa. Akého človeka by som ja osobne rád videl? Povedzme, že ku mne príde sto študentov – do práce musím zobrať dvoch alebo jedného. Prečo prichádzajú, vôbec nerozumiem, kto sú, čo sú, ako sa majú? V najlepšom prípade mi ukážu diplom, ktorý dostali na univerzite, a ja poviem: „Páni! Toto je skvelý diplom, ale toto nie je také skvelé!” A mimochodom, môžem sa mýliť. Možno mal ten človek veľa voľného času a oveľa lepšie sa učil.

čo by bolo skvelé? Najprv nejaký open source projekt, ktorý ste napísali od začiatku do konca. Výhodne, ak robím nejakú infraštruktúru, aby sa dáta rýchlo čítali, alebo niečo iné, tak by som samozrejme mal záujem napísať pre mňa niečo open-source. Nerobili nejakú webovú stránku, ale niečo na túto tému. Prečo je to pre mňa zaujímavé? Môžem sa pozrieť na váš kód, vidím, ako často sa zaväzujete, vidím, ako ste reagovali na chyby od používateľov, na chyby od vývojárov, ktorí ho používajú – všetko je zaznamenané, pozerám sa na všetko a pomyslím si: „Páni, táto chyba má bol preč dva roky zatvorený, potom ste používateľovi neslušne odpovedali, je tu niečo iné - neberiem to. Takže toto je váš osobný projekt.

Ďalej, čo iné by bolo skvelé? Chcel by som vidieť, ako ste pracovali v tíme. To znamená, že prídete ku mne na pohovor a poviete: „S chalanmi z univerzity sme si umyli dobrú prihlášku. Urobil som si tam databázu, urobili tam nejakú mobilnú aplikáciu a ešte nám tam pracoval jeden chlapík, dizajnérka, chlapec z technickej podpory. Bolo nás päť a vytvorili sme skvelý projekt.“ Keď sa pozriem na to, aký je v skutočnosti váš projekt, poviem: „Aký je váš? Znovu sa pozriem na kód a pochopím, že viete pracovať v tíme s ľuďmi.

Programátor nie je ten, čo sedí sám (taký indie) v garáži, niekde so zhasnutým svetlom, s nikým sa nerozpráva, nechá si narásť fúzy a píše. Napriek tomu existuje určitý druh interakcie s ľuďmi. Napríklad so šéfom, ktorý vám môže občas nadávať (šéfovia sú takí, nie vždy láskaví). A vidím, že vieš pracovať s ľuďmi a teší ma, ak máš nejaký dobrý tím. Aj keď to nie je dobré, je to lepšie ako žiadne.

Čo by som si ešte osobne prial? Ak ste sa ukázali vo veľkých projektoch. Napríklad ste sa niečoho zaviazali k jadru Linuxu, ak sa venujete programovaniu systému, opravili ste nejakú chybu. To znamená, že ukázali, že viete prečítať kód niekoho iného a viete v ňom urobiť nejaké zmeny. Pozerám sa: "Och, naozaj, prišiel si na niečo zložité a opravil si nejaké chyby!" A začína ma to naozaj baviť. Pretože mám... no, neviem... tak môj programátor skončil, pretože mu jeho konkurenti ponúkli vyšší plat a ja súrne potrebujem niekoho, kto by mu zastrčil miesto - teba. Vyzerám, že ste písali iba od začiatku a neviete, ako čítať a upravovať kód niekoho iného, ​​a som naštvaný.

A nakoniec, v závislosti od konkrétnej pozície, existujú rôzne ďalšie veci. Ak sa uchádzate o prácu analytika, bol by som rád, keby ste vyriešili problémy s analýzou údajov na Kaggle. Ak dostanete prácu v nejakých algoritmických veciach, bol by som rád, keby ste robili nejaké algoritmy v športovom programovaní. A na záver, ak ste sa zamysleli nad povolaním, prečítali ste si, ako prebiehajú pohovory, stretli ste sa s tým, že tam niektorí ľudia vyjadrujú veľkú nespokojnosť: „Prišiel som a pýtajú sa ma, čo je mojím koníčkom. Sedím ako sova a neodpovedám, pretože nemám hobby,“ a myslia si, že to robia personalisti. V skutočnosti sa snažia pochopiť, aký ste priateľský a primeraný. Ak ste nepriateľský a neadekvátny, potom bez ohľadu na to, aký ste génius a workoholik, skvelý špecialista s veľkými znalosťami, pre tím bude ťažké s vami spolupracovať a projekt nemôžete vytiahnuť sami. Navyše, aj keď ho vytiahnete, viete si predstaviť, aká záťaž spoločnosť čelí. A čo zajtra prídeš a povieš: "Zvýši mi plat 10-krát, inak ťa opustím." Firmy sa samozrejme do takejto situácie nechcú dostať. Preto je pestovanie primeranosti a dobrej vôle v sebe samom rovnako dôležité (aspoň) ako rozvoj niektorých odborných zručností.

Stručne povedané, čo sa dá povedať? Ktoré jazyky sú dobré a ktoré zlé? Nuž, v rámci nejakej skupiny jazykov, napríklad medzi Ruby, Pythonom a PHP, čo si vybrať? Samozrejme, správna odpoveď je Python, ale v skutočnosti je rozdiel medzi nimi v počte povolených chýb, v množstve niečoho iného - 5%, dobre, možno 10%. To znamená, že ak už máte hotový projekt napísaný v PHP, potom nikto so zdravým rozumom nepovie: „Prepíšme všetko v Pythone.“ Povedia: "Najmeme viac vývojárov PHP a budeme pokračovať v písaní v PHP." Dobre, to je dobrá voľba. Samozrejme, ak zrazu začnete písať nejaký projekt, potom môže byť rozumné vybrať si Python teraz. Aj keď, to tiež závisí. Možno máte na trhu veľa lacných PHP vývojárov a tie v Pythone sú drahé a myslíte si: „Áno, technológia je viac cool, ale ušetrím peniaze na hotových vývojároch.“ A všetko je v poriadku, už tam prídete a budete pracovať.
Ako si vybrať medzi Java a C++? Áno, deje sa presne to isté. Myslím si, že kým sa rozhodnete, v akom jazyku začať nový veľký projekt, získate znalosti vo svojej profesijnej oblasti a budete sa vedieť správne rozhodnúť. Práve teraz si túto voľbu ešte nemusíte robiť, a preto vám radím, aby ste robili to, čo vás baví.

Základy, ako som už povedal, samotné základy programovania (čo je funkcia, aké sú if’s, for’s, polia, niečo iné) sa dá naučiť viac-menej v akomkoľvek jazyku. Napríklad v C ++, pretože veľa vecí je mu podobných a špecifiká v ňom (na tejto úrovni) sú najmenej a najmenej zbytočné písmená na písanie. No, potom, keď sa naučíte nejaké zložité architektonické veci, naučíte sa a nemusíte sa o to veľa starať. To znamená, že hlavná vec je skúšať, hľadať, čo sa vám páči, a keď si uvedomíte, že sú už 4 hodiny ráno a vy sedíte a píšete pre zábavu, pretože sa vám to páči - pravdepodobne v tomto moment je jasné, že ste našli svoje .

Existuje mnoho spôsobov, ako merať popularitu programovacieho jazyka. Ale veríme, že analýza dopytu po špecialistoch je najpresnejšia. Vývojárom jasne demonštruje zručnosti, ktoré potrebujú na zlepšenie svojich kariérnych vyhliadok.

Analyzovali sme pracovné ponuky uverejnené na Indeed.com, aby sme identifikovali sedem najžiadanejších programovacích jazykov roku 2018. Niektoré jazyky, ako napríklad Swift a Ruby, sa medzi najlepších sedem nedostali, pretože sú u zamestnávateľov menej obľúbené.

Dopyt po Jave v roku 2018 klesol o približne 6000 pracovných miest v porovnaní s rokom 2017. Tento programovací jazyk je však stále populárny. Javu používajú milióny vývojárov a miliardy zariadení po celom svete už viac ako 20 rokov. Môže bežať na akomkoľvek hardvéri a operačnom systéme prostredníctvom Java Virtual Machine.

Všetky aplikácie pre Android sú založené na Jave. 90 % spoločností z rebríčka Fortune 500 používa Javu ako programovací jazyk na strane servera.

2.Python

Popularita Pythonu vzrástla o približne 5 000 pracovných ponúk. Je to všeobecný programovací jazyk používaný na vývoj webových aplikácií. Je tiež široko používaný vo vedeckej výpočtovej technike a dolovaní údajov. Neustály dopyt po vývojároch strojového učenia vedie k dopytu po Pythone.

3. JavaScript

JavaScript je dnes rovnako populárny ako v roku 2017. Tento programovací jazyk používa viac ako 80 % vývojárov a 95 % všetkých stránok na vytváranie dynamických prvkov na webových stránkach. Veľký potenciál má množstvo frontendových rámcov JavaScriptu, ako sú React a AngularJS. IoT a mobilné zariadenia sú čoraz populárnejšie, takže pochybujeme, že v dohľadnej dobe zaznamenáme pokles dopytu po programátoroch JavaScriptu.

4. C++

Dopyt po C++ sa od roku 2017 zmenil len málo. Tento programovací jazyk sa používa na vytváranie systémového / aplikačného softvéru, vývoj hier, ovládačov, aplikácií klient-server. Mnoho programátorov považuje C++ za zložitejšie ako programovacie jazyky ako Python alebo JavaScript. Stále sa však používa v mnohých starších systémoch vo veľkých podnikoch.

5.C#

Popularita jazyka C# (vyslovuje sa „C sharp“) tento rok mierne klesla. C# je objektovo orientovaný programovací jazyk určený pre vývoj na platforme Microsoft .NET.

C#, podobne ako C++, sa používa pri vývoji videohier, takže začínajúci programátori by sa mali naučiť oba jazyky naraz.

6 PHP

Tento programovací jazyk na strane servera stúpol v našom rebríčku na šieste miesto (v porovnaní s minulým rokom). Väčšina vývojárov používa PHP na implementáciu funkcií, ktoré HTML nepodporuje. A tiež na interakciu s databázami MySQL.

7. Perlička

Dopyt po Perle klesol o približne 3000 pracovných miest a v našom rebríčku zostal na siedmom mieste. Perl je naďalej populárny medzi systémovými a sieťovými administrátormi.

Pohľad do budúcnosti

Toto sú programovacie jazyky, ktoré ešte neboli zahrnuté do nášho hodnotenia. Ale v roku 2018 sa stali populárnejšími. Sledujte ich aj v budúcnosti!

  • Swift: Programovací jazyk pre iOS a macOS vydaný spoločnosťou Apple v roku 2014, číslo 14 v našom rebríčku. Je to preto, že mnohé úlohy pre vývojárov uvádzajú požiadavky ako „iOS“ bez špecifikácie konkrétneho jazyka. Swift si neustále získava na popularite.
  • R: obsadil v našom hodnotení 11. miesto. Očakávame však, že tento programovací jazyk bude o pár rokov raketovo stúpať. Získava si obľubu, ako v medzinárodnom rebríčku, tak aj v Spojených štátoch. Rast dopytu po vývojároch R je spôsobený rastúcim používaním jazyka pri analýze údajov.
  • Hrdza : Aj keď sa Rust v našom rebríčku neumiestňuje príliš vysoko, podľa Google Trends sa neustále vyvíja.

Iné technológie, o ktorých treba vedieť

Technológie uvedené nižšie nie sú formálne programovacími jazykmi. Sú však zahrnuté v zozname požiadaviek, ktoré zamestnávatelia kladú na vývojárov.

  • SQL: Štandardný dotazovací jazyk určený na ukladanie a spracovanie informácií v databázach. Znalosť SQL je medzi zamestnávateľmi veľmi žiadaná. Spomína sa na viac ako 30-tisíc voľných pozíciách.
  • .NET: Platforma spoločnosti Microsoft na vývoj desktopových, mobilných a webových aplikácií. Používajú ho programovacie jazyky ako C#, Visual Basic a F#. A multiplatformová implementácia technológie rozširuje .NET pre iOS, Linux a Android.
  • Uzol: Prostredie s otvoreným zdrojom, ktoré vám umožňuje spúšťať kód JavaScript na strane servera. To poskytuje možnosť používať jeden programovací jazyk pre celú webovú aplikáciu. Odporúčame vám venovať nejaký čas učeniu Node.js.
  • MEAN : MEAN stack (MongoDB, ExpressJS, AngularJS a Node.js) je v našom rebríčku na 18. mieste. Používanie zásobníka vám umožňuje vytvárať plnohodnotné aplikácie JavaScript. Learning MEAN poskytne základ pre vývoj v jednom z najpopulárnejších programovacích jazykov na svete.

Preklad článku „7 najžiadanejších programovacích jazykov roku 2018“ pripravil priateľský projektový tím.

Dobrý zlý

2) Čo je stránka programovacieho jazyka 2

3) Aké programovacie jazyky sú pre s. 3

4) Aké programovacie jazyky existujú s. 4 – 7

5) Čo je to kompilátor a interpret strana 8

6) Referencie strana 9

Úvod

Až do polovice 60-tych rokov boli počítače veľmi drahé stroje, ktoré sa používali len na špeciálne úlohy a vykonávali vždy iba jednu úlohu (tzv. dávkové spracovanie).

Programovacie jazyky tejto éry, rovnako ako počítače, na ktorých sa používali, boli navrhnuté pre špecifické úlohy, ako sú vedecké výpočty. Keďže stroje boli drahé a naraz sa dala robiť len jedna úloha, bol drahý aj strojový čas, takže rýchlosť programu bola prvoradá.

V priebehu 60. rokov však cena počítačov začala klesať, takže si ich mohli dovoliť aj malé firmy; Rýchlosť počítačov sa zvýšila a prišiel čas, keď začali často nečinne stáť bez úloh. Aby sa tak nestalo, začali zavádzať systémy s zdieľanie času(zdieľanie času).

V takýchto systémoch sa čas procesora „skrátil“ a všetci používatelia postupne dostávali krátke segmenty tohto času. Stroje boli dostatočne rýchle na to, aby každý používateľ na termináli mal pocit, že na systéme pracuje sám. Stroj bol zasa menej nečinný, pretože vykonával nie jednu, ale veľa úloh naraz. Zdieľanie času drasticky znížilo náklady na strojový čas, pretože jeden stroj mohli zdieľať stovky používateľov.

Za týchto podmienok - keď sa moc stala lacnou a dostupnou - začali tvorcovia programovacích jazykov stále viac premýšľať pohodlie pri písaní programy, a nielen rýchlosť ich vykonávania. „Malé“ (atómové) operácie vykonávané priamo strojovými zariadeniami boli spojené do väčších operácií vyššej úrovne a celých štruktúr, s ktorými sa človeku oveľa ľahšie a pohodlnejšie pracuje.

Čo je programovací jazyk

Programovací jazyk- formálny znakový systém určený na opis algoritmov vo forme, ktorá je vhodná pre výkonného umelca (napríklad počítač). Programovací jazyk definuje súbor lexikálnych, syntaktických a sémantických pravidiel používaných pri zostavovaní počítačového programu. Umožňuje programátorovi presne určiť, na aké udalosti bude počítač reagovať, ako sa budú dáta ukladať a prenášať a aké akcie by sa s nimi mali za rôznych okolností vykonávať.

Od stvorenia prvých programovateľných strojov si ľudstvo vymyslelo viac ako dva a pol tisíca programovacích jazykov. Každý rok sa ich počet dopĺňa o nové. Niektoré jazyky používa iba malý počet vlastných vývojárov, iné sa stávajú známymi miliónom ľudí. Profesionálni programátori niekedy pri svojej práci používajú viac ako tucet rôznych programovacích jazykov.

Tvorcovia jazykov interpretujú tento koncept inak. programovací jazyk. Medzi komunitami miest, ktoré uznáva väčšina vývojárov, sú tieto:

  • Funkcia: programovací jazyk je určený na písanie počítačových programov, ktoré sa používajú na prenos inštrukcií do počítača na vykonanie konkrétneho výpočtového procesu a organizáciu riadenia jednotlivých zariadení.
  • Úloha: Programovací jazyk sa líši od prirodzených jazykov v tom, že je určený na prenos príkazov a údajov z osoby do počítača, zatiaľ čo prirodzené jazyky sa používajú iba na komunikáciu medzi ľuďmi. V zásade možno zovšeobecniť definíciu „programovacích jazykov“ – ide o spôsob prenosu príkazov, príkazov, jasný návod na činnosť; pričom ľudské jazyky slúžia aj na výmenu informácií.
  • prevedenie: Programovací jazyk môže používať špeciálne konštrukcie na definovanie a manipuláciu s dátovými štruktúrami a na riadenie procesu výpočtu.

Na čo slúžia programovacie jazyky?

Proces činnosti počítača spočíva vo vykonávaní programu, teda množiny dobre definovaných inštrukcií v presne definovanom poradí. Strojová forma príkazu, pozostávajúca z núl a jednotiek, udáva, akú činnosť má centrálny procesor vykonať. To znamená, že ak chcete počítaču oznámiť postupnosť akcií, ktoré musí vykonať, musíte nastaviť postupnosť binárnych kódov zodpovedajúcich príkazov. Programy strojového kódu pozostávajú z tisícok inštrukcií. Písanie takýchto programov je náročná a únavná úloha. Programátor si musí zapamätať kombináciu núl a jednotiek binárneho kódu každého programu, ako aj binárne kódy dátových adries použitých pri jeho vykonávaní. Je oveľa jednoduchšie napísať program v nejakom jazyku, ktorý je bližší prirodzenému ľudskému jazyku, a poveriť počítač úlohou preložiť tento program do strojových kódov. Tak vznikli jazyky navrhnuté špeciálne na písanie programov - programovacie jazyky.

Existuje mnoho rôznych programovacích jazykov. V skutočnosti môžete použiť ktorýkoľvek z nich na vyriešenie väčšiny problémov. Skúsení programátori vedia, ktorý jazyk je lepšie použiť na riešenie každého konkrétneho problému, pretože každý jazyk má svoje vlastné schopnosti, orientáciu na určité typy úloh, svoj vlastný spôsob popisu pojmov a objektov používaných pri riešení problémov.

Celú sadu programovacích jazykov možno rozdeliť do dvoch skupín: jazyky nízkej úrovne A jazyky na vysokej úrovni.

Medzi jazyky nízkej úrovne patria jazyky montáže (z angličtiny toassemble - zostaviť, zostaviť). Jazyk symbolických inštrukcií používa symboly pre pokyny, ktoré sú ľahko pochopiteľné a ľahko zapamätateľné. Namiesto postupnosti binárnych kódov príkazov sa zapíšu ich symbolické označenia a namiesto binárnych adries dát použitých pri vykonávaní príkazu sa zapíšu programátorom zvolené symbolické názvy týchto dát. Assembler sa niekedy označuje ako mnemokód alebo autokód.

Väčšina programátorov používa na písanie programov jazyky na vysokej úrovni. Tak ako bežný ľudský jazyk, aj takýto jazyk má svoju abecedu – súbor symbolov používaných v jazyku. Tieto symboly tvoria takzvané kľúčové slová jazyka. Každé z kľúčových slov plní svoju funkciu, rovnako ako v jazyku, na ktorý sme zvyknutí, aj slová zložené z písmen abecedy tohto jazyka môžu plniť funkcie rôznych slovných druhov. Kľúčové slová sú navzájom spojené vo vetách podľa určitých syntaktických pravidiel jazyka. Každá veta definuje určitú postupnosť akcií, ktoré musí počítač vykonať.

Jazyk na vysokej úrovni funguje ako prostredník medzi osobou a počítačom, čo umožňuje osobe komunikovať s počítačom pre človeka známejším spôsobom. Takýto jazyk často pomáha vybrať správnu metódu riešenia problému.

Pred napísaním programu v jazyku vysokej úrovne musí programátor napísať algoritmus riešenie problémov, teda akčný plán krok za krokom, ktorý je potrebné dokončiť na vyriešenie tohto problému. Preto sa často nazývajú jazyky, ktoré vyžadujú predbežnú kompiláciu algoritmu algoritmické jazyky.

Aké sú programovacie jazyky

Fortran

Programovacie jazyky sa objavujú od polovice 50-tych rokov minulého storočia. Jedným z prvých jazykov tohto typu bol jazyk Fortran (anglicky FORTRAN od FORmulaTRANslator - prekladač vzorcov), vyvinutý v roku 1957. Fortran sa používa na opis algoritmu na riešenie vedeckých a technických problémov pomocou digitálneho počítača. Rovnako ako prvé počítače, aj tento jazyk bol určený hlavne na vykonávanie prírodovedných a matematických výpočtov. V vylepšenej forme tento jazyk prežil až do našich čias. Spomedzi moderných jazykov na vysokej úrovni je jedným z najpoužívanejších vo vedeckom výskume. Najbežnejšie varianty sú Fortran-II, Fortran-IV, EASICFortran a ich zovšeobecnenia.

ALGOL

Po Fortrane sa v rokoch 1958-1960 objavil jazyk Algol (Algol-58, Algol-60) (anglický ALGOL z ALGOrithmicLanguage - algoritmický jazyk).Algol bol zdokonalený v rokoch 1964-1968 - Algol-68.Algol vyvinul výbor v r. medzi ktoré patrili európski a americkí vedci. Patrí medzi jazyky vysokej úrovne (jazyk vysokej úrovne) a uľahčuje preklad algebraických vzorcov do príkazov programu. Algol bol populárny v Európe vrátane ZSSR, zatiaľ čo porovnateľný Fortran bol bežný v USA a Kanade. Algol mal výrazný vplyv na všetky neskôr vyvinuté programovacie jazyky a najmä na jazyk Pascal. Tento jazyk, podobne ako Fortran, bol určený na riešenie vedeckých a technických problémov. Okrem toho sa tento jazyk používal ako prostriedok výučby základov programovania – umenia programovania.

Termín Algol sa zvyčajne vzťahuje na jazyk Algol-60, zatiaľ čo Algol-68 považovaný za samostatný jazyk. Aj keď sa jazyk Algol takmer prestal používať na programovanie, stále zostal oficiálnym jazykom pre publikovanie algoritmov.

cobol

V rokoch 1959 - 1960 bol vyvinutý jazyk COBOL (angl. COBOL z COmm Business Oriented Language - bežný obchodne orientovaný jazyk). Ide o programovací jazyk tretej generácie, určený predovšetkým pre vývoj podnikových aplikácií, Cobol bol určený aj na riešenie ekonomických problémov, spracovanie dát pre banky, poisťovne a iné inštitúcie tohto druhu. Grace Hopper bola vývojárom prvého jednotného štandardu Cobol ( babička Cobola).

Cobol je bežne kritizovaný za to, že je veľavravný a nepraktický, pretože jedným z cieľov tvorcov jazyka bolo čo najviac priblížiť tieto konštrukcie angličtine. (Dodnes je Cobol považovaný za programovací jazyk, v ktorom je napísaných najviac riadkov kódu.) Zároveň mal Cobol na svoju dobu vynikajúce vybavenie na prácu s dátovými štruktúrami a súbormi, čo mu zabezpečilo dlhú životnosť v podnikových aplikáciách, aspoň v USA.

Programovacie jazyky sú rozdelené do 2 tried:

  1. Orientované na stroj alebo stroj (nízka úroveň)
  2. Algoritmické (vysoká úroveň)

Nízkoúrovňový jazyk je špecifický pre konkrétny typ procesora a je napísaný v strojových kódoch (0 alebo 1). Tento jazyk je zrozumiteľný pre počítač, ale nie pre ľudí. Napríklad jazyk symbolických inštancií

Programovacie jazyky vysokej úrovne- sú napísané pomocou anglických slov a fráz. To znamená, že takýto jazyk je pre človeka zrozumiteľný, ale

počítač nerozumie. Tieto jazyky je potrebné preložiť do strojových kódov. Na tento účel sa používajú prekladače. Delia sa na:

  1. Kompilátory - okamžite preložia zdrojový kód programu do jazyka strojových kódov. Potom sa vytvorí dávkový súbor (.exe alebo .com) a samotný pôvodný program už nie je potrebný.
  2. Tlmočníci – prekladajú zdrojový kód programu do krokov. A zakaždým na začiatku adresy na zdrojový text. Veľmi užitočné pri ladení programov.

Existuje aj koncept „prepájania“ programov, to znamená zhromažďovanie kompilovaných prvkov do jedného programového modulu

Etapy počítačovej simulácie:

  1. Stanovenie problému a definícia objektu modelovania
  2. Vypracovanie koncepčného modelu, identifikácia hlavných prvkov a ich vzťahov
  3. Formalizácia a prechod na model
  4. Vytvorenie algoritmu a písanie programu
  5. Plánovanie a vykonávanie počítačových experimentov
  6. Analýza a interpretácia výsledkov

pole sa týka zložených dátových typov. K prvku poľa sa pristupuje pomocou názvu poľa a čísla prvku. Prvky poľa v pamäti počítača sú zoradené vo vzostupnom poradí indexov.

Variabilné atribúty v programovacích jazykoch: názov, adresa, hodnota a typ

Kritériá kvality softvérové ​​systémy: spoľahlivosť, korektnosť, zrozumiteľnosť, flexibilita, efektívnosť

Programovacie jazyky :

Perl - skriptovací jazyk

V procedurálnych programovacích jazykoch neexistuje komplexný dátový typ

Java Virtual Machine - tlmočník

Prolog je logický programovací jazyk, ktorý je tlmočníkom

JavaSCRIPT - skriptovací jazyk

SQL je jazyk na manipuláciu s údajmi, ktorý sa používa na získavanie, vkladanie a odstraňovanie informácií v relačných databázach.

Deklaratívne programovacie jazyky zahŕňajú logické jazyky

HTML a XML - dátové značkovacie jazyky

C - jazyk používaný pre štruktúrované programovanie

Hlavné prvky objektovo orientovaného programovanie sú:

  1. Trieda
  2. Objekt – inštancia triedy
  3. Udalosť, ktorá sa stane objektu
  4. Metóda, ktorá sa vykonáva na objekte
  5. Nehnuteľnosť

Základné koncepty objektovo orientovaného programovania sú:

  1. Polymorfizmus - použitie jedného názvu na špecifikáciu akcií, ktoré sú spoločné pre triedu, čo znamená schopnosť objektov vybrať si internú metódu na základe typu údajov.
  2. Dedičnosť je vlastnosť OOP, ktorú možno modelovať pomocou schémy taxonomickej klasifikácie (hierarchie)
  3. Zapuzdrenie – znamená schopnosť zapuzdrovať postupy pre prácu s objektom v samostatnom module

Základ metódy štruktúrované programovanie sú: (programovanie zhora nadol)

Iným spôsobom je to programovanie bez „GoTo“

  1. Pomocou zloženia troch základných prvkov: vetvenia, lineárnej štruktúry a cyklu
  2. Používanie podprogramov

Použitím podprogramy nie je potrebné dosiahnuť minimálny počet operátorov. Prenos vstupných údajov pri volaní podprogramu prebieha pomocou parametrov. Vyvolajú sa parametre špecifikované v čase, keď sa podprogram volá z hlavného programu skutočné.

Najvhodnejšie jazyky pre systémové programovanie sú C, C++ a Assembler.

Počas prekladu sa fáza sémantickej analýzy používa na kontrolu typov vo výrazoch.

Vo fáze analýzy počas prekladu sa zistia chyby ako „chýbajúca bodkočiarka“.

Nech je počítač akokoľvek dokonalý, bez softvéru je to len kopa kovu a plastu. Práve programy určujú, čo a ako, v akom poradí vykonáva určité operácie. najprv jazykoch programovanie sa začali objavovať začiatkom päťdesiatych rokov a používali sa na prevod jednoduchých aritmetických výrazov do strojového kódu. Strojový kód je systém počítačových inštrukcií interpretovaných priamo mikroprocesorom. Ale pre človeka je veľmi nepohodlné písať program v strojových kódoch. S cieľom uľahčiť prácu programátora a začali sa vytvárať jazykoch programovanie.Jazyky programovanie sa delia na jazykoch vysoká úroveň a nízka. Čím vyššia je úroveň jazyka, tým ľahšie sa v ňom programátorovi píše. Takýto jazyk je pre človeka zrozumiteľnejší, pretože umožňuje pomocou jednoduchých sémantických konštrukcií nastaviť potrebnú postupnosť akcií. Po vytvorení sa program skompiluje - to znamená, že sa automaticky skompiluje do jazyka strojového kódu zrozumiteľného pre procesor. Nízkoúrovňové jazyky sú oveľa bližšie k strojovému jazyku, a preto je ťažšie do nich písať. Majú však svoju výhodu – programy napísané v takomto jazyku sú veľmi rýchle a kompaktné. Najpopulárnejším jazykom nízkej úrovne je Assembler. Niektoré z jeho výhod sú také zrejmé, že aj v zložitých programoch napísaných vo vyšších jazykoch sa často používajú vložky v assembleri. programovanieširoko používané sa dá spočítať na prstoch. Jedným z najpoužívanejších je C++. Toto je veľmi pohodlný a pomerne jednoduchý jazyk pre programátora, ktorý vám umožňuje vytvárať programy akejkoľvek úrovne zložitosti. Nie je to tak dávno, čo Microsoft vyvinul jazyk C # (čítaj ako „C Sharp“), ktorý má množstvo nových funkcií a je určený na písanie programov pre operačný systém Windows. Microsoft vydal aj veľmi obľúbené prostredie programovanie Microsoft Visual Studio, ktoré umožňuje programovanie v C++, C# a niektorých ďalších jazykoch.Veľmi známy jazyk je programovanie Delphi. Pochádza z kedysi slávneho Pascala, no vďaka úsiliu Borlanda nadobudol množstvo nových kvalít a stal sa vlastne novým jazykom. Písanie v tomto jazyku je celkom jednoduché a pohodlné aj vďaka prostrediu programovanie Borland Delphi získalo veľmi širokú distribúciu bez jazykov programovanie existencia internetu by bola nemožná. Takéto jazykoch, keďže Perl a PHP umožňujú vytvárať skripty, ktoré určujú vykonanie potrebných akcií na stránkach lokality. Ani vytvorenie tej najjednoduchšej webovej stránky nie je možné bez znalosti HTML – štandardného značkovacieho jazyka dokumentov. Výpočtové zariadenia sú teraz všade: v mobilných telefónoch a bankomatoch, v CNC strojoch a v televízoroch. Je ťažké nájsť sféru života, do ktorej by sa tak či onak nezapojili. A všetky tieto zariadenia fungujú vďaka programom napísaným pomocou určitých jazykov. programovanie.

Programovací jazyk je prostriedok komunikácie medzi programátorom a počítačom. Počítač je v tomto prípade stroj, ktorý rozumie len elementárnym príkazom. V akom jazyku je najťažší rozhovor medzi človekom a počítačom?

Sovietsky román „Programátor“ rozpráva o situácii, keď je počítač v technickom ústave. Úrady prišli a požiadali, aby predviedli jej prácu. Ale nerozumela príkazom programovacieho jazyka. Potom talentovaný inžinier začal so strojom dialóg v jeho jazyku – priamo v binárnom kóde.

Mnoho programátorov považuje binárny kód za najťažší programovací jazyk – čo je paradox, pretože binárne čísla nie sú jazyk. Samotný pojem „programovací jazyk“ znamená od počítačového jazyka k ľudskému jazyku. V binárnom kóde však musí programátor argumentovať bez zjednodušenia so strojom.

Napriek obrovským ťažkostiam priamej práce s binárnym kódom je to práve binárna logika, ktorá umožňuje najhospodárnejšie využitie pamäte stroja. Môže byť použitý pre jednoduché elektrické zariadenia (mikrovlnné rúry, varné kanvice), ako aj v zariadeniach vyžadujúcich špeciálnu rýchlosť (presné hodinky, lekárske vybavenie, rozhodcovské športové vybavenie).

assembler

Assembler je skupina inštrukcií binárneho kódu zoskupených do sekcií. Tento jazyk sa používa pri demontáži programov. Niekedy je potrebné zistiť kód programu podľa jeho spustiteľných súborov. Aby ste to dosiahli, musíte dešifrovať spustiteľný súbor (táto práca má veľa spoločného s kryptografiou). Tento proces dešifrovania spustiteľných súborov sa nazýva demontáž. Výsledkom je, že programátor dostane skupinu inštrukcií assembleru, aj keď bol program pôvodne napísaný v inom jazyku. Práca s assemblerom (asm) je ako programovanie v binárnom kóde a je výzvou aj pre pokročilých programátorov.

Populárne C++

Obrovské množstvo programov a shellov na svete je napísaných v jazykoch C. Samotný jazyk C bol vytvorený v roku 1970 pre prácu s procesormi. Tento jazyk bol veľmi jednoduchý.

V """ bol vyvinutý jazyk C++, ktorý zdedil väčšinu funkcií svojho predchodcu, ale pridal ďalší princíp - paradigmu dedičnosti. Napriek zjavnej jednoduchosti príkazov je tento jazyk najvýkonnejším programovacím nástrojom. Obrovské množstvo knižníc tretích strán dáva programátorovi veľký priestor pre tvorivý proces. Jazyk má však zložitú logickú štruktúru. Musíte použiť objektovo orientovaný prístup, ktorý zníži počet riadkov kódu (kvôli dedeniu), ale skomplikuje logiku. Od programátora sa vyžaduje schopnosť fantazírovať, čo samo o sebe nie je jednoduché.

Nové jazyky

V súčasnosti sú veľmi populárne bezplatné „abstraktné“ programovacie jazyky: NOSQL, Erlang, Python. Nie je ľahké ich zvládnuť, ale špecialisti na zriedkavé jazyky sú veľmi populárni. Nové jazyky sa spravidla vytvárajú na riešenie špecifických problémov: práca s webovými rozhraniami, vytváranie aplikácií alebo správa serverových procesov. Osobitná náročnosť programovania v najnovších jazykoch spočíva v ich malom výskume - existuje len málo komponentov a knižníc, špecifikácií a učebníc.