Vysoká škola pro pokročilého programátora

jjrsk

  • *****
  • 533
    • Zobrazit profil
Re:Vysoká škola pro pokročilého programátora
« Odpověď #45 kdy: 28. 07. 2023, 10:50:35 »
Jenže, já nevím co to znamená? Co si pod tím mám představit? Jak je možné prohloubit teoretické chápání něčeho jako jsou například sítě, či architektury počítače?
Dost obtizne sdelitelna informace ;D.... udelej si cas, a zajdi si na nejakou prednasku(jsou verejne) neceho, o cem mas nejakou predstavu (=myslis si ze obsah by mel byt nejaky) a zjistis, ze tvoje predstava se zasadne lisi od reality.

Zkusim prirovnani ... chces byt krumpacistou, mas zkusenosti, vis jak se krumpacem haze ... a chces se o tom neco dozvedet. Na VS ti zacnou vysvetlovat, ze krumpac se sklada z kvarku. Coz je ti uplne knicemu. A kdyz se vyucujiciho zeptas, jestli vi jak vypada krumpac, namaluje ti trikolku.


Re:Vysoká škola pro pokročilého programátora
« Odpověď #46 kdy: 28. 07. 2023, 11:43:17 »
Ale taky ti může začít vysvětlovat rozklad sil při různých způsobech držení krumpáče, výpočet deformací a pevnosti krumpáče, rezonanční frekvence při kopnutí do skály...
A to už není úplně mimo.

f-k-r

  • ***
  • 106
    • Zobrazit profil
    • E-mail
Re:Vysoká škola pro pokročilého programátora
« Odpověď #47 kdy: 28. 07. 2023, 12:32:14 »
Dívám se na to, co jste dokázal, a říkám si, jestli Vás na obyčejné IT není škoda, jestli byste se spíše neměl věnovat vědě, tedy se zásadně zamyslet nad svou dlouhodobou orientací. Na tomto fóru moc rad nehledejte, viz lehká/těžká vysoká.

Re:Vysoká škola pro pokročilého programátora
« Odpověď #48 kdy: 28. 07. 2023, 13:34:31 »
Citace
ted jsi praktik, na vysce k tomu muzes ziskat teoreticke podklady.
- @alex6bbc
> Jenže, já nevím co to znamená? Co si pod tím mám představit? Jak je možné prohloubit teoretické chápání něčeho jako jsou například sítě, či architektury počítače? Protokoly a procesy se přece tak často rapidně nemění

Existuje spousta zajímavých problémů, které mají přesah. Chceš psát kód. To je super. Dostal jsi se sám dost daleko, ale pro některé zajímavé oblasti, se už bez té teorie moc daleko nedostaneš.

Dělám GISy, řešili jsme například jak rozdělit nějakou oblast spravedlivě pro X obchodníků. Další zajímavé téma je Traveling Salesman Problem, Vehicle Routing Problem. Všeobecně tomu matematici říkají Matematické Optimalizace, nebo Operační výzkum. Jednou jsem hledal chyby v  transformacích souřadných systémů, taky docela dost matematiky.

Je toho tuny. Na VŠ jsem si napsal svůj vlastní překladač programovacího jazyka. V teoretické informatice jsem trochu narážel na svoje limity. Matematiku jsem udělal, ale při řešení složitějších problémů vidím, že to není ono.

Spousta lidí tvrdí, že napsat si vlastní překladač je ztráta času, nebo že ta teoretická informatika / matematika je stejně k ničemu, protože nevidí pro toto uplatnění. Mají pravdu, dokud se k něčemu, kde je ta matematika nenachomejtneš. Pak člověk lituje, že toho neumí z matematiky víc a jede cestou pokus omyl, nebo to dají někomu jinému, kdo vypadá víc sebevědomě (buď to opravdu umí, nebo se přemýšlením moc nezatěžuje a neřekne, že by potřeboval čas na studium matematiky :) )

No a když jsi zmínil ty sítě, tak to taky nejdříve musel někdo vymyslet. Ty protokoly jsou postavené na výzkumu lidí. Detekce chyb, samoopravné kódy atd.

