Jak začít programovat od nuly?

alex6bbc

  • *****
  • 1 432
    • Zobrazit profil
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #30 kdy: 02. 02. 2021, 10:38:22 »
z modernich jazyku se mi libi prave GO, protoze na tom delaji borci z delali v bellovych laboratorich.

Citace: Rob Pike
The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt"

Citace: Rob Pike
It must be familiar, roughly C-like. Programmers working at Google are early in their careers and are most familiar with procedural languages, particularly from the C family. The need to get programmers productive quickly in a new language means that the language cannot be too radical.

na GO pracuje prave ten rob pike, co delal i plan9.
PROTO je GO pro me to prave!


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #31 kdy: 02. 02. 2021, 10:45:02 »
z modernich jazyku se mi libi prave GO, protoze na tom delaji borci z delali v bellovych laboratorich.

Citace: Rob Pike
The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt"

Citace: Rob Pike
It must be familiar, roughly C-like. Programmers working at Google are early in their careers and are most familiar with procedural languages, particularly from the C family. The need to get programmers productive quickly in a new language means that the language cannot be too radical.
Ono to obecně dává smysl, ale i ten nejslabší vývojář v Googlu je v porovnání se světem silně nadprůměrný, takže to “they’re not capable of understanding a brilliant language” vlastně pro googláky neplatí. Spíš prokázali službu profláklému “the average programmer.”

Re:Jak začít programovat od nuly?
« Odpověď #32 kdy: 02. 02. 2021, 10:53:12 »
z modernich jazyku se mi libi prave GO, protoze na tom delaji borci z delali v bellovych laboratorich.

Citace: Rob Pike
The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt"

Citace: Rob Pike
It must be familiar, roughly C-like. Programmers working at Google are early in their careers and are most familiar with procedural languages, particularly from the C family. The need to get programmers productive quickly in a new language means that the language cannot be too radical.

na GO pracuje prave ten rob pike, co delal i plan9.
PROTO je GO pro me to prave!

Ono je asi Go jediný moderní jazyk který na tom běží. Ale ano, plan9 je zajímavý systém. Jen pro informaci a zajímavost: jazyk Limbo, ze kterého vychází i Go z cca doby Plan 9 má i generika ;)

ZAJDAN

  • *****
  • 2 078
    • Zobrazit profil
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #33 kdy: 02. 02. 2021, 11:24:29 »
Já se považuji za příležitostního hobby programátora.
Abych se to naučil, dal jsem konkrétní cíl a tím byly dvě webové aplikace, celkem robustní s napojením na SAP B1.
Tehdá jsem si vzal PHP, JavaScript.
Druhou aplikaci jsem napsal v RubyOnRails. Tady jsem pochopil, že Ruby je skvělý jazyk a Rails jsou super.

Hodně mi to dalo a pochopil jsem věci, které budou platit obecně u všech jazyků.
Každopádně já doporučuji si dát cíl, nějakou aplikaci kde si definuješ požadavky co to má dělat a na tom se to naučíš nejlépe.
Vesele, vesele do továrny dělník běží...vesele, vesele do továrny jde. Vesele se usmívá když mu soustruh zazpívá...vesele, vesele do továrny jde. Vesele si poskočí když se soustruh roztočí ...vesele, vesele do továrny jde.

Re:Jak začít programovat od nuly?
« Odpověď #34 kdy: 02. 02. 2021, 11:33:47 »
Já se považuji za příležitostního hobby programátora.
Abych se to naučil, dal jsem konkrétní cíl a tím byly dvě webové aplikace, celkem robustní s napojením na SAP B1.
Tehdá jsem si vzal PHP, JavaScript.
Druhou aplikaci jsem napsal v RubyOnRails. Tady jsem pochopil, že Ruby je skvělý jazyk a Rails jsou super.

Hodně mi to dalo a pochopil jsem věci, které budou platit obecně u všech jazyků.
Každopádně já doporučuji si dát cíl, nějakou aplikaci kde si definuješ požadavky co to má dělat a na tom se to naučíš nejlépe.

PHP je rekurzivní akronym PHP Hurts People
Ale Ruby je zajímavý jazyk. Ale bohužel také hodně pomalý.


Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #35 kdy: 02. 02. 2021, 12:31:48 »
z modernich jazyku se mi libi prave GO, protoze na tom delaji borci z delali v bellovych laboratorich.

