Schopnosti programátora
Ve škole se člověk naučí mnoho dovedností s programováním spojených, avšak není mu již řečeno (alespoň ne dostatečně důrazně), které z nich (a jak moc) jsou následně oceňované na trhu práce. Pro ty z vás, které to zajímá, je zde následující přehled, který však platí pouze pro klasické programátorské obory, po kterých je na trhu největší poptávka; existují i specializace, ve kterých jsou vyžadovány jiné dovednosti.
Ve sloupci „Dovednost“ jsou uvedeny jednotlivé dovednosti, kterými by měl programátor disponovat; ve sloupci „Důležitost“ je pro každou dovednost uvedeno, jak moc ji programátor v praxi upotřebí; a konečně ve sloupci „Předměty na MFF“ se lze dočíst, které předměty na matfyzu pomohou budoucímu programátorovi tuto dovednost získat (na jiných školách jsou obdobné předměty též).
Důležitost | Dovednost | Předměty na MFF |
---|---|---|
esenciální | základy algoritmizace | Programování I Programování II Algoritmy a datové struktury I Algoritmy a datové struktury II |
extrémní | programování s databázemi * | Databázové systémy Databázové aplikace |
extrémní | psaní hezkého a čistého kódu ** | Doporučené postupy v programování |
extrémní | objektově orientované programování | Programování v C++ Pokročilé programování v C++ |
vysoká | zkušenosti s velkými projekty | Softwarový projekt Operační systémy |
vysoká | programování ve více jazycích *** (zejména C/C++) **** | Programování v #zvolte jazyk# |
nízká | znalosti architektury počítačů | Principy počítačů Základy operačních systémů Operační systémy Systémové architektury procesorů |
nízká | teorie vyčíslitelnosti a složitosti, datové struktury | Automaty a gramatiky Úvod do složitosti a vyčíslitelnosti Datové struktury I Složitost I Vyčíslitelnost I |
* Není zdaleka nutné být databázový guru a rozumět tomu, jak databáze uvnitř fungují; je však naprosto nezbytné chápat, k čemu jsou dobré a jak s nimi pracovat. ** „Kód by měl být i pro naprostého laika čitelný jako Shakespearův sonet.“ Pravda, trochu přehnané tvrzení; není však od věci se o to snažit. *** Ve skutečnosti to není moc podstatné, nicméně to vypadá dobře v životopisu; zejména pro manažery a psychology, kteří je často pročítají. **** Jazyky C a C++ jsou vhodné na pochopení toho, jak vlastně počítače fungují; ke skutečnému porozumění těmto jazykům je nutné něco vědět o architektuře počítačů. |
Jediným způsobem, jak se naučit programovat, je prostě to dělat, programovat; jakékoliv teoretické studium je sice dobré a rozhodně pomáhá, ale doopravdy jediným způsobem, jak se stát vážně dobrým programátorem, je strávit dlouhé tisíce hodin programováním. Bez toho to prostě nejde, ani to nelze nijak „okecat“.