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

peete

Re:Vysoká škola pro pokročilého programátora
« Odpověď #30 kdy: 27. 07. 2023, 13:39:21 »
...jako doktor...
• delat doktora je stejne jako delat programatora, musis se cely zivot ucit a veci se rychle vyviji
• programovani a management je neco uplne jineho. Bohuzel dnes mnoho programatoru dela managery. Bohuzel! A to nerikam, ze moderni kapitalisticky priruckovy manager je nejaka vyhra. Spis myslim na nekoho, kdo ma povahu jako John Vanhara, to jsou opravdu manazeri. A jsme zpatky u tve teorie, ze nestaci si precist knizku o managementu. Je potreba si to zkusit a zjistit, jestli na to mam bunky, a pokud mama, ziskat praxi. Zavidim mlademu OP, ze uz si toho tolik zkusil a uz ma v mnohem jasno. V jeho veku jsem bohuzel takove jasno nemel.
• "Prectu si knizku o programovani a umim programovat." to je proste uvaha 1) typicky ceska, 2) typicky zastarala, 3) vuci skutecnemu vzdelani opovrzliva. Ono totiz, dneska se nikdo z knizek neuci, jenom mozna nejaci kmeti jako my.  Dneska lidi zacnou kurzama, ktery maji vysokou kvalitu (Mooc Fi, Helsinska univerzita (java, Python) pro uplne zacatecniky, SC50 od Harvardu, Laracasts (full-stack PHP+Vue3) a pod.) a pak uz ctou rovnou dokumentaci a knihy jako "Clean Code" a jine. Za druhe, aby ses dneska nekam dostal daleko (treba i bez VS), musis umet dokonale anglicky. Opravdu nestaci umet zhruba prechroustat kousek dokumentace s pomoci Deepl. Musis ten jazyk umet na near native urovni (asi tak jako Finove, Svedi, Nemci...), aby sis ani nevsiml, ze vlastne ctes neco anglicky nebo pripadne poslouchas (bez titulku). Zatimco my se tady bavime, jestli jit na nakou VS, kde maji takove ty cernobile skripta psane na stroji (nevim, jestli to jeste dnes existuje:-) tak na Redditu si povidaji lidi z USA+UK, jak delali internship (to je samozrejmost) a pak delali pohovor ve FAANG pred komisi 8 senioru. Jak delaji kazdy den Leetcode zadani. Jak maji GitHub narvany projektama. Atd. OP z tohoto vlakna je jeden z mala, ktery jede podobnou kvalitu. Konecne nekdo kdo nerekne "tak sem si precet Python na itNetworku a kde me tedka vezmou, kdyz chci programovat tu AI"?? Za treti, jit na to opacne, teda napriklad delat managera kdyz jsem si o tom v zivote ani nic neprecetl je o nicem, protoze budu opakovat chyby svych predchudcu. Za ctvrte jsem opet u anglictiny. Zajimalo by me jaka doopravdy puvodni ceska kvalitni kniha, ktera se vyrovna zahranicnim, vysla v cestine. Za me teda "Bity do bytu" a par dalsich. Musime si uvedomit, ze ani v medicine, ani v programovani nam proste cestina nepomuze, je mi lito. Neni to jazyk tech oboru (kolik odbornych studii v medicine vychazi v cestine?).
• A nakonec, ale to uz jsme tu probirali, dneska je to jedno i kdybys mel 10 VS a ucil se jak chtel a mel narvany GitHub projektama atd., nikoho to nezajima. Jedina skutecne relevantni otazka u dnesnich pohovoru je: "uz jste pracoval nekolik roku v nejake firme jako programator"? Nastesti, OP ma tuto otazku vyresenou svym internshipem.
« Poslední změna: 27. 07. 2023, 13:44:35 od peete »


peete

Re:Vysoká škola pro pokročilého programátora
« Odpověď #31 kdy: 27. 07. 2023, 13:51:02 »
No, a abych nebyl tak OT, v zahraničí je pár celkem kvalitních Computer Science VŠ, které se dají studovat online. Pokud náš mladý umí hodne dobře anglicky a má hromadu peněz (protože ty VŠ jsou drahé jak sviňa), tak bych šel do toho. Celkem známé jsou tyhle programy:
MSDSO: https://cdso.utexas.edu/msds
OMSCS: https://omscs.gatech.edu/
SNHU: https://www.snhu.edu/online-degrees/bachelors/bs-in-computer-science
Bližší info na Redditu, hledejte zmíněné zkratky.
« Poslední změna: 27. 07. 2023, 13:54:54 od peete »

Re:Vysoká škola pro pokročilého programátora
« Odpověď #32 kdy: 27. 07. 2023, 15:56:59 »
Hodnotis hned podle prvni, nebo to musi byt specificka kombinace? Co reknes na Teologickou, nasledovanou FFUK a pak nejakou prestizni techniku v USA? Podotykam, ze dotycny mel vazny duvod ke studiu vsech uvedenych.

zminim jiny scenar, zminku o vysoke skole jen preletim, ale pokud tam uvidim neco jako "DAMU", tak s tim posukem se ztracet cas nebude.

mikrom

  • ****
  • 370
    • Zobrazit profil
    • E-mail
Re:Vysoká škola pro pokročilého programátora
« Odpověď #33 kdy: 27. 07. 2023, 21:15:18 »
Ty zkušenosti, projekty, atd. zní na první pohled impresivně, ale není to zabíjení mládí, když od 15 let chodíš jen do školy a přitom pracuješ? Mně se to zdá dost nezdravé. Já bych to jako teenager tak nesilil. Peníze nejsou všechno. Chodil bych raději třeba do fitka a užíval si mládí. Vždyť pracovat budeš muset až do roku .. (nevím vypočítaj si svůj penzijní věk)
Nejít na VŠ je dost krátkozraké, na VŠ se naučíš věci o kterých dosud nemáš ponětí.
Vypadáš, že máš dost velké ego a že si věříš. K tomu se zde nebudu dále vyjadřovat. Ale když mluvíš že máš problémy s středoškolskou matikou připadá mi to dost divné. Myslíš že když budeš mít rodinu a věk 40-50 bude tě stále bavit učit se nějaké nové technologie?
Každopádně, doporučuji jít na VŠ. Jak tady už někdo psal na VŠ se naučíš přemýšlet, neučíš se nejnovější technologie ale principy. A když VŠ dokážeš projít získáš i vlastnosti jako vydrž a cílevědomost. To' jsou velmi důležité vlastnosti.
Možná jsem stará struktura, ale když si vybírám kolegu tak chci rozumného logicky rozmýšlejícího člověka a nechci nějakého chytrolina, který nedokázal ani ukončit adekvatní VŠ.
« Poslední změna: 27. 07. 2023, 21:17:24 od mikrom »