Re:Vysoká škola pro pokročilého programátora
« Odpověď #49 kdy: 28. 07. 2023, 14:19:21 »
Ako možnosť by som videl aj nasledovné: nastúpiť na školu, ktorá Ťa oslovila magisterským programom. Nie je nikde napísané, že bakalársky program musí trvať celé tri roky. Keď už teraz viac menej ovládaš bakalársku látku, zapíš si potrebné skúšky a sprav ich v priebehu roku-dvoch ;-)

Ak budeš mať stále kopec času navyše, môžeš si už počas druhého ročníku vybrať náročnú tému na diplomku a pracovať na tom. Úvod odovzdáš a obhájiš ako bakalárku a následne už študuješ to, kvôli čomu by si na školu šiel.

VŠ mne osobne nepriniesla ani tak samotné konkrétne znalosti. Možno ešte viac si cením iných vecí - dopracovať sa pred 20r k diplomu z Matfyzu alebo ČVUT vyžadovalo okrem tvorivého prístupu a nezľaknutia sa prekážok aj pomerne veľkú vytrvalosť. Všetko to sa mi veľmi hodí v práci, ktorú robím (hoci to vôbec nie je matematika a fyzika, ktoré som študoval).


Re:Vysoká škola pro pokročilého programátora
« Odpověď #50 kdy: 28. 07. 2023, 18:32:56 »
Myslim ze sa to tu opat strhava na krcmovu diskusiu taborov VS/bez VS.
Tento rok som dokoncil Bc na FIT VUT a pred nastupom na skolu som bol v podobnej pozicii ako ty, mas asi rok naskok ale tiez som uz pracoval, myslel som si ze uz nieco viem. Na strednej som sa tiez nudil, chodil som na IT odbor a presiel som viac menej s prstom v nose.

Z vlastnej skusenosti, ti mozem odporucit, aby si na tu VS siel. Ukaze ti to nove suvislosti, vrstvy medzi jednotlivymi technologiami. Na velku cast prednasok som nechodil (co pri niektorych predmetoch spatne lutujem) ale aj tak mi to velmi vela dalo a dufam, ze magister ma posunie este dalej. Ono to nie je uplne o tom, co ti skola da, ale o tom, co si z tej ponuky zoberies ty sam. Aj preto neodporucam vyhadzovat kredity za jednoduche kreditovky ale nabrat si volitelne predmety, ktore nepatria medzi jednoduche a budu ta bavit.

Dalsou vecou co na VS mozes (a silne ju odporucam) je ist do vyskumu, neviem ako na inych VS ale na FITe sa k vyskumu pripojit mozes, spatne by som sa do toho pustil skor. Mozes sa tak dostat k zaujimavym projektom, ktore sa vacsinou nehodia do suflika.

Re:Vysoká škola pro pokročilého programátora
« Odpověď #51 kdy: 28. 07. 2023, 21:03:15 »
Nečetl jsem diskuzi:

Pro autora - ono možná to teď vypadá, že ti vysoká třeba nic nedá, protože všechno umíš, ale neumíš... To co děláš je začátek slibné kariéry, ale potřebuješ právě ten rozhled a tu teorii. Já jsem taky šel na vysokou a proplul jsem jak nic, protože cokoliv kde se programovalo jsem měl "zadarmo" díky tomu, že jsem programoval už na základce, ale rozhodně jsem nevěděl všechno a ta teorie je hrozně důležitá pro ty zajímavější věci, které budeš chtít dělat. Pokud máš talent a chceš ho zabít tím, že budeš dělat CRUD aplikace, UI, nebo skripty pro automatizaci, tak běž do praxe, ale pokud máš talent a v životě se chceš dostat k něčemu fakt zajímavému a dobře placenému, tak zkus školu.

Navíc nikdy nevíš koho tam potkáš - představ si, že najednou nebudeš nejlepší a budou tam lidi, od kterých se něco naučíš.

Re:Vysoká škola pro pokročilého programátora
« Odpověď #52 kdy: 29. 07. 2023, 01:30:44 »
Na svůj věk máte na spoustu věcí překvapivě jasný názor. Jako že když se nezadaří dokonale skloubit práci a zábavu, tak v práci vydělávat peníze a hezkou tvorbu si řešit ve volném čase (než přijde rodina, a pokud zaměstnavatel dovolí). Nebo to věčné dilemma, zda "jít šéfovat" znamená pro schopného codera cestu někam vzhůru.

