Zobrazit příspěvky

Tato sekce Vám umožňuje zobrazit všechny příspěvky tohoto uživatele. Prosím uvědomte si, že můžete vidět příspěvky pouze z oblastí Vám přístupných.


Příspěvky - stribro

Stran: [1]
1
Constexpr označuje funkce, které lze spustit už při kompilaci a do binárky zapsat jenom jejich výsledek.
Standard c++ říká "it is possible to evaluate the value of the function or variable at compile time", takže jako obvykle záleži na implementaci kompilátoru, jestli constexpr spustí nebo ne.

Inline je hint pro kompilátor, aby volání funkce nahradil přímo její implementací, což je optimalizace, kterou ale moderní kompilátory umí dělat samy a "inline" k tomu nepotřebují.
Důležitější vlastnosti inline se týkají kompilace a linkování, a zde tě spís odkážu na Stack Overflow:
https://stackoverflow.com/questions/1759300/when-should-i-write-the-keyword-inline-for-a-function-method

2
Jsem programátor samouk, vzděláním japanolog, který se naučil programovat díky tomu, že měl hodně starších kamarádů programátorů a skočil do první webové agentury, která nabízela brigádu, takže moje cesta je asi trochu jiná, ale zkusím shrnout své zkušenosti, co mi chybělo a co naopak bylo fajn.

Co mi zásadně chybělo, bylo vedení v podobě nějakého schopného seniora, který by si mě vzal pod křídlo a naučil mě programovat pořádně.
V naší agentuře jsme byli vesměs kluci 20-25, pro které to povětšinou byla první práce a každý projekt většinou zaměstnal jednoho programátora a jednoho kodéra s tím, že pokud si někdo vyloženě nevěděl rady, byla tu šéfová, velká kapacita na databáze, která v případě technických záseků pomohla. Ale jinak jsme byli v podstatě hozeni do vody.
Projekty byly vesměs různé eshopy a CRMka, takže nic složitého, co by začáteční nezvládl, takže jsme měli prostor hned na začátku získat hodně samostatnosti. Zásadní nevýhodou ale bylo, že jsme se téměř nenaučili kooperovat s druhým programátorem a každý si mastil kód tak, jak uznal za vhodné nebo načetl best practices na netu.

Výhody: člověk seděl na deseti židlích najednou (backend, frontend, administrace linuxu, kódování, databáze, komunikace s klientem) a tak se rychle naučil základy mnoha různých vývojářských rolí a technologií. Navíc bylo super dělat v punkové firmě s pár dalšími neopeřenci a mít dobrý pocit, že člověk není korporátní opička.
Nevýhody: Žádné vedení, žádná struktura, nedostatek příležitostí naučit se pracovat v týmu a přiučit se od někoho s hlubšími praktickými i teoretickými znalostmi.

Samozřejmě tím, že přicházíš z MFF, tak asi budeš mít zmáknutou všechnu teorii, co bys mohl potřebovat, ale vzhledem k tomu, jak častý kámen úrazu pro programátory jsou soft skills, schopnost podřídit se cizímu řešení a udržovat konzistentní strukturu projektu, doporučoval bych najít pozici ve větším týmu se zkušenými lidmi.
To, co dělá dobrého seniora nebo team leadera, nejsou jeho technické schopnosti (které jsou samozřejmě potřeba), ale schopnost vést lidi, řešit konflikty v týmu a mentorovat juniory. Z vlastní zkušenosti vím, že srozumítelné vysvětlení nějakého problému od šikovného kamaráda mi většinou dalo víc, než tisíc teoretických knih a tutoriálů a být ten člověk, za kterým ostatní budou chodit pro jasnou a srozumitelnou radu, je jedna moc příjemné a jednak obrovská hodnota pro jakoukoliv firmu, kde budeš v budoucnu pracovat.

Navíc, čím starší budeš, tím spíš si budeš chtít dělat věci po svém, tím víc ti různé jednodušší úkoly budou připadat jako otrava a tím víc budeš nesnášet korporátní struktury, tak doporučuju jít do velké firmy dokud ti ta práce ještě přijde sama o sobě nová a zajímavá a máš nadšení z toho, že prostě jenom programuješ věci pro reálný svět.

Poslední lidská rada: pokud vycházíš Matfyz a máš dobré výsledky, pravděpodobně budeš mít ego through the roof a různí javascriptoví "lepiči kódu" a podobné existence, zde s oblibou nazývané jako lopaty, ti přijdou jako póvl. Pokud se to týká zrovna tebe, doporučuji pilně pracovat na pokoře, protože vždy můžeš narazit na problém, který bude nad tvoje síly a dokázat se dohodnout s lidmi horšími, než ty a přijmout radu od lidí lepších než ty, je pro tvůj osobní růst i pro spokojenost v týmu extrémně důležité.

3

...Obranou je DCA a diverzifikace - k BTC přidat ETH, případně ADA nebo MATIC apod...
Problém je ale, že padající BTC táhne veškeré ostatní crypto s sebou, takže mi přijde, že diverzifikace moc nepomůže.

