Základy programovania: pojmy, definícia a pojem. Základné koncepty programovania Všetky časti programovania

Teoretická časť akejkoľvek vedy je založená na metódach matematického výskumu. To platí aj pre informatiku. Využíva metódy matematiky na konštrukciu a štúdium modelov spracovania, prenosu a použitia informácií, vytvára teoretický základ, na ktorom je postavená celá budova informatiky.

Informácie sú svojou povahou diskrétne a zvyčajne sú reprezentované v symbolicko-digitálnej podobe v textoch a v bodkovanej podobe na obrázkoch. Z tohto dôvodu je informatika veľmi rozšírená matematická logika ako odvetvie diskrétnej matematiky. Ďalšie smerovanie teoretickej informatiky - výpočtová matematika , ktorou sa rozvíjajú metódy riešenia problémov na počítačoch pomocou algoritmov a programov.

Pododdiel teória informácií (ako aj teória kódovania a prenosu informácií) študuje informácie vo forme abstraktného objektu bez konkrétneho obsahu. Skúma všeobecné vlastnosti informácií a zákony upravujúce ich vznik, vývoj a zničenie. Študuje tiež formy, v ktorých je možné zobraziť obsah akejkoľvek konkrétnej základnej informačnej jednotky.

Analýza systému - ešte jeden smer teoretickej informatiky. Študuje štruktúru skutočných objektov, javov, procesov a prostredníctvom informačných modelov určuje spôsoby ich formalizovaného popisu. Simulačné modelovanie - jedna z najdôležitejších metód počítačového modelovania, pri ktorej sa reprodukujú procesy a javy vyskytujúce sa v skutočných objektoch.

Nakoniec teória rozhodovania študuje všeobecné schémy pre výber správneho riešenia z rôznych alternatívnych možností. Táto voľba sa často vyskytuje v kontexte konfliktu alebo konfrontácie. Modely tohto typu sú študované v herná teória.Obrázok 1 Podmienené znázornenie štruktúry informatiky vo forme mapy:

Umela inteligencia

Tento smer informatiky je najmladší, objavuje sa v polovici 70. rokov. Je to však umelá inteligencia, ktorá určuje strategické smery rozvoja počítačovej vedy. Umelá inteligencia úzko súvisí s teoretická informatikaodkiaľ si požičal mnoho modelov a metód, napríklad použitie logických prostriedkov na transformáciu vedomostí. Väzby tohto smeru s kybernetika. Matematická a aplikovaná lingvistika, neurocybernetika a homeostatika úzko súvisí s rozvojom umela inteligencia... A samozrejme, práca v tejto oblasti je bez rozvoja nemysliteľná programovacie systémy(obr. 1).

Obrázok: jeden

Hlavným cieľom práce v oblasti umelej inteligencie je túžba preniknúť do tajov tvorivej činnosti ľudí, ich schopnosti osvojiť si vedomosti, zručnosti a schopnosti. Na to je potrebné odhaliť tie hlboké mechanizmy, pomocou ktorých je človek schopný naučiť sa prakticky akejkoľvek činnosti. A ak dôjde k rozuzleniu podstaty týchto mechanizmov, potom existuje nádej na realizáciu ich podobnosti v umelých systémoch, t.j. aby boli skutočne inteligentní. Tento cieľ výskumu v oblasti umelej inteligencie ich úzko spája s úspechmi psychológie - vedy, ktorej jednou z úloh je štúdium ľudskej inteligencie. V psychológii sa teraz aktívne vyvíja špeciálny smer - kognitívna psychológia , výskum, ktorého cieľom je odhaliť vzorce a mechanizmy spojené s procesmi ľudskej kognitívnej činnosti a ktoré zaujímajú špecialistov v oblasti umelej inteligencie.

Ďalším smerom psychológie - psycholingvistika zaujíma sa aj o špecialistov v oblasti umelej inteligencie. Jeho výsledky sa týkajú modelovania komunikácie nielen pomocou prirodzeného jazyka, ale aj pomocou ďalších prostriedkov: gestá, mimika, intonácia atď.

Okrem teoretického výskumu sa aktívne rozvíjajú aj aplikované aspekty umelej inteligencie. Napríklad, robotické sa zaoberá tvorbou technických systémov, ktoré sú schopné fungovať v reálnom prostredí a čiastočne alebo úplne nahradiť človeka v niektorých oblastiach jeho intelektuálnych a priemyselných aktivít. Takéto systémy sa nazývajú roboty.

Expertný systém je ďalší aplikovaný smer umelej inteligencie. Na rozdiel od iných inteligentných systémov má expertný systém tri hlavné vlastnosti: 1 - je prispôsobený pre každého používateľa, 2 - umožňuje prijímať nielen nové vedomosti, ale aj odborné zručnosti spojené s týmito poznatkami, t. nielen dáva viem, že..., ale tiež ved ako ..., 3 - sprostredkuje nielen vedomosti, ale aj vysvetlenia a vysvetlenia, t.j. má učiteľskú funkciu.

Programovanie

Programovanie ako vedecký smer vzniklo s príchodom počítačov a efektívnosť používania počítačov určuje iba softvér. V súčasnosti je to dosť pokročilá oblasť informatiky. V tejto oblasti pracuje významný tím špecialistov, ktorí sú rozdelení na systémových a aplikačných programátorov.

Systémoví programátori sú zvyčajne veľmi vysokí špecialisti a vyvíjajú sa systémový softvér ktorá zahŕňa operačné systémy, programovacie jazyky a prekladače. OS zabezpečiť fungovanie výpočtovej techniky a poskytnúť používateľovi pohodlné podmienky pre interakciu s počítačom.

Programovacie jazyky sú vytvorené pre vývoj aplikačného softvéru. Ide o jazyky na vysokej úrovni, ktorých mnemonika a sémantika sú blízke prirodzenému jazyku ľudskej komunikácie.

Existujú aj strojové jazyky, ktoré sa používajú priamo v počítačoch a pozostávajú zo sledu strojových pokynov zakódovaných v mikroprocesoroch. Na prevod programov napísaných v jazyku vyššej úrovne na programy v strojovom jazyku sa používajú špeciálne programy - prekladateľov , ktoré vytvárajú aj systémoví programátori.

Aplikované alebo problémovo orientované programovanie je zamerané na vývoj užívateľských programov na riešenie určitých problémov v rôznych oblastiach vedy, techniky, výroby. Napríklad vzdelávanie využíva balíčky pedagogický softvér (PPP), ktoré zahŕňajú výučbový a monitorovací softvér v konkrétnej oblasti predmetu.

Aplikovaná informatika

Výdobytky modernej informatiky sa široko využívajú v rôznych oblastiach ľudskej činnosti: vo vedeckom výskume ( ASNI - automatizované systémy pre vedecký výskum) pri vývoji nových výrobkov ( CAD - počítačom podporované návrhové systémy), v informačných systémoch ( AIS - automatizované informačné systémy), v riadení ( ACS - automatické riadiace systémy), na školení ( AOC - automatizované systémy odbornej prípravy) atď.

V programovaní je veľa termínov. Nie každý špecialista v tejto oblasti pozná význam všetkých slov, ktoré používajú jeho kolegovia. Čo môžeme povedať o študentoch alebo ľuďoch ďaleko od tejto sféry? Zvážme základné pojmy, dajme im definíciu, ktorá je pre laika zrozumiteľná. Aký je teda tento jazyk - jazyk, v ktorom programátori komunikujú?