Re:Vysoká škola pro pokročilého programátora
« Odpověď #34 kdy: 27. 07. 2023, 23:00:50 »
Dovolím si tu VŠ trošku vyhejtit. A předem zdůraznuju - to co napíšu dál rozhodně nemá znamenat, že vejška je špatně nebo že tě od ní zrazuju či snad že je zbytečná. Jen je to mírně neorganizovaný pohled od člověka, kterej začal prgat v roce 2000, takže teď už skoro důchodce :-D.

- Nemám vejšku. nemám ani nějakou nadstandardní IT střední (ono toho v roce 1995 zas tolik nebylo). obyčejnou elektroprůmyslovku, kde jsme nějak IT předmět měli jednou tejdně.

- Nikdy (slovy nikdy) nikoho moje absentující vejška nezajímala. Ani v roce 2000, když jsem se hlásil do svý první práce, ani v roce 2002, když jsem se hlásil do svý druhý práce, natož teď.  Nikdy to nebyla překážka nějakého postupu, účasti na projektu, účasti na jednání (to je reakce na to, jak tu někdo psal, že když nemáš VŠ, tak tě obchodák nevezme na schůzku - to mě fakt pobavilo :)

- vš tě na soukromou sféru a vývoj v ní moc nepřipraví - protože teorie je šedá, ale strom života je zelený. Praxe je výrazně odlišná. a na většině druhů práce, se kterou se v dnešní době setkáš (zdůraznuji, většinou, neplatí to obecně) je ti i VŠ matematika v podstatě k ničemu. Zužitkuješ úplně jiné schopnosti. Kreativitu. Zkušenosti s různými technologiemi. Schopnost přelouskat a pochopit zadání i když není 100%. Zamyslet se a vidět to zadání v širších souvislostech celého projektu. Být schopen domyslet dosah tvé změny na jiné části systému. Nebo je odhadnout. Schopnost potykat si za dva tři dny s nějakým novým frameworkem / technologií / toolem, který zrovna ted na projektu chtěj použít. A to nezískáš na škole. To získáš jen praxí. I tu schopnost za pár dní začít pracovat s něčím, o čem jsi před týdnem ani nevěděl, že existuje.

- pokud už máš něco za sebou (což vypadá, že ano) - tím spíš nikdo nebude řešit, jestli máš vejšku (mohla by pomoct, pokud by jsi byl jakože-fakt-junior). tady mnohem víc lidi při náboru zajímá, co jsi dělal, jaké byly technologie, jaká byla tvoje role v týmu

- podílel jsem se na náboru v několika firmách, kde jsem se v minulosti vyskytl - vejšku nikdy nikde nikdo neřešil. jako že ale vůbec. ani na ni nikdo nekoukal. o člověku to o jeho schopnostech pro vývoj nic neřekne.

- potkal jsem za život stovky programátorů, kolegů či jen třeba uchazečů o práci ...řada z nich vejšku neměla, řada měla a mohu (klidně pod přísahou) konstatovat, že skutečnost, jestli měli či neměli vejšku vůbec nekorelovala s tím, jak schopní byli či co předvedli

- takže podtrženo sečteno - na tvoji kariéru vejška nebude mít nějaký zásadní přímý vliv. Pokud jsi schopný a jsi schopný těžit z vlastních zkušeností, vejška ti zadnou specialni pridanou hodnotu asi neprinese. Co ti vejška může dát, tak základy k tomu, aby jsi na nich v budoucnu stavěl (nap. pokud by jsi ted byl bez zkusenosti a rikal si, ze by jsi chtel cestou IT jít). Pro lidi, co už ale zkušenosti mají, se ale nabízí otázka, jestli to stojí za "ztracené" tři roky, protože 3 roky v praktickém vývoji v nějaké solidnější firmě ti daj úplně to samé. Občas i víc.

(a k tomu, jak tady někdo psal, že češi neumí anglicky - velký omyl. češi, a zejména nastupující generace ajťáků (a samo i dalších rolí - testerů, různých skrumíku a podobných), která nás důchodce za chvíli začne vytlačovat, umí anglicky velmi dobře. posledních deset let dělám na projektech pro anglicky a německy mluvící svět - a ne jen jako programátor, jehož nutnost znalosti angličtiny končí někdě v jiře, ale i jako architekt či konzultant, takže kváknout si celkem troufám - a dnešní omladina stejně jede angličtinu desetkrát líp jak já)


TDiblik

  • *
  • 4
  • (Programming && IT) enthusiast
    • Zobrazit profil
    • Osobní web
    • E-mail
Re:Vysoká škola pro pokročilého programátora
« Odpověď #35 kdy: 28. 07. 2023, 00:34:10 »
-- Část 1

Ahoj, děkuji za spoustu relevantních poznámek, odpovědí a rad! Všechny jsem je pomalu ale jistě pročítal a bral v potaz, aby však v této diskuzi nevznikl "chaos", tak jsem se rozhodl místo toho, abych vytvářel na každou odpověď nové "vlákno", že shrnu a odpovím na posledních +- 34 zpráv v jedné zprávě. Nutno podotknout, že nebudu reagovat na všechny, vzhledem k tomu, že není úplně potřeba vždy na vše reagovat, ale stačí si to přečíst a vzít k srdci :D (jo a pokud by se vám zdálo, že je něco vytaženého z kontextu, ozvěte se prosím v další konverzaci! Citace zkracuji čistě protože jich v této odpovědi je hodně)