Můj subjektivní názor: nejlepší budete v tom, co Vás baví. Pokud NEjste ten typ, který ví jistě, že chce co nejdřív šéfovat, tak si s tím možná teď nelamte hlavu. To rozhodnutí může přijít později, v práci, ad hoc. Pokud máte určité podezření, že to tak časem může dopadnout, tak v tuhle chvíli chybu neuděláte, pokud na vejšce absolvujete pár kurzů o project managementu, řízení vývoje SW apod. Netroufnu si tvrdit, zda je pro tenhle směr lepší VŠE, FIT ČVUT nebo která škola. Pokud budete nějakými školními vědomostmi v tomto směru poznamenaný, tak to z Vás bude na pracovišti určitým způsobem vyzařovat, i pokud zůstanete nominálně na čistě technické pozici. A můžete třeba citlivě inspirovat svoje šéfy, když vidíte, že zkoumají slepé uličky, které vy ze školy znáte předem, nadšeně objevují kolo apod.

Jak při vedení projektu odhadovat pracnost / časovou náročnost: na tohle téma jsem před nějakou dobou viděl povídání uncle Boba Martina.
https://www.youtube.com/results?search_query=uncle+bob+martin+on+estimation
Stručně: ono to bolí, nejde to přesně, a v průběhu projektu se ten odhad bude upravovat, ale je třeba mít aspoň něco. Zákazníci jsou vděční za aspoň nějaký odhad, a za včasné upozornění, pokud odhad bude nutné upravit. Popisoval tam metodu s kartami, já bych k tomu přidal Ganttův graf. Vlastně mám z blízkého okolí takový příběh i z praxe. Když se bavíte s novým potenciálním zákazníkem o případném projektu nějakého vývoje, tak v momentě, kdy vytáhnete aspoň Ganttův graf, a je jedno co v něm je, najednou zmizí pochybnost o tom, zda na to máte.
Ve škole nám říkali, že databáze reálných průběhů a časových náročností předchozích softwarových projektů je největším bohatstvím projektového managera :-)

Jak již výše zmíněno, otázka je, zda by Vás tahle práce jednou bavila. Šéfování znamená řešit lidi a jednat s nimi, být ve dvojím ohni (zdola i shora), komunikovat se zákazníkem, věčně řešit že je někde skluz / průser, uklízet po ostatních když udělají chybu, chodit na porady...
Jsou lidi, kteří přesně tohle chtějí, a třeba jdou "cestou rychlokvašky" = vystudují šéfování a jdou rovnou ze školy šéfovat.
A znám taky firmy, kde někdo na úrovni generálního ředitele na část úvazku dělá softwarový vývoj nebo něco na ten způsob. A třeba si i nechá v tomto dílčím oboru šéfovat od svého jmenovitého podřízeného (šéfa vývoje softwaru).

A ještě jiná otázka je, zda se dokážete dostat na šéfovskou pozici někde, kde pod sebou budete mít lidi natolik schopné, že se Vám nebude neustále otvírat kudla v kapse, že byste jejich práci nejradši udělal sám.
Naprosto s Vámi souhlasím v jedné věci: není větší žůžo, než mít šéfa, který rozumí svojí práci a je to "člověk na svém místě". Mě se to párkrát poštěstilo (jsem stárnoucí umpalumpa, ovšem nikoli programátor).


Na úroky jsou primitivní hotové vzorce. Úročitel / odúročitel / střadatel / fondovatel / umořovatel / zásobitel. Ne že bych si je pamatoval, jenom vím, že když budu potřebovat, stačí si to nalistovat. Jinak prosté složené úročení je trapná N-tá mocnina (exponenciála podle času). A ty pojmenované vzorce do toho přidávají různé varianty průběžného spoření/umořování nebo čerpání jistiny.


Clean code: už máte dost vlastního rozumu, než abyste skočil na špek youtuberovi, který si zvyšuje počet zhlédnutí provokativním obsahem. (Vyfabuluje falešnou modlu a pak ji půl hodiny horlivě vyvrací.) Mimochodem... za mých mladých let býval na ekně předmět, kde se bazírovalo na strukturovaném programování a studenti byli nuceni, používat jednoduchý grafický editor vývojových diagramů, ze kterých měl padat hotový strukturovaný kód v Pascalu... fungovalo to bezvadně jako lekce "tudy cesta vážně nevede, tzn. přinejmenším nic se nesmí přehánět". Naštěstí to tak chápali nakonec i vyučující. Tolik k různým idealismům.