Citace: Rob Pike
The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt"

Citace: Rob Pike
It must be familiar, roughly C-like. Programmers working at Google are early in their careers and are most familiar with procedural languages, particularly from the C family. The need to get programmers productive quickly in a new language means that the language cannot be too radical.
na GO pracuje prave ten rob pike, co delal i plan9.
PROTO je GO pro me to prave!
Ono je asi Go jediný moderní jazyk který na tom běží.
By mě zajímalo, kolik lidí to používá. Oni tam kromě Limba měli i vlastní dialekt céčka, který pak přeportovali na Linux a spol., aby mohli překládat překladač Go (dodnes se používá pro bootstrapping před verzí 1.5). Vlastně celý backend Go byl z Planu 9, než ho přepsali do SSA. Teď už tam z těch vykopávek straší jen asembler (rozšířený o AVX až do 512) a linker :)

Re:Jak začít programovat od nuly?
« Odpověď #36 kdy: 02. 02. 2021, 13:16:44 »
na GO pracuje prave ten rob pike, co delal i plan9.
PROTO je GO pro me to prave!
Nejsou důležitější vlastnosti samotného jazyka, než jeho autor? I legenda může pracovat na zadání, které se totálně míjí s mými potřebami.

Re:Jak začít programovat od nuly?
« Odpověď #37 kdy: 23. 03. 2021, 20:25:35 »
Projekt vyrobenej člověkem co má desítky let praxe a pracoval na velmi složitých projektech (komprese videa, ...). Vysvětluje vše co dělá a proč.

https://handmadehero.org/ resp. https://hero.handmade.network/episode/code

Autor je Casey Muratori, jeden z top programátorů, je to autor např. IMGUI nebo Bink 2 (dělal v RAD Games Tools), programuje už desítky let. Vše co píše do detailu vysvětluje a opovídá na otázky v chatu (občas se do chatu podívají i lidi jako Jonathan Blow [The Witness] nebo Sean Barret [engine k Thief Dark Project]).

Handmade Hero je o výrobě herního engine od nuly pro Windows. Herní design je daný - Zelda klon. Ukazuje triky jak nastavit projekt bez nutnosti pitomých makefiles, jak kompilovat mrtě rychle C++ kód, hot reload kódu, jak na správu paměti, meta programování, jak vyrobit procedurální guičko (imgui), nejdřív kreslí pixely a pak použije Open GL ...

Kód je v C++ (C s vybranými fičurami C++) a je pro Windows.

Kurz je zdarma, ale zdrojáky je nutné koupit za pár korun (a popravdě nejsou moc potřeba).

Nic lepšího neznám.

Ještě SICP je zajímavé minimálně příklady, něco to člověku dá ( https://mitpress.mit.edu/sites/default/files/sicp/index.html ). I když LISP je jazyk napikaču.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #38 kdy: 23. 03. 2021, 21:09:14 »
I když LISP je jazyk napikaču.
Proč? Všechny jazyky konvergují k Lispu :)

Re:Jak začít programovat od nuly?
« Odpověď #39 kdy: 24. 03. 2021, 11:43:29 »
PHP je rekurzivní akronym PHP Hurts People
Ale Ruby je zajímavý jazyk. Ale bohužel také hodně pomalý.

Tyhle narážky na PHP se vážou ke starejm verzím, od verze 5.6 se to razantně zlepšuje.

Hlavně ale kvalita kódu odpovídá kvalitám programátora. Kdysi jsem dělal v jedné české nejmenované sázkové společnosti Javu a o DI sice slyšeli, ale i nadále měli rádi statickej kód. Nejlepší tam byl logger v nějaký službě, což byla anonymní třída ve statický proprtě a staticky instancovanej, nebo jak se to nazývá... prostě
Kód: [Vybrat]
  private SomeLogger logger = new SomeLogger() {
    // ffs
  };

Já se dostal do situace, že jsem tam potřeboval předat nějakou závislost a dostal jsem obrovskou chuť někomu začít objímat rukama krk. A takovejch věcí tam byly mraky. Klasický doménový služby.. třeba CommentService o tisících řádků kódu, jedna metoda o stovkách řádků kódu.
« Poslední změna: 24. 03. 2021, 11:45:09 od Kouzelný dědeček »