Relevantnosť problému

Termíny programovania používajú ľudia, ktorí sa tomu venujú profesionálne a majú ich radi ako koníček. Existuje zvláštny žargón tejto profesie, ktorý umožňuje ľuďom stručne a stručne vyjadriť svoj názor poslucháčovi, ktorý je vedený témou diskusie, a sprostredkovať čo najviac informácií. Niektoré pojmy uznáva verejnosť a bežne ich používajú odborníci pracujúci v technických jazykoch, iné sú bežné iba v úzkom kruhu rovnako zmýšľajúcich ľudí. Pojmy používané väčšinou sa zdajú byť obzvlášť kuriózne. Našli svoje uplatnenie nielen v ústnej komunikácii, ale aj v písomnej forme, vo vedeckých prácach a publicistike venovaných zložitostiam písania technického kódexu.

Tak poďme na to!

Je ťažké určiť, ktorý výraz je potrebné najskôr dešifrovať a ktoré slová si vôbec nezaslúžia pozornosť. Možno sa na začiatok pozrime, čo je to závislosť registrov. V programovaní výraz označuje spojenie jazykových výrazov a jednotlivých prvkov (funkcií, premenných) s písaním. To je možné pri použití veľkých a bežných písmen. Existujú jazyky, v ktorých sa rozlišujú veľké a malé písmená. To isté slovo, ktoré bude napísané iným veľkým písmenom, bude mať úplne iný význam. Ak sa v systéme nerozlišujú malé a veľké písmená, význam sa nezmení bez ohľadu na to, ako píšete písmená. Medzi jazykmi, v ktorých sa rozlišujú veľké a malé písmená, je najznámejším predstaviteľom programovacích jazykov JavaScript. PHP sa považuje za trochu citlivé na veľké a malé písmená, ale tento jav je čiastočný.

Pretože je nemožné hovoriť o programovacích podmienkach bez toho, aby sme zvážili základné, a už bolo spomenuté vyššie, že program môžete písať v systéme, v ktorom sa nerozlišujú malé a veľké písmená, mali by ste definovať, čo sa rozumie pod „programovacím jazykom“. Po pravde povedané, väčšina bežných ľudí si je istá, že tento výraz je hlavným výrazom pre sféru. Fráza predpokladá formalizovaný jazyk, ktorý bol vytvorený na písanie algoritmov a programov. Pomocou kódu riešia rôzne problémy pomocou výpočtovej techniky. Všetky jazyky vytvorené pre programovanie sú umelé. Sémantické, syntaktické pravidlá striktne určuje človek. Pre prírodný dialekt neexistuje žiadny jav voľnej interpretácie. Všetky jazyky sú rozdelené na vysoké a nízke úrovne.

O typoch

Akýkoľvek slovník programovacích výrazov vysvetľuje, aký druh jazyka sa nazýva vyšší. Toto slovo označuje programovacie nástroje vytvorené na opísanie úlohy vo forme, ktorá je ľahko vnímateľná ľuďmi. Tento nástroj je jednoduchý a pohodlný na použitie, tvorca kódu môže ľahko prechádzať symboly. Jazyk je nezávislý od interných technických predpisov používaných strojom. Produkt vytvorený pomocou jazyka vysokej úrovne musí byť najskôr preložený do strojového kódu, až potom bude funkčný. Na preklad používajú tlmočníkov a prekladateľov. Jazyky na vysokej úrovni - „C“, „Pascal“ a mnoho ďalších.

Ak sa obrátite na slovník programovacích výrazov, môžete zistiť, ktoré jazyky nízkej úrovne sa zvyčajne používajú na označenie jazykov používaných pri práci s konkrétnym typom počítačov. Takýto jazyk podrobne odráža kód použitý v hardvéri. Jeho vnímanie je pre človeka ťažké vzhľadom na špecifiká písania.

Na typoch: čo ešte?

Všetky programovacie jazyky, ktoré existujú v našej dobe, sú rozdelené na algoritmické a nealgoritmické. Prvý typ, ako sa môžete dozvedieť z ktorejkoľvek príručky, ktorá demonštruje pojmy programovania pre začiatočníkov, obsahuje znakové sady, sady pravidiel používaných na opravu určitého popisu. Je to striktne jednoznačné. Algoritmus je spravidla prvkom jazykového systému.

Nealgoritmické sú odrody, v ktorých je text údajom o postupnosti implementácie operácií. Vygenerovaný kód je východiskovým materiálom. Na jeho základe je syntetizované algoritmické riešenie problému stanoveného podmienkami.

Formálne a originálne

Existujú formálne jazyky. Takáto fráza označuje rečové systémy určené na programovanie na základe logického počtu. Formálna gramatika môže byť základom jazyka. V každom prípade hovoríme o súbore pravidiel, ktorými sa riadi konštrukcia kódexu. Abeceda je určená vopred, sú určené postupnosti, ktoré má programátor k dispozícii. Celá ich rozmanitosť je jazykom samotným.

Medzi základné programovacie výrazy patrí „zdrojový jazyk“. S touto frázou je zvykom opraviť jazykový systém určený na programovanie, ktorý sa používa na napísanie určitého programu. Líši sa od stroja, ktorý jednotka používa na vykonanie kódu dohodnutého osobou. Zdrojový jazyk je na vysokej úrovni, na nízkej úrovni.

Typy strojov a ďalšie

V niektorých terminológiách sa strojový jazyk nazýva absolútny. Tento výraz označuje systém navrhnutý na vytvorenie programového kódu vo forme, ktorá je prístupná pre pochopenie a vykonávanie konkrétnej počítačovej technológie.

Medzi základnými pojmami programovania sa upriamuje pozornosť na „strojovo orientovaný jazyk“. Niekedy sa namiesto toho systém kódovania nazýva „strojovo závislý“. Termín označuje taký spôsob zápisu kódu, keď sa osobitná pozornosť venuje štruktúre agregátov, cez ktoré bude produkt vykonávaný. Programátor musí brať do úvahy vlastnosti stroja, s ktorým má pracovať. V niektorých prípadoch si stačí spomenúť na kľúčové parametre typu agregátov, na ktorých sa kód vykonáva, v iných je potrebné produkt prispôsobiť konkrétnemu zariadeniu, na ktorom programátor pracuje.

Machine-independent je jazykový formát určený pre prácu programátora. Jeho charakteristickou črtou je jeho štruktúra. Nemá spojenie s konkrétnym počítačom alebo typom počítača. Prostriedky tohto kódovacieho systému umožňujú spustiť program na akomkoľvek počítači, ktorý má prenosový systém pracujúci v jazyku použitom autorom.

Základné definície

Spomedzi pojmov a definícií v programovaní si určite zaslúžia pozornosť premenné. Tento koncept je jedným z najdôležitejších a základných pre celú oblasť znalostí. Určujú kontajnery na ukladanie informácií. Táto informácia sa označuje ako hodnota premennej. Každý objekt má identifikátor, názov, ktorý vám umožní odlíšiť ho od ostatných v podobnej triede. Pomocou názvu môžete zadať požiadavku na premennú, čo znamená, že kedykoľvek môžete získať hodnotu uloženú v tomto informačnom kontajneri.