Citace
Tak mě napadá, nezvládl bys třeba toho bakaláře si napráskat do jednoho/dvou let, odchodit si přednášky, co tě zajímají, a ostatní projekty/úkoly jen formálně odevzdat.
- @hmmmw
> Zajímavé.... O něčem takovém jsem slyšel a trochu jsem nad tím přemýšlel, avšak nevím jak se to dá / nedá, nebo celkově jak to funguje?

Citace
.... možná přijde technokolaps ; zrušena hotovost ....
- @technomaniak
> dej tomu pár let ; Monero :D (celá tato odpověď je sakrasmus)

Citace
že jsou oblasti, kde to bez školy nejde a nebo jen s velkým úsilím
- @JaaSt
> Tohle je právě to čeho se tak trochu bojím... Bohužel moje aktuální zkušenost je to, že když se jednou za čas kouknu na nabídky, které by mě zajímali (něco více než řadový programátor), tak VŽDY vyžadují vysokou školu.

Citace
To ze neplatis skolny neznamena, ze to je zdarma
Citace
Nase skolstvi je cely koncipovany tak, ze se vzdy zacina od nuly
- @jjrsk
> "zdarma" bylo myšleno ve smyslu, že máme v Čechách tu výhodu, že pokud bych chtěl studovat, tak se nemusím do konce života zadlužit, i když co přinese budoucnost nikdo neví :/. Každopádně po tomto komentáři jsem si šel přepočítat kolik by mě +- stálo žít, a je pravda že realita je výší než jsem původně předpokládal
> Nevím přesně proč, ale přijde mi to špatně a správně zároveň. Polemizovat bychom tady o tom mohli dalších X hodin, ale stejně to asi nic nezmění, tudíž je to nejspíše fakt s kterým se budu muset smířit :(

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í (counterpoint, za chvíli pojede internet na UDP místo TCP, ale celý proces stejně trval okolo 12ti let)? Všechny tyto teoretické věci mám nastudované, vzhledem k tomu, že opravdu nerad pracuji "nad" technologiemi, kterým nerozumím. Například dneska jsem do jednoho mého projektu implementoval icmp ping request (ano, používá to knihovnu pnet, ale to kvůli tomu, že potřebuji aby byl projekt cross-platform + ji využívám na více místech programu), pointa je čistě to, že tyhle teoretické věci již mám projduté, ať už v rámci samostudia, či střední školy, kde se právě i takovéto teoretické věci učíme (CCNA ; Networking Essentials)
Kód: (Rust) [Vybrat]
use std::{
    net::IpAddr,
    sync::{Arc, Mutex, RwLock},
    thread,
    time::{Duration, Instant},
};

use anyhow::anyhow;
use log::error;
use rand::random;

use pnet::packet::{
    icmp::{
        echo_reply::EchoReplyPacket,
        echo_request::{IcmpCodes, MutableEchoRequestPacket},
        IcmpCode, IcmpType, IcmpTypes,
    },
    ip::IpNextHeaderProtocols,
    util::checksum,
    Packet,
};
use pnet::transport::icmp_packet_iter;
use pnet::transport::TransportChannelType::Layer4;
use pnet::transport::{transport_channel, TransportProtocol};

const ICMP_SIZE: usize = 64;
pub const DEFAULT_PING_ENSURED_CONNECTIVITY_TIMEOUT_MS: u64 = 5000;
pub const DEFAULT_PING_ENSURED_CONNECTIVITY_CHECKUP_MS: u64 = 20;

struct PingStatus {
    got_reply: bool,
    reply: Option<EchoReplyInfo>,
    stringified_err: Option<String>,
}

#[derive(Debug, Clone)]
pub struct EchoReplyInfo {
    pub addr: IpAddr,
    pub rtt: Duration,

    pub identifier: u16,
    pub icmp_code: IcmpCode,
    pub icmp_type: IcmpType,

    pub raw_packet: Vec<u8>,
    pub raw_payload: Vec<u8>,
    pub checksum: u16,
}

// Could be optimized by sending multiple pings at once, but I don't really care about perfomance atm
// Pro forum.root.cz:
// Vím že to není úplně nejoptimálnější řešení, ale funguje :D. Ideální by bylo místo spawnování threadu udělat to asynchronní,
// ale to je bohužel (aktuálně) poměrně těžké v kontextu celé aplikace -- jedná se o egui (což je immediate ui), tudíž musím spawnout nový thread
// abych neblokoval renderování + kdyby to hodilo error tak aby nespadla celá aplikace, tak celá tato funkce je volaná ještě z dalšího threadu, tudíž na jeden ping spawnuju 2 thready,
// což je extrémní neefektivní blbost, ale kvůli rychlosti vývoje je to aktuálně preferované řešení a abstrakce je psaná tak aby to v budoucnu byl jenom implementační detail.
// V budoucnu to plánuju sepsat tak že spawnu na začátku druhý thread a tomu budu do queue posílat async tásky, a potom budu na output reagovat na začátku/konci každého re-renderu
pub fn send_icmp_echo_request_ping(
    address: IpAddr,
    ping_timeout_ms: u64,
    ping_checkup_ms: u64,
) -> anyhow::Result<Option<EchoReplyInfo>> {
    let protocol = Layer4(TransportProtocol::Ipv4(IpNextHeaderProtocols::Icmp));
    let (mut tx, mut rx) = match transport_channel(4096, protocol) {
        Ok((tx, rx)) => (tx, rx),
        Err(e) => return Err(e.into()),
    };

    let mut icmp_header: [u8; ICMP_SIZE] = [0; ICMP_SIZE];
    let icmp_packet = create_icmp_echo_request_packet(&mut icmp_header);
    let sent_at = Arc::new(RwLock::new(Instant::now()));
    tx.send_to(icmp_packet, address)?;

    let status: Arc<Mutex<PingStatus>> = Arc::new(Mutex::new(PingStatus {
        got_reply: false,
        reply: None,
        stringified_err: None,
    }));

    let closure_status = Arc::clone(&status);
    let closure_sent_at = Arc::clone(&sent_at);
    thread::spawn(move || {
        let mut iter = icmp_packet_iter(&mut rx);
        match iter.next() {
            Ok((packet, addr)) => {
                if let Some(echo_reply) = EchoReplyPacket::new(packet.packet()) {
                    let mut new_status = closure_status.lock().unwrap();
                    new_status.reply = Some(EchoReplyInfo {
                        addr,
                        rtt: Instant::now().duration_since(*closure_sent_at.read().unwrap()),
                        identifier: echo_reply.get_identifier(),
                        icmp_code: echo_reply.get_icmp_code(),
                        icmp_type: echo_reply.get_icmp_type(),
                        raw_packet: echo_reply.packet().into(),
                        raw_payload: echo_reply.payload().into(),
                        checksum: echo_reply.get_checksum(),
                    });
                    new_status.got_reply = true;
                }
            }
            Err(e) => {
                error!(
                    "An error occurred while reading icmp echo request ping: {}",
                    e
                );
                closure_status.lock().unwrap().stringified_err = Some(e.to_string());
            }
        }
    });

    let ping_timeout = Duration::from_millis(ping_timeout_ms);
    let ping_checkup = Duration::from_millis(ping_checkup_ms);
    loop {
        thread::sleep(ping_checkup);

        let status_lock = status.lock().unwrap();
        if let Some(err_text) = status_lock.stringified_err.clone() {
            return Err(anyhow!(err_text));
        }

        if status_lock.got_reply || Instant::now() - *sent_at.read().unwrap() > ping_timeout {
            return Ok(status_lock.reply.clone());
        }
    }
}

fn create_icmp_echo_request_packet(icmp_header: &mut [u8]) -> MutableEchoRequestPacket<'_> {
    let mut icmp_packet = MutableEchoRequestPacket::new(icmp_header).unwrap();
    icmp_packet.set_icmp_type(IcmpTypes::EchoRequest);
    icmp_packet.set_icmp_code(IcmpCodes::NoCode);
    icmp_packet.set_identifier(random::<u16>());
    icmp_packet.set_sequence_number(1);
    icmp_packet.set_checksum(checksum(icmp_packet.packet(), 1));

    icmp_packet
}