Ještě k té low-level problematice a kam se "studijně zaměřit", ať už ve škole nebo na vlastní pěst:

Obecně v dnešní době nemohou umět všichni všechno. Osobně razím zásadu, že o co jsem si prakticky nenatloukl nos, tomu nemohu pořádně rozumět. Zároveň ten proces praktických pokusů a omylů vždycky trvá nějaký nenulový čas, přestože máte třeba předem teoreticky nastudováno. A času máme všichni stejně. Z toho právě plyne, že nemůžete umět všechno, protože to prostě nejde stihnout. A od toho máme dělbu práce. I ve firmách, které vyvíjejí embedded věci, pro automotive nebo jinam, existuje dělba práce minimálně na návrháře desek a programátory softwaru (ti se dále člení). Není špatné, pokud programátor blízko hardwaru třeba někdy držel v ruce páječku nebo si navrhl plošák, ale asi není úplně vhodné, aby dělal oboje. U projektu většího než triviálního to není časově možné.

Bohužel český domácí trh, tím že je malý, je zřejmě odsouzen do role "téměř čistého konzumenta integrovaných řešení". Není tu až tolik fajnové vývojářské práce pro globální trh - většina firem v širším oboru IT skládají dohromady stavebnici, kterou vyvinul a vyrábí někdo jiný. To co tady tvoříte, tvoříte často jednorázově nebo pro relativně malý počet zákazníků. Čest výjimkám, které se uchytily se svým produktem na globálním trhu.

Sysgo jsem zmínil hlavně kvůli jejich projektu PikeOS. Je to zajímavý kus softwaru, na kterém pracují špičkoví programátoři. Popravdě třeba nevím, jaký s tím mají úspěch na trhu... I v téhle firmě bude řada různých pozic s různou náplní práce.

Pokud pomineme programování MCUček přímo na holém železe, jsou v "embedded" oblasti populární různé RealTime operační systémy (RtOS). Tzn. tu nejtěžší dřinu už někdo odvedl. Pokud byste se motal kolem nějakého RtOS, tak nejspíš jako údržbář kernelu / tvůrce ovladačů pro periferie / tvůrce "aplikačního" softwaru. Nemám ale o tomhle trhu valný přehled. Různých malých RtOS je spousta a podle mého zdaleka ne všechny jsou kdovíjak úspěšné. Takže je otázka, čeho se chytit, co je perspektivní.

Hardware vespod může být PCčko nebo ne-PCčko.
Osobně znám z práce především x86 PC hardware. Jakožto profesionální průserář hlavně hledám mouchy na věcech, které navrhl někdo jiný - což není úplně tvůrčí práce, zcela jistě nikoli pro globální publikum. Snažím se problémy řešit přednostně v technické rovině, takže se občas o hardwaru něco dozvím...

Napadá mě nějaké prázdninové čtení na pomezí oborů PC HW / OS, případně o x86 asm/disasm...
Nevím, zda je zrovna tohle Váš obor zájmu, nebo jestli třeba nejste dávno úplně jinde...
berte nebo nechte bejt :-) a přeskakovat termíny či pasáže, kterým zatím nerozumíte, to jistě ovládáte dávno. U mě je to vždycky otázka motivace. Nejlíp se mi študuje nějaká neznámá oblast, pokud narazím na praktický problém, který mě k tomu poňouká. Číst to jako beletrii mi moc nejde.

Tak tedy:

Vynechávám letitý materiál, jak se daly PCčka programovat v éře MS-DOSu, jak si napsat holý DOSový exáč v ASM, jak sahat na paralelní port apod. Ta doba je pryč, pro Vás mladé už to nemá ani tu nostalgickou hodnotu.

Vzpomněl jsem si na pár článků od Michaela Kourdakise - začnu zprostředka článkem, který načrtává, jak na holém x86 hardwaru odstartovat SMP. V úvodu jsou tam hned odkazy na předchozí díly, které se více věnují základům.
https://www.codeproject.com/Articles/889245/Deep-inside-CPU-Raw-multicore-programming