Rovnako dôležité je pochopiť význam slova „význam“. Pokiaľ sa používa v programovacom priemysle, rozdeľuje sa na typy. Hodnota môže byť v symboloch, číslach, logická. Typ označuje celú množinu hodnôt, ktoré môžu byť iba v konkrétnom prípade. Ak ho chcete nastaviť, môžete jednoducho uviesť zoznam možných možností alebo vytvoriť pravidlo určujúce obmedzenia. Ak hovoríme o logickom význame, existujú len dve možnosti: pravda alebo lož. Číselná množina ale nemá žiadny koniec, takže ju nemožno označiť ako zoznam všetkých možných možností. Pri určovaní tohto typu sa uchyľujú k pravidlu, podľa ktorého sú formulované jednotlivé prvky.

Údaje a čo to je

Ak je študent požiadaný o skúšku, z ktorého programovacieho výrazu vyplýva objekt, ktorý odráža význam, musíte povedať „premenná“. Aby k nej mali prístup, oslovujú prostredníctvom identifikátora.

Ak sú údaje usporiadané v určitom poradí, nazýva sa to pole. Každý takýto objekt je zložený. Funkcia je blok kódu, ktorý má názov. Prostredníctvom názvu sa dá vyvolať na vykonanie hlavného programu.

Trieda je popis určitého objektu. Vykonáva sa prostredníctvom výčtu vlastností tvorených funkciami, premennými. Premenné sa často nazývajú vlastnosti, funkcie - metódy. Formálne je trieda kontajner, ktorý uchováva informácie o kvalitách konkrétneho objektu. Prostredníctvom konštruktora môže program vytvoriť inštanciu triedy. Jeho metódy a vlastnosti sú dostupné prostredníctvom špeciálnych častí kódu pre hlavný program.

Terminológia: „1C“

„1C“ je všeobecný názov pre skupinu spoločností, ktorý dnes pozná takmer každý domáci programátor a osoba viac či menej úzko spojená s týmto odvetvím. Podniky boli vytvorené z iniciatívy Nuraliev. Vyvíjajú, publikujú, podporujú softvérové \u200b\u200bplatformy a riešenia určené pre fungovanie bežných podnikov: dajú sa použiť na automatizáciu mnohých obchodných procesov. Firma vydáva produkty, ktorých názov sa zhoduje s názvom skupiny spoločností: „1C“.

Čo teda tento vývojár chystá? Jeho hlavnou oblasťou činnosti je automatizácia. Ak sa obrátime na základné podmienky programovania pre začiatočníkov, môžete zistiť, že automatizácia je použitie nejakého softvéru, technologických prostriedkov, aby sa človek zbavil množstva úloh. Softvérové \u200b\u200briešenia sú schopné zhromažďovať informácie, transformovať a ukladať údaje a zobrazovať ich v ľahko čitateľnej podobe. Automatizáciu môžete zvážiť čo najširšie. Táto verzia interpretácie navrhuje vyhodnotiť fenomén ako použitie technológie, ktorá vylučuje manuálnu prácu. Automatizačné opatrenia sú zamerané na prenos maxima úloh na stroje a roboty s cieľom vyslobodiť bežného človeka.

Väčšina príručiek v anglickom programovaní obsahuje slovo administration. Môže byť preložené do nášho jazyka ako „administratíva“. Tento koncept sa používa ako v priemysle všeobecne, tak najmä pri prevádzke výrobkov 1C. Slovo použité v tomto balíku označuje úlohy a problémy, za ktoré je zodpovedný správca systému. Jeho úlohou je inštalácia programu, konfigurácia jeho činnosti, interakcia s inými softvérovými riešeniami. Správa zahrnuje operácie s databázou a užívateľské práva. Vo všeobecnosti tento pojem v priemysle znamená zaručenie normálneho fungovania technológie, siete na prenos údajov vo vzťahu k určitému miestu, spoločnosti.

Podmienky: oficiálne a nie tak

Referenčné knihy zvyčajne obsahujú skratku AIS. Táto skratka označuje softvérové \u200b\u200briešenie, ktorého účelom je optimalizácia procesu riadenia práce pri interakcii s niektorými informáciami. AIS sú vytvárané s cieľom zjednodušiť rozhodovanie o správe určitého objektu. Systém je zvyčajne vytvorený pre niekoľkých používateľov, ktorí majú odlišné práva a úlohy, rôzne oblasti zodpovednosti.

V anglických príručkách o terminológii programovania v angličtine sa vždy nachádza skvelá slovná chyba. V ruštine to znie ako „chrobák“. Doslovný preklad je „chyba, chyba“. Toto slovo sa stalo extrémne bežným v posledných desaťročiach tak v Amerike, kde sa objavilo, ako aj vo zvyšku sveta. Patrí do slangu tejto sféry. Chyby sú chyby, nesprávne fungovanie softvérového produktu, kódu, systému. Táto chyba spôsobuje nepredvídateľný výsledok, nesprávny výsledok a nesprávne správanie programu. Legendy o vzhľade tohto slova sú dosť kuriózne. Predpokladá sa, že akonáhle príčinou poruchy bola malá chyba, ktorá sa dostala do automobilu, kvôli ktorej časť mikroobvodu začala pracovať nesprávne. Od tej doby sa všetky chyby, najskôr zariadenie a potom kód, držali takéhoto názvu.

Podmienky: čo ešte?

V krátkych referenčných knihách o anglickom programovaní sa zvyčajne nachádza knižnica Dynamic Link Library. Táto fráza je preložená do ruštiny ako „knižnica určená na dynamické pripojenie“. V skratke sa to nazýva DLL. Obsahuje ďalšie programy nižšej úrovne, prostriedky určené na zjednodušenie práce programátora. Knižnica obsahuje všetky moduly, ktoré predtým vytvoril autor programu - takže ich možno používať znova a znova bez prepisovania blokov. Knižnica môže obsahovať postupy, zdroje. Dynamický typ prostriedkov knižnice je bežný v klasických operačných systémoch Windows, pretože zjednodušuje optimalizáciu nielen tvorby programu, ale aj jeho vykonávania. Širšie chápanie knižnice medzi programátormi je zbierka programov alebo prepojenie všetkého kódu, ktorý má k dispozícii vývojár.

Ďalším dôležitým pojmom je implementácia. Nazýva sa proces infúzie softvéru, ktorý zohľadňuje konkrétne podmienky používateľa. Úlohou nastavovacieho personálu je vzdelávať ľudí, ktorí sa chystajú produkt používať, aby s ním manipulovali.

Pokračovanie témy

Stručný prehľad anglického programovania zvyčajne obsahuje slovo integrácia. V ruštine je to spoluhláska - „integrácia“. Toto je názov pre formovanie vzájomných väzieb medzi zložkami, ktoré predtým existovali a fungovali nezávisle. Integrácia zahŕňa ladenie výmeny informácií medzi objektmi, aby ste potom mohli efektívne spracovať celkové množstvo informácií.

Podpora ITS alebo informačných technológií je termín, ktorý programátori používajú na označenie podpory koncového používateľa. Osoby zodpovedné za to klientom radia, zaškolia ich, aby mohli vývoj využívať. Táto práca obsahuje všetky metódy, pomocou ktorých môže používateľ maximálne využiť nástroj, ktorý dostal a ktorý vyvinul programátor.

Práca: vážna

Ďalším dôležitým pojmom je objektovo orientované programovanie. Táto fráza označuje metodológiu, ktorá zahŕňa prezentáciu produktu ako kolekciu niektorých predmetov. OOP je systém, v ktorom je každý objekt, ktorý tvorí konečný kód, inštanciou patriacou do triedy. Existuje hierarchický systém dedenia vlastností a vlastností.