Citace
Pokud se vážně zakousnete do low-level věcí a embedded vývoje, jako že mezi hardwarem a co se děje v kernelu, napadá mě jeden konkrétní potenciální zaměstnavatel, se kterým byste výhledově mohl mít společné zájmy: Sysgo
- František Ryšánek
> Sysgo vypadá hooodně zajímavě! Upřímně jsem měl trochu v plánu se příští rok před vysokou hlásit na nějakou delší embedded, nebo security code auditing stáž, aktuálně si znalostmi ještě nevěřím, protože jsem ještě ani nesestavil svoji vlastní funkční desku, ale určitě to tam na příští rok zkusím!

Citace
.... Ako spolupracovat s ludmi, ktorych nemas rad .... Kedze ale za sebou uz nieco odrobene mas, tak mozno toto ani nepotrebujes
- @Halofon
> Upřímně tohle je něco co mi chybí. Aktuálně jsem měl zatím pořád štěstí spolupracovat pouze se super lidmi a v jednu chvíli jsem pracoval v max 3 členném týmu, tudíž i to je důvod proč tam jít. Je pravda že jsem snad na každé škole viděl nespočet skupinových projektů.

Citace
Najít člověka bez VŠ vzdělání, který by znal rozdíl mezi joiny u SQL, který by uměl vyhodnotit latency systému v čase (vlastně správně počítání percentilu a směrodatné odchylky bývá velký problém), který by dokázal popsat běžné komunikační protokoly a jejich vliv na bezpečnost, dostupnost, latency a propustnost, který by chápal rozdíl mezi heapou, stackem a různýma datovýma strukturama v javě je prostě problém.
- @_Tomáš_
> Uf, to jsou docela základy no... Druhá věc je, že je důležité vědět kdy jaké abstrakce SPRÁVNĚ aplikovat (to je naopak něco co jsem si všiml že často neumí lidé z vysokých škol, kteří se látku nadrtili)! Je sice pravda že věci jako Hashmapa mají hledání v čase O(1), avšak 90% času je rychlejší normální array (čistě kvůli tomu že procházet hodnoty poskládané za sebou v paměti je milionkrát rychlejší než kalkulování daného hashe v konstantním čase)! Velká "O" notace označuje to jak roste počet operací na základě počtu prvků, ne to jak rychle algoritmus běží! Například toto je dle mého názoru jedno z správných míst, kde použít hashmapu. Tím se snažím naznačit, že je často důležité uvědomit si s kolika prvky reálně budu pracovat, jelikož pokud vím že budu pracovat např s klávesami a vím že čísla kláves se pohybují od 0 do 256 tak je možná jednoduší předalokovat prázdnou array a jednotlivou klávesu reprezentovat jako index, než vymýšlet jak to budu dělat přes nějakou datovou strukturu, jelikož direct access do paměti je a vždy bude rychlejší než složité algoritmy (nehledě na to, že použití těchto datastruktur vypadá dobře na papíře, avšak v realitě za použití těchto algortimů dochází ke spoustě CPU cache missům. Co se tím snažím říct je to, že je extrémně důležité znát VŠECHNY tradeoffy daných datových struktur a algoritmů. Zde je docela zajímavý poslech na toto téma od Bjarne Stroustrupa (tvůrce jazyka c++). A tato myšlenka by mohla pokračovat dál na programovací koncepty, například pokud mi někdo řekne že leakování paměti nemá své využití, předem mohu říct že pořádně neví, jak funguje paměť, jelikož leakovat paměť je velice užitečné, pokud máte např program který potřebuje něco extrémně rychle udělat a potom se vypnout (hint: při vypnutí systém stejně paměť uvolní, takže pokud jí leakuju po krátkou dobu životnosti programu, nemusím řešit cleanup, který je poměrně drahý, co se operací týče). TLDR; ano, je dobré znát teoretickou část datastruktur, algortimů, komunikačních protokolů a atd, ale zdá se mi že je v dnešní době extrémně málo známá praktická část těchto témat. Spoustu lidí prostě řekne že je to rychlejší a konec, i když to tak nemusí úplně být. Vlastně celý tento odstavec byl o tom že s Vámi souhlasím, ale měl jsem potřebu k tomu dodat pár mých názorů :D. PS: Zkuste si rozjet quick sort VS counting sort na N množství prvků v hodnotách do u8max :D. Prostě se snažím říct že je důležité vědět jak správně dané algoritmy uplatnit a né že vidím search mezi hodnotami a hnedka na to mrdnu Hashmapu.

Citace
První taková aproximace je přečíst si Průvodce a měl bys tomu rozumět.
- @_Jenda
> Za odkaz na průvodce děkuji, určitě ho přidám do seznamu budoucí četby! Jak jsem ho ale trochu proletěl očima, tak rovnou vidím, že s ním budu mít ten samý problém co jsem vypíchl výše, a to je to že určuje účinnost algoritmu na základě "O" notace, což není špatně, ale celou problematiku cache misů, toho že konstantní neznamená vždy rychlejší, a podobě (se zdá že, ještě jsem to nepřečetl, ale jenom proletěl očima) smete ze stolu prvními dvěmi odstavci na stránce 42, viz citace:
Citace
Dejme tomu, že chceme změřit dobu běhu našeho příkladu „Hello world“ z předchozího
oddílu. Spustíme-li ho na svém počítači několikrát, nejspíš naměříme o něco rozdílné časy.
Může za to aktivita ostatních procesů, stav operačního systému, obsahy nejrůznějších
vyrovnávacích pamětí a desítky dalších věcí. A to ještě ukázkový program nečte žádná
vstupní data. Co kdyby se doba jeho běhu odvíjela od nich?
Takový přístup se tedy hodí pouze pro testování kvality konkrétního programu na konkrétním hardwaru a konfiguraci. Nezatracujeme ho, velmi často se používá pro testování
programů určených k nasazení v těch nejvypjatějších situacích. Ale naším cílem v této kapitole je vyvinout prostředek na měření doby běhu obecně popsaného algoritmu,
bez nutnosti naprogramování v konkrétním programovacím jazyce a architektuře. Zatím
předpokládejme, že program dostane nějaký konkrétní vstup.

Citace
programátoři jsou buď Umpa-lumpové nebo Vonkové, první jsou divní trpajzlíci, řadová omáčka, kterou řídí Vonkové....no a Vonka byl původně Onka, než si udělal VŠ
- @CPU
> Za komentář a odkazy na Karlíka a továrna na čokoládu děkuji, takhle dobře jsem se dloooouho nepobavil xDD. Pokud bych měl být úplně upřímný, mám docela problém s tím že nechci být řadový programátor, jelikož mám docela problémy s tím pracovat jak někdo píská. Zároveň ale aktuálně postrádám zkušenosti a možná i sebevědomí na to dělat managera. Můj hlavní problém je v tom že doslova úplně všechny (školní i volnočasové) projekty, které jsem v minulosti vedl bych kategorizoval jako osobní selhání, jelikož jsem nebyl schopný donutit ostatní pracovat (doslova 0 commitů od mých "spolupracovníků" po X týdnech, když jsem jasně přiřadil práci, samozřejmě i SOBĚ), takže to vždy skončilo tak že jsem to stejně udělal sám (nejenom že to nakonec bylo Xkrát rychlejší, ale to mě od managementu poměrně odradilo). Od té doby většinou skupinové projekty dělám sám, nebo pokud jsem donucen spolupracovat, řeknu něco ve stylu: "Udělám tohle a tohle (většinou okolo 50% celkové práce), zbytek je na vás, GL HF". Naopak co mi extrémně vyhovovalo bylo, když tým vedl někdo velice zkušený, ale zároveň mi dával insight a probíral se mnou další vývoj po technologické i business stránce, tudíž jsem vždy mohl lépe chápat a ovlivnit budoucí dění a vývoj. Takovouto spolupráci jsem měl v AKAENE pod Ing. Martin Ledvinka, Ph.D. a nemůžu si to vynachválit! Myslel jsem si že bych se mohl v něčem takovém zlepšit tím, že bych vedl kroužek, což jsem udělal, ale líp než poslední věty tohoto blog postu kde jsem o tom psal, bych to popsat nemohl (hodím sem jako quote, ať nemusíte chodit na jinou stránku):
Citace
Personally, I really enjoyed and am thankful for this experience / opportunity, truth be told, it gave me a lot of insight to see the process of teaching from the other side, however, I do not feel like I would like to repeat it in the near future again. It was fun and all, and the students were more than amazing, however, it was very, I mean VERY, hard. I always questioned myself if the lessons were enjoyable, whether I explained something correctly, and whether I communicated the knowledge the way I intended it. I like explaining stuff I know a lot about, and sharing my knowledge with the people that ask me in general, however, 90 minutes is a bit too much (even for me :D). Another thing I did not like was the position of authority. I usually prefer more leveled / equal work-related relations. Don't get me wrong, I am able to respect and acknowledge that something / somebody is an authority, but, I feel like I don't have it in me to BE the authority at the moment (like come on, I'm 17 :D).
Nějaké rady, tipy, triky a názory? Nejenom že mám problém když někdo píská a neříká mi proč a nedá mi možnost do toho vstoupit, ale mám zároveň i problém být v pozici kdy pískám, jelikož extrémně nerad otravuju lidi. Pozice toho kdy jsem někde "mezi" těmito rolemi mi tak nějak zatím vyhovuje (DevOps zní docela hezky? Docela, jak toto píšu, přemýšlím že DevSecOps by nemuselo být úplně špatný, jelikož to splňuje všechny moje požadavky?). Chápu že management je asi "další krok" pro většinu programátorů a osobně si dokážu představit že bych přes den dělal management a po práci bych si dělal svoje programovací projektíky, ale trochu se bojím že by ze mě tuny byrokracie pomalu ale jistě vysáli život. Další věc je, že se dnes bohužel i programátor potýká s tunou byrokratických procesů.

Citace
...projektové řízení se musíš pořádně naučit jako programování, jinak to bude daleko větší dřina...
- @CPU
> Nojo, jenže učit se programování je o tom že nad tím při nejhorším ztratím svůj čas. Učit se projektové řízení je o tom, že potencionálně ztratím čas X lidí, financování které do projektu padlo a pokud nebudu dostatečně rychlý, tak projektu peníze dojdou nebo to nestihnu dotáhnout dostatečně rychle na market. Hlavně, jako programátor vím, že jakýkoliv odhad který mi programátoři dají je nereálný, jelikož odhadnout vývoj softwaru je extrémně těžké! Na projekt působí X neznámích proměnných, které se mohou změnit nebo posrat N různými způsoby. Jak se to potom člověk má naučit!
« Poslední změna: 28. 07. 2023, 00:39:58 od TDiblik »

TDiblik

  • *
  • 4
  • (Programming && IT) enthusiast
    • Zobrazit profil
    • Osobní web
    • E-mail
Re:Vysoká škola pro pokročilého programátora
« Odpověď #36 kdy: 28. 07. 2023, 00:36:21 »
--- Část 2 (ano, taky se divím že jsem narazil na maximální limit slov :DD)

Citace
Programovat uz umis, ted bych se zameril na shodu podmetu s prisudkem ;)

Citace
Takze si rekni, co od sve kariery ocekavas

- @mr.rubrik
> Joooo, to by bylo potřeba, čeština je reálně jediný předmět s kterým mám reálný problém, a to že mám úplně vše v angličtině a konzumuji převážně média v anglickém jazyce tomu vůbec nepomáhá :D (any HN enjoyers around here :eyes: ?)
> Tohle je hodně dobrá otázka. Nevím. Nemám tušení. Na jednu stranu si říkám že by bylo jednoduchý prostě pokračovat v programování pro mě již jednoduchých věcí a uživím se tím hooodně dobře. Na druhou stranu chci od života víc, ale tyto specializované role často třeba neplatí ani více než někdo kdo buší non-stop C# aplikace (tak proč se potom vůbec snažit). Pořád se snažím o to aby byla moje budoucí práce zajímavá a nejlépe i můj koníček, ale když to jde jednodušeji, tak proč to prostě nevnímat jako zaměstnání a zajímavé témata / projekty si nechat domů na Github? Věřím tomu že bych ve výsledku měl mnohem lepší work-life balance. Nevím, tohle je něco nad čím se musím ještě zamyslet...

Citace
Pokud náš mladý umí hodne dobře anglicky a má hromadu peněz (protože ty VŠ jsou drahé jak sviňa)
- @peete
> Uf, eh, asi úplně ne, pokud bych měl za školné vysoké školy platit jako v jiných státech, tak by bylo rozhodnutí hotové hnedka :D

Citace
Ty zkušenosti, projekty, atd. zní na první pohled impresivně, ale není to zabíjení mládí, když od 15 let chodíš jen do školy a přitom pracuješ? Mně se to zdá dost nezdravé. Já bych to jako teenager tak nesilil. Peníze nejsou všechno. Chodil bych raději třeba do fitka a užíval si mládí. Vždyť pracovat budeš muset až do roku .. (nevím vypočítaj si svůj penzijní věk)
Citace
Vypadáš, že máš dost velké ego a že si věříš
Citace
Ale když mluvíš že máš problémy s středoškolskou matikou připadá mi to dost divné
- @mikrom
> Přemýšlením nad tímto tématem jsem strávil hodně času, tudíž ti na to můžu jednoduše odpovědět. Věřím tomu že by to bylo zabíjení mládí, pokud bych to dělal kvůli penězům (ty amortizují na hodnotě dříve než tu vysokou dokončím :D!). Já to však dělám kvůli tomu že to je můj koníček (stejně jako 3d tisk, fyzická bezpečnost, nebo teď mě poměrně začalo bavit vytvářet obsah na youtube). Když už jsi to zmínil, tak je důležité starat se o své fyzické zdraví, tudíž chodím +-3x týdně do takového lokálního vesnického fitka a za poslední 2 roky jsem shodil +-20kg, takže tam vůbec není problém (+ je to super relaxace mezi dny programování). Bohužel pokud zůstanu v čechách tak budu muset pracovat až do roku {VLOŽTE_ROK_ÚMRTÍ} (nevěřím tomu že bych se já nebo někdo z mé generace dožil důchodu).
> Uf, I wish, ano, věřím si, ale ego je na tom trochu hůř :( --- to se ale dá jednoduše skrýt na textových fórech 8)
> Né že bych měl problém, držím se okolo 2 no, ale spíše nemám moc času a iniciativy tomu ten čas aktuálně dát (hodlám příští rok změnit), tudíž se na to prostě neučím (max večer před testem) a potom to dopadá tak že lituju toho že jsem to lépe nepochopil. Prostě jelikož se tomu aktuálně nevěnuju ve volném čase, tak si v tom tolik nevěřím, takže pokud bych si například měl spočítat roční úroky ve výši např 5% před zdaněním s měsíčním úročením, tak mnohem radši napíšu python script, který simuluje měsíční úročení a danění po dobu 12ti měsíců, než abych sáhnul po vzorci, který jsme se učili.

--- Odpověď na #34, jelikož jsem nemohl najít jednu speciální věc co citovat (celá odpověď byla super a zajímavá, vzhledem k tomu že to je unikátní pohled s kterým jsem se ještě před začátkem diskuze z velké části ztotožňoval)
@ Lord_Pitzbudka
> Chápu všechno co jste napsal a děkuji za feedback, ale problém který v tomto náhledu vidím je ten, že ve vaší generaci nebylo tolik lidí, kteří měli vysokou na IT (nebo co vůbec dělali IT), tudíž se to od vás nečeká (+ kdo nechce někoho s 20ti a více lety v oboru). Naproti tomu skoro každý v mé generaci si tu vysokou dělá (a docela dost lidí to dotáhne až na PhD), tudíž mám pocit že existuje nepsané (avšak velice často i psané) očekávání že tu výšku programátoři nové generace budou mít (bohužel to vidím skoro u každé pozice :(, která by mě zajímala). Na druhou stranu doslova souhlasím se vším co jste napsal (docela divný pocit :D). Jsem usvědčený v tom, že pokud bych nabíral, tak mnohem radši vezmu někoho se zkušenostmi, nebo někoho kdo má bohatý GitHub účet, problém je v tom že lidi na HR často zajímají okýnka na zaškrtnutí (obzvláště v první fázi interview, kdy filtrují mezi stovkami lidí), no a pokud je jedno z těch okýnek vysoká škola tak s tím nic nenadělám... Toto je AFAIK převážně pravda u FAANG společností. Také bych se nerad zaseknul v Čechách a bojím se toho že bych měl obzvl. v zahraničí problém bez vysoké školy. Nebo minimálně takto nad tím přemýšlím po odpoledni, kdy jsem několikrát pečlivě pročítal všechny odpovědi. V ideálním světě by vše fungovalo tak jak jste napsal, avšak bojím se že v tomto světě nežijeme :(. Problém v tom je to, že co tady čtu tak snad každý má jinou osobní zkušenost s potřebou vysoké školy, což na jednu stranu dává smysl, ale na druhou mě zajímá jak je možné že jsou tyto zkušenosti tak odlišné.
[Po druhém přečtení tento poslední odstavec vyzněl divně, skoro až urážlivě, což nebyl záměr, ale nevím jak lépe to přepsat, aby byl význam pořád stejný]

PS:
- Několikrát jsem zde viděl "Clean Code" a vzhledem k tomu, že na to mám docela vyhrazený názor, ale nechtěl, bych to probírat tady, tak jenom doporučím toto video.
- Co se Angličtiny týče, osobně bych se zařadil na C1 úrovni. Neoficiálně jsem si dělal EfSet test, který mě umístil na C2. Oficiálně se tento, nebo příští rok pokusím o C1 od Cambridge, tak uvidíme :D.

hmmmw

Re:Vysoká škola pro pokročilého programátora
« Odpověď #37 kdy: 28. 07. 2023, 07:16:04 »

Citace
Tak mě napadá, nezvládl bys třeba toho bakaláře si napráskat do jednoho/dvou let, odchodit si přednášky, co tě zajímají, a ostatní projekty/úkoly jen formálně odevzdat.
- @hmmmw
> Zajímavé.... O něčem takovém jsem slyšel a trochu jsem nad tím přemýšlel, avšak nevím jak se to dá / nedá, nebo celkově jak to funguje?


Opravdu velice zjednodušeně. V současné době je systém postaven na kreditech, což je jakási metrika náročnosti studia. Obvykle se požaduje absolvovat předměty za 60 kreditů za každý rok studia.

Do toho pak leze to, že na daném oboru máš nějakou sadu povinných/povinně volitených předmětů, které musíš prolézt. A zbytek předmětů do té šedesátky si navolíš z těch dále nabízených (volitených).

A teoreticky, ti škola může dovolit nabouchat si předměty za 90 kreditů za rok, a tím pádem máš za dva roky tu studijní část splněnu. Během toho napíšeš bakalářku, a přihlásíš se k obhajobě/státnicím.

Ale jak někdo jiný tady poznamenal. Využij Erasmus a podobné programy, je to příležitost, která už v životě nepřijde. Zapoj se do školních projektů, kterým se věnuje univerzita v rámci výzkumů.

Napracuješ se ještě hromadu let, a peníze, co teď vyděláš jsou třeba velké (obzvláště ve srovnání s příjmy vrstevníků), ale rozhodně to budou šušně ve srovnání toho, co budeš brát za dvacet let, tak nepromarni v práci tu skvělou etapu života.

Jimmyx

  • ***
  • 172
    • Zobrazit profil
    • E-mail
Re:Vysoká škola pro pokročilého programátora
« Odpověď #38 kdy: 28. 07. 2023, 07:55:36 »
A teoreticky, ti škola může dovolit nabouchat si předměty za 90 kreditů za rok, a tím pádem máš za dva roky tu studijní část splněnu. Během toho napíšeš bakalářku, a přihlásíš se k obhajobě/státnicím.
Tohle je ale jen teorie. V reálu narazíte na to, že nelze být na 2 či 3 místech zároveň. Ty předměty jsou v čase rozvržené tak aby jste povinné a povinně volitelné předměty si mohl zapsat a nebyla tam kolize. Pokud si ale chcete zapsat něco mimo obor nebo svůj ročník není žádná garance že se to nebude krýt s něčím co musíte mít. A pokud si zapíšete předmět mimo váš obor či ročník a vyjde vám že můžete chodit jen cvičení tak je to dost naprd (osobní zkušenost). Takže občas si můžete napsat něco navíc, ale spoléhat na to, že stlačíte 3 roky studia do 2 je nereálná iluze.

Re:Vysoká škola pro pokročilého programátora
« Odpověď #39 kdy: 28. 07. 2023, 07:57:32 »
Jsem na FIT VUT. Nechci se tady pouštět do větších debat, ale můžu shrnout, jak by vypadalo studium "jenom pro papír" u nás: na přednášky a na většinu cvičení nemusíš vůbec chodit—jsou nepovinné. Víceméně se můžeš objevit na univerzitě "jenom na zkoušky", což někteří lidi dělají, ale většinou jsou to "aspiranti na minimum", ale pak je pár lidí, kteří jsou takoví a jejich studium vypadá takhle.

Jinak se můžeš připojit na náš studentský Discord a poptat se, jak to u nás přesně funguje a co se přesně učíme.

Re:Vysoká škola pro pokročilého programátora
« Odpověď #40 kdy: 28. 07. 2023, 08:24:17 »
Ak chceš celý život programovať, tak nemusíš ísť na VŠ. Ale ak ťa programovanie prestane baviť alebo nastane v informatike príliš veľká zmena, napríklad nástup AI alebo kvantových počítačov, tak budeš mať dosť veľký problém bez VŠ.

Ak ťa informatika zaujíma, tak si urob aspoň Bc. na nejakej fakulte so zameraním na informatiku. Ani nevieš, kedy to využiješ.

Ak chceš pracovať s ľuďmi, tak choď na ekonomiku s odborom na IT.

Ak ťa baví niečo elektrotechnické bastliť doma, tak choď na elektrotechniku alebo strojarinu.

Ak ťa zaujíma matematika alebo fyzika, tak choď na matfyz.

Ak pôjdeš na VŠ, tak si určite urob PhD. A čo najviac využívaj erasmus alebo niečo podobné. Otvorí to kopec príležitostí do zahraničia.

Re:Vysoká škola pro pokročilého programátora
« Odpověď #41 kdy: 28. 07. 2023, 08:45:24 »
Pre pobavenie: ja som sa kedysi +- v Tvojej pozicii rozhodol ist na studovat na VS non-IT odbor. Potom som samozrejme skoncil v IT, pretoze  peniaze nesmrdia :).

Na Tvojom mieste by som si skusil utriast zivotne priority a nerozmyslal nad tym "chcem-nechcem ist na nejaku nahodnu VS". Ale "co by som tak asi chcel od zivota".
Keby som chcel stravit zivot na plazi oberanim kokosovych orechov, tak asi nepojdem na Matfyz, ale zbalim batoh a tradaaa do Mikronezie.
Ono pravdpodobne si po rokoch povies "dost bolo kokosovych orechov", ale ked si sikovny clovek, tak si proste najdes iny ciel a kolegovia v korporate (ktori pojdu cestou VS->Praca->Rodina) Ti budu tisko zavidiet mnozstvo zjedenych kokosovych orechov :).

Ink

  • *****
  • 669
    • Zobrazit profil
    • E-mail
Re:Vysoká škola pro pokročilého programátora
« Odpověď #42 kdy: 28. 07. 2023, 09:07:22 »
Hodnotis hned podle prvni, nebo to musi byt specificka kombinace? Co reknes na Teologickou, nasledovanou FFUK a pak nejakou prestizni techniku v USA? Podotykam, ze dotycny mel vazny duvod ke studiu vsech uvedenych.

Hele, čistě za sebe - pokud někdo dělá všechno možné a jeho životopis není nějak zázračně přitažlivý z pohledu pracovních zkušeností, ani bych ho na pohovor nepozval. Resp. možná bych, pokud bych byl v dobrém rozmaru, zvednul telefon a pár minut ho zkusil zpovídat, ale vesměs to je k ničemu. Úplně chápu, že někdo chce být všechno, ale v IT oboru (konkrétně u programátorů) je potřeba znát věci do hloubky, ne jen do šířky, mít specifické myšlení a základní sebedisciplínu. To tyhle renesanční typy skoro jistě postrádají a člověk, který dělá dvě humanitní školy a pak jde programovat (následné studium computer science na MIT je sci-fi, ale budiž, je to pořád totéž), má podle mě zůstat mimo hardcore IT. Těchto uchazečů jsem pár zažil, není to jenom teorie.

Tohle naštěstí není případ tazatele, ten ví co chce (skoro bych řekl, že až moc, ale to je na něm).

mikrom

  • ****
  • 370
    • Zobrazit profil
    • E-mail
Re:Vysoká škola pro pokročilého programátora
« Odpověď #43 kdy: 28. 07. 2023, 09:48:55 »
Když už jsi to zmínil, tak je důležité starat se o své fyzické zdraví, tudíž chodím +-3x týdně do takového lokálního vesnického fitka a za poslední 2 roky jsem shodil +-20kg, takže tam vůbec není problém (+ je to super relaxace mezi dny programování).
Tak to je super. Duševní práci je třeba vyvažovat fyzickou.
A i ta matika ti jde dobře na to, že se tomu moc nevěnuješ.
Byla by velká škoda, kdyby si na VŠ nešel.

Re:Vysoká škola pro pokročilého programátora
« Odpověď #44 kdy: 28. 07. 2023, 10:01:17 »

...

PS:
- Několikrát jsem zde viděl "Clean Code" a vzhledem k tomu, že na to mám docela vyhrazený názor, ale nechtěl, bych to probírat tady, tak jenom doporučím toto video.
- Co se Angličtiny týče, osobně bych se zařadil na C1 úrovni. Neoficiálně jsem si dělal EfSet test, který mě umístil na C2. Oficiálně se tento, nebo příští rok pokusím o C1 od Cambridge, tak uvidíme :D.

Jeste jedna dobre minena rada - sam s tim bojuju... Zkrat to :) Az budes delat code review a psat tam slohovky, nikdo s tebou nebude chtit pracovat.

Cambridge certifikaty jsem sam delal, C1 mam, na C2 delam... Nevim, co je efset, ale jestli tam neni speaking a writing (jakoze asi ne, kdyz to je free), tak to nevypovida o nicem. K tomuhle potrebujes hlavne "vedet, jak projit test" - ale tim se prave hodne anglictiny naucis. Zkouset to na blind jsou podle me vyhozeny penize.

Co se tyce toho videa ohledne clean-code, tak ten pan tam vcelku dost manipuluje - nebo absolutne nepochopil, co clean-code znamena.

1. Clean-code nikdo nikdy nedaval do souvislosti s "rychlym" nebo efektivnim kodem. Kod se ma psat vzdycky nejdriv spravne a pekne. Pak se ma zmerit a kriticke casti zoptimalizovat. Ono se casto prijde na to, ze i ta "neoptimalizovana, ale pekna verze" je dost rychla. A naopak - kdo rika, ze dobytek, kterej neumi pouzit (compile-time [sic!]) template, aby nemusil 10x rozkopirovat kod, umi napsat rychlejsi kod...
2. Uz asi milionkrat sem se potkal s trubcema, ktery si vymysleli tuny nesmyslnejch duvodu, proc nepsat hezkej kod. Priklad za vsechny: "nez bych premejslel, jak kod unifikovat a stravil tim pul hodiny, to to radsi behem dvaceti vterin desetkrat rozkopiruju..." - s tim sem se potkal nekolikrat a fakt bych za tohle vrazdil...
3. Mnohokrat sem se vrtal ve stary codebase. Je to asi jako kdyz se nekdo rozhodne, ze bude genialni, kdyz da do auta pneumatiku misto volantu a volant misto kola, protoze to vsechno prece musi bejt abstraktni a reusable.
4. Jednou jsem dokonce refaktoroval kod, kde ten blbec linearne vyhledaval v poli podle integer IDcka. Zmenil sem to na hashmapu a kod tim (pro nas use-case) zrychlil o pul hodiny...

Takze clean-code je nejlepsi vec na svete, musis ale vedet, co to znamena...