Windows 8

Podpora různých programovacích jazyků atd. Vývoj operačního systému

Podpora různých programovacích jazyků atd.  Vývoj operačního systému

Programování pro začátečníky

Na úvod bych rád řekl, že ovládat počítač a vytvářet programy může každý. K vytváření počítačových programů nepotřebujete neuvěřitelnou inteligenci ani vzdělání v matematice. Vše, co potřebujete, je chuť něco vymyslet a trpělivost, abyste nepřestali.

Schopnost psát programy je stejná dovednost jako schopnost plavat, tančit nebo žonglovat. Někteří lidé to ve skutečnosti dělají mnohem lépe než jiní, ale každý může dosáhnout určitých výsledků správnou praxí. Právě z tohoto důvodu se děti již v raném věku stávají programovacími esy. Děti nejsou nutně géniové; prostě mají sklon učit se novým věcem a nebojí se dělat chyby.

I když se počítače zdají jako velmi složitá elektronická monstra, odpočívejte. Jen málokdo přesně ví, jak fungují vyhledávače, které umožňují rychle najít potřebné informace na internetu a někteří lidé ani nepřišli na to, jak řídit auto. Stejně tak se téměř každý může naučit vytvářet programy, aniž by se musel podrobně zabývat tím, jak počítač přesně funguje.

Obecně řečeno, program říká počítači, jak vyřešit konkrétní problém. Protože svět je plný problémů, počet programů, které mohou lidé napsat, je nekonečný.

Abyste však mohli počítači sdělit, jak vyřešit jeden obrovský problém, obvykle musíte počítači sdělit, jak vyřešit celou řadu malých problémů, které tvoří ten velký problém.
Ve skutečnosti není programování vůbec obtížné a není to nic tajemného nebo nadpřirozeného. Pokud dokážete napsat pokyny krok za krokem, které osobě umožní najít váš dům, můžete napsat počítačový program.

Nejtěžší částí programování je identifikace malých problémů, které tvoří problém, který potřebujete vyřešit. Protože jsou počítače úplně hloupé, musíte jim říkat, jak mají všechno dělat.

Pokud si myslíte, že vytváření programu je zábavnější než jeho používání, máte vše, co k vytváření počítačových programů potřebujete. Pokud se chcete naučit psát počítačové programy, potřebujete následující tři vlastnosti.

Pronásledování. Pokud chcete něco dost zlého, dostanete to (ale pokud uděláte něco nezákonného, ​​riskujete, že strávíte spoustu času ve vězení). Pokud se chcete naučit programovat, vaše touha vám určitě pomůže, bez ohledu na to, kolik překážek vám stojí v cestě.

Zvědavost. Zdravá dávka zvědavosti může povzbudit vaši touhu experimentovat a pokračovat ve zdokonalování vašich programovacích dovedností i po přečtení této knihy. Díky zvědavosti bude učení programování méně nudné a zajímavější. A pokud vás to zajímá, určitě si nastudujete a zapamatujete si více informací než kdejaký zcela nezainteresovaný člověk (například váš šéf).
Fantazie. Vytváření počítačových programů je dovednost, ale představivost může pomoci tuto dovednost zdokonalit a soustředit. Začínající programátor s pořádnou dávkou fantazie vždy vytvoří mnohem zajímavější a užitečnější programy než skvělý programátor bez fantazie. Pokud nevíte, co dělat se svými programátorskými dovednostmi, váš talent jednoduše zemře bez fantazie.

Pohon, zvědavost a představivost jsou tři nejdůležitější vlastnosti, které by měl mít každý programátor. Pokud je máte, musíte se starat jen o maličkosti: jaký programovací jazyk se naučit (například C++), jak je to s matematikou atd.

Mezi mnoha programovacími jazyky lze vždy najít přesně ten jazyk, který je vhodný pro řešení daného problému. Když se objeví nový typ problému, lidé vytvářejí nové jazyky.

Počítač samozřejmě rozumí pouze jednomu jazyku, složenému z jedniček a nul, nazývanému strojový jazyk. Typicky program napsaný ve strojovém jazyce vypadá asi takto:

0010 1010 0001 1101

UN 1100 1010 1111

0101 IT 1101 0101

1101 1111 0010 1001

Dále je velmi důležité, pro jaký účel je jazyk vybrán - pro výuku programování nebo pro řešení konkrétního aplikačního problému. V prvním případě by měl být jazyk snadno srozumitelný, přísný a pokud možno bez úskalí. Ve druhém - sice komplexní, ale účinný a výrazný nástroj pro profesionála, který ví, co chce.

Nyní bych vám rád upřesnil, že je třeba odlišit programovací jazyk (Basic, Pascal) od jeho implementace, která je obvykle prezentována jako součást programovacího prostředí (Quick Basic, Virtual Pascal) - sada nástrojů pro editaci zdrojové texty, generování spustitelného kódu, ladění, správa projektů atd. Syntaxe a sémantika programovacího jazyka jsou stanoveny v jazykovém standardu. Každé programovací prostředí poskytuje pro tento jazyk svůj vlastní interpret nebo kompilátor, což často umožňuje použití konstrukcí, které nejsou pevně stanoveny ve standardu.

Podívejme se na hlavní a oblíbené programovací jazyky

Assembler Tento nejjasnějším zástupcem jazyky nízká úroveň, jehož soubor konceptů je založen na hardwarové implementaci. Jedná se o automatizační nástroj pro programování přímo v kódech procesoru. Strojové příkazy jsou popsány ve formě mnemotechnických operací, což umožňuje dosáhnout poměrně vysoké modifikovatelnosti kódu. Protože sada příkazů je různé procesory je jiný, pak není třeba mluvit o kompatibilitě. Použití assembleru je vhodné v případech, kdy je potřeba přímo interagovat s hardwarem, nebo pro dosažení vyšší efektivity některé části programu z důvodu větší kontroly nad generováním kódu.

COBOL- Programovací jazyk vysoká úroveň, vyvinuté koncem 50. let 20. století. sdružení CADASIL k řešení obchodních a ekonomických problémů. Obsahuje pokročilé nástroje pro práci se soubory. Protože příkazy v programech napsaných v tomto jazyce aktivně používají běžnou anglickou slovní zásobu a syntaxi, je Cobol považován za jeden z nejjednodušších programovacích jazyků. V současnosti slouží k řešení ekonomických, informačních a jiných problémů.

Fortran- Vysokoúrovňový programovací jazyk vyvinutý společností IBM v roce 1956 k popisu algoritmů pro řešení výpočetních problémů. Patří do kategorie procedurálně orientovaných jazyků. Nejběžnější verze tohoto jazyka jsou Fortran IV, Fortran 77 a Fortran 90. Používá se na všech třídách počítačů. Jeho nejnovější verze se také používá na počítačích s paralelní architekturou.

Ada- Vysokoúrovňový programovací jazyk, orientovaný pro použití v systémech v reálném čase a určený k automatizaci úkolů řízení procesů a/nebo zařízení, například v palubních (lodních, leteckých atd.) počítačích. Vyvinutý z iniciativy amerického ministerstva obrany v 80. letech 20. století. Pojmenoval podle Anglická matematika Hells of Augusta Byron (Lovelace), která žila v letech 1815-1851.