Produkty OOP sú softvérové \u200b\u200briešenia určené pre konkrétneho používateľa a používané v jeho prospech. Väčšina z týchto produktov je vybavená funkciou generovania prehľadov. Správa je odrazom aktuálnych informácií o aktuálnych operáciách. Úlohou programátora je nastaviť také usporiadanie dátových výstupov, ktoré by bolo užívateľovi zrozumiteľné.

Správy môžu tvoriť veľmi malé programy vytvorené programátormi pre malé firmy, úrady alebo dokonca oddelenia vládnych agentúr. Správy sú rovnako dôležité pre veľké produkty a projekty, ako sú operačné systémy. Stručne povedané, takýto výsledok práce programátorov sa nazýva OS. Skratka, ktorá sa vyskytuje vo väčšine slovníkov o pojmoch súvisiacich s programovaním, sa označuje ako softvér, ktorý dokáže pracovať s hardvérom konkrétneho stroja. OS je prepojenie medzi hardvérovým aspektom a programami načítanými do pamäte. V súčasnosti majú používatelia najčastejšie rôzne verzie systému Windows. Druhým najbežnejším systémom je Linux.

A kto je podstata?

Nezabudnite na jeden zo základných pojmov programovania (nielen na webe): programátor. Skutočne musíte vedieť o slovách používaných v tejto oblasti, ale pozornosť si zaslúžia aj tie najobecnejšie pojmy. Je zvykom nazývať programátora profesionálom zodpovedným za pracovné toky tvorby kódu. Jeho oblasťou činnosti je konfigurácia riešenia a podpora vyvinutého softvéru.

Programátor pracuje na softvérovom produkte. Tento výraz označuje program, ktorý je oficiálne zverejnený. K žiadosti je priložený balík dokumentácie vrátane formulára na potvrdenie registrácie a podrobný popis použitia určený pre koncového zákazníka.

Kľúčom k akémukoľvek programu je programový kód. Z anglického programovacieho hľadiska sa nazýva zdrojový kód. Toto je názov symbolickej slovnej množiny, ktorá sa riadi pravidlami zvoleného jazyka. Proces práce v tomto jazyku je vývoj softvéru. Zapojený programátor vytvára určitú súčasť produktu (už existujúcu alebo zásadne novú). Okrem priameho programovania sú vývojom aj testovacie činnosti na zisťovanie funkčnosti a kvality práce, formovanie podpory dokumentácie.

O analýze

Medzi pojmy známe pre tých, ktorí ovládajú rôzne programovacie jazyky, patrí „systémová analýza“. Fráza predpokladá súbor nástrojov, techník, nevyhnutných pre štúdium určitého informačného systému. Pri navrhovaní takéhoto riešenia sa používa analýza.

Zodpovednosť za pracovný tok spočíva na systémovom analytikovi. Toto je profesionál, ktorý sa špecializuje na systémovú analýzu v konkrétnej prísne obmedzenej oblasti, sfére. Formuluje požiadavky na informačný systém, na ktorom sa pracuje. Úlohou analytika je určiť, aké vlastnosti by mal mať aplikačný softvér.

V práci sa používa veľa rôznych metód a prístupov a pre všetky z nich (vrátane webu) boli vyvinuté programovacie výrazy. Dôležitým prístupom je predovšetkým špirálová analytická metóda, ktorá odráža životný cyklus softvéru. Zahŕňa to zapojenie systémových analytikov do práce, nielen programátorov a špecialistov na testovanie. Pojem označuje taký prístup k vývoju softvéru a implementácii pripraveného riešenia, v rámci ktorého sa primárna funkcionalita produktu postupne rozširuje a rozširuje prostredníctvom ďalších riešení.

Kuriózne výrazy

Už bolo popísané vyššie, čo znamenajú pojmy „programovací jazyk na nízkej úrovni“ a „na vysokej úrovni“. Význam týchto fráz zvyčajne pozná každý študent, ktorý práve začína štúdium tematickej špecializácie. Ale nie každý začiatočník v tejto oblasti vie, čo sa má povedať o IP telefónii - tento výraz skrýva možnosť telefónneho spojenia používateľov cez sieť WWW.

Ďalším slovom, ktoré nie je známe každému začiatočníkovi v uvažovanej oblasti, je ARIS. Táto skratka označuje koncept, ktorý sa používa pri modelovaní pracovných postupov produktu. Tento prístup zahŕňa kombináciu praxe, podnikovej teórie, komunikačných technológií a softvéru. Skratka sa používa na označenie softvérového riešenia vydaného pod týmto názvom. Bol vytvorený na implementáciu dohodnutej koncepcie.

Vedzte, čo znamená pojem „programovací jazyk na nízkej úrovni“ pre ľudí zapojených do IT technológií. Čo je to však za technológiu? Nie každý laik vie podať jasné vysvetlenie pojmu. Oficiálne sa IT nazýva komplexná oblasť, ktorá zahŕňa množstvo prístupov, techník a techník vyvinutých na používanie počítačov na prácu s informáciami. Prostredníctvom tejto techniky môžu IT špecialisti spracovávať a prijímať informácie, ukladať a analyzovať informácie a využívať ich vo svoj prospech.

Kuriózna oblasť: lineárne programovanie

Táto trieda obsahuje riešenie problémov s optimalizáciou pomocou jedného kritéria. Premenné použité v práci sú spojité, nemôžu byť záporné a funkcia je lineárna. Je možné, že existujú obmedzenia, ktoré sú tiež lineárne, dajú sa vyjadriť rovnosťou, nerovnosťou. Na hodnotu premenných neexistujú žiadne špecializované obmedzenia. Na formovaní tohto smeru sa podieľajú práce Danzig, Koopmans, Neumann. Prvýkrát sa pojem „lineárne programovanie“ objavil v roku 1951. Relevantnosť prístupu bola vysvetlená potrebou popri klasických problémoch pracovať aj na optimalizačných problémoch. Samotná potreba sa realizovala dlho, ale teória, ktorá položila základy tohto programovania, sa objavila až po druhej svetovej vojne.

Tento výraz vyvinul Danzig, Koopmans. Predpokladá sa, že prvé práce venované tejto problematike patria Kantorovičovi, ktorý svoje diela publikoval v tridsiatych rokoch toho istého storočia v Sovietskom zväze. Samotný Danzig uznal Kantoroviča ako prvého, pretože práve tento vedec odhalil možnosť formulovať početné výrobné problémy z hľadiska matematiky. Pokrok vedcov v tejto oblasti umožnil nový pohľad na optimalizáciu problémov rôznych tried. Dnes sa takéto prístupy využívajú pri odbornej príprave odborníkov v rôznych oblastiach.

O populárnych jazykoch: „C“

Keď už hovoríme o kľúčovej terminológii, mali by ste ju zvážiť vo vzťahu k jednému z najpopulárnejších programovacích jazykov súčasnosti - C. Termíny boli pri zostavovaní početných slovníkov skombinované. Mnohé z vyššie opísaných konceptov platia aj pre tento jazyk. Je staticky zostavený. Je to typový vývojársky jazyk pre bežné úlohy. Práce na jeho vzniku sa začali v 69. roku. Autorom filmu C je podľa všetkého Ritchie, ktorý pracoval pre Bell Labs. Spočiatku sa používal pre OS „Unix“, postupne sa stal dostupným pre rôzne platformy. Najaktívnejšie práce na jeho formovaní sa podľa autora jazyka uskutočnili v 72. roku. V roku 73 bol produkt dokončený a predstavený vývojárom. Názov nového projektu bol zvolený preto, lebo prvky novinky vychádzali z už existujúceho jazyka „Bi“.

