Jak začít programovat od nuly?

Jak začít programovat od nuly?
« kdy: 31. 01. 2021, 22:48:38 »
Ahoj, mám zájem o to naučit se nebo začít programovat v nějakém jednoduchém jazyce, tak abych se od toho odpíchnul uvažoval o prvním programovaní v Pascalu jenže jsem zjistil že tento programovací jazyk je dnes mrtvý stejně s Basicem, že pro dnešní systémy jsou nevyužitelné, stejně jako učení se algoritmizace, kteté se podle jednoho známýho hodí spíše na výuku matematické informatiky pro vědce než na aplikovanou a tak mě zaujalo C# a Java. Myslíte že by tyto 2 jazyky byly dobrý pro začátek?


Re:Jak začít programovat od nuly?
« Odpověď #1 kdy: 31. 01. 2021, 23:09:16 »
S takovym pristupem muzes jit patlat frontendy v takovem javasriptovem frameworku, ktery je zrovna ten tyden zrovna popularni

_Jenda

  • *****
  • 737
    • Zobrazit profil
    • https://jenda.hrach.eu/
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #2 kdy: 31. 01. 2021, 23:14:39 »
Já bych osobně spíš volil Python, zejména pokud máš rád Unix/Linux, ale Java a C# jsou taky v pořádku. Hlavně proboha nezačínej s C++ ;D. Naopak časem (až budeš umět základy) můžeš přidat trochu C.

Asi záleží co si představíš pod algoritmizací. Já měl za to, že jde o to, jak popsat problém a „udělat to“ pomocí příkazů tvého jazyka (podmínky, cykly). To budeš potřebovat naprosto bezpodmínečně. Je možné, že spíš myslíš algoritmy a datové struktury - jak se dělá stom, hashtable, jak funguje sort, procházení grafu… To asi na začátku potřebovat nebudeš a možná ani později (záleží, co budeš programovat), ale je podle mě užitečné mít o tom alespoň nějaké základní ponětí (tj. ne na úrovni abys to dokázal sám implementovat, ale vědět, že něco takového tvůj programovací jazyk interně provádí a jaké to má vlastnosti; případně když narazíš na problém, kde to bude potřeba, tak vědět, co máš hledat).

Re:Jak začít programovat od nuly?
« Odpověď #3 kdy: 31. 01. 2021, 23:47:18 »
Zalezi co chces programovat. Pro internet, klasicke aplikace, elektroniku nebo neco uplne jineho?

Idris

  • *****
  • 1 424
    • Zobrazit profil
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #4 kdy: 01. 02. 2021, 00:11:25 »
C# a Java. Myslíte že by tyto 2 jazyky byly dobrý pro začátek?
Ano, byly. Záleží na kontextu (jaký OS, desktop vs mobil vs web), kromě těch dvou ještě stojí za zvážení Python, Swift nebo Go.


Ink

  • ****
  • 324
    • Zobrazit profil
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #5 kdy: 01. 02. 2021, 10:35:55 »
Ahoj, mám zájem o to naučit se nebo začít programovat v nějakém jednoduchém jazyce, tak abych se od toho odpíchnul uvažoval o prvním programovaní v Pascalu jenže jsem zjistil že tento programovací jazyk je dnes mrtvý stejně s Basicem, že pro dnešní systémy jsou nevyužitelné, stejně jako učení se algoritmizace, kteté se podle jednoho známýho hodí spíše na výuku matematické informatiky pro vědce než na aplikovanou a tak mě zaujalo C# a Java. Myslíte že by tyto 2 jazyky byly dobrý pro začátek?

C# neni jednoduchy jazyk a Java je hodne o frameworcich a ekosystemu okolo - tyhle dva jazyky Te spis nasmeruji do korporatu, kde budes mastit C# nebo Javu az do smrti, nez aby ses posouval dal (je to samozrejme moznost, pokud chces). Pokud chces jednoduchy jazyk "pro zacatek", zkus radsi Python, samozrejme aktualni, tedy 3.9. Podobnych moznosti je vic, ale Python je oblibeny a docela hodne zadany. A hlavne, mas po ruce vetsinu knihoven, ktere budes potrebovat. Dalo by se ale jit i cestou JS/TypeScriptu.

Re:Jak začít programovat od nuly?
« Odpověď #6 kdy: 01. 02. 2021, 11:29:35 »
Ano, byly. Záleží na kontextu (jaký OS, desktop vs mobil vs web), kromě těch dvou ještě stojí za zvážení Python, Swift nebo Go.