ZÁKLADNÍ(Beginner's All-purpose Symbolic Instruction Code) Narodil se v 60. letech v Americe. BASIC byl koncipován jako jednoduchý jazyk pro rychlé učení. BASIC se stal de facto standardem pro mikropočítače právě díky své jednoduchosti jak v učení, tak v implementaci. Nicméně pro To dosažení této kvality byla učiněna řada rozhodnutí (chybějící typizace, číslování řádků a nestrukturální GOTO atd.), která negativně ovlivnila styl studentů programování.Kromě toho nedostatek výrazových prostředků vedl ke vzniku tzv. obrovské množství vzájemně nekompatibilních jazykových dialektů Moderní, specializované verze BASICu (např. Visual Basic) mají i přes získanou „strukturu“ stále stejné nedostatky, především nedbalost ve vztahu k typům a popisům Vhodné pro použití v počáteční fázi učení, jako automatizační nástroj (v případech, kdy je zabudován do odpovídajících systémů) nebo jako prostředek pro rychlou tvorbu aplikací.

Pascal Pascal, vyvinutý slavným teoretikem N. Wirthem na základě myšlenek ALGOL-68, byl určen především pro výuku programování. Postaven na principu „nezbytného a dostatečného“ má přísnou typovou kontrolu, konstrukce pro popis libovolných datových struktur a malou, ale dostatečnou sadu operátorů strukturovaného programování. Odvrácenou stranou jednoduchosti a přísnosti je bohužel těžkopádnost popisů jazykových konstruktů. Nejznámější implementace – Turbo/Borland Pascal – je i přes odlišnosti od standardu Pascal prostředím a souborem knihoven, které proměnily výukový jazyk v průmyslový systém pro vývoj programů v prostředí MS-DOS.

C a C++ Jazyk C je založen na požadavcích systémového programátora: plný a efektivní přístup ke všem počítačovým zdrojům, programovací nástroje na vysoké úrovni, přenositelnost programů mezi různé platformy a operační systémy. C++, při zachování kompatibility s C, zavádí možnosti objektově orientovaného programování tím, že vyjadřuje myšlenku třídy (objektu) jako uživatelem definovaného typu. Díky těmto vlastnostem zaujalo C/C++ pozici univerzálního jazyka pro jakýkoli úkol. Jeho použití se však může stát neúčinným tam, kde je nutné získat výsledek připravený k použití v co nejkratším čase, nebo kde se samotný procesní přístup stává nerentabilním.

Delphi- nejedná se o nástupce Borland Pascal / Borland C, jeho nika je tzn. rychlá tvorba aplikace ( Rychlá aplikace Vývoj, RAD). Takové nástroje umožňují vytvářet v co nejkratším čase pracovní program z již hotových komponentů, aniž by bylo vynaloženo mnoho úsilí na maličkosti. Zvláštní místo v takových systémech zaujímá schopnost práce s databázemi.

Lisp- Algoritmický jazyk vyvinutý v roce 1960 J. McCarthym a určený pro manipulaci se seznamy datových prvků. Používá se především v amerických univerzitních laboratořích k řešení problémů souvisejících s umělou inteligencí. V Evropě pro práci na umělé inteligenci nejraději používají Prolog.

Prolog- Vysokoúrovňový deklarativní programovací jazyk určený pro vývoj systémů a programů umělá inteligence. Patří do kategorie jazyků páté generace. Byl vyvinut v roce 1971 na univerzitě v Marseille (Francie) a je jedním z široce používaných a neustále se rozvíjejících jazyků. Jeho nejnovější verze je Prolog 6.0

LOGO- Vysokoúrovňový programovací jazyk vyvinutý na Massachusetts Institute of Technology kolem roku 1970 za účelem výuky matematických konceptů. Používá se také ve školách a u uživatelů PC při psaní programů pro tvorbu kreseb na obrazovce monitoru a ovládání perového plotru.

Jáva Jak zářný příklad specializace se jazyk Java objevil v reakci na potřebu ideálně přenosného jazyka, ve kterém lze efektivně spouštět programy na straně WWW klienta. Vzhledem ke specifickému prostředí může být Java dobrou volbou pro systém postavený na technologii Internet/Intranet.

ALGOL- Vysokoúrovňový programovací jazyk zaměřený na popis algoritmů pro řešení výpočetních problémů. Byl vytvořen v roce 1958 specialisty ze západoevropských zemí pro vědecký výzkum. Byla přijata verze ALGOL-60 tohoto jazyka Mezinárodní konference v Paříži (1960) a byl široce používán na počítačích 2. generace. Verze ALGOL-68, vyvinutá skupinou specialistů z Mezinárodní federace pro zpracování informací (IFIP) v roce 1968, získala status mezinárodního univerzálního programovacího jazyka zaměřeného na řešení nejen výpočetních, ale i informačních problémů. Přestože se Algol v současné době prakticky nepoužívá, sloužil jako základ nebo měl významný vliv na vývoj modernějších jazyků, například Ada, Pascal atd.

sám nejlepší jazyk neexistuje. Pokud se chcete stát profesionálním programátorem, budete se muset naučit jeden z programovacích jazyků na vysoké úrovni (nejoblíbenějším programovacím jazykem je C++) a také jeden z databázových programovacích jazyků (například SQL) . Jakmile se naučíte programovací jazyk C++, nemůžete udělat chybu. Se znalostí tohoto jazyka můžete vždy najít práci v jakékoli programovací společnosti.
Navzdory velké popularitě programovacího jazyka C++ se často používají i jiné jazyky. Na mnoha starších počítačích stále běží programy napsané v programovacím jazyce COBOL. Proto potřebujeme programátory, kteří dokážou tyto programy vylepšit a také napsat nové. Často velké společnosti Takovým programátorům platí vysoké platy.
Pokud budete pracovat sami, je nejlepší naučit se vytvářet vlastní databázové programy. K tomu se budete muset naučit programovací jazyky, jako je SQL nebo VBA, které se v programu používají Microsoft Access. Abyste mohli vytvářet webové stránky, potřebujete znát HTML a také určité znalosti Javy, JavaScriptu, VBScriptu a dalších internetových programovacích jazyků. Nejpotřebnějším programovacím jazykem bude ten, který vám umožní snadno a rychle řešit zadané úkoly. Může to být programovací jazyk, jako je C++, BASIC, Java, SQL nebo assembler.

Závěrem podotýkáme, že z odborného hlediska není ani tak důležité, v jakém jazyce a v jakém prostředí programátor pracuje, ale jak svou práci vykonává. Hardware a operační systémy se mění. Nové problémy vyvstávají z různých oborů. Stávají se minulostí a objevují se nové jazyky. Ale zůstávají lidé – ti, kteří píší, a ti, pro které jsou psány nové programy a jejichž požadavky na kvalitu zůstávají stejné bez ohledu na tyto změny.
Podívali jsme se tedy na základy programování a hlavní programovací jazyky.

Přeji hodně štěstí při zvládnutí programování!

Programování je celá věda, která umožňuje vytvářet počítačové programy. Zahrnuje obrovské množství různých operací a algoritmů, které tvoří jeden programovací jazyk. Takže, co to je a jaké jsou různé programovací jazyky? Článek poskytuje odpovědi a také přehledný seznam programovacích jazyků.

Historie vzniku a změn programovací jazyky je třeba studovat spolu s historií vývoje počítačová technologie, protože tyto pojmy spolu přímo souvisí. Bez programovacích jazyků by nebylo možné vytvořit jakýkoli program pro provoz počítače, tedy vytvoření počítače bylo by to zbytečné cvičení.

První strojový jazyk vynalezl v roce 1941 Konrad Zuse, který je vynálezcem analytického motoru. O něco později, v roce 1943, Howard Aiken vytvořil stroj Mark 1, schopný číst instrukce na úrovni strojového kódu.

V 50. letech začala aktivní poptávka po vývoji software a strojový jazyk nedokázal zpracovat velké množství kódu, takže byl vytvořen nový způsob komunikace s počítači. "Assembler" je první mnemotechnický jazyk, který nahrazuje strojové instrukce. V průběhu let se seznam programovacích jazyků pouze zvyšuje, protože rozsah výpočetní techniky se rozšiřuje.

Klasifikace programovacích jazyků

V současné době existuje více než 300 programovacích jazyků. Každý z nich má své vlastní vlastnosti a je vhodný pro jeden konkrétní úkol. Všechny programovací jazyky lze rozdělit do několika skupin:

  • Aspektově (hlavní myšlenkou je oddělení funkčnosti pro zvýšení efektivity softwarových modulů).
  • Strukturální (založené na myšlence vytvořit hierarchická struktura jednotlivé programové bloky).
  • Logický (založený na teorii aparátu matematická logika a pravidla rozlišení).
  • Objektově orientované (v takovém programování se již nepoužívají algoritmy, ale objekty, které patří do určité třídy).
  • Multi-paradigma (kombinujte několik paradigmat a programátor sám rozhodne, který jazyk v daném případě použít).
  • Funkční (hlavními prvky jsou funkce, které mění svou hodnotu v závislosti na výsledcích výpočtů zdrojových dat).

Programování pro začátečníky

Mnoho lidí se ptá, co je to programování? V podstatě je to způsob komunikace s počítačem. Díky programovacím jazykům můžeme přidělovat konkrétní úkoly různým zařízením vytvářením speciálních aplikací nebo programů. Při studiu této vědy v počáteční fázi je nejdůležitější vybrat si vhodné (pro vás zajímavé) programovací jazyky. Seznam pro začátečníky je uveden níže:

  • Basic byl vynalezen v roce 1964 a patří do rodiny jazyky na vysoké úrovni a používá se k psaní aplikačních programů.
  • Python se dá celkem snadno naučit díky jednoduché, čitelné syntaxi, ale výhodou je, že s ním lze vytvářet jak běžné desktopové programy, tak webové aplikace.
  • Pascal je jedním z nejstarších jazyků (1969) vytvořených pro výuku studentů. Jeho moderní modifikace je přísně typizovaná a strukturovaná, ale Pascal je zcela logický jazyk, který je srozumitelný na intuitivní úrovni.

Toto není úplný seznam programovacích jazyků pro začátečníky. Existuje obrovské množství syntaxí, které jsou snadno pochopitelné a v příštích letech budou určitě žádané. Každý má právo nezávisle si vybrat směr, který pro něj bude zajímavý.

Začátečníci mají možnost urychlit své učení programování a jeho základů díky speciální nástroje. Hlavním pomocníkem je integrované vývojové prostředí pro programy a aplikace Visual Basic („Visual Basic“ je také programovací jazyk, který zdědil styl jazyka Basic ze 70. let).

Úrovně programovacích jazyků

Všechny formalizované jazyky určené pro vytváření, popis programů a algoritmů pro řešení problémů na počítačích jsou rozděleny do dvou hlavních kategorií: nízkoúrovňové programovací jazyky (seznam je uveden níže) a vysokoúrovňové. Promluvme si o každém z nich zvlášť.

Nízkoúrovňové jazyky jsou navrženy tak, aby vytvářely strojové instrukce pro procesory. Jejich hlavní výhodou je, že používají mnemotechnické zápisy, tedy místo posloupnosti nul a jedniček (od binární systémčíslo) si počítač zapamatuje smysluplné zkrácené slovo z anglického jazyka. Nejznámější nízkoúrovňové jazyky jsou „Assembler“ (existuje několik podtypů tohoto jazyka, z nichž každý má mnoho společného, ​​ale liší se pouze sadou dalších direktiv a maker), CIL (dostupný v .Net platforma) a JAVA Bytecode.

Programovací jazyky na vysoké úrovni: seznam

Jazyky na vysoké úrovni jsou vytvořeny pro pohodlí a větší efektivitu aplikací, jsou přesným opakem jazyků na nízké úrovni. Jejich rozlišovací znak- přítomnost sémantických konstrukcí, které stručně a výstižně popisují struktury a algoritmy programů. V nízkoúrovňových jazycích by byl jejich popis ve strojovém kódu příliš dlouhý a nesrozumitelný. Jazyky na vysoké úrovni jsou nezávislé na platformě. Místo toho kompilátory provádějí funkci překladatele: překládají text programu do základních strojových instrukcí.

Následující seznam programovacích jazyků: C ("C"), C# ("C-sharp"), "Fortran", "Pascal", Java ("Java") - patří mezi nejpoužívanější syntaxe na vysoké úrovni. Má následující vlastnosti: tyto jazyky pracují se složitými strukturami, podporují datové typy řetězců a operace se souborovými I/O informacemi a mají také tu výhodu, že se s nimi díky čitelnosti a srozumitelné syntaxi mnohem snadněji pracuje.

Nejpoužívanější programovací jazyky

V zásadě můžete napsat program v jakémkoli jazyce. Otázka zní: bude to fungovat efektivně a bez poruch? Proto řešit různé úkoly by si měl vybrat nejvíce vhodné jazyky programování. Seznam podle popularity lze popsat takto:

  • OOP jazyky: Java, C++, Python, PHP, VisualBasic a JavaScript;
  • skupina strukturálních jazyků: Basic, Fortran a Pascal;
  • multiparadigma: C#, Delphi, Curry a Scala.

Rozsah programů a aplikací

Výběr jazyka, ve kterém je konkrétní program napsán, do značné míry závisí na oblasti jeho použití. Tedy například pracovat se samotným hardwarem počítače (zápis ovladačů a podpůrných programů) nejlepší možnost se stanou C (“C”) nebo C++, které jsou součástí hlavních programovacích jazyků (viz seznam výše). A pro vývoj mobilních aplikací, včetně her, byste měli zvolit Java nebo C# („C-sharp“).

Pokud jste se ještě nerozhodli, kterým směrem pracovat, doporučujeme začít studovat s C nebo C++. Mají velmi jasnou syntaxi a jasné strukturální rozdělení do tříd a funkcí. Navíc se znalostí C nebo C++ se můžete snadno naučit jakýkoli jiný programovací jazyk.

Stejně jako vývoj výpočetní techniky nezastavuje, metody a programovací jazyky se neustále zdokonalují. Podívejme se, jaké jazyky existují v moderní době počítačové pole a jejich klasifikaci.

Obecná informace

Seznam programovacích jazyků je tak široký a rozmanitý, že jeho úplné rozložení je téměř nemožný úkol. Mezi všemi jazyky lze rozlišit tři hlavní podskupiny:

  • stroj (nízkoúrovňové programovací jazyky);
  • strojně orientované (montéři);
  • strojně nezávislý (vysoká úroveň);

Mezi moderními vývojáři softwaru jsou nejoblíbenější následující hlavní programovací jazyky. Seznam je uveden v sestupném pořadí podle oblíbenosti:

  1. Jáva.
  2. HTML.
  3. Visual Basic.
  4. Delphi.

Tento seznam programovacích jazyků není zdaleka úplný, ale jedná se o nejoblíbenější jazyky, jejichž znalost může být po programátorovi vyžadována při ucházení se o zaměstnání. Všechny z nich jsou programovací jazyky na vysoké úrovni.

Základy programování

Nízkoúrovňové programovací jazyky jsou jazyky, které vyžadují zvážení typu a schopností procesoru. Operátoři a způsoby ovládání těchto programovacích jazyků jsou velmi blízké strojovému kódu, vyžadují znalost paměťového zařízení osobní počítač a jak k němu procesor přistupuje.

Je těžké pojmenovat různé nízkoúrovňové programovací jazyky. Seznam bude stále zredukován na jeden dominantní jazyk – jazyk symbolických instrukcí. Protože vám umožňuje skládat programové kódy v notacích blízkých strojovému kódu, používá se assembler výhradně při psaní systémového softwaru, jako jsou operační systémy, ovladače zařízení a při programování řídicích kódů mikroobvodů.

Nevýhodou těchto programovacích jazyků je, že programy v nich jsou psány tak, aby vykonávaly specifické úkoly na konkrétním zařízení a jejich provádění je nemožné, pokud jsou přeneseny na jiný procesor.

Vývoj aplikací

Seznam programovacích jazyků k vytvoření vlastní aplikace, stejně jako pro vývoj a implementaci softwaru na zakázku, má tisíce pozic. Jak víte, taková rozmanitost je způsobena skutečností, že konkrétní jazyk je vhodný pro řešení určitých problémů.

Ačkoli tyto programovací jazyky definují samostatná skupina, jejich provádění probíhá ve strojovém kódu. K provedení hotový programřádek po řádku a jeho překlad do speciálních programů - tlumočníků. Pokud překlad programový kód Při převodu z jednoho jazyka do druhého bez provádění příkazů to dělají programy kompilátoru. Obecně se programy určené k překladu psaných programů z jednoho formálního programovacího jazyka do jiného nazývají překladače.

Podívejme se blíže na programovací jazyky na vysoké úrovni. Nebudeme dělat seznam, jen napíšeme trochu podrobněji o každém z nejpopulárnějších.

SQL

Specializovaný programovací jazyk je určen především pro práci se systémy pro správu databází a jejich programování. SQL se překládá jako „specializovaný“ Vzhledem k tomu, že trh DBMS v posledních desetiletích exponenciálně rostl, není popularita tohoto jazyka překvapením.

Existují různé názory na budoucnost tohoto jazyka. Rozhodně se má za to, že technologie pro vytváření relačních databází byla v celé své kráse, ale její čas se krátí. Potřeba rozvoje v souvislosti s narůstajícími objemy zpracovávaných dat vede odborníky k myšlence, že lidstvo v budoucnu prostě potřebuje přechod od relačních k postrelačním technologiím, ovšem se zachováním kompatibility se stávajícími databankami.

Javascript

Mezi programovacími jazyky na vysoké úrovni se právem řadí na druhé místo. Snadno se učí, pohodlné použití. Zvýšená adaptabilita na programování ve srovnání s jeho předchůdcem vede k tomu, že s tímto jazykem pracují miliony lidí po celém světě. Objektově orientovaný jazyk založený na C++, přizpůsobený k vytváření programů a aplikací schopných zpracovávat obrovské toky informací ve specializovaných prostředích a zohledňující specifika implementačního prostředí hotového produktu.

technologie Java- to je základ, který umožňuje v neomezeném množství rozšiřovat infrastrukturu podniků a společností, schopnou propojovat systémy různého kalibru, od připojení k telefonní síti přes Wi-Fi až po superpočítače.

XML

Tato technologie je potomkem HTML a je rozšiřitelným značkovacím jazykem. Je uzpůsoben pro tlumočení dokumentů. Provádí složité transformace a změny dokumentů. jazyk XML slouží k přenosu a dočasnému ukládání dat při práci s různými relační databáze přes internet.

XML již dosáhlo bodu, kdy může tvrdit, že je základní technologií pro budování podnikových sítí.

Programování v ruštině

Většina oblíbených programovacích jazyků používá anglickou slovní zásobu. Kromě nich však existují také ruské programovací jazyky. Seznam v ruštině je malý a předmět, ve kterém se používají, je velmi specializovaný. Uveďme pár příkladů.

  • 1C: Podnik. Celý systém, určený k řízení organizace ve všech oblastech činnosti. V pracovních inzerátech často najdete „1C Programmer“.
  • Sloveso. Obdoba anglického Pascalu.
  • Robik. Specializovaný programovací jazyk určený k výuce dětí základům programování.
  • Rapír. Jazyk založený na procedurách.

Jak vidíte, seznam programovacích jazyků je tak široký a rozmanitý, že jej nelze pokrýt žádnou klasifikací nebo seznamem. Pokud se rozhodnete věnovat programování na amatérské nebo profesionální úrovni, pak pamatujte, že programátor je kreativní povolání, které vyžaduje nejen znalosti, ale také fantazii, představivost, intuici a dokonce i trochu štěstí.

Různé programovací jazyky a jejich oblasti použití. Přednáška v Yandexu

Náš první letošní příspěvek jsme se rozhodli věnovat velmi základní téma, přednáška o které zazněla na Malém ShaD. Navštěvují ji středoškoláci, kteří se zajímají o techniku, proto ta specifičnost prezentace – přednáška zaujme především ty, kteří s programováním teprve začínají a přemýšlí, jakým směrem se dále rozvíjet. Pro ně má Yandex kurz „Úvod do programování (C++)“, který lze absolvovat na platformě Stepic.org.

Přednášející Michail Gustokashin je kurátorem akademických programů na Yandexu, ředitelem centra pro studentské soutěže na Fakultě informatiky Vysoké školy ekonomické. Michail vychoval desítky vítězů a vítězů celoruských programovacích olympiád.

Přednáška pojednává o tom, jaké programovací jazyky existují, jak se liší, jak se objevily a které jsou lepší a které horší. Na začátku si povíme něco o historii jazyků - jak se objevily, jak lidé začali programovat, jak se vše vyvíjelo, co se děje nyní. Druhá část se dotkne toho, pro jaké úkoly se který jazyk hodí, jak si „vybrat svůj oblíbený jazyk a užívat si života“. Lektor také něco málo povypráví o tom, jak se to vše podle jeho názoru můžete naučit a následně získat práci.

Jako vždy je pod střihem podrobný přepis přednášky, abyste se mohli orientovat v jejím obsahu.

Historie programovacích jazyků

Začněme od začátku. Na začátku počítače neměly ani klávesnice! To znamená, že všechno bylo velmi špatné - neměli klávesnici ani obrazovku, měli pouze děrné štítky (to jsou maličkosti s dírami nebo bez děr). Podle toho tam buď zapíchli špendlíky, nebo tam posvítili. Pokud je tam díra (nebo naopak ne) - znamenalo to nulu nebo jedničku. A programy se v té době psaly pomocí strojových kódů - pro každou operaci v počítači (sčítání, odčítání, některé další složité operace) existoval nějaký strojový kód. Lidé si sami vybrali tento kód z cedulky, všemožných adres v paměti, vše vyklepali rukama a vložili do čtečky – a vše se spočítalo. Samozřejmě, že práce programátora tehdy asi nebyla nijak zvlášť zajímavá - dělat díry - a s rozvojem vědy a techniky samozřejmě začali přicházet na nejrůznější „zajímavější“ věci. Například assembler, který už život poněkud usnadnil.

No a jak si usnadnil život? Místo toho, abychom si pamatovali, že pro příkaz existuje nějaký „magický“ kód, byly použity všechny druhy slov, která se podobala „lidské“ angličtině – některá přidat nebo přesunout – a pak registry nebo paměťové oblasti, proměnné, se kterými je bylo potřeba. byly uvedeny provádět operace. Ale je jasné, že to obecně vyžadovalo také dost mentálního úsilí udržet si v hlavě, v jakém registru co máme, kde jsou jaké proměnné a co se obecně děje. Proč se to stalo? Protože počítače byly „hloupé“ a nedokázaly pochopit nic „chytřejšího“. Sestavení strojového kódu z assembleru totiž vyžaduje i čas a paměť (tehdy toho samozřejmě bylo málo).

Postupně se ukázalo, že vývoj takto rozsáhlých komplexních programů je velmi obtížný. Produktivita programátora v těchto týmech byla extrémně nízká – to znamená, že psal několik řádků denně (smysluplné) a každý řádek nedělal nic zvláštního – nějaké jednoduché aritmetické operace. A lidé chtěli, aby se jazyky mnohem více podobaly lidské řeči, konkrétně angličtině, aby bylo psaní programů jednodušší a pohodlnější. A jedeme!

Staré a mrtvé jazyky

Jedním z prvních jazyků byl Fortran. Mimochodem, vyráželo se i na děrné štítky - na vysekávání fortranských programů existovaly speciální děrné štítky. Ale když si teď vezmeš tenhle Fortran, tak je to podle mě dokonce někde mezi 50-60. se objevilo - a pokud na to zkusíte něco napsat, budete velmi nepříjemní, to vám garantuji! Moderní Fortran stále žije, ale je zcela odlišný od toho, co byl předtím.

Jiné jazyky – teď napíšu jednu věc, o které jste pravděpodobně slyšeli jen na různých akcích, kde se mluví o historii programování – to je COBOL. Byl to jazyk pro psaní obchodních aplikací. Co jsou obchodní aplikace? Některé transakce v bankách, něco jiného, ​​to vše bylo napsáno v Cobolu. Samozřejmě to tu není moc oblíbené. Myslím, že v Moskvě budete velmi těžko hledat programátora Cobolu. A někde ne v Moskvě – s ještě většími obtížemi. Ale překvapivě právě před 10 lety byla více než polovina veškerého kódu napsaného lidstvem napsána v Cobolu. A dodnes se značná část všech bankovních transakcí provádí pomocí programů v něm napsaných (COBOL) a lidé do něj stále něco zapisují.

Existuje také „vtipný“ jazyk, jmenoval se Algol (68. verze, která charakterizuje rok svého vzniku). Tento algoritmický jazyk. Obecně tam něco dokázali, ale teď nás moc nezajímá, co umí. A tím můžeme zakončit exkurzi do starověku a do relativně nepoužívaných jazyků a přejít k tomu, co je stále živé (a aktivně žije).

Staré, ale živé jazyky

Algol byl vynalezen v Evropě a Fortran se používal hlavně ve Státech - nejsou tam žádné velké rozdíly. Jaký trend je patrný? Zpočátku bylo všechno složité a abyste mohli psát, museli jste být téměř inženýr, elektroinženýr, abyste pochopili, kde jsou které kontakty připojeny, a něco jiného pro programování. Pak jste také museli sedět s papírky a počítat vzpomínku, hlídat si ji. A postupně se vše zjednodušovalo, zjednodušovalo, zjednodušovalo a pro programátora pak ještě zjednodušilo – co nejméně myslet na člověka, co nejvíce dělat automaticky. Kolem konce tohoto období (přednášející ukazuje na Algol a Kobol) se začínají objevovat jazyky, které v jistém smyslu „přežily“ dodnes.

ZÁKLADNÍ. Možná na to někteří lidé stále něco píší, podle alespoň Viděl jsem, že v některých institucích učí v QBasic - je tam modré okno, kde je napsáno „1989“. Obecně platí, že „žije ze všech sil“! Byl vynalezen jako jazyk pro neprogramátory. V té době byl programátor taková velmi specializovaná profese. A tady vám řeknou: „Tady máme cool Základní jazyk a každý rozumný člověk to vezme a napíše na to program – je to snadné.“ Opět platí, že BASIC a moderní BASIC jsou obrovský rozdíl. Všechny tyto řádky očíslované po 10, všemožné GOTO a další hrůzy - s moderním BASICem už nemají nic společného a dokonce ani do BASICu z roku 1989 s ním mají pramálo společného.

Další úsměvnou historkou je jazyk Pascal, široce známý v univerzitních kruzích především v Rusku a zemích bývalého Sovětského svazu. Byl a stále je používán překvapivými způsoby. vzdělávací jazyk. Ve zbytku světa je méně častý, ale je také živý a zdravý. Existuje takový člověk jako Wirth - je to vědec, teoretik. Zúčastnil se diskuse o Algolu, nelíbilo se mu, co se stalo, a přišel s vlastním jazykem - Pascalem. A pak to vzala společnost Borland (a předtím mnoho dalších společností - konkrétně Apple) a všechno zničila. Měl krásnou, koherentní teorii – „všechno bude v pořádku“ – a oni ji vzali a nacpali do ní to, co lidé potřebovali k práci. No, nevyšlo to tak krásně, jak chtěl.

A nakonec... C vynalezli inženýři. Jestliže Pascal vynalezl vědec, pak C vynalezli Kernighan a Ritchie, pracovali jako inženýři v Bell. Jak se to stalo? V té době nebylo možné v těchto jazycích napsat nic systémového (přednášející ukazuje na Fortran, COBOL, Algol). Co je to „systémové“? Například operační systém, nějaké ovladače, něco jiného. Tyto jazyky byly určeny pro matematické výpočty, pro obchodní výpočty, pro to všechno. A vše ostatní bylo napsáno v Assembly. Některé jazyky byly, nyní jsou mrtvé, to znamená, že jazyk C se neobjevil okamžitě ze shromáždění, ale prostřednictvím některých přechodných věcí.

Jaký to má smysl? Kernighan a Ritchie si rádi hráli s hračkou Asteroids - mouchy kosmická loď, a tam jsou asteroidy, střílí na ně a ony se rozpadnou. Měli server, kde hráli, ale bylo tam hodně lidí a hračka byla pomalá. A někde ve své kanceláři zjistili, že mají nějaký počítač, který nikdo nepoužívá. Byl tu ale problém – měla jinou architekturu a hra byla napsána v Assembly.

Samozřejmě ho přepsali, dokonce přidali nějaké funkce, které na něm lze hrát. To je ale přivedlo na myšlenku, že přepisovat pokaždé na novou architekturu není moc chytré. A rozhodli se napsat vysokoúrovňový jazyk, který by byl vhodný pro systémové programování, tedy ve kterém by bylo možné spravovat paměť, ve kterém by bylo možné pochopit, kde co leží a jak se k těmto částem paměti dostat. . A tak se objevil jazyk C, který měl obrovský vliv na vše, co následovalo. Všechny (přednášející ukazuje na Algol, Fortran a další zmíněné jazyky) měly velký vliv, ale C - prostě ano...

V souladu s tím to byl hlavní jazyk v Unixu, operačním systému, který byl v té době ještě populárnější než nyní. A kolem 80. let byla situace asi taková (přednášející ukazuje Basic, C a další zmíněné jazyky). Řekněme, že tohle všechno už u nás pomalu vymřelo (přednášející maže zmínky o assembleru, fortranu a algolu)... A v 80. letech se počítače zmenšovaly, chytřely, zlevňovaly a lidé chtěli nejrůznější divné věci dělat život ještě lepším, žít ještě zábavněji.

Jazyky z 80. let

Jednou z prvních zvláštností bylo, že to byl jazyk C++. Jazyk C má obrovské množství nedostatků (no, prostě obecně obrovských) - můžete v něm dělat všechno, včetně střelby do nohy, střelby do nohy fikcí, do druhé nohy, střelby jedné nohy do druhé noha, obecně - co chcete dělat. Ale zároveň se tam některé architektonické věci dělají dost složitě – opět jako v Assembly musíme mít přehled o tom, kde jsme, co a jakou paměť máme přidělenou; Neustále někde „teče“ tato paměť – to znamená, že jsme ji alokovali, zapomněli ji smazat, smazali špatnou věc, překročili limity paměti, obecně – nadělali jsme spoustu problémů.

C++ byl původně vytvořen jako sada doplňků k jazyku C, které by usnadnily vývoj. V té době přišlo do módy objektově orientované programování a lidé se rozhodli, že vše lze popsat formou hierarchie, to znamená, že máte míč (abstrakt), zdědíte z něj fotbalový míč, volejbal, další abstraktní míč. . Tehdy bylo módní, že „teď píšeme všechno ve formě nějaké hierarchie a všechno bude v pořádku, život se zlepší, všechno bude v pořádku a hotovo“. C++ v jistém smyslu implementoval tento objektově založený přístup – nebyl to první objektově orientovaný programovací jazyk, ale stal se docela populární a začaly se v něm objevovat nejrůznější funkce. C++ si přitom zachovalo téměř plnou kompatibilitu (v té době) s jazykem C, program napsaný v C byl v 99 % případů úspěšně zkompilován jako C++ a dokonce fungoval stejně. To mělo usnadnit přechod z C na C++.

kromě objektový přístup(v C++) se poměrně rychle objevila standardní knihovna šablon (STL). Myslím, že ve škole ti, kteří se ještě učili Pascal, zjistili, že zaprvé nemáte vestavěné třídění (ve starověkém, modrém Borland Pascalu, nyní je již v moderních verzích) - existuje příklad (zdroj kód) řazení, lze jej kopírovat a vkládat. Ale pokud chcete třídit celá čísla zde, zde chcete reálná čísla, a zde jsou řádky, které lze vzájemně porovnávat, museli jste napsat tři různé druhy, které dělají přesně to samé, jen mají odlišné typy data. To není příliš dobré a šablony, které se v C++ okamžitě neobjevily, tento problém značně zmírnily. To znamená, že jste měli abstraktní program, který úspěšně třídil něco, co se dalo vzájemně porovnávat.

Skriptovací jazyky z 90

Čas se ale nezastavil, v 80. letech se událo mnoho zajímavého. Ale někde na přelomu 80. a 90. let se počítače staly tak dobrými, že bylo možné dělat velmi podivné a velmi neefektivní věci. Konkrétně se jednalo o skriptovací jazyky, které nebyly kompilovány do strojového kódu, ale spíše interpretovány. Nějakou dobu byl interpretován i BASIC, ale tyto skriptovací jazyky byly určeny hlavně pro zpracování textu - jsou to například Perl, Python (tenkrát to nebylo moc slavné), PHP, Ruby - to jsou skriptovací jazyky že v té či oné v různé míře stále žijí (všem se podařilo objevit před rokem 2000, dokonce mnohem dříve).

Pojďme si je trochu projít, protože to jsou specifické věci a dnes se používají na mnoha místech. co je to za nápad? Pokud nekompilujeme, můžeme si dovolit mnohem více. Program se například může podívat na svůj kód a nějak ho použít; ví, co se v ní děje a díky tomu dokáže spoustu zajímavých věcí.

Perl byl určen pro zpracování textu – v té době bylo v počítačích tolik paměti, že se tam dal nacpat nějaký text a udělat s tímto textem něco užitečného (například počítat slova, hledat). Ale podle mého názoru to bylo navrženo lidmi, kteří byli tak trochu blázni, protože je o tom vtip: „Jakákoli sada napsaných postav je správný program na Pearl." Podle mě se na to dá jen psát, nedá se to číst. Když se podívám na kód v Perlu a snažím se něčemu porozumět, nerozumím ničemu. Možná, že kdybych ho znal lépe, něco bych pochopil, ale jak jsem slyšel od lidí, kteří stále vědí jak, říkají, že je jednodušší to přepsat znovu. To znamená, že programy jsou krátké a je opravdu jednodušší je přepsat od začátku, než zjistit, co tam je, a opravit to.

Zhruba v té době, v polovině 90. let, se objevil internet. Nejdřív to byla pošta, weby se statickým HTML, ale lidé tam chtěli přidat nějakou dynamiku, aby se vše dělo dynamicky, mohly se vyplňovat nějaké formuláře, dělat návštěvní knihy a něco jiného. V souladu s tím to vyžadovalo určitou interakci, přišli s protokolem, jak interaguje, a co je nejdůležitější, s generováním těchto statických (podmíněně) stránek, které budou uživateli „vyplivnuty“ v reakci na jeho požadavek.

Obecně se v té době nehodilo nic jiného než Pearl. Psát handler v čistém C nebo C++ byl špatný nápad. A z nedostatku něčeho lepšího byl v té době (a po dlouhou dobu) oblíbený jazyk pro vývoj webových aplikací Pearl. Samozřejmě, že rozsah nelze srovnávat s tím, co se děje nyní.

PHP se objevilo jako... náhodou. Jeden člověk s tím docela rychle přestal – udělal si vlastní stránku, měl nějakou návštěvní knihu, něco jiného, ​​nějaké další věci. A napsal sadu některých maker pro Perl, která byla podobná C, protože věděl, jak používat C, jednoduše proto, že to pro něj bylo tak pohodlné. A nazval jsem to Osobní domovská stránka. Sdílel to a řekl: "Lidé, podívejte se na to, co jsem napsal, vše je zde mnohem jasnější než v Perlu a můžete to upravit." A lidem se to líbilo.

Pak se tohoto podnikání vzdal. Obecně lze říci, že díky tomu začalo toto PHP žít a stalo se postupem času mnohem populárnějším než Perl. Ale toto jeho „porodní trauma“ (koncipované jako sada maker pro Pearl) si z něj udělalo docela krutý vtip. Jazyk se ukázal divný. To znamená, že se to vyvíjelo samo, nikdo to nenavrhoval, nikdo neřídil vývojový proces (ani firma, ani nikdo), ale bylo mnoho skupin, z nichž každá pila, co se jí líbilo. Díky tomu se funkce jmenují jinak, chybí tam ani styl, vše je podtržené, v podstatě nahodilé, nastavení je tu a tam a jak to všechno bude fungovat, není moc jasné. Ale můžete si sednout a psát v PHP za dvě hodiny, protože to bylo zamýšleno.

Python a Ruby: Ruby je nyní méně populární, Python je nějak lépe „hoblovaný“, promluvme si o tom později. Je jasné, že v té době to byly (přednášející ukazuje na Perl, Python, Ruby, PHP) vysoce specializované jazyky pro vysoce specializované účely. Obecně nikdo nenapsal žádné systémové programování, žádná obchodní logika v nich v té době a nyní ani moc nedělá.

Kompilované jazyky z 90

Pojedeme ve stejných časech, ale jiným směrem. C++ jsme v té době používali skoro na všechno, co bylo potřeba napsat, ne pro web, ne pro zpracování textu, ale jen pro aplikace, pro operační systémy, pro hračky – obecně pro cokoli. Ale C++ je ve skutečnosti hrozný jazyk. Proč? Protože za prvé zdědil kvůli zpětná kompatibilita všechny problémy C. Pořád se tam můžeš zabít s milionem různé způsoby, stejné, které byly v C (přirozeně byly přidány nové metody v C++). Zároveň, pokud napíšete vše dobře a správně, jak bylo zamýšleno autory C++, pak už samozřejmě nebylo možné se zabít pomocí starých metod kódu C a zdá se, že jich je méně jim. Měl však velmi zvláštní, zvláštní objektový model. Rozdělení programu na moduly, na kousky nějakého druhu, obecně pochází z C (pokud víte, jak psát include v C nebo C++ - ve skutečnosti to bylo zamýšleno jako způsob, jak jednoduše vložit text knihovny do vašeho programu, do konec, když napíšete hromadu include, máte vše - pokud je to “primitivní”, jak to bylo na úplném začátku - vše se vloží do jednoho souboru a pak se to všechno strašně dlouho zkompiluje, protože to jde dokola Tentýž Pascal, Virtovský, byl v tomto ohledu mnohem promyšlenější, pozdější verze se staly ještě lepšími.

Obecně má C++ spoustu nevýhod. Programátor musel mít vysokou kvalifikaci, aby mohl psát v C++, a takoví programátoři byli drahí (a školení a ještě něco jiného, ​​to znamená, že je těžké najít programátory na trhu, je třeba je hodně zaplatit a obecně tohle je nejde o to...). A naše počítače počítají stále rychleji, zlevňují, lidé si kupují nové počítače a chtějí více aplikací, více hraček pro své telefony, obecně – více radosti.

Tak se objevila Java. Existuje také docela úsměvná historka o tom, jak tento jazyk dostal své jméno. Jsou tam programátoři, pijí kávu pořád a v té době bylo módní pít kávu, která rostla na ostrově Jáva. Jazyk byl koncipován jako jazyk pro vestavěná zařízení, zejména pro kávovar. Tak vznikl název...
Co u ní začalo, co bylo na ní dobrého a proč si získala takovou oblibu? Nejprve se úplně zbavili Sishnoiova dědictví. Neexistují žádné známky, mnohem méně způsobů, jak odstřelit nějakou část svého těla a všechno rozbít. Za druhé, představili mnohem více čerstvé nápady s ohledem na objektový model- to znamená, že C++ se objevil mnohem dříve než Java a používal archaičtější, „divoký“ objektový model. No a tady (přednášející ukazuje na Javu) už to bylo tenkrát promyšlenější a teoreticky lidé přemýšleli a v praxi vše aplikovali a udělali mnohem cool.

A konečně třetí. Naše Java programy nebyly zkompilovány do strojového kódu, ale do kódu pro virtuální stroj. To znamená, že jste měli virtuální stroj (VM) JVM - Java. Vaše programy byly sestaveny do jakési mezilehlé reprezentace a poté s pomocí tohoto stroje již byly provedeny. co to dalo? Za prvé se to zpomalilo, za druhé to žralo paměť strašnou silou, za třetí to bylo přenosné kamkoli (teoreticky) - i do kávovaru, dokonce i do mlýnku na kávu, dokonce i do počítače, dokonce i do mobilu. Na jednu stranu je to dobře, to znamená, že jste právě napsali implementaci virtuálního stroje a pak všude spouštíte své Java programy. Ale na druhou stranu je špatné, že ten samý telefon měl tehdy málo paměti, nízký výkon a to vše se také začalo zpomalovat a zpomalovat.

Ale to není ani to hlavní, pro co byl jazyk vynalezen. Jazyk Java byl vynalezen, aby snížil kvalifikační požadavky na programátory. To znamená, že horší programátoři umí psát dobré programy v Javě, protože vám neumožňuje psát špatné programy- neexistují žádné prostředky k psaní špatných programů. Tam můžete psát jen dobré programy. Tedy v chápání tvůrců jazyka.

To znamená, že pokud v C, v C++, v Pythonu, v čemkoli, dokážeme z našeho projektu vytvořit nějaké hrozné smetiště, kde máme všechno smíchané, celé hodiny sestavované a ještě něco. V Javě můžete také vytvořit smetiště, ale k tomu musíte vynaložit určité úsilí. To znamená, že to standardně není „skládka odpadu“, vyvstávají další problémy, že se něco zdědilo a zdědilo - obecně na jeden smysluplný řádek připadá deset nepříliš smysluplných. Ale takový středně kvalifikovaný programátor dokáže napsat poměrně kvalitní kód.
Už jsme skoro na konci. U nás se jako další objevil .Net (dotnet) a konkrétně nás zajímá C# (téměř to samé [přednášející ukazuje na Javu], tedy rozdíly v detailech, pokud si mezi nimi vyberete , podívejte se, kde platí více peněz).

A ještě jedna věc - JavaScript. Nemá nic společného s jazykem Java, objevil se ve stejném roce - slovo bylo módní, licencovali ochranná známka použít.

Na co si hlavně musíte dát pozor? (Přednášející kreslí šipky z C++ do Javy, .Net, C#, JavaScript a PHP). Chcete-li napsat jednoduchý program v jednom z těchto jazyků a v mnoha dalších - pokud znáte C++, obecně nepotřebujete znát nic jiného - napíšete v C++ a na začátku přidáte dolary, něco jiného udělá maličkosti a začne pracovat na čemkoli (přednášející ukazuje na jazyky, kterým byly přiřazeny šipky z C++). To znamená, že jsou si v některých jednoduchých věcech extrémně podobní. Pokud řešíte nějaké školní problémy, vzdělávací problémy nebo něco jiného (nenavrhujete velký projekt - máte jeden soubor, který čte čísla, zobrazuje čísla v konzoli a dělá něco jiného), pak není téměř žádný rozdíl mezi tyto jazyky. Je jasné, že JavaScript a PHP jsou specializované, vše je pro ně trochu jiné. Ale tady (přednášející ukazuje na Javu a C#) je rozdíl vůbec velmi malý.

Od té doby se objevily všechny možné další zajímavosti, ale není jasné, zda budou žít nebo úspěšně zemřít. Co nyní používají, k jakým účelům?

Výběr jazyka v závislosti na úkolu

Řekněme, že stojíte před úkolem napsat ovladač pro grafickou kartu. Jaký jazyk dnes použijete? (Křičte z publika: Java!) Proč... Java je skvělá, ale proč ne Ruby nebo PHP? (Přednášející mluví sarkasticky.)

Nízkoúrovňové programování

Pokud píšete něco nízkoúrovňového, pak Nejlepší volba- toto je C, ale ve skutečnosti jsem něco slyšel (ale neviděl), že se k tomu používá C++. Ale moc tomu nevěřím, protože v C můžete jasně ovládat - protože jste dali tolik bajtů paměti, znamená to, že jich bude tolik. A jak je v C++ (STL) implementován řetězec? No, nějak se to implementovalo. A nakonec nevíme, jak a co se tam děje; možná nám dojde paměť na naší grafické kartě nebo se stane něco jiného. Proto C stále žije a neumírá, takové systémové programovací úlohy stále existují - napsat operační systém, napsat ovladače, napsat něco jiného - C je na to skvělé. Nyní se navíc objevují nejrůznější zařízení (brzy se slibuje příchod internetu věcí), která fungují na baterie (a přirozeně jich budou miliony, vše bude pokryto tímto internetem věcí), měla by jsou velmi levné a mají velmi nízkou spotřebu elektřiny. V souladu s tím zde budou 2 KB paměti, 5 kHz procesor a je jasné, že budete muset zašroubovat nějaký druh virtuální stroj nebo skriptovací jazyk v blízké budoucnosti nevyjde - což znamená, že budete muset napsat něco v C. A ani teď tam například není vynalezeno počítání na grafické kartě (OpenCL nebo nějaká jiná technologie). nový jazyk psát pro ně programy - C tam dělají s nějakými velkými omezeními. Jen proto, že lidé už vědí jak, proč se učit něco nového? Formálně je to pravděpodobně také v jistém smyslu C.

Webové programování

Řekněme, že chcete psát nový Facebook (sociální síť). Na co to budeš psát? (Lidé z publika mluví o HTML a CSS.) HTML a CSS jsou design a my chceme, aby tam bylo možné přidávat fotky, přátele a zanechávat komentáře.

Pro skriptovací část – tedy to, co se bude dít na straně klienta – je to JavaScript. Navíc se někdy JavaScript vygeneruje v jiném jazyce a odešle (stane se, že se skript vygeneruje... protože je někdy jednodušší zpracovat nějaké změny v logice).

Překvapivě je napsán v PHP – a Facebook a mnoho dalších velkých projektů. Museli si samozřejmě napsat nějaké své věci, aby to stále fungovalo normálně a ne nějak „ohrabaně“, ale zvládli to. V zásadě je víceméně jedno, co píšete, ale Perl nedoporučuji. Tady a teď samozřejmě nikdo nic nepíše pro web od nuly. Každý píše nějaký rámec nebo něco jiného. Internetový obchod? Stáhli jsme si framework pro internetový obchod – a to je vše, napsali jsme internetový obchod.

Programování pro podnikání

Dále chcete napsat nějakou nudnou aplikaci pro banku. Nebo máte například někoho, kdo prodává SIM karty? Možná jste si někdy koupili telefon nebo něco jiného a bylo vám řečeno: „Systém visí, nemůžeme nic dělat.“ Co použijete k napsání takové aplikace? (Křičet z publika o Pythonu) Tohle nemůžete napsat v Pythonu, co to říkáte?! Pro podnikání v Pythonu není potřeba nic psát. Proč? Protože když něco píšete v Pythonu, je nemožné během procesu psaní odhalit významný počet chyb. Python se všemožně dynamicky typuje a obecně se dá chyba schovat tak, že vyskočí v takové situaci, že ani nebudete rozumět, co tam ti křiví uživatelé dělali, že všechno je zlomený pro tebe. To znamená, že v Pythonu je lepší psát malé skripty pro sebe - rozumíte tomu, co se tam děje a co se dělá. No, nebo něco, co vám nevadí vyhodit: chcete něco uvést na trh dříve než vaši konkurenti, tak co když to tu a tam praskne. Napsali jste v Pythonu a to je vše - zachytili jste trh. A když třeba něco píšete dlouho bankovní aplikace nějaký druh (aby to schvalovalo půjčky, něco jiného) - píšeš to v Javě. Protože to je vážná věc, papíry, peníze, doklady, ještě něco, ale nejde to tak podělat, aby se všechno rozbilo, jinak se lidi urazí - peníze jim odešly a nikam se nedostaly, protože v nějakém v okamžiku, kdy se řetězec proměnil v číslo nebo naopak. Takže to znamená, že to metodicky vezmeš v Javě a píšeš, píšeš... No, nebo na .Netu se takové situace v zásadě také stávají. Tam samozřejmě můžete také narazit na problémy, ale pravděpodobnost je stále o něco nižší.

Programování pro armádu, letecký průmysl

A teď si představte, že se rozhodli poslat vás na Měsíc v raketě. Co byste raději použili k napsání kódu, který ovládá raketové motory? Pojďme se podívat. To asi (přednášející ukazuje Perl, Python, PHP, Ruby) za to nestojí - zpomaluje se, děje se něco jiného a obecně bych s létáním na takové raketě nesouhlasil. V C++? Abych byl upřímný, ani bych tomu nevěřil, protože v C++ je příliš mnoho způsobů, jak se zabít. Když jste někde ve vesmíru, není to moc dobré.

Možná v Javě? Zdá se, že vše je tam docela spolehlivé a architektura dobrá, žádné divoké typy, žádné zbytečné výlety za limity paměti. Řekněme, že nastal ten nejzásadnější okamžik a naše Java se rozhodla, že za nás bude sbírat odpadky. Musíme přistát, zpomalit a ona říká: "Ne, odpadky jdou." Obecně také ne moc dobré.

Upřímně, byl bych raději, kdyby tento program byl napsán v Pascalu. Samozřejmě nemám Pascala rád, ale v takových věcech by to bylo velmi cool.

Použití více jazyků pro vývoj softwaru

No, co je potřeba říct moderní jazyky. Nyní mnoho projektů nežije v jednom jazyce, to znamená, že některé z nich žijí v jednom jazyce, některé v jiném a některé ve třetím. Pokud máte například nějakou webovou aplikaci, která zpracovává divoké množství informací, volání na disky (ani do databází, ty jsou tak obrovské, že ani tamní databáze nezvládne žádnou již napsanou) jsou pravděpodobně zapsána v nějakém pak nízkoúrovňové C, aby bylo možné divoce rychle zapisovat na disk a tak dále. Přirozeně nemá cenu psát celý projekt v C. Možná existuje nějaká střední logika napsaná v Javě, která volá funkce C pro rychlá volání. No, frontend (to, na co se uživatel dívá), je samozřejmě už v něčem napsán, v nějakých skriptech, v něčem, co přímo spouští prohlížeč (JavaScript). A to vše spolu žije a úspěšně interaguje.

Co lidé někdy dělají při vývoji některých aplikací, i těch velkých? Vezmou to a napíšou prototyp v Pythonu (jak to všechno bude fungovat), načrtnou to, promyslí nějakou architekturu. Psaní na něm je opravdu velmi rychlé - dali dohromady prototyp, experimentovali s ním a řekli: „Wow! To je tak hustý!" A úplně to přepsali. Zdálo by se, že tu práci udělali dvakrát, takže to trvalo dvakrát tak dlouho (dobře, jeden a půl). Ale ne! Často se ukáže, že tato metoda není špatná, protože když hned něco napíšete, například v Javě, a pak se rozhodnete: „Ne, pojďme refaktorovat, úplně změnit architekturu a tak,“ utratíte 10krát více čas . I takové věci existují a žijí.

Podmínky úspěchu jakéhokoli programovacího jazyka

Nyní si promluvme o tom, proč některé dobře vypadající jazyky nepřežily nebo nežily ve velmi omezeném prostoru. Když Wirth viděl, jaké špatné společnosti Apple, Borland a vše, co udělalo s jeho Pascalem, přišel s ještě lepším jazykem – Oberon. Bylo to prostě divoce minimalistické - to znamená, že tam bylo velmi málo příkazů (Řetězce? Proč potřebujeme řetězce? Vytvoříme pole znaků!). No, něco mu nevyšlo, do té míry, že by to vyjít mohlo.

Ještě jedna věc. Americká armáda je požádala, aby vyvinuli skvělý jazyk, ve kterém vše funguje a vše lze napsat. Výsledkem byl dost zrůdný jazyk Ada, ve kterém však stále něco píšou, ale zase jen pro armádu.

Co je za problém? Proč některé jazyky jako Python, které zpočátku žádná společnost nepodporovala, převzaly trh. PHP, které je také špatně navržené, si trh (většinu) také převzalo samo. A všelijaké miliardy dolarů byly investovány (přednášející ukazuje na Adu) a nikam nešly, nic se nedělo. S čím to souvisí? Je to dáno tím, že kolem těchto jazyků neexistuje žádná infrastruktura. To znamená, že jazyk může být vynikající, ale zatím neexistuje žádná dokumentace, neexistuje komunita, která by mohla odpovídat na otázky (na Stack Overflow) a konečně, co je nejdůležitější, neexistuje velké množství knihovny, jazyk nevystřeluje. To znamená, že jste například chtěli napsat webovou stránku na Oberon. Co to je, proč ne? A potíže začínají... Na Oberonu si nemůžete nastavit svůj vlastní webový server, abyste jej lehce otestovali, nemůžete připojit žádné knihovny, protože Oberon je nemá. A to všechno se dělá přes nějaké berličky, síla jde stranou a celkově to vzdáte a napíšete svůj web v čistém C místo Oberonu. A jazyky, které žijí dobře, jsou ty, které vědí, jak používat knihovny z jiných jazyků. Stejný Python v těch místech, kde se zpomaluje. Obecně platí, že všechny druhy standardních věcí, jako je třídění a něco jiného, ​​jsou napsány v C a on (Python) s nimi může interagovat.

Java má také nativní rozhraní Java. Toto je v podstatě C, to znamená, že tam (podle mého názoru to vždy chtějí zakázat, ale zdá se, že to ještě nezakázali) tyto jazyky mohou interagovat s již existujícími knihovnami (hlavně C). A kvůli tomu to berou a pracují. Myšlenka, kterou se vám snažím sdělit, je jasná, že? Nepište v jazycích, které nepodporují knihovnu C. No, pokud chcete použít něco skvělého. No, postupně (jazyky) získávají svou vlastní infrastrukturu. A žijí tak nějak dobře.

Programovací jazyk a kariérové ​​poradenství

Nyní si promluvme o tom, jak porozumět tomu, co v životě chcete. Jaké jsou nejlepší věci? Můžeš dělat nějaké systémové programování, že? Je pro vás skvělé počítat tyto kousky, chcete spustit kvadrokoptéry, nějaký druh kamer a dělat něco jiného. Pak je pravděpodobně vaše volba C.

Pokud chcete psát, možná ne ty nejzajímavější aplikace v životě, ale je pro vás skvělé je navrhovat, přemýšlet o tom všem a vydělávat spoustu peněz za to, že většinu času sedíte a nudíte se (za tohle musíte zaplatit pokud jste dobrá slečna), tady jsou - Java, .Net. Jdeš pracovat do nějaké banky, píšeš, chodíš do práce v devět v bílé košili, dostaneš dobrý plat a píšeš podle doporučení nejlepších Java vývojářů, oveček .Net a toho všeho...

Pokud chcete psát nějaké aplikace, nějaký prohlížeč, nějaký druh hraček nebo něco jiného, ​​pak je C++ skvělé. Pokud chcete psát weby, tak tady jsou, jazyky dle vašeho výběru (přednášející ukazuje Perl, Python, PHP, Ruby), není velký rozdíl. Jediná věc je, že PHP zemře dříve než Python, takže pokud jste líní učit se nové věci, naučte se Python. Moc rozdílu nepoznáte, ale déle vydržíte.

Co se děje s Ruby, je také nejasné. PHP můžete dělat, pokud jste se ho již naučili, naštěstí je to tak jednoduché, že opětovné naučení netrvá tak dlouho.

A konečně je tu další oblast použití programovacích jazyků - to je, když je používá neprogramátor. Řekněme, že jste matematik, fyzik, chemik, analytik, kdokoli a potřebujete rychle něco spočítat, analyzovat nějaká data (pro biology například, kolik polárních lišek žije na Velitelských ostrovech). To vše můžete dát do tabulky v Excelu nebo to něčím analyzovat. K tomu je dobrý i Python, umí pracovat s textem a je tam spousta knihoven, statistických a toho všeho. Pokud chcete dělat nějaký druh strojového učení, zpracovávat nějaká data, dělat předpovědi, pak se to nyní také dělá v Pythonu nejrychlejším způsobem. Je pravda, že je třeba poznamenat, že úkoly jsou velmi odlišné. Například, pokud chcete okamžitě obchodovat na burze v podmínkách, kdy se kotace neustále mění, pak bez ohledu na to, jak cool Machine Learning napíšete v Pythonu, lidé, kteří to mají napsané v něčem rychlejším, budou mít čas nakoupit všechno před Všechno budou započítány za vás, i když jsou jejich algoritmy horší. Takže i tyto úlohy strojového učení (některé z nich) vyžadují vysoký výkon(a extrémně vysoké), a tedy i jiné jazyky.

Jediný způsob, jak pochopit, co chcete, je vyzkoušet všechno. Teď to řeknu jako jednu z vizí, jak si všechno můžete vyzkoušet. Jak se stát programátorem a šťastným? Tak. S čistý břidlice začít. Zde se ve škole učíte matematiku, ruský jazyk a další povinné i volitelné předměty a na tabuli (lektor ukazuje na prázdnou tabuli) se momentálně promítají vaše znalosti z oblasti programování. A chcete se stát šťastným člověkem, dělat to, co milujete, vydělávat spoustu peněz a nic si neodpírat a být šťastný.

Jeden způsob, jak toho dosáhnout. Existují samozřejmě nejrůznější inspirativní příběhy o lidech, kteří vůbec nechodili na vysokou školu, nebo ji opustili a stali se miliardáři, majiteli firem a podobně. Ale je třeba poznamenat, že většina lidí, kteří se možná nestali miliardáři, ale také si žijí dobře, v určitém okamžiku vystudovala univerzitu.

Jaká je situace s přijetím na vysokou školu (v současné době školu studujete)? Zatímco jste ve škole, musíte pochopit, že dalším krokem je zapsat se a postarat se o to. Složte jednotnou státní zkoušku nebo vyhrajte olympiádu. Na Unified State Exam můžete použít Pascal, C++ (včetně čistého C), Python (nebudu je dále zmiňovat). Na olympiádě je stejný Pascal, stejný C++, stejný Python (nyní si povíme o jeho problémech) a nejčastěji Java. V závislosti na olympiádě se dějí i další věci, ale o to nejde.

Jak vypadá graf rozložení jazyků? Všeruská olympiáda v informatice? Lidé, kteří se účastní All-Russian, nejlepší olympiády, v čem píší? Vypadá to takto (zde to znamená Pascal a tady je to asi 2000 a tady je to asi nula, tady je to C++ a tady je to 2015).

V roce 2000 skoro nikdo nepsal C++. Uplynulo 15 let a téměř nikdo nepíše v Pascalu, přestože Pascal je moderní. To je jazyk, který umí skoro všechno stejně. Je to tak, že všichni jsou příliš líní se to naučit, každý nový trend a dál všechno píší v Borland Pascal, který samozřejmě nemůže nic dělat. V C++ lidé píší nějaké algoritmy (STL) pro třídění - skvělé, napsali sort() a je to. Na Pascalu, na běžném, na starém - to je problém. Napsali jsme nějakou sadu (byla potřeba) - super, psali jsme to v C++, ale v Pascalu to byla zase naprostá bolest. Samozřejmě to můžete udělat s novými Pascaly, ale obecně stojí peníze. Možná jste si toho nevšimli, ale je to tak.

Existuje také Java, ale Java má spoustu písmen. Je to pro velké projekty, ale pro malé jednorázové programy to dopadá velmi špatně, protože je tam spousta písmen navíc. Ale někteří lidé také píší, můžete se na tom naučit psát. Ale není to na jednotnou státní zkoušku a většina bude muset ještě složit jednotnou státní zkoušku.

Co je nejlepší pro jednotnou státní zkoušku? U jednotné státní zkoušky je nejlepší (pokud nic neumíte a ve škole vás nic nenaučí) naučit se Python. Některé zkouškové problémy se na něm dají skvěle vyřešit. Na olympiádě se obecně ukazuje, že se používá C++, protože Python je hodně pomalý, ne všechno se tam řeší.

Takže jste studovali nějakou malou podmnožinu jazyka a některé algoritmy (možná) a vyřešili mnoho problémů, abyste získali diplom ze své olympiády a vstoupili na univerzitu, abyste získali vyšší vzdělání.

Nyní budu mluvit o tom, jak strukturujeme kurz na HSE, v jakém pořadí se jazyky vyučují, jak se studují v aplikované matematice a informatice na Fakultě aplikovaných věd, což děláme společně s Yandexem. V prvním semestru - Python (ne v plně, přibližně tak, jak byste se měli učit ve škole) a C++ (již širší, mnohem širší, než se běžně ve školách vyučuje). Abyste se nebáli, hned vám to řeknu, když se najednou budete chtít zapsat, řeknete si: „Co, já už to všechno vím, proč bych měl jít někam studovat? Radši půjdu jinam." Pro ty, kteří již umí dobře programovat, je tu možnost okamžitě přejít ke studiu algoritmů a to v celkem teoretické přípravě. Teď se na ně nedíváme, tohle (ukáže na tabuli) je pro ty, kteří jsou středně pokročilí nebo vůbec neprogramátoři.

V prvním semestru se učí základy Pythonu, jen aby se lidi naučili programovat a aby to nikoho moc nepohoršovalo. Python se ve školách vyučuje jen zřídka; většina lidí přichází se znalostí Pascalu nebo C++. Většinou dokonce Pascal, pokud se jedná o masovou školu. No, aby se nikdo nepohoršoval, každý se učí nový jazyk (jakoby ve stejných podmínkách). A C++ jednoduše proto, že z C++ pak můžete jít kamkoli.

Poté následuje kurz Algoritmy a samostatný projekt kurzu. Klasické algoritmy s implementací. Není to tak, že bychom vzali něco teoreticky a vypočítali složitost. Na přednášce jsme to vzali, vypočítali složitost, na semináři jsme to vzali a implementovali algoritmus. Projekt je místo, kde studenti něco dokončí. Jeden z projektů byl například: počítejte... Řekněme, že máte v Moskvě hodně bytů a rozumíte: „Ach, mám spoustu věcí navíc, nějaké pronajmu. A stanoví určitou cenu a z nějakého důvodu si od vás nikdo nechce pronajmout byt - pravděpodobně je to příliš drahé. Nebo stanovili nějakou cenu, hned vám to vzali a vy si říkáte: „Ach, asi jsem to prodal levně“ – a taky se rozčilujete. To znamená, že bylo nutné spočítat, kolik stojí pronájem bytu? Zadáte údaje – vytvoří vám odhad. Takový web, který se skládal z několika věcí: vzít věty, analyzovat je, použít nějaký druh (pravděpodobně) jednoduchého algoritmu strojového učení a vytvořit krásnou webovou tvář, ve které můžete něco vybrat, něco zadat, nějaké metry, nějaký počet místností , počet saun, počet jacuzzi ve vašem bytě a zhruba odhadněte náklady. Tedy nějaký hotový, ne moc složitá věc. Zde to znamená (přednášející ukazuje na kurz o algoritmech) takové jádro C++, s konzolovým vstupem a výstupem. No a tady (přednášející ukazuje na nápis „projekt“) něco pod vedením mentora, možná s databázemi, možná s parsováním textu a něco jiného.
Pak je tu třetí semestr - to je kurz s názvem „Počítačové systémy“. Je tam docela dost jazyka assembleru k pochopení (velmi málo) a pak něco podobného čistému C a interakci s operačními systémy, v podstatě systémové programování. A projekt na seminář je i něco na téma všemožných síťových interakcí, docela nízkoúrovňový: vyvinout nějakou utilitu, třeba rsync (synchronizace, možná víte. V čistém C víceméně napište analog rsync, který budete mít přes síť synchronizovat složky se všemi přístupy k souborům a tak dále).

A konečně čtvrtý. Ani nevím, jak to nazvat, je to taková vinaigretta technologií nezbytných pro skutečný vývoj, například vývoj webu. Tedy toto praktické využití databáze, opět něco podobného, ​​co se dělalo v projektu (přednášející ukazuje na projekt 2. ročníku), ale více do hloubky. Čili jde o víceméně konkrétní věci, praktické programování. Paralelně s tím existuje každá teorie a tady také dělají vědu.

A po dvou kurzech se lidé pustí do toho, co je zajímá, protože tato věc pokrývá základy programování poměrně široce a v této době už lidé chápou, že za žádných okolností nechtějí pracovat s počítačovými systémy (neměli jako systémové programování, například), ale chtějí pracovat na nějakých teoretických algoritmech, počítat složitosti, přijít s nějakými novými věcmi, distribuovanými nebo něčím jiným. Nebo si naopak myslí, že toho tu moc nemají ( přednášející ukazuje na řádek prvního kurzu s Pythonem a C++) šel, pak ( lektor ukazuje na třetí linii kurzu se systémovým programováním) - Nelíbí se mi to počítání bajtů a nastavování nejrůznějších omezení na čtení a zápis, vytváření streamů, vláken a něčeho dalšího. A v souladu s tím si lidé vybírají směr a studují. To je v zásadě proto, aby se u vás nerozvinul „syndrom káčátka“ – byli jste první, kdo viděl svého Pascala a nyní říkáte „Pascal je síla“; nebo pokročilejší - viděli jste C++ a začali o všech mluvit, že C++ je silné, ale všechno ostatní není moc dobré.

Nyní se na to musíme podívat (lektor ukazuje na seznam předmětů na tabuli) šířeji - to je jedna z metod, která byla zvolena zejména na HSE (objevila se nedávno, takže je docela moderní). Jsou i jiné způsoby, jak se seznámit. Na jiných dobrých univerzitách je pořadí trochu jiné a kladou se jiné akcenty. Ale také se snaží lidem představit vše, co mají.

Jak hledat práci programátora

Ty jsi ( lektor ukáže na seznam kurzů) dělal všechno, studoval VŠ, dělal něco jiného dva roky produktivněji a je potřeba jít do práce. Jak si vybrat něco do práce? Za prvé, se vším jste se seznámili, zašli někam hlouběji a už víte, co máte rádi. Musíte si vybrat, co máte rádi, přirozeně. Protože pokud milujete, dáte si námahu, budete mít motivaci a obecně bude vše v pořádku. Protože nejde jen o peníze, jde o to, aby to pro vás bylo zajímavé a příjemné. No, chcete se dostat do skvělé společnosti a získat práci. Jakého člověka bych osobně rád viděl? Řekněme, že za mnou přijde sto studentů – mám zaměstnat dva nebo jednoho. Proč přicházejí, vůbec nechápu, kdo jsou, co jsou, jak se mají? V nejlepším případě mi ukážou diplom, který dostali na univerzitě, a já řeknu: "Wow!" To je skvělý diplom, ale tohle není tak cool!” A mimochodem, mohu se mýlit. Možná měl ten člověk spoustu volného času a mnohem lépe se učil.

co by bylo skvělé? Za prvé, nějaký open source projekt, který jste napsali od začátku do konce. Nejlépe, pokud vytvářím nějakou infrastrukturu, aby bylo možné rychle číst data, nebo něco jiného, ​​pak bych měl samozřejmě zájem nechat si napsat něco jako open source. Neudělali web, ale něco k tématu. Proč mě to zajímá? Mohu se podívat na váš kód, vidím, jak často jste se dopouštěli, vidím, jak jste reagovali na chyby od uživatelů, chyby od vývojářů, kteří jej používají – vše se zaznamenává, podívám se na všechno a pomyslím si: „Wow, tato chyba hasn Už jsem tam dva roky nebyl.“ uzavřeno, zde jste uživateli odpověděli nezdvořile, tady je něco jiného – neberu to.“ To znamená, že toto je váš osobní projekt.

Dále, co jiného by bylo skvělé? Chtěl bych vidět, jak jsi dopadl týmová práce. To znamená, že za mnou přijdete na pohovor a řeknete: „Kluci z univerzity a já jsme podali dobrou žádost. Dělal jsem tam databázi, dělali tam nějakou mobilní aplikaci a taky jsme tam měli kluka, designéra, kluka na technické podpoře. Bylo nás pět a vytvořili jsme skvělý projekt.“ No, vidím, že je to opravdu váš projekt, říkám: "Jaký je tvůj?" Znovu se podívám na kód a pochopím, že umíte pracovat v týmu s lidmi.

Programátor není ten, kdo sedí sám (indie) v garáži, někde se zhasnutými světly, s nikým nemluví, nechává si narůst vousy a píše. Stále existuje určitá interakce s lidmi. Třeba s šéfem, který vám může občas nadávat (šéfové, takoví jsou, nejsou vždy laskaví). A vidím, že umíte pracovat s lidmi a dělá mi radost, když ano dobrý tým nějaký druh I když to není dobré, je to lepší, než žádný nemít.

Co bych si osobně ještě přál? Pokud jste se ukázali velké projekty. Například jste provedli něco v linuxovém jádře, pokud se zabýváte systémovým programováním, a opravili jste nějakou chybu. To znamená, že ukázali, že víte, jak číst kód někoho jiného, ​​a víte, jak v něm provést nějaké změny. Podívám se: "Oh, opravdu, přišel jsi na něco složitého a opravil jsi nějaké chyby!" A začínám z toho mít velkou radost. Protože jsem... no, já nevím... můj programátor skončil, protože mu jeho konkurenti nabídli vyšší plat, a já naléhavě potřebuji někoho, kdo by obsadil jeho místo – u vás. Vidím, že jsi psal jen od začátku, ale neumíš číst a upravovat kód někoho jiného, ​​a jsem naštvaný.

A nakonec, v závislosti na konkrétní pozici, existují různé další věci. Pokud získáváte práci jako analytik, rád bych, abyste vyřešil problémy s analýzou dat na Kaggle. Pokud žádáte o nějaké algoritmické věci, rád bych, abyste udělali nějaké algoritmy ve sportovním programování. A nakonec, pokud jste přemýšleli o profesi, přečetli jste si, jak probíhají pohovory, viděli jste, že někteří lidé tam vyjadřují velkou nespokojenost: „Přišel jsem a zeptali se mě, jaký je můj koníček. Sedím jako sova a neodpovídám, protože nemám koníčka,“ a myslí si, že tohle dělají HR. Ve skutečnosti se snaží pochopit, jak přátelští a adekvátní jste. Pokud jste nepřátelští a neadekvátní, pak bez ohledu na to, jak jste geniální a workoholik, tvrdý specialista s velkými znalostmi, bude pro tým těžké s vámi spolupracovat a projekt sami nezvládnete. Navíc, i když ho vytáhnete, dokážete si představit, jaká je pro firmu zátěž. Co když zítra přijdeš a řekneš: "Zvyš mi plat 10krát, jinak tě opustím." Je jasné, že firmy se v takové situaci nechtějí ocitnout. Pěstování přiměřenosti a dobré vůle je proto v sobě samém stejně důležité (minimálně) jako rozvoj některých odborných dovedností.

Abychom to shrnuli, co můžeme říci? Které jazyky jsou dobré a které špatné? Co byste si měli vybrat v rámci určité skupiny jazyků, například mezi Ruby, Pythonem a PHP? Správná odpověď je samozřejmě Python, ale ve skutečnosti je rozdíl mezi nimi v počtu povolených chyb, v počtu něčeho jiného - 5%, dobře, možná 10%. Tedy pokud již máte hotový projekt napsáno v PHP, nikdo se zdravým rozumem by neřekl: "Přepišme všechno v Pythonu." Řeknou: "Najmeme více vývojářů PHP a budeme pokračovat v psaní v PHP." Super, to je dobrá volba. Je jasné, že pokud se náhle rozhodnete napsat nějaký druh projektu, pak by mohlo být moudré zvolit Python nyní. I když, to také záleží. Možná máte na trhu spoustu levných PHP vývojářů a ty Pythonové jsou drahé a říkáte si: „Ano, technologie je lepší, ale ušetřím peníze za hotové vývojáře.“ A všechno je skvělé, už tam přicházíte a pracujete.
Jak si vybrat mezi Java a C++? Ano, děje se zhruba to samé. Myslím si, že v době, kdy se rozhodnete, v jakém jazyce začít nový velký projekt, získáte znalosti ve svém profesním oboru a budete schopni správná volba. Nyní tuto volbu ještě nemusíte dělat, a tak vám radím, abyste dělali, co chcete.

Základy, jak jsem již řekl, úplně, úplně základy programování (co je funkce, co jsou if’ics, for’ics, pole, něco jiného) se dá naučit víceméně v jakémkoli jazyce. Například v C++, protože s ním je mnoho podobností a je v něm nejméně specifik (na této úrovni) a je zde nejméně písmen navíc k psaní. Když se tedy naučíte nějaké složité architektonické věci, naučíte se a nemusíte se tím příliš zabývat. Čili hlavní je zkoušet, hledat co se ti líbí a když si uvědomíš, že už jsou 4 hodiny ráno a ty sedíš a píšeš pro zábavu, protože se ti to líbí - asi v tu chvíli je jasné, že jsi našel to své.

Uživatelé Recoursia se často ptají, který programovací jazyk stojí za to se naučit. Pro ty, kteří se rozhodují pro svůj první programovací jazyk, jsme připravili krátkého průvodce. Rádi bychom upozornili, že to není myšleno jako komplexní – je to jen velmi rychlý pohled na to, co dnes vývojáři dělají a který programovací jazyk může nebo nemusí být první.

Jeden z poměrně oblíbených webových programovacích jazyků, který však na běloruském trhu práce není vždy schopen zajistit svému rodilému mluvčímu dobře placenou práci. Kurzy Ruby se sotva vyplatí studovat, abyste zvládli první programovací jazyk, protože s vysokou mírou pravděpodobnosti bude hledání zaměstnavatele zpožděno, protože volná místa pro junoiry v Ruby se objevují poměrně zřídka.

Ještě před pěti až sedmi lety bylo Delphi standardním prvním programovacím jazykem – samozřejmě, protože jazyk Pascal, který je předchůdcem Delphi, byl vynalezen pro výuku programování školáků a studentů. Ale pro skutečný život je Delphi již velmi špatně vhodné, protože programování na něm platí výrazně podprůměrně a nové velké projekty V tomto jazyce to nenajdete. Proto doporučit