ÚVOD DO TURBO PASCAL

JAZYK NA VYSOKEJ ÚROVNI TURBO PASCAL

Klasifikáciu programovacích jazykov, z ktorých každý môže byť prepojený s odborne zameraným kurzom počítačovej vedy, možno znázorniť nasledujúci diagram:


Programovanie je odvetvie informatiky, ktorého úlohou je vývoj počítačového softvéru. V užšom zmysle slova slovo programovanie označuje proces vývoja programu v konkrétnom programovacom jazyku.

V počiatočnej fáze bolo programovanie operatívne a zároveň procedurálne a v už vylepšenej podobe - štrukturálnej (klasický príklad je Pascal). Procedurálne programovanie v zásade konverguje k nasledujúcemu: program je podrobný popis riešenia problému, t.j. algoritmus v nejakej špeciálnej notácii. Základné pojmy sú operátor a dáta.

Zásadne odlišný smer v programovaní je spojený s metodikami (paradigmami) neprocesného programovania. Objektovo orientovaný program je kolekcia mnohých nezávislých objektov. Každý objekt možno použiť na vyriešenie problému bez toho, aby sa ponoril do vnútorných mechanizmov jeho fungovania. Najobľúbenejšie programovacie jazyky objektov sú C ++, Delphi, Visual Basic.

Pri použití deklaratívneho jazyka programátor označuje počiatočné informačné štruktúry, vzťahy medzi nimi a aké vlastnosti by mal mať výsledok. V takom prípade programátor nestaví postup na jeho získanie (algoritmus). Týmto jazykom chýba pojem „operátor“ („príkaz“).

V tomto príspevku sa zaoberáme štruktúrovaným programovaním v jazyku Pascal.

Programovanie ako proces vytvárania programu formálne pozostáva z výberu programovacieho jazyka a nahradenia prvkov vývojového diagramu zodpovedajúcimi prvkami zvoleného programovacieho jazyka. Správny program v algoritmickom jazyku je formálny záznam konečnej postupnosti krokov vedúcich k vyriešeniu problému.

Program priamo v kódoch procesora je postupnosťou 0 a 1. Pokyny pre strojový jazyk sa vo väčšine prípadov skladajú z dvoch častí - operačného kódu (indikácia procesoru, čo má robiť) a operandov (s čím je potrebné operáciu vykonať).

Na urýchlenie procesu programovania bol najskôr vyvinutý jazyk Assembler a neskôr jazyky na vysokej úrovni (vrátane Turbo Pascal). Program montážneho jazyka sa začal písať ako postupnosť riadkov, z ktorých každý obsahoval obsah akcie (názov operácie) a označenia operandov. Programy v jazykoch na vysokej úrovni už pozostávajú z operátorov (integrovaných pokynov), z ktorých každý môže zodpovedať niekoľkým operáciám stroja.



Algoritmický jazyk na vysokej úrovni je systém pravidiel pre reprezentáciu údajov a popis procesu ich spracovania.

Systém pravidiel tvorba množiny jazykových konštrukcií (slová, výrazy, operátory) - jazyková syntax.

Systém pravidiel jednoznačný výklad vykonávateľa programu (ľudského a technického zariadenia) o zmysle syntaktických konštrukcií algoritmického jazyka určuje sémantika.

Aby bol program napísaný v jazyku vyššej úrovne (napríklad Turbo Pascal) procesor jednoznačne vnímaný a interpretovaný, musí byť uvedený do súladu s jeho inštrukčnou sadou (SCI). Túto funkciu vykonáva špeciálny program - kompilátor.

Pri praktickej implementácii vyvinutého programu existujú dôvody jeho neúspechu s určitým súborom počiatočných údajov (nedosahujúcich efektívne dokončenie práce), ktorými môžu byť:


Počiatočný spustiteľný súbor

programový program

Chybové správy

§ syntaxové chyby, t.j. porušenie formálnych pravidiel pre písanie algoritmu;

§ Z počiatočných údajov nad prípustnú množinu;

§ Nekonzistencia algoritmu s možnosťami umelca.

Preto okrem prevodu programového textu do strojového kódu kompilátor rieši aj druhý problém: detekuje a signalizuje chyby syntaxe programu (neprijateľná kombinácia symbolov, ktorá sa vyskytuje v zdrojovom kóde programu).

Generovanie strojového kódu a detekcia syntaktických chýb nemôže naznačovať absenciu ďalších chýb v programe a nemusí byť ladené.

V prípade, že chyby majú sémantický (sémantický) charakter, pre svoju lokalizáciu a opravu sa uchýlia k otestovaniu programu. Testovanie spočíva v kontrole funkčnosti algoritmu (programu) s takými hodnotami počiatočných údajov, ktoré by pokrývali všetky možné spôsoby spracovania údajov. V praxi sa testovanie vykonáva iba na niektorých súboroch počiatočných údajov (limitné: minimálne a maximálne, neprijateľné). Testovanie dokáže odhaliť chyby, ale nedokazuje to, že úplne chýbajú.

Proces spracovania programu v Pascale:


Proces programovanie v univerzálnom jazyku vysokej úrovne pozostáva Pascal z nasledujúcich akcií: zadávanie a úprava textu programu, preklad a ladenie. Na zlepšenie kvality a rýchlosti vývoja programov bol vytvorený integrovaný programovací systém Turbo Pascal, ktorý predstavuje jednotu dvoch princípov: kompilátor a programovacie prostredie - inštrumentálny softvérový shell jazyka, ktorý poskytuje rôzne služby.

Na vykonanie každej etapy sa používajú špeciálne nástroje integrovaného programovacieho prostredia: textový editor (editor), kompilátor (kompilátor), linker (linker), debugger (debugger).

Pretože veľa programov vykonáva rovnaké akcie (vstup / výstup dát, výpočet matematických funkcií atď.), Boli organizované knižnice podprogramov, keď sú algoritmy pre tieto akcie už uložené v kompilovanej podobe v pamäti počítača. Pri písaní programu musíte iba určiť, z ktorej knižnice sa má podprogram volať, a prepojením programu a knižníc do jedného celku vytvorí špeciálny linkerový program (linker).

MINISTERSTVO VEDY A VZDELÁVANIE RUSKEJ FEDERÁCIE

KAZANSKÝ ŠTÁT

FINANČNÝ A HOSPODÁRSKY INŠTITÚT

Katedra matematiky a hospodárskej informatiky

Koncepcia programovania. Programovacie jazyky

Dokončil: Molotov L.A.

Skontroloval: Doc. Kodolova I.A.

Kazaň 2010

Úvod 3

1. Základy programovania 4

1.1 Koncepcia programovania 4

1.2 Programovacie paradigmy 5

1.3 Sada programovacích technológií 8

2. Programovacie jazyky 11

2.1. Koncept programovacieho jazyka 11

2.2. Klasifikácia programovacích jazykov 14

2.3. Opis niektorých programovacích jazykov 17

3. Programovací jazyk Java 22

3.1. Prehľad jazyka Java 22

3.2 Proces vytvárania programu Java 23

3.3. Cnosti Javy 25

Záver 28

Zoznam použitých zdrojov 29

Úvod

Keď študujete otázku, myslíte si, že to viete; keď o ňom môžeš písať, získaš si väčšiu dôveru vo svoje vedomosti; dôvera rastie, keď ju môžete naučiť niekoho iného; a celkom istý, keď začnete programovať. Alan J. Perlis

