Vývoj aplikací

Programování je mou profesí i zálibou. V programování je dán jasný řád a pravidla, která je nutné dodržovat. Všechno má souvislost a ve výsledku dává smysl, i když to nemusí být na první pohled jasně patrné.

S programování jsem začínal v roce 2012. Tehdy jsem se užil v jazyce ANSI C programovat RISC mikrokontrolér AT89S52. Postupně jsem se propracoval k programování konzolových aplikací. První zkušenosti s objektově orientovaným programováním (OOP) byly v jazyce PHP. Nejednalo se (jak by se dalo předpokládat) o tvorbu webových stránek, ale o implementaci aplikačního serveru, který propojoval databázový systém s vestavěným systémem. Na vysoké škole jsem se dostal k programování mobilních aplikací pro operační systém Android v programovacím jazyce Java. Zároveň jsem si rozšířil znalosti z oblasti softwarového inženýrství. Poslední roky si své kódy rovněž verzuji pomocí nástroje GIT.

V programování mě baví objevovat nové metody a přístupy, hledat chyby a poučit se z nich.

JAVA pro operační systém Android

První zkušenost s objektově orientovaným programovacím jazykem Java jsem získal během tvorby bakalářské práce. V tomto jazyce jsem rovněž vypracoval i svou diplomovou práci a další, zejména školní projekty. Jazyk jsem se učil sám a to především z volně dostupných materiálů a různých tutoriálů na internetu. Měl jsem předchozí zkušenost s OOP v jazyce C# a PHP, což mi znatelně usnadnilo učení, i když Java je mírně od těchto jazyků odlišná.

Navrhoval a implementoval jsem aplikace, které využívaly standardní grafické prvky, obsahovaly více vláknové procesy, ukládaly data do lokálních i vzdálených databázových systémů a komunikovaly s okolím prostřednictvím Wi-Fi a Bluetooth.

Mám rovněž zkušenost s programováním jednoduchých konzolových aplikací v tomto programovacím jazyce.

Android Java
80%

C# .NET

S objektově orientovaným jazykem C# a frameworkem .NET jsem se poprvé setkal rovněž na vysoké škole. V rámci předmětu jsem se seznámil se základní konstrukcí jazyka a upevnil jsem si znalosti z OOP.

Mám zkušenosti s implementací více oknových aplikací, které umí reagovat na různé uživatelské podněty, vykreslovat grafy, synchronizovat více vláknové procesy, číst, zapisovat a parsovat textové soubory a komunikovat s okolím prostřednictvím sériové linky a síťových protokolů TCP/IP a UDP.

C# .NET
60%

ANSI C pro konzolové aplikace

První zkušenosti s procedurálním programováním v jazyce C jsem získal během programování mikrokontrolérů. Na střední a vysoké školy pak bylo programování konzolových aplikací v céčku považováno za základ. Mám zkušenosti s čtením vstupů konzole, čtením a zápisem souborů a základní povědomí o dynamické alokaci paměti.

Ze zkušeností s implementací firmwaru mikrokontroléru pak ovládám členění zdrojového kódu do více zdrojových a hlavičkových souborů a také podmíněný překlad zdrojového kódu

C
60%

LabVIEW

S programováním v LabVIEW jsem se seznámil v rámci kurzů na vysoké škole. V rámci těchto kurzů jsem řešil dva projekty. První projekt byl program na agregaci signálů s proměnnými parametry, které byly následně vykresleny do grafu a jednotlivé vzorky uloženy do strojově čitelného souboru. Druhý projekt kombinoval automatické měření a testování demonstračního produktu za pomocí měřících přístrojů připojených skrze USB nebo GPIB rozhraní k PC.

Během návrhu a implementace jsem se seznámil se základními prvky tohoto ,,programovacího jazyka“, které slouží pro algebraické výpočty, ovládání měřících přístrojů nebo interakci s uživatelským rozhraním.

LabVIEW
60%

PHP a framework Nette

První zkušenosti s OOP jsem získal v rámci učení se skriptovacího jazyka PHP. Ten umožňuje jak klasické procedurální tak objektově orientované programování.

Pro rychlejší, efektivnější a bezpečnější psaní zdrojového kódu je možné (avšak nikoliv nutné) využít některého z frameworku, v mém případě původního českého frameworku Nette Ten obsahuje třídy pro rychlejší práci s databázemi, tvorbu formulářů a šablon nebo autentifikaci uživatelů.

V Nette frameworku jsem implementoval několik aplikačních serverů, které přijímaly požadavky skrze HTTP(S) protokol a data obsažená v požadavcích procházely a ukládaly do databáze. Tyto servery fungovaly jako prostředníci mezi vestavěnými systémy nebo mobilními aplikacemi, které se vzdálenou databází komunikovaly. Dále mám zkušenosti s konfigurací routerů a parsování JSON řetězce v tomto frameworku.

PHP Nette framework
40%

Relační databázové systémy

V rámci několika řešených projektů jsem se setkal s nutností využít k ukládání dat některý z dostupných databázových SQL systémů. Mám zkušenost s návrhem struktury databáze, tvorbou vazeb mezi tabulkami a konstrukcí složitějších SQL dotazů.

MySQL (Maria DB)

Databázový systém MySQL později MariaDB jsem využíval společně s aplikačními servery, které měly plnou kontrolu nad daty ukládanými a posléze vybíranými z databáze. Pro komunikaci s databází bylo využito PHP ovladače PDO. Administrace databází probíhala přes nástroj phpMyAdmin.

MySQL (Maria DB)
40%

SQLite

V rámci mé diplomové práce vznikla potřeba ukládat jednoduchá data do lokální databáze v zařízení, na kterém byla navržená aplikace provozována. Andorid API poskytuje nativní podporu pro databázový systém SQLite, který je součástí operačního systému. Administrace databáze probíhala prostřednictvím pluginů vývojového prostřední nebo on-line dostupných nástrojů.

SQLite
40%

Verzovací nástroj GIT

Se zdokonalováním svých schopností a objevování pokročilejších a sofistikovanějších programovacích jazyků vznikla potřeba zdrojové kódy zálohovat a verzovat. Poslední projekty se snažím své zdrojové kódy verzovat pomocí verzovacího nástroje GIT.

Ovládám základní příkazy pro vytvoření nebo naklonování existujícího repositáře, commitnutní změn a jejich aktualizaci ve vzdáleném repositáři.

GIT
30%