Zkusil jste si stáhnout nějaký disassembler? Třeba free edici IDA Pro.
https://hex-rays.com/ida-free/
A loadnout nějaký binár, a koukat, jak vypadají funkce disassemblované z bináru, který původně vypadl nejspíš z Céčkového kompilátoru.

Nedávno jsem narazil na webíky jedné paní z Polska, která se věnuje hlavně analýze malwaru a napsala pro tyto potřeby i nějaké jednoduché pomůcky (software).
https://hshrzd.wordpress.com/how-to-start/
https://hasherezade.github.io/
https://www.youtube.com/@hasherezade/videos
https://twitter.com/hasherezade

Formáty binárek:
https://en.wikipedia.org/wiki/Comparison_of_executable_file_formats
https://en.wikipedia.org/wiki/Portable_Executable
https://en.wikipedia.org/wiki/Executable_and_Linkable_Format

K nahlédnutí do hlaviček PE binárů existují editory.
Klasiký byl LordPE, který je ale tuším 32bit-only.
Aktuálně mi Google našel toto:
https://github.com/petoolse/petools/releases

Ohledně RtOSů... měl jsem v úmyslu, navrhnout nějaké čtení ohledně RTAI, protože je z toho hezky vidět některé problémy, které se různé RtOS snaží řešit... ale boužel RTAI vypadá poněkud polochcíple :-) Hrál jsem si s tím asi před 15 lety a tehdy mi nějaké základní examply fungovaly.

RtOS může existovat buď samostatně jako plnohodnotný OS na holém železe, nebo může tvořit nějaký "hybrid" se stolním OS. Viděl jsem zřejmě cca následující hybridní varianty:

a) na holém železe RtOS mikrokernel, normální OS běží jako jeden z jeho tasků. Takto funguje RTAI a další.

b) na holém železe běží normální OS, který se ale dá přesvědčit, aby se vzdal jednoho konkrétního jádra CPU (nebo i více jader) a na těchto jádrech se zahnízdí "real-time exekutiva". Koordinací s "hostitelským OS" lze nalinkovat doručování IRQ od konkrétní periferie na procesory zabrané RtOS. Tady mě napadá B&R ARwin, který jsem viděl na vlastní oči.

c) RtOS má svůj vlastní hypervizor, normální OS běží vlastně ve virtuálu

Nicméně je třeba říct, že na spoustu "real-time" věcí vlastně stačí standardní Linux :-)

Možná bych na závěr ještě k PCčkům zmínil pár svých tlejících starších spisků:
http://support.fccps.cz/download/adv/frr/MSI/PCIe-MSI.html
https://stackoverflow.com/questions/27470885/how-does-dma-work-with-pci-express-devices
https://electronics.stackexchange.com/questions/76867/what-do-the-different-interrupts-in-pcie-do-i-referring-to-msi-msi-x-and-intx/343218#343218

Re:Vysoká škola pro pokročilého programátora
« Odpověď #53 kdy: 29. 07. 2023, 07:13:04 »
Téměř vše už bylo řečeno tady v jiných tématech. Pouze bych důrazně doporučil jít studovat do zahraničí na západ, pokud je to možné. Mobilita v EU je jjedna z největších příležitostí a benefitů.

Re:Vysoká škola pro pokročilého programátora
« Odpověď #54 kdy: 29. 07. 2023, 20:05:41 »
Na (dobre) VS se neuci technologie, ale principy. Kdyz znas par technologii, naucit se principialne jinou na obskurni platforme (tj. napriklad funkcionalni programovani v C++ templatech) je vyznamne tezsi nez kdyz znas tyhle principy uz davno z VS. Nebo napriklad kryptografie, to je kapitola sama o sobe...
Normalne moc neprispivam, ale tohle mi nedalo. Po VS jsem hledal docela dlouho job kde by se dala kryptografie vyuzit. Nic krome par pozic na NUKIB jsem nenasel. To, ze to oproti klasice .NET nebo Java jobum platove bude stat asi za starou belu, kdyz je to statni, zminovat asi nemusim... Muzu se teda zeptat na vyuziti, konkretni firma, job, cokoliv?