Až do polovice 60. rokov boli počítače príliš drahé stroje, slúžili iba na špeciálne úlohy a plnili vždy iba jednu úlohu.

Programovacie jazyky tejto doby, rovnako ako počítače, na ktorých sa používali, boli vyvinuté pre konkrétne úlohy, ako napríklad vedecké výpočty. Pretože stroje boli drahé a pomalé, čas stroja bol tiež drahý - takže rýchlosť vykonávania programu bola na prvom mieste.

V priebehu 60. rokov však cena počítačov začala klesať, takže si ich mohli dovoliť aj malé spoločnosti; zvýšila sa rýchlosť počítačov a nastal čas, keď tvorcovia programovacích jazykov začali čoraz viac myslieť na pohodlie písania programov, nielen na rýchlosť ich vykonávania.

Na úsvite informatizácie bol strojový jazyk jediným jazykom, ktorý ľudia do tej doby nemohli vymyslieť. Na záchranu programátorov z drsného programovacieho jazyka stroja boli vytvorené jazyky na vysokej úrovni (t. J. Jazyky, ktoré nie sú strojmi). „Malé“ (atómové) operácie vykonávané priamo strojovými zariadeniami boli spojené do „väčších“, operácií na vysokej úrovni a celých konštrukcií s čo je pre človeka oveľa jednoduchšie a pohodlnejšie pracovať. Takže programovanie prinieslo obrovský prielom: nové jazyky sa stali akýmsi spojovacím mostíkom medzi človekom a strojovým jazykom počítača.

Pokrok výpočtovej techniky určil proces vzniku rôznych nových znakových systémov pre zaznamenávanie algoritmov (programovacie jazyky) a vývoj programovacieho procesu ako celku.

1. Základy programovania

1.1. Koncept programovania

Termín programovanie znamená proces a umenie vytvárania počítačových programov pomocou špeciálnych programovacích jazykov.

Vo všeobecnom zmysle slova programovanie existuje formalizácia vopred určeného stavu podľa reakcie na udalosť, realizovaná pomocou matematiky alebo prírodných vied.

V užšom zmysle slova programovanie sa považuje za kódovacie algoritmy v danom programovacom jazyku. V širšom zmysle je programovanie proces vytvárania programov, to znamená vývoj softvéru.

Programovanie zahŕňa:

Dizajn - vývoj sady algoritmov

Kódovanie a kompilácia - napísanie zdrojového kódu programu a jeho prevedenie do spustiteľného kódu pomocou kompilátora

Testovanie a ladenie - identifikácia a eliminácia chýb v programoch

Testovanie a poskytovanie programov

Sprievod

Rôzne programovacie jazyky podporujú rôzne štýly programovania (tzv. „Programovacie paradigmy“). Súčasťou programovacieho umenia je zvoliť si jeden z jazykov, ktorý najlepšie vyhovuje danému problému. Rôzne jazyky vyžadujú, aby mal programátor pri implementácii algoritmu rozdielnu úroveň pozornosti venovanú detailom, čo často vedie k kompromisu medzi jednoduchosťou a výkonom (alebo medzi časom programátora a časom používateľa).

Jediným jazykom priamo vykonávaným procesorom je strojový jazyk (nazývaný tiež „strojový kód“). Ako už bolo spomenuté, spočiatku všetci programátori prepracovali všetky malé podrobnosti v strojovom kóde, ale teraz už táto zložitá práca nie je hotová. Namiesto toho programátori napíšu zdrojový kód a počítač (pomocou kompilátora, tlmočníka alebo assemblera, o ktorom sa bude diskutovať o niečo neskôr), preloží ho v jednej alebo viacerých fázach a objasní všetky podrobnosti do strojového kódu pripraveného na vykonanie v cieľovom procesore. V niektorých jazykoch sa však namiesto strojového kódu generuje interpretovaný binárny kód „virtuálneho stroja“, ktorý sa tiež nazýva bajtový kód. Tento prístup sa používa v jazykoch Forth, Lisp, Java (tomuto jazyku je venovaná kapitola 3 abstraktu).

Teraz, keď vieme niečo o koncepcii „programovania“, môžeme prejsť k materiálnej časti procesu vytvárania programov. Jedná sa samozrejme o technické (hardvérové) prostriedky programovania - sada elektrických, elektronických a mechanických komponentov automatizovaných systémov predstavuje ich technickú podporu (na rozdiel od softvéru, ktorý je softvérom pre automatizované systémy). Napríklad elektronický výpočtový stroj (ECM) alebo počítač je súbor hardvéru a softvéru založeného na použití elektroniky a určený na automatické alebo automatizované spracovanie údajov v procese riešenia výpočtových a informačných problémov.

1.2. Programovacie paradigmy

Jadrom programovacieho jazyka je určitá vodiaca myšlienka, ktorá má výrazný vplyv na štýl príslušných programov. V závislosti od účelu a / alebo spôsobu písania programov existujú paradigmy(taktiež známy ako prístupyalebo technológie) programovanie:

Štruktúrované programovanie - metodika programovania založená na systémovom prístupe k analýze, návrhu a implementácii softvéru. Táto metodika sa zrodila na začiatku 70. rokov a ukázala sa byť natoľko životaschopná, že je stále tou hlavnou vo veľkom počte projektov. Táto technológia je založená na nasledujúcich ustanoveniach:

· Zložitá úloha sa člení na menšie, funkčne lepšie zvládnuteľné úlohy. Každá úloha má jeden vstup a jeden výstup. V takom prípade riadiaci tok programu pozostáva zo sady elementárnych čiastkových úloh s jasným funkčným účelom.

· Jednoduchosť riadiacich štruktúr použitých pri úlohe. Toto ustanovenie znamená, že logicky by úloha mala pozostávať z minimálneho, funkčne úplného súboru pomerne jednoduchých štruktúr riadenia. Príkladom takéhoto systému je algebra logiky, v ktorej je možné každú funkciu vyjadriť prostredníctvom funkčne úplného systému: disjunkcia, konjunkcia a negácia.

· Rozvoj programu by sa mal uskutočňovať postupne. V každej fáze by sa mal vyriešiť obmedzený počet jasne definovaných úloh s jasným pochopením ich významu a úlohy v kontexte celej úlohy. Ak sa také porozumenie nedosiahne, znamená to, že táto fáza je príliš veľká a je potrebné ju rozdeliť do viacerých elementárnych krokov.

Koncept modulárneho programovania.Rovnako ako v prípade technológie štruktúrovaného programovania možno koncept modulárneho programovania formulovať vo forme niekoľkých konceptov a ustanovení:

· Funkčný rozklad úlohy - rozdelenie veľkej úlohy na niekoľko menších, funkčne nezávislých čiastkových úloh - modulov. Moduly sú navzájom prepojené iba vstupnými a výstupnými údajmi.

· Modul - základ koncepcie modulárneho programovania. Každý modul vo funkčnom rozklade je čierna skrinka s jedným vstupom a jedným výstupom. Modulárny prístup vám umožňuje bezbolestne upgradovať program počas jeho činnosti a uľahčuje jeho údržbu. Modulárny prístup vám navyše umožňuje vyvinúť časti programov jedného projektu v rôznych programovacích jazykoch a potom ich pomocou montážnych nástrojov skombinovať do jedného zavádzacieho modulu.