4
Studium a uplatnění / Re:Město, nebo vesnice?
« kdy: 25. 05. 2021, 11:21:32 »
Citace
100% súhlasím s tým, že jazdiť na cestách predpisovo je horšie ako jazdiť ako hovado a porušovať predpisy v podstate neustále. Skúšal som to chvíľu po tom čo som si kúpil prvé auto a bolo to omnoho nebezpečnejšie. Toľko zmrdov čo sa mi lepilo na kufor, ohrozovalo ma, vulgarne a agresívne sa správalo keď som dodržiaval maximálnu rýchlosť a nemohli ma obehnúť, tá frustrácia niektorých debilov je neuveriteľná, všetci sa stráááášne niekam ponáhľajú. Dnes už jazdím aj ja tak, že nedodržiavam predpisy, ale som k tomu vlastne donútený.

Přijde mi, že mnoha problémům člověk předejde tím, že se naučí okamžitě řadit do pravého pruhu jakmile je v něm místo. Němci tohle zvládají skvěle.

Každopádně poté, co jsem si projel Rakousko - Balkán - Maďarsko, tak jsem došel k závěru, že to vlastně u nás je dost v pohodě. V Rakousku kamery a místy až limit až na 80, takže i v noci na liduprázdné tříproudovce se člověk plouží šnečím tempem. Na Balkáně moc nejsou dálnice. V Maďarsku jsem zase potkal specialitu v podobě štrůdlu kamionů ploužících se 80 v levém pruhu, které bylo potřeba podjíždět.
Takže vlastně návrat do Čech byl docela osvěžením - dálniční tempo je svižné, lidi umí plus minus střídat pruhy a čas od času nějaký agresivní závodník a nebo naopak "vyškolovač" (neboli člověk, který si v levém pruhu drží svých předpisových 130 i když je vpravo od něj prázdno) se najde všude.

5
Studium a uplatnění / Re:Jak začít programovat od nuly?
« kdy: 24. 03. 2021, 14:39:44 »
Abych se vrátil k původní otázce:

Myslím, že C# nebo Java jsou jako první jazyk v pohodě. Mám zkušenosti spíše s C# (můj první jazyk) a přijde mi, že nabízí dobrou rovnováhu mezi složitostí a pokročilými prvky. Zároveň člověka nutí psát určitým stylem, což je pro začátečníka ideální. Méně ideální je ta provázanost s Windows a molochem jménem Visual Studio, které byť je pro pokročilého programátora naprosto skvělým a pohodlným nástrojem, ale začátečníka může svojí komplexitou vyděsit.

Obecně vzato je úplně jedno, čím začneš - jakmile se naučíš jeden jazyk, zvládneš se relativně naučit jiný. Důležité je, mít cíl, něco, projekt, který chceš vytvořit a zbytek se naučíš. Když se člověk učí programovat jenom proto, aby se naučil programovat, většinou mu elán moc dlouho nevydrží (když padne kosa na kámen a objeví se větší problém,, na kterém se zadrhneš, je náročné udržet si elán i u projektů, které člověka těší). Já jsem třeba začal tím, že jsem řešil rébusy na https://projecteuler.net/. Ale existují podobné stránky s méně strmou obtížností úkolů. Třeba https://www.codewars.com/.

Jako alternativu bych nabídl Python, protože v něm lze napsat naprosto cokoliv od webové stránky přes utilitku do příkazové řádky až po okenní aplikaci po hru. To samozřejmě platí více či méně pro všechny obecné jazyky, ale ekosystém Pythonu působí hodně přehledně a jednoduše. Navíc má detailní dokumentaci a hromadu jednoduše přístupných knihoven na všechno možné. A - co je pro začátečníka důležité - komunita se relativně shoduje na preferovaném stylu, jak kód psát (často se zmiňuje, že něco je "pythonic" nebo "unpythonic").

Samozřejmě, jak psal někdo přede mnou, pokud tě baví hry a chceš se naučit něco do hloubky o tom, jak věci v počítači fungují, ten HandmadeHero (C++), vypadá skvěle.

Měl bych se na pozoru před JavaScriptem a C++ (pokud nechceš zkusit ten HandmadeHero) a to v obou případech kvůli jejich historické zátěži. U obou jazyků platí, že za svoji historii nasbírali tolik různých featur a existuje tolik možných soupeřících stylů programování, že z toho zvláště začátečníkovi musí zakonitě jít hlava kolem. Samozřejmě pokud tě těší pocit, že se jdeš učit něco fakt velkého a staneš se velkým mistrem prastarých tajemných věd nerozumitelných většině smrtelníků, je C++ ideální. Nic komplexnějšího pravděpodobně už nenajdeš.
JavaScript k tomu navíc má neustále se vyvíjející ekosystém knihoven a frameworků. Samozřejmě pokud chceš dělat frontend, alternativa k JavaScriptu neexistuje (alespoň pro začátečníka. Různé mezipřekladače a různá jiná lešení, co si lidé vybudovali, aby mohli psát webový frontend v jiných jazycích, nepočítám. To rozhodně není nic pohodlného a nic pro začátečníka.).

6
Vývoj / Re:Unreal Enginy vs. Unity 3D
« kdy: 13. 04. 2020, 01:02:36 »
Unreal v aktuální verzi (4.24) odstranil podporu HTML5 (WebAssembly) z hlavního buildu enginu a předal ji do správy komunitě (https://docs.unrealengine.com/en-US/Platforms/HTML5/index.html). To znamená, že do budoucna Epic pravděpodobně nepočítá s přímou podporou a zájemci o HTML5 si budou potřebovat kompilovat engine sami s podporou komunitních rozšíření.

Po téměř dvou letech každodenní práce s Unrealem si jej nemohu vynachválit. Ale... Unreal se před uživatelem nijak nesnaží skrýt svoji komplexitu a může do začátku působit složitě.

Stran: [1]