Jak začít s programováním?

in Česky!2 months ago

Před rokem a půl jsem začal do hloubky studovat HTML, CSS, posléze Javascript. Kdysi by to stačilo na kompletní kariéru. Dnes je trh programátory s Javascriptem příliš nasycený a často se požaduje i znalost některých knihoven (React, ThreeJs), runtimů (Node, Bun, Deno), superset Typescript a frameworky (NextJs, Tailwind CSS, Sveltekit).

Právě jsem dočetl

Mé zkušenosti

Kdybych začínal znovu, udělal bych si nejprve pečlivý průzkum trhu. Momentálně v nabídkách nejvíce trenduje asi DevOps. Práce specialisty zahrnuje mimo jiné uvedení webu/aplikace na cloud/server, konfigurace zabezpečení a nakládání s prostorem a omezenou výpočetní silou serveru; Zajímavé je také DevSecOps, který dělá podobnou práci, ale zaměřuje se pouze na zabezpečení a monitoring.

Jazyk bych si také vybral jiný. Javascript je dobrý začátek, ale pro pochopení, jak tyto "vyšší" jazyky nakládají s různými druhy paměti (stack, heap) stojí za to začít s těžším nižším jazykem. Začátkem roku jsem proto začal s Rustem. Tyto jazyky jsou zároveň těžší, proto v nich najdeme nižší konkurenci.

Další věc, kterou chci zmínit. Kurzy. Na Youtube jich najdete spoustu zadarmo, vesměs dobře zpracované. Udemy má každý týden minimálně jednu 70%+ slevu. Je však náročné se soustředit na video, nebo zpětně dohledávat klíčovou pasáž, které potřebuju lépe porozumět. Po chvíli začnu video vnímat spíše pasivně a jen přepisuji kód. Teď preferuji knihy od Pakt Publishing.

Doporučení

1_ Americká vláda vydala doporučení soustředit se na jazyky s definovaným typem proměných - např. C#, Rust, Go, Python, Java - a já s ním souhlasím. Vzniká mnohem méně chyb a compiler nabízí mnohem specifičtější popisy chyb. Rust navíc dokázal, že můžou být přinejmenším tak rychlé, jako čisté Céčko.

Porovnání jazyků rychlost, energie

2_ Většina lidí má s to, aby jazyk pochopili přímo z dokumentace. Netřeba však vymýšlet všechny osvědčené postupy, je lepší si pořídit knihu. Ideálně ne více než rok starou, aby byla co nejaktuálnější. Dobrý zdroj je Pakt Publishing.

Internetové kurzy také nejsou úplně špatné, ale jak jsem zmínil výše, sledování videa nenutí mozek aktivně pracovat a vstřebávat informace. Kurz může být dobrým úvodem do jazyka nebo do jeho specifické knihovny, ale nespoléhal bych na něj, že mě naučí dobře programovat.

3_ IT není pouze o programování a trh si teď spíše říká o specialisty. I na mé první pozici jsem byl specialista, nejprve Data Extractions v Extractions týmu, poté Data Steward v Data Governace. Dobrý obecný základ vám zaručí osvojení si dovedností pro Data Science (Python, SQL, těžká matematika) nebo DevOps (sítě, zabezpečení, cloudy, deployment).

4_ Pokud se rozhodnete programovat, rozdělte komplexní kód tak, aby bylo možné dílčí části otestovat a testy ihned automatizujte. Jednotkové testy jsou v mnoha jazycích standardem a umožní vám si procvičit jazyk přímo na místě, i když ho opisujete z knížky/videa.

Čemu se teď věnuji

Jsem, aspoň prozatím, spíše generalista. Webové technologie jsem si rozšířil o Typescript, Sveltekit a Node/Bun a zaučuji se do Rust-Actix a WebAssembly. Zkoušel jsem ThreeJs To jsou webové technologie.

K tomu umím SQL, v omezené míře Docker a zvládnu připojit backend k SQL i no-SQL databázi. To jsou všechny databázové technologie (trochu nepřesné říct o Dockeru, ale postačí).

Nu a kniha, kterou jsem dočetl, by mě po pořádném nastudování měla dovést k certifikaci CompTIA Security+ zaměřené převážně na kyberbezpečnost.

Vyzkoušejte si ukázkové otázky z knihy

Záměrně vybírám ty, které lze odpovědět logicky bez studování:

  1. Firma má stráž před bránou, před vchodem do hlavní budovy, vstupní kontrolní lobby. K datovým serverům lze projít jedině přes dveře kontrolované RFID (Radio Frequency Identification). O jaký typ kontroly se jedná, vyber DVĚ:

    1. Preventivní
    2. Odstrašující
    3. Korektivní (opravný)
    4. Fyzická
  2. Který typ senzorů detekuje změny frekvence?

    1. microwave sensors
    2. pressure sensors
    3. infrared sensors
    4. ultrasonic sensors
  3. Osoba se spíše omezenými IT dovednostmi zahájí kyberútok s cílem omezit přístup na vládní stránky. Do jaké kategorie tento typ útočníka spadá?

    1. Stát
    2. Nezkušený útočník
    3. Hacktivista
    4. Shadow IT (tohle může mít dost odlišný překlad, nechávám raději v AJ)
  4. Telefon ředitele firmy byl na dovolené hacknut. Jaký útočný vektor byl útočníkem nejpravděpodobněji zneužit z uvedených možností?

    1. Instalace Firewallu na zařízení se zapnutým Wi-fi
    2. Připojení se k Bluetooth sluchátkům
    3. Spárování s veřejnou náhlavní soupravou (headset) prostřednictvím Bluetooth
    4. Aktualizace Bluetooth ovladačů