· Implementované riešenia by mali byť jednoduché a jasné. Ak účel modulu nie je jasný, znamená to, že rozklad pôvodného alebo prechodného problému nebol vykonaný dostatočne dobre. V takom prípade je potrebné problém znovu analyzovať a prípadne vykonať ďalšie rozdelenie na čiastkové úlohy. Ak sú v projekte zložité miesta, mali by byť podrobnejšie zdokumentované pomocou dobre premysleného systému komentárov. Tento proces by mal pokračovať, kým skutočne nedosiahnete jasné pochopenie účelu všetkých modulov problému a ich optimálnej kombinácie.

· Účel všetkých premenných v module by mal byť opísaný pomocou komentárov tak, ako sú definované.

Objektovo orientované programovanie (OOP).Myšlienkou OOP je usilovať sa o prepojenie údajov s postupmi, ktoré tieto údaje spracúvajú do jedného celku - objektu. OOP je založený na troch základných princípoch, ktoré dávajú objektom nové vlastnosti. Týmito princípmi sú zapuzdrenie, dedičstvo a polymorfizmus.

· Zapuzdrenie - zjednotenie údajov a algoritmov na spracovanie týchto údajov do jedného celku. V OOP sa dáta nazývajú polia objektu a algoritmy sa nazývajú objektové metódy.

· Dedenie - vlastnosť predmetov na generovanie vlastných detí. Potomok objekt automaticky dedí všetky polia a metódy od svojich rodičov, môže dopĺňať objekty novými poliami a nahradiť (prepísať) metódy rodiča alebo ich doplniť.

Pred 2 rokmi som napísal článok o klasifikácii znalostí programovania. Bolo to na vlne záujmu a mojom razantnom sebavzdelávaní v informatike. Napísal som článok a zabudol som na to. Nechystal som sa publikovať o Habrém. Nakoniec to vychádza z mojich osobných skúseností a vedomostí, ktoré môžu byť dosť subjektívne.

Nedávno som si na pozadí neustále prichádzajúcich otázok „ako sa naučiť programovanie?“, Spomenul na tento materiál a znovu ho prečítal. Prešli 2 roky, skúsenosti sa doplnili, pribudli vedomosti, zmenili sa pohľady. Ale tento článok pre mňa nestratil na aktuálnosti a nenašiel som v ňom takmer nič, čo by som rád zmenil. Zdalo sa mi, že je to stále hodné publikácie. A možno niekomu pomôže v jeho vlastnom profesionálnom rozvoji.

Ale pred „spustením“ materiálu trochu odbočenie. O tom, prečo som toto všetko vôbec písal. Faktom je, že v krajinách bývalého ZSSR je vzdelávanie v oblasti IT veľmi tesné. Na jednej strane neexistujú žiadne školiace programy, ktoré by vyškolili špecialistov na správnej úrovni (pravdepodobne s veľmi zriedkavými výnimkami, ktoré možno pripísať chybám). Na druhej strane, vďaka širokým možnostiam samovzdelávania sa programátori neponáhľajú študovať na univerzitách - všetci sa snažia začať cvičiť čo najskôr. Často sa študuje iba jeden smer (napríklad PHP + Mysql je najpopulárnejší) a bojuje sa. Týmto to navyše všetko končí. Vďaka tomu máme obrovské množstvo programátorov, ktorí nevedia ani základné veci. To vedie k problémom s kvalitou kódu a s efektívnosťou algoritmov s cyklovaním.

Programovanie je ale plnohodnotná oblasť vedomostí, ktorá si vyžaduje aj technické vzdelanie. Rovnako ako stavebníctvo alebo telekomunikácie. Áno, dom (kaštieľ) si môžete postaviť vlastnými rukami a bez vzdelania. Väčšinu webov nájdete hore, keď si prečítate niekoľko kníh o jazykoch PHP a HTML. Výškovú budovu však nemôžete postaviť bez špeciálneho školenia, rovnako ako nemôžete písať Google bez znalosti základov.

Príležitosti na samovzdelávanie v informatike sú v súčasnosti obrovské. Chýba už len konzistencia prípravy. Ako prísť na to, čo študovať a v akom poradí? Zdá sa mi, že tento materiál pomôže utriediť vedomostné oblasti v oblasti informatiky a vytvoriť si študijný program podľa kníh. Výber kníh je samostatnou témou, nie je zahrnutý do rozsahu článku, ale o tom sa dá diskutovať v komentároch.

Choď.

Niekedy sa ma pýtajú, čo je potrebné, aby som sa naučil stať sa programátorom. Otázka je trochu naivná Myslím si, že je nemožné normálne na ňu odpovedať. Tých. najskôr musíte zistiť, akým programátorom sa musíte stať. Mimochodom, programátor? Trh navyše vyžaduje vysoko kvalifikovaných drahých odborníkov a „pracovnú silu“. Balík vedomostí a skúseností prvých a druhých sa výrazne líši.

Ale aj napriek takejto vágnej otázke je stále možné na ňu odpovedať. Môžete opísať približné maximum vedomostí, ktoré sa tak či onak týkajú programovania. V skutočnosti sa o toto maximum obvykle usiluje učiť na univerzitách špecializácie, v názve ktorých sa nachádza slovo „programátor“.

Na vysokej škole som študoval programovanie, potom na vysokej škole. Bola to univerzita, ktorá mierne utriedila porozumenie a vzájomné prepojenie odborov súvisiacich s takzvanou informatikou. Poznatky, ktoré tam boli dané, nech sú úzkoprsé a trochu zastarané, ale ich systematický prístup nebol zlý. Po rokoch praxe po ukončení štúdia som dospel k záveru, že univerzitná klasifikácia odborov je celkom dobrá a umožňuje vám odpovedať na otázku, čo by mal každý programátor vedieť.

Je samozrejme nemožné vedieť všetko. A nie je to potrebné. Niektoré otázky je navyše potrebné poznať hlboko, zatiaľ čo iné majú dosť povrchné porozumenie. Preto sú v závislosti od špecializácie niektoré disciplíny relevantnejšie, iné menej. Ale takmer každý z nich vyžaduje všeobecné vedomosti od každého softvérového inžiniera, od systémového inžiniera až po webového vývojára.

V predchádzajúcom odseku som konkrétne uviedol pojem „softvérový inžinier“. Nejako sa ukáže, že programátor nemusí byť nevyhnutne inžinier. Aj z definície Wikipédie vyplýva, že inžinier je v prvom rade dizajnér. Toto je ten, kto tvorí, t.j. navrhuje systémy. A v programátorskej praxi nie je dizajn vždy potrebný. Niekedy stačí programovanie: pomocou danej sady technológií vytvorte niečo, čo funguje. Typickým príkladom je stádo firemných alebo marketingových stránok na stránkach Joomla, Vorpress, Drupal atď. Toto je úroveň technika, nie inžiniera. Toto je úroveň stredoškolského vzdelania. A ako technik môžete pracovať aj po absolvovaní kurzov v ľubovoľnom programovacom jazyku, silný teoretický základ tu nie je potrebný.

A keď sa vrátim k softvérovým inžinierom, chcem ponúknuť svoj graf odborov, ktoré programátori študujú. Je zrejmé, že niektoré disciplíny aktívne využívajú vedomosti druhých, alebo z nich dokonca vyrastajú. Preto je pre úplné pochopenie „horného“ predmetu potrebná určitá úroveň porozumenia pre nižší.