S Go se nedá moc psát desktop, hry, ani mobilní.
Se Swiftem jde hlavně cílit na Apple platformu. Ač je to moc pěkný jazyk, tak ostatní platformy na tom drhnou.
Python je takový univerzální, desktop a hry v něm dělat lze, funguje všude a Android se jakžtakž dá.

Mlocik97

  • *****
  • 568
  • Linuxák, JS dev.
    • Zobrazit profil
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #7 kdy: 01. 02. 2021, 11:54:12 »
Ano, byly. Záleží na kontextu (jaký OS, desktop vs mobil vs web), kromě těch dvou ještě stojí za zvážení Python, Swift nebo Go.

S Go se nedá moc psát desktop, hry, ani mobilní.

Tak určite, preto poznám minimálne 4 aplikácie v Go čo sú desktopové aplikácie (aj s GUI), vôbec neexistuje možnosť v Go využiť GTK že? Prečo potom GTK má priamo na stránke "Go bindings" pre Gtk3, Ani na mobil není možné spraviť v tom appku že? Len ja ti ju nejak dokážem vytvoriť za pol dňa aspoň nejakú primitívnu TODO ak chceš.
« Poslední změna: 01. 02. 2021, 11:57:27 od Mlocik97 »
I literally don't want to be human... humans are so dumb... I'm ashamed to be part of "humanity".

Idris

  • *****
  • 1 424
    • Zobrazit profil
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #8 kdy: 01. 02. 2021, 12:11:24 »
Se Swiftem [...] je to moc pěkný jazyk, tak ostatní platformy na tom drhnou.
Linux nedrhne, jen Windows. Ale s tím “pěkný” moc nesouhlasím, pěkný je třeba v mnoha ohledech Rust, jen teda asi není moc vhodný pro začátečníka.

bmn

Re:Jak začít programovat od nuly?
« Odpověď #9 kdy: 01. 02. 2021, 12:14:41 »
abych se od toho odpíchnul uvažoval o prvním programovaní v Pascalu jenže jsem zjistil že tento programovací jazyk je dnes mrtvý

Ne, Pascal není mrtvý, dodnes se v tom píše spousta aplikací, koukni na https://www.lazarus-ide.org/ Pokud jsi dřív v Pascalu psal, tak na rozjezd to může být dobré. Pokud jsi v něm nepsal, tak není moc důvod s tím teď začínat - není to úplně špatný jazyk a prostředí, dost se to od těch starých verzí posunulo k lepšímu, ale jestli k tomu nemáš žádný vztah a důvod to použít, tak jsou lepší možnosti.


na aplikovanou a tak mě zaujalo C# a Java. Myslíte že by tyto 2 jazyky byly dobrý pro začátek?

Java je určitě dobrá volba. Zejména pokud chceš dělat serverové a webové aplikace.

Hlavně proboha nezačínej s C++ ;D.

Tohle jsou takové výkřiky lidí, co zamrzli někde 25+ let v minulosti. Moderní C++ je velmi slušný jazyk, dá se v něm programovat bezpečně, výkonné aplikace, existuje pro něj spousta vyspělých a léty prověřených knihoven, dá se z něj přímo pracovat s céčkovými knihovnami. Máš pro něj dobrá IDE (QtCreator, CLion atd.) a další infrastrukturu. Je to prostě zralá a odladěná platforma, podobně jako ta Java, vhodná pro lidi, kteří chtějí udělat reálnou práci a ne jen exhibovat na internetových fórech.

Pak je tu ještě D, které je čistější a mladší než C++, ale méně rozšířené. Rust asi spíš ne, protože ten svojí komplexitou snad i předčil C++, zralostí ho zatím nedohnal a zda to ty výhody převáží, to je sporné. Případně lze uvažovat ještě o Go, ale to je zase na opačné straně spektra - až moc jednoduché a omezené a nevím, jestli by ti vyhovovala kultura kolem něj.


Naopak časem (až budeš umět základy) můžeš přidat trochu C.

C je prakticky nejhorší možnost ze všech a pro vývoj aplikací se nehodí. Pokud programuješ linuxový kernel nebo nějaké jednočipy, tak se tomu vyhnout nejde, ale je to prostě zlo - nebezpečné, neefektivní, musíš psát hromady zbytečného kódu, abys vyřešil úplně triviální věci. V tom se pak programátoři ztrácí a dělají chyby. Pokud budeš mít zadání, že program má úzce spolupracovat s kernelem/hardwarem a má jít přeložit minimalistickým C kompilátorem bez dalších závislostí, tak ti nic jiného nezbude... ale jinak je to fakt špatná volba. Oproti tomu C++ nebo D jsou moderní a efektivní jazyky, ve kterých můžeš napsat i knihovnu s céčkovským API (tzn. nemusíš psát v céčku, abys vystavil céčkovské API), případně ten Rust (byť je hodně komplexní a poněkud obskurní).