Re:Vysoká škola pro pokročilého programátora
« Odpověď #55 kdy: 30. 07. 2023, 01:05:41 »
Na (dobre) VS se neuci technologie, ale principy. Kdyz znas par technologii, naucit se principialne jinou na obskurni platforme (tj. napriklad funkcionalni programovani v C++ templatech) je vyznamne tezsi nez kdyz znas tyhle principy uz davno z VS. Nebo napriklad kryptografie, to je kapitola sama o sobe...
Normalne moc neprispivam, ale tohle mi nedalo. Po VS jsem hledal docela dlouho job kde by se dala kryptografie vyuzit. Nic krome par pozic na NUKIB jsem nenasel. To, ze to oproti klasice .NET nebo Java jobum platove bude stat asi za starou belu, kdyz je to statni, zminovat asi nemusim... Muzu se teda zeptat na vyuziti, konkretni firma, job, cokoliv?
Tenhle rybníček je zřejmě malý. Dneska kdo chce šifrovat, použije nějaký hotový software nebo standardní knihovnu... Základní výzkum/vývoj zřejmě leda někde v akademické sféře. Jinak užitou kryptografii by mohly pěstovat teoreticky pro svou potřebu banky, pro Vás kromě Raiffky protože pro tu údajně už dělá Tomáš Rosa ;-) ... napadá mě jedna konkrétní integrátorská firma: S.ICZ. Možná ve zbrojařském odvětví by se taky něco našlo (Czechoslovak Group není jenom těžká technika, patří tam radarové firmy apod.). Velké konzultantské firmy myslím taky občas experta potřebují, ale u nich bych se nedivil, pokud si najmou někoho externě na živnosťák na konkrétní akci.
Pak tu mají pobočky všelijaké zahraniční softwarové firmy...

Popravdě se o tento obor nijak zvlášť nezajímám, nejspíš mi mnohé uniká.

Maor

Re:Vysoká škola pro pokročilého programátora
« Odpověď #56 kdy: 30. 07. 2023, 12:09:14 »
pro tazatele

máš praxi dobrý, potřebuješ jít někam, kde ti daj zabrat a nebudeš nejchytřejší v místnosti.

Jdi na něco teoretického, nauč se dobře matiku

Pokud můžeš běž do ciziny EU/UK - TU Munich, ETH Zurich, Delft, Cambridge, Manchester,... USA - Ivy league, MIT, Stanford

V ČR se zeptej na individuální studijní plány a jezdi do ciziny jak jen to jde. Můžeš jet v každé etapě studia na Erasmus a pak jsou možné výjezdy v rámci jiných programů, takže ve výsledku v ČR odstuduješ jen prvák a pak jeden semestr až se vrátíš abys dopsal bakalářku.

Na magistru jsou pak joint/double degree programy. Důléžité je jezdit na školy, které jsou lepší než co máme v ČR. https://www.topuniversities.com/

Díky kontaktům z ciziny se ti pak bude snáz hledat dobrá práce na západě

a poslední doporučení, vždy se dá škola nedodělat
« Poslední změna: 30. 07. 2023, 12:19:13 od Maor »

Re:Vysoká škola pro pokročilého programátora
« Odpověď #57 kdy: 30. 07. 2023, 13:58:07 »
Rozhodně na VŠ jdi, určitě na to máš a není to vyhozený čas. Já jsem absolvoval VŠB FEI (průmyslovou automatizaci), takže o pražských VŠ toho moc nevím, nicméně už mám něco odpracováno v oboru a musím říct, že na VŠ hlavně máš příležitost odjet někam studijní pobyt nebo tím lépe i na stáž. (Spolužáci třeba byli v Jižní Koreji nebo na Taiwanu) To se pak dostaneš na místa, kde by ses běžně nedostal a většinu nákladů ti pokryje škola.

A taky, třeba si jednoho dne uvědomíš že to programování už tě nebaví nebo se trh práce změní, tak se ten titul opravdu hodí.


Re:Vysoká škola pro pokročilého programátora
« Odpověď #58 kdy: 01. 08. 2023, 16:28:54 »
To zní jako perfektní ztráta dalších 3-5 let :/.

Pokud jsi tak dobrý, tak by neměl být žádný problém vystudovat distančně a podle individuálního studijního plánu za podstatně kratší dobu.

Ve volném čase doporučuji věnovat se trochu české gramatice. Není úplně od věci umět dobře rodný jazyk a třeba shoda podmětu s přísudkem ti dělá docela potíže :/.