Graf sa skladá z predmetov (disciplín) a je rozdelený do úrovní. Najnižšie - Spoločný základ - vo všeobecnosti nemá nič spoločné s informatikou. Poskytuje sa iba na preukázanie toho, na čom sú založené odbory informatiky.

Medzi disciplínami existujú 2 typy väzieb: použitie (bežná šípka) a rozšírenie (obrys šípky). Použitie znamená potrebu fragmentárnych vedomostí z iného predmetu a rozšírenie znamená potrebu aspoň prehľadu, ale úplnej znalosti rozšírenej disciplíny.

Prvá úroveň z CS (informatika) - Špeciálna základňa ... Je odrazovým mostíkom pre každého programátora na štyroch frontoch:

  1. počítačová aritmetika (číselné systémy a operácie s číslami, logické operácie);
  2. fyzické základy počítačov (polovodiče, tranzistory, logické prvky, obvody, integrované obvody);
  3. teória algoritmov (algoritmy a dátové štruktúry; zložitosť, efektívnosť; spôsoby reprezentácie informácií v pamäti);
  4. programovacie jazyky (úloha a koncepcia PL, úrovne, typy jazykov, abstrakcia, úrovne abstrakcie, preklad / kompilácia, šablóny, princípy, paradigmy - prehľad).

Špeciálna základňa ponúka základné teoretické vedomosti, na ktorých sú postavené disciplíny vyšších úrovní. Pre priemerného programátora sú potrebné prehľadové znalosti všetkých predmetov špeciálnej základne. Niektoré špecializácie vyžadujú dôkladné pochopenie teórie algoritmov (predovšetkým pre vývojárov rôznych druhov knižníc).

Disciplíny, ktoré sú základom programovania, sa nachádzajú na vyššej úrovni. Preto som túto úroveň pomenoval Základy ... Obsahuje:

  1. počítačová architektúra (procesory, mikroarchitektúra, pamäť, zbernice, vstup / výstup);
  2. spracovanie dát (teória informácií, štatistika, modely, vyhľadávanie údajov, jazykové aspekty, spracovanie informácií pomocou tabuľkových procesorov);
  3. základy jazyka C / C ++ (základné jazykové vlastnosti, syntax, ukazovatele, I / O, polia, základy STL).

Dodržiavanie základov je Úroveň 1 ... Toto je prvá aplikačná úroveň a hlavne netrpezliví ľudia môžu začať obchodnú prax, keď zvládnu túto úroveň. Zahŕňa 5 disciplín:

  1. základy ASM (vývoj počítačovej architektúry v smere programovania, písanie najjednoduchších ovládačov a algoritmov, assemblerové vložky v C / C ++);
  2. C / C ++ (OOP, vývoj aplikácií, knižnice, WinAPI, utils, paralelné programovanie).
  3. oS (Architektúra OS, procesy, medziprocesová komunikácia, vlákna, plánovanie, práca s pamäťou a perifériami, systémy POSIX);
  4. systémová analýza (predmetová oblasť, obchodné procesy, toky, diagramy, princípy a teória systémovej analýzy);
  5. databáza (teória množín, typy DBMS, relačné DBMS, dátové modely, SQL, konkrétne databázy).

Ďalší level - Úroveň 2 - rozvíja predchádzajúci. Mimochodom, počítačové siete sa do toho dostali len z toho dôvodu, že pre ich štúdium je žiaduce (nie však nevyhnutné) najskôr si osvojiť operačné systémy. Pokiaľ ide o vývoj, táto téma je napriek tomu bližšie k prvej úrovni.

Úroveň 2 zahŕňa:

  1. vývoj softvéru (životný cyklus softvéru, fázy vývoja, základy softvérových projektov, nástroje);
  2. analýza dát (Dolovanie dát, OLAP, strojové učenie, neurónové siete, AI);
  3. počítačové siete (podľa úrovní zásobníkov TCP / IP a / alebo ISO / OSI „od a do“, protokolov, sieťového programovania v C / C ++);
  4. riadené programovacie jazyky (riadený kód, virtuálne stroje, garbage collectors, testovanie jednotiek, skutočná prax v C # alebo Java);

3. úroveň - posledná úroveň pre priemerného programátora. Je najobjemnejší a zahŕňa iba tie disciplíny, ktoré priamo súvisia s vývojom softvéru. Celkovo ich bolo 6:

  1. vývoj používateľského rozhrania a použiteľnosti (princípy budovania užívateľských rozhraní);
  2. tímový a projektový manažment (metodiky vývoja a ďalšie otázky riadenia);
  3. testovanie softvéru (prehľad: typy testovania, nástroje);
  4. webové technológie (Protokol HTTP, webový server, CGI, ukladanie do vyrovnávacej pamäte a proxy, programovanie klienta);
  5. distribuované systémy (architektúra distribuovaných systémov, protokoly sieťovej interakcie komponentov, nástroje, princípy, prístupy k budovaniu distribuovaných systémov, odolnosť proti chybám, veľké dáta, vysoké zaťaženie);
  6. tlmočené programovacie jazyky (funkcie, základy v dvoch alebo troch jazykoch, nácvik v jednom alebo dvoch jazykoch: JS, PHP, Python, Ruby).

Čokoľvek vyššie je predĺžené Odborné znalosti ... Celkovo možno túto úroveň rozšíriť na neurčito pridaním disciplín týkajúcich sa vývoja a najkomplexnejších aspektov vývoja softvéru. Uviedol som 3 príklady - vývoj kompilátorov, vývoj operačných systémov a konštrukciu architektúr pre veľké softvérové \u200b\u200ba hardvérové \u200b\u200bsystémy alebo architektúry určené pre obzvlášť vysoké zaťaženie. V grafe som nekreslil závislosti na nižšie úrovne, pretože cez všetky úrovne až po všeobecnú základňu bude prechádzať príliš veľa šípov. Pravdepodobne široké závislosti sú jedným zo znakov odborných otázok. Iba potvrdzuje, že odborná úroveň vyžaduje najširšie znalosti a dobré skúsenosti.

Zaujímavosťou grafu je, že zobrazuje nielen preferované poradie štúdia predmetov, ale aj:

  1. umožňuje pochopiť, ktoré disciplíny sú potrebné viac a ktoré menej na prácu v konkrétnej špecializácii (stačí zvoliť hlavný predmet špecializácie a pozrieť sa na súvislosti a vzdialenosť od ostatných);
  2. poskytuje porozumenie toho, ako študovať informatiku, ak nezačínate so základnými základmi, ale s aplikovanými znalosťami (napríklad PHP) - môžete sa pohybovať po odkazoch do strán a dole - v skutočnosti to bola presne moja osobná cesta rozvoja (a nemôžem ju nijako pomenovať) najľahší, najefektívnejší a najoptimálnejší).

Graf je model. Dobrý model zvyčajne odpovie na veľa otázok naraz. Dal som si za úlohu urobiť dobrý graf, blízky realite. Prirodzene, vychádza z mojich osobných skúseností a nepredstiera, že je ideálny. Snažil som sa, aby to bolo čo najobjektívnejšie. Ešte raz pripomeniem, že toto je graf pre programátora. Tých. pre testera, sysadmina a ďalšie profesie blízke programovaniu to bude viac-menej blízke, ale zjavne odlišné.

P.S. Žiadame vás, aby ste na túto tému nevyvíjali holivary musieť No a čo nemal by poznať programátora. Toto je osobná voľba každého z nás a vôbec to nie je článok. Tu je klasifikácia poznatkov a vzťah medzi nimi. Nie každého to zaujíma, nie každý to potrebuje.