Idris

  • *****
  • 1 424
    • Zobrazit profil
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #10 kdy: 01. 02. 2021, 13:04:08 »
Rust asi spíš ne, protože ten svojí komplexitou snad i předčil C++
To je hodně odvážném tvrzení, co je v Rustu složitější než v C++?

Re:Jak začít programovat od nuly?
« Odpověď #11 kdy: 01. 02. 2021, 13:05:53 »
Nejdřív si stanov cíl. Chceš programovat webovky, desktopové aplikace, hrát si s grafikou?

webovky: html, css, javascript + php nebo jsp (java) + sql
desktopové aplikace: java, python, c++

Pokud chceš pascal, tak ten se využívá v delphi, ale to už není tak populární jak dříve. Teď bych radši začal s něčím jiným.

Podle toho co chceš dělat, tak si vyber nějaké jazyky a něco si v nich zkus, třeba to obvyklé "hello world", ať vidíš jaká je kde syntaxe a co myslíš, že ti sedne nejvíc.

Pak hlavně v tom jazyku musíš něco dělat. Vymysli si složitější projekt a zkus jej postupně dotáhnout do konce (eshop, kalkulačka, jednoduché hry - např. piškvorky s hrou proti počítači). Nejdřív vytvoř základy a postupně přidávej na složitosti.

Re:Jak začít programovat od nuly?
« Odpověď #12 kdy: 01. 02. 2021, 13:54:27 »
Pascal není mrtvý a navíc je pro úplného začátečníka velmi vhodný. Sice není velká šance že se s ním v budoucnu uživíš, ale v dialektu Pascalu se programuje řízení technologických provozů včetně jaderných elektráren. Pro začátek od nuly můžeš použít i tohle: http://karel.oldium.net/

Dnes můžeš stejně tak použít Scratch a Python, ale pokud si myslíš že v budoucnu vystačíš s jedním jazykem i jako profesionál, tak zkus patlat weby v Javascriptu. To je sice doména těch největších zoufalců, zato velmi perspektivní ;D

Re:Jak začít programovat od nuly?
« Odpověď #13 kdy: 01. 02. 2021, 14:13:01 »
1. nauc sa dobre anglicky
2. https://github.com/ossu/computer-science (kludne preskoc matematicke zaklady, ak ta nezaujimaju odvetvia, kde ich budes potrebovat (umela inteligencia, datova veda, pocitacova grafika, robotika, teoreticka informatika, ...)

dnes sa vo vseobecnosti odporuca zacinat s nejakym jednoduchym jazykom, kde neexistuju datove typy a rozne obmedzenia (napr. python/javascript, prip. pre deti scratch) aby sa clovek naucil zaklady algoritmizacie, cykly, rekurziu, rozmyslanie nad problemom pred tym, ako zacnes pisat kod, ....,

a potom v ramci zakladneho vzdelania sa naucit zaklady aspon jedneho typoveho objektoveho (Java/C#) a aspon jedneho funkcionalneho jazyka (Haskell/Racket/Lisp/Clojure) + nejake tie zaklady z kazdeho rozku trosku, aby si sa vedel pozriet na problem z roznych uhlov pohladu a vedel sa dorozumiet s kolegami, co robia na inych castiach projektu ako ty...,

samozrejme, ak chces len buchat frontendy v HTML a CSS pripadne kde tu nejaky JS tak zacni rovno s tym...,

Re:Jak začít programovat od nuly?
« Odpověď #14 kdy: 01. 02. 2021, 14:22:15 »
Se Swiftem [...] je to moc pěkný jazyk, tak ostatní platformy na tom drhnou.
Linux nedrhne, jen Windows. Ale s tím “pěkný” moc nesouhlasím, pěkný je třeba v mnoha ohledech Rust, jen teda asi není moc vhodný pro začátečníka.
Tak se Swiftem jsem nikdy nedělal, jen slyšel. Ale Rust je skvělý jazyk, mám ho hrozně rád, jen pro začátečníka křivka učení je zpočátku strmá, ale když pochopíte koncept vlastnictví, tak už to jde samo. Komunita je hodně přátelská. Takže, pokud chcete nejprve se naučit základy tak začít Pythonem a poté se naučit Rust 😉