qelurg

  • ****
  • 372
    • Zobrazit profil
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #40 kdy: 24. 03. 2021, 12:57:44 »
To je jednoduché, ještě je potřeba se naučit jedničky a pak už to půjde.

Re:Jak začít programovat od nuly?
« Odpověď #41 kdy: 24. 03. 2021, 14:39:44 »
Abych se vrátil k původní otázce:

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

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

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

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

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

Re:Jak začít programovat od nuly?
« Odpověď #42 kdy: 24. 03. 2021, 16:19:29 »
Citace: Rob Pike
The key point here is our programmers are Googlers, they’re not researchers. They’re typically, fairly young, fresh out of school, probably learned Java, maybe learned C or C++, probably learned Python. They’re not capable of understanding a brilliant language but we want to use them to build good software. So, the language that we give them has to be easy for them to understand and easy to adopt"

Citace: Rob Pike
It must be familiar, roughly C-like. Programmers working at Google are early in their careers and are most familiar with procedural languages, particularly from the C family. The need to get programmers productive quickly in a new language means that the language cannot be too radical.
Tohle jsou ty lepší z Pikových myšlenek. Ty horší jsou třeba, že je super nápad, když se program nepřeloží proto, že je někde nevyužitá proměnná, ale nemá sebemenší problém třeba s https://play.golang.org/p/DevaBTg7ZzY nebo https://play.golang.org/p/vcObtS5g4AJ :)

I legenda může pracovat na zadání, které se totálně míjí s mými potřebami.
No zejména se legenda může opájet svou dokonalostí a začít si zakládat na tom, že má názor, a kdo má něco proti, tak to je jeho problém.

Idris

  • *****
  • 2 286
    • Zobrazit profil
    • E-mail
Re:Jak začít programovat od nuly?
« Odpověď #43 kdy: 24. 03. 2021, 16:43:20 »

Re:Jak začít programovat od nuly?
« Odpověď #44 kdy: 24. 03. 2021, 16:45:21 »
Zdravím, přidám do diskuze taky kus moudra. Pokud chtece začít úplně od nuly, osobně bych doporučoval Python a poměrně dobrý kurz v češtině od Czechitas - https://www.czechitas.cz/cs/index.php?p=co-delame/chci-se-ucit-online/kurzy/kurz-python. Upzorňuji, že jsem jej neabsolvoval, pouze jsem kdysi prošel jejich učební materiály a přišly mi velmi solidní.

Být vámi, neřeším teď Javu, C#, Javascript, nebo nižší jazyky jako C, neboť Vás můžou poměrně rychle zahltit konstrukty, které pro vás ze začátku můžou být poměrně složité. Osobně myslím, že by jste si měl nejdřív osahat nějaký jednodušší jazyk, osvojit si naprosté základy jako proměnné, cykly podmínky, funkce a další. Jakmile Vám toto bude jasné, začnete se velmi pravděpodobně sám hlouběji zajímat o některé aspekty programování, začnete si psát vlastní skripty a dál rozšiřovat vědomosti. Tady se stane velmi důležitou součástí vaší cesty čtení dokumentace. U pythonu se dá hezky odpíchnout tady, kde najdete pro začátek vše nejdůležitější https://docs.python.org/3/tutorial/index.html. Subjektivně mi dokumentace pythonu přijde velmi hezky napsaná. Vůbec nejtěžším pro Vás ze začátku bude pokládat správné otázky až narazíte na problém a nebudete vědět kudy kam, protože vlastně nebudete vědět na co se zeptat. Pokud máte někoho zkušenejěího, kdo vám bude ochoten poradit, určite využijte jeho/její ochotu. Pokud ne, klidně můžete v případě potřeby napsat :)

Co se týče dalších jazyků, na 99.9 procent neskončíte u Pythonu pokud vás to bude bavit. Přejdete na jiný jazyk, který se už bude učit o něco snáze, pak na další a další a tak dále, než najdete něco co Vám sedne. Osobně jsem začítal u Pascalu, C, PHP na střední škole, pak se na to nabalila Java, trochu C#, nějaké C/C++, Python, pozdějí Bash atd... Je čitě na Vaší zvědavosti jakým směrem se pak vydáte. Pokud se na začátku budete ucházet o práci, firmy budou u juniora hledat právě hlavně zápal, nadšení a chuť k rozvoji.