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 - TDiblik

Stran: [1]
1
Studium a uplatnění / Re:Etický hacking
« kdy: 12. 08. 2023, 19:30:29 »
Čauko!

Pokud hledáš práci, mnohem lépe se uchytíš ze začátku jako IT admin (navíc z této pozice se poté dále dobře pokračuje do kyberbezpečnosti imo). Aby jsi mohl něco opravdu "hackovat" musíš to chápat lépe než člověk, který to programoval / nastavoval, tudíž počítej s tím, že dostat se do ofenzivní kyberbezpečnosti bude trvat poměrně dlouho. Osobně nevím jaká je situace na trhu, ale z toho co jsem slyšel tak spíše počítej s tím že (obzvl) do ofenzivní části se očekává praxe a hluboká znalost IT. Pokud tě to ale neodradí, zde jsou nějaké resourci, které můžou pomoct:

https://www.youtube.com/watch?v=oI9aaBpJvoA

https://picoctf.org/ (pico gym, ale být tebou tak se vrhnu spíš prvně na general skills a potom až na další kategorie)

https://www.wechall.net/

https://attack.mitre.org/

https://owasp.org/www-project-web-security-testing-guide/latest/

Nadále najdeš různé CTFka a i přes to že jsou placené

https://www.hackthebox.com/

https://tryhackme.com/

tak ale existují i veřejné / zdarma jako

https://www.vulnhub.com/

Silně doporučuji umět programovat .... budeš to potřebovat!

TLDR; Programuj, scriptuj, hrabej se v linuxu, hrabej se ve windows, dělej ctfka, a až to budeš všechno chápat tak potom bych teprve začal přemýšlet jak to rozbít / prolomit :D

Nutno dodat že nejsem vůbec expert na toto téma a také poměrně začínám, ale věřím tomu že to co jsem doporučil in-general neuškodí

2
--- Čá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.

3
-- Čá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!

4
Čauko,
vláken ohledně porovnání vysokých škol jsem tu našel opravdu hodně a začínat novou diskuzi ohledně toho, která škola je lepší úplně nedává smysl (a nejspíše by jako předešlé, nikam nevedla). Toto vlákno spíše slouží jako žádost o personalizovanou radu, jelikož opravdu nevím, co do budoucnosti. Aktuálně za měsíc začínám 4. ročník střední školy DELTY a posledních pár měsíců se mi honí hlavou kam dál.

Než budu pokračovat, je důležité, aby jste pochopili něco více o mě. Osobně bych doporučoval kouknout se a projet něco o mě, projekty na kterých jsem pracoval, moje pracovní zkušenosti, Github, nebo LinkedIn, kde se oficiálně prezentuji.

Písemné shrnutí je však následující:
Poslední +-4 roky non-stop programuju. Nějak kolem začátku kvarty na gymplu jsem začal s pythonem a od té doby jsem nad tím strávil snad každý den i noc. Oproti jiným jsem měl tu výhodu, možnost a privilegium, kterého si do dnes vážím, že se mne ujala firma VPSR, vzhledem k tomu že v ní pracoval můj taťka (jako správce IT) a měli pouze jednoho programátora, který byl zároveň jeden z vlastníků firmy (tudíž měl i jiné starosti než čistě programování :D). To znamenalo, že pokud měli nějakou věc co by se dala zautomatizovat, nebo program který potřebovali vytvořit, tak to dali mě. To mě nejen extrémně rychle posunulo v mých schopnostech programovat, ale vidět že moje programy reálně pomáhají lidem mě naplňovalo věnovat tomu ještě více času. To nakonec vyvršilo ve vedlejší pracovní poměr (při studiu střední školy!) od 15tých narozenin, který udržuji do dnes a velice si této příležitesti vážím.
Menší problém nastal v tom, že když jsem nastoupil na DELTU, tak jsem už dělal věci, které jsme se dosud ani neučili (např. správu Linux serverů máme až ve čtvrťáku). To znamená, že celé moje studium (technických předmětů) poslední 3 roky proběhlo se sluchátky na hlavě a vytvářením několika-měsíčních projektů za pár dní (doslova), vždy na plný počet bodů. Jediné předměty, které bych do dnešního data rád povznesl byly Databáze (s Ing. Monika Borkovcová, Ph.D.) a Sítě (s doc. Mgr. Josef Horálek, Ph.D.), které mi nejen něco dali, ale také ve mě zapálili touhu zajímat se o dané téma více ve svém volném čase. Naštěstí škola je zaměřená na IT, tudíž jsem čas nepromrhal a dělal jsem buď testíky nových technologií, pokračoval v projektech do práce, nebo dělal na svých projektech místo práce v hodině. Důležité podotknout že toto nevnímám jako selhání na straně školy, jelikož se předpokládá že na školu přijde žák bez předešlých znalostí. Ba naopak, tato škola je perfektní v tom, že pokud je někdo napřed, může se sám rozvíjet a do té doby dokud odevzdává práce, není problém když si dělá na svých věcech. Každopádně, vzhledem k tomu, že jsem 90% času dělal sám, tak jsem se taky musel naučit všechny části vývoje. Za celou dobu jsem vytvořil okolo 15ti+ firemních aplikací, které běží do dnes (většina z nich close-sourced, ale co jde tak publikuju buď source a nebo článek o tom jak to funguje), typu: Webové (čisté js-html-css, ale i react a např Svelte. BE záleží, ale většinou to píšu v C#, Go nebo TS), Desktopové (většinou winforms, ale na hobby projekty preferuji tauri/egui), Embedded (ať už komunikace s před-programovanými zařízeními, tak ale i arduino a aktuálně vytvářím svoje první vlastní desky v KiCadu), Mobilní, AI-powered (nic jsem netrénoval, jenom postahoval modely a spojil je dohromady), či for-fun scriptíky. Koho by zajímal můj ustálený tech-stack, může se kouknout na více info zde, ale v jednoduchosti, pokud je to něco low-level, nejspíš to udělám v Cčku. Pokud je to něco co je performance-heavy/cli toola/desktop, udělám to v Rustu. Pokud je to API, udělám to buď v C#, nebo v Golangu, záleží na velikosti projektu. Pokud je to FE, tak jestli je to statický, tak html-css-js stačí, pokud je to web aplikace, tak jestli je korporátní tak vezmu React, pokud je internal/hobby, vezmu Svelte.
Pointa, kterou se snažím udělat je to, že co se programování týče, tak jsem prozkoumal snad každý koutek (OOP, FP, Procedural, Algoritmy, Datové struktury, Linux kernel moduly, Haskell,...) a nemám problém s učením se nových či starých technologií, vytvářením projektů, zabezpečováním projektů, udržováním legacy kódu (nejstarší kód co jsem opravoval byl psán okolo roku 2005 a co jsem migroval okolo roku 2000) a celkově prostě chápu jak to všechno funguje a skoro kód se mi píše skoro samo a všechno to prostě dává smysl. Vlastně kromě compileru, nebo projektu psaného čistě v assembly si nedokážu vybavit co jsem ještě neprogramoval (ano, fixoval jsem i např Pascal projekt :D)?

Co dál?
No a teď se musím rozhodnout nad tím, kam se chci vydat. První krok bylo vyjasnit si co nechci dělat, co bych byl ochotný dělat a co bych chtěl dělat.

- vůbec mě nebaví:
   - AI a excel-style datová analýza
   - Tech support
   - QA testování
   - UML a byrokracie

- byl bych ochotný dělat:
   - Frontend UI => když přijde na frontend funkcionalitu, to mě baví, ale jakmile mám dělat cokoliv s UI, pomalu ale jistě zevnitř umírám, avšak jsem ochotný to dělat jako práci, nebo část projektu která se prostě musí udělat (nějak to holt přetrpím). Nejde o to že bych neměl znalost CSS, nebo nevěděl jak se něco dělá, ale prostě mě to nebaví (kupodivu designovat si to ve Figmě a rozvrhovat na papíře mi vůbec nevadí, avšak designer fakt nejsem).
   - Migrace starého softwaru do nové formy => toto mi jde docela rychle, jelikož jsem to dělal už několikrát a firmy to potřebují, ale prohrabávat se v starém softwaru a zjišťovat jak to funguje + jak to zmigrovat není úplně největší zábava.
   - Webové stránky ve WordPressu na zakázku. Vůbec mě to nebaví, ale docela dost lidí je schopný za něco takového zaplatit docela dost peněz.
   - Typické CRUD stránky. Všichni to známe, firma chce něco vytvořit, vyčíst, upravit, smazat. Někdo to vidí, někdo ne. Jedno a to samý dokolečka.

- chci dělat:
   - Backend
   - Management databáze
   - Server management
   - CLI tooly pro zjednodušení života ostatním lidem
   - Penetrační testování (+ tooly pro penetrační testy)
   - Low level development pro výrobce aut
   - Security research
   - Security code-audity firemních projektů (něco podobného dělám ve škole spolužákům na projektech a přijde mi to docela jako zábava. Preferuji to mnohem více oproti black-box penetračnímu testování)
   - Software s extrémně jednoduchým UI, který slouží na nějaký typ automatizace
   - Datová analýza na styl ip-atlasu, či deps-graphu
   - Programování neoficiálních cross-platform klientů pro Microsoft (či jiné) produkty (např teď dělám na ms-todo a potom se vrhnu na onedrive)
   - OSS Hardware produkty
   - vývoj a research virů

- přijde mi extrémně zajímavé, ale nevím co od toho očekávat:
   - vývoj softwaru pro nemocniční zařízení
   - vývoj a research hardware exploitů
   - vývoj a research win32 exploitů, linux kernel exploitů a MacOS exploitů

Úplně upřímně, bude to znít špatně, ale hodně přemýšlím nad tím že bych na vysokou prostě nešel, jelikož mám pocit že bych se z programování nic nepřiučil a poslední co chci je dalších 5 let sedět ve sluchátkách na technických hodinách. Speciálně jsem procházel programy ČVUT FIT - Softwarové inženýrství ;  ČVUT FIT - Webové inženýrství ; ČVUT FIT - Informační bezpečnost ; VUT FIT ; ČVUT FEL SIT ; ČVUT FEL KYR ; MUNI FI - Programování a vývoj aplikací ; MUNI FI - Kyberbezpečnost, ale žádný mě nezaujal (magisterské programy ujdou, ale ten bakalář je fakt nuda úplně všude). Opravdu jsem si jednotlivé programy otevřel a začal procházet předmět po předmětu, ale ty věci co se učí (min na bakalářce + půlka magistra +-) prostě už všechny znám. Hlavní problém je to že bych zase začínal jakoby od nuly(!!!), takže základy pythonu, základy C, a atd. To zní jako perfektní ztráta dalších 3-5 let :/. Na druhou stranu je vysoká zdarma (oproti Americe) a co se životních nákladů týče, tak bych, díky bohu, neměl mít problém je pokrýt. Bohužel je pořád pravda, že se lidé koukají na titul a mám za to že by mi do života mohlo uškodit ten papír z vysoký nemít. Proto mám teď dilema. Buď nikam nepůjdu a pošupajdím za rok do práce, nebo půjdu na nějakou extrémně jednoduchou/nudnou vysokou při které bych se mohl seberozvíjet a titul si udělat "vedle", no a nebo najdu nějakou která by mě mohla bavit a věnuju tomu všechen svůj čas. Můj hlavní problém spočívá v tom, že nechci znova začínat od nuly. Chápu že většina lidí tak začíná a chápu že to tak dává smysl, ale v mém ideálním (sobeckým) světě bych nastoupil na vysokou a rovnou by jsme jeli hardcore fungování počítače, assembly, vývoj virů, exploitace, embedded věci, pokročilý koncepty a atd, stejně jako například když přijdu na vysokou, tak se počítá s tím že umím matematiku na středoškolským levelu a na vysoké už se jedou extrémně pokročilý koncepty. Prostě něco proč tam člověk musí chodit a nemůže se to jen tak naučit sám z internetu. Na druhou stranu všechny ty věci co všechny programy (IT related) slibují naučit jsou koncepty, které využívá každý řádový programátor na denní bázi a je extrémně jednoduché se je naučit sám (v tomto porovnání jako něco jako ta středoškolská / základoškolská matika).

Jak to uzavřít?
Uf, pokud to někdo dočetl až jsem, za prvé děkuji, za druhé, celý text byla směs myšlenek, tudíž, by bylo dobré to nějak
smysluplně uzavřít, o což se pokusím v následujících otázkách. Pokud by jste měli cokoliv na co budete chtít zareagovat, budu víc než rád vést konverzaci!

Je nějaká vysoká škola kde se nezačíná "od nuly"?
Je možnost nějak "přeskočit" bakalářské obory a vrhnout se rovnou na magisterské? Např ČVUT FIT - Počítačová bezpečnost vypadá docela zajímavě.
Na základě požadavků, je nějaký obor, který Vás, jako čtenáře uhodil, že by mi padl jako vyšitý? Protože aktuálně se pohybuju někde mezi: Softwarové inženýrství, nebo Kyberbezpečnost, nebo Biotechnologie, což je poměrně daleko od sebe :/
Jsou moje předpoklady a požadavky vůbec reálné? Je možné že vzhledem k tomu že jsem na vysoké ještě nebyl, že ty obory vůbec nebudou tak lehké jak si představuji? (avšak snažil jsem se soudit na základě popisů oborů a courseware obsahů [pokud bylo možno])
Dává vůbec smysl jít v mém případ na programátorský obor/školu? Říkal jsem si jestli by nedávalo smysl jít na nějaký obor, který kombinuje programování + něco, ale nic moc mě nenapadá (kromě kyberbezpečnosti a biotechnologie)... Na druhou stranu, programování je něco co mě může dobře živit dalších X let bez toho aniž bych měl jakékoliv problémy....

FAQ:
Proč to řešit už teď? => Spoustu vysokých škol přijímá bez přijímacích zkoušek, pokud se dobře umístíte v nějakých z školou uznávaných soutěží. Co jsem si ale všiml je, že většina těchto soutěží začíná okolo Září/Října, tudíž bych chtěl už v tuto chvíli vědět kam dál, abych se mohl co nejvíce daných soutěží zúčastnit a potencionálně se úplně vyhnout SCIO testům / přijímacím zkouškám.
Co podle tebe znamená "jednoduchou" / "nudnou" vysokou školu => Pokaždé když napíšu jednoduchou / nudnou, myslím tím technické obory, které jsem si jistý že zvládnu levou zadní. Jsem si vědom toho, že tam jsou i jiné předměty, jako matematika, s kterou budu mít problém a budu se na ní muset učit. Aktuálně na tom nejsem z matematiky nejlíp, takže to je určitě něco co by mi jakákoliv vysoká dala.


Rád bych tento text zakončil tím, že není můj záměr znít nějakým způsobem povýšeně, nebo pohrdačně, tohle je můj subjektivní názor na věc vytvořen na základě objektivního shrnutí toho co jsem již vytvořil, co umím a co studijní programy slibují naučit.

Děkuji za předčtení a předem i za jakoukoliv odpověď! <3

(připojuju soubor s potvrzením že jsem to opravdu já, jelikož tento účet je extrémně mladý :D)

Stran: [1]