Fórum Root.cz
Hlavní témata => Vývoj => Téma založeno: reider 20. 06. 2020, 20:22:46
-
Zdravím, je mi 15 let a uvažoval jsem o tom, že bych se rád samostatně naučil programovat, proto bych se vás zeptat jestli nevíte p. jazyk je nejlepší pro začátek?
Díky, za radu.
-
Typická otázka začiatočníka... ale reálne "nejlepší jazyk pre..." neexistuje... ostatne ale na začiatok bych odporučil začať skôr pracovať s jazykmi ako napríklad Python, JavaScript, C/C++, alebo Golang.
Ja som začínal konkrétne s C/C++ a JavaScriptom.
Pre naučenie sa algoritmického myslenia je veľmi dobrý scratch.
-
Jaký používáš operační systém a co čekáš od programování? (myšleno jako motivace, proč programovat)
-
tady někdo bude maturovat v šestnácti semi jako zdá hele (https://forum.root.cz/index.php?topic=23142.msg331922#msg331922) :o :o :o :o :D :D :D :D ;D ;D
buďto jeto trol nebo jakoby nějakej průzkumník trhu :o ;D
-
tady někdo bude maturovat v šestnácti semi jako zdá hele (https://forum.root.cz/index.php?topic=23142.msg331922#msg331922) :o :o :o :o :D :D :D :D ;D ;D
buďto jeto trol nebo jakoby nějakej průzkumník trhu :o ;D
aha to už je štvrté stejné vlákno od stejného týpka..
-
Python. Vlákno je možno uzamčít.
-
Python je jiste velice zadanej jazyk, ale je opravdu vhodnej jako prvni pro zacatecnika?
-
Za mě pro obecné začátky Python.
Pokud chcete něco pro web, tak JS.
Pokud vám Python nelíbí, tak Golang.
-
Bez určení cílové domény nemá jakákoliv rada smysl.
Něco jiného se hodí na hraní s Arduinem/ESP32, něco jiného pro webové aplikace, něco jiného pro hry a zase něco jiného pro automatizaci nějakých nudných rutinních procesů v počítači.
Třeba Scratch není pro začátek špatný, ale je určen spíš pro začátečníka do 10 let.
-
Python a až se trochu něco naučíš, tak přidat C.
A teď někdo určitě přijde s jiným názorem. Je to jako kdyby ses ptal že si chceš koupit první auto a jestli to má být Ford, Fiat nebo Toyota. Tisíc lidí, tisíc názorů, a ty nemáš technické znalosti na to to posoudit sám.
-
tady někdo bude maturovat v šestnácti semi jako zdá hele (https://forum.root.cz/index.php?topic=23142.msg331922#msg331922) :o :o :o :o :D :D :D :D ;D ;D
buďto jeto trol nebo jakoby nějakej průzkumník trhu :o ;D
Vypadá to tak. V jednom příspěvku tvrdí, že mu je 15 let, a v druhém je ve třetáku střední školy. Přestože základka se končí v 9tce a to je člověku 15.
-
Python je jiste velice zadanej jazyk, ale je opravdu vhodnej jako prvni pro zacatecnika?
Ano a bylo tomu tak i kdyz znamy a zadany nebyl.
-
Bez určení cílové domény nemá jakákoliv rada smysl.
Něco jiného se hodí na hraní s Arduinem/ESP32, něco jiného pro webové aplikace, něco jiného pro hry a zase něco jiného pro automatizaci nějakých nudných rutinních procesů v počítači.
Třeba Scratch není pro začátek špatný, ale je určen spíš pro začátečníka do 10 let.
Domena urcena je, hleda jazyk ne pro arduino, ne pro web, ale pro zacatek, tedy ne aby neco udelal, ale aby se neco naucil.
-
To je ten typ trolla, co nahodí nesmyslné téma a pak už se baví, jak se lidi hádají.
Když jsem se v 15ti rozhodoval, co dál dělat, c++ byla jasná volba. No dneska už asi ne.
-
Domena urcena je, hleda jazyk ne pro arduino, ne pro web, ale pro zacatek, tedy ne aby neco udelal, ale aby se neco naucil.
Pokud před sebou nemá praktický cíl, tak se nejspíš nenaučí nic.
Učení pro učení nikdy nefungovalo, i od toho Karla člověk chtěl, aby někam došel a něco udělal.
Sám jsem kdysi své první programy psal v Basicu na IQ151 - jednoduché hry na 20-50 řádek - v textové grafice, ovládané klávesnicí.
A to, co jsem vyjmenoval, jsou zrovna pro začátečníka vhodné domény, s nízkou úrovní vstupních požadavků a ke kterým na Internetu najde dostatek návodů a zdrojů.
-
Kdysi jsem si usmyslel, že se naučím stroják a assembler pro 8080. Tak jsem si vzal příčurku a když jsem byl na desáté stránce, zjistil jsem, že už jsem zapomněl co bylo na prvních pěti. Pak jsem potřeboval naprogramovat nějaký testovací program čím jsem nechtěl otravovat pány programátory a metodou pokusu a omylu jsem se to obstojně naučil. Šéf sice vrčel, že se tím zdržuji a on mi potřebuje zadávat jiné práce, ale já jsem pak z toho pár let žil.
K programování, pokud pominu pokusy s Algolem na VŠ jsem přičichl v zaměstnání kdy jsem potřeboval spočítat, jak se bude chovat paralelní kombinace odporu a trimru když s trimrem budu kroutit (hlavně jak se bude ten trimr výkonově zatěžovat), tak jsem si na to půjčil nějakou kalkulačku SR (už nevím kolik, ještě neměla možnost skoků), abych opakovaný výpočet nemusel dělat ručně, pak jsem se praštil přes kapsu, podpořil jsem nějakého vexláka a koupil jsem si TI58, pár prográmků jsem na tom zplodil.
Z toho plyne poučení a co víc si můžeme přát: Vem si nějaký problém co bys potřeboval vyřešit a splácej na to nějaký program v jazyce co ho máš při ruce.
-
http://carlcheo.com/wp-content/uploads/2014/12/which-programming-language-should-i-learn-first-infographic.png
-
To je ten typ trolla, co nahodí nesmyslné téma a pak už se baví, jak se lidi hádají.
Když jsem se v 15ti rozhodoval, co dál dělat, c++ byla jasná volba. No dneska už asi ne.
Já začal basicem na didaktiku gama (když pominu ten papírový ABC počítač), na PC pak jazykem C a dnes doporučuji začít Pythonem a po pochopení základů si rozšířit znalosti jazykem C. Pak už dotyčný budš schopen rozhodnout se sám, co dál.
-
Domena urcena je, hleda jazyk ne pro arduino, ne pro web, ale pro zacatek, tedy ne aby neco udelal, ale aby se neco naucil.
Pokud před sebou nemá praktický cíl, tak se nejspíš nenaučí nic.
Učení pro učení nikdy nefungovalo, i od toho Karla člověk chtěl, aby někam došel a něco udělal.
Sám jsem kdysi své první programy psal v Basicu na IQ151 - jednoduché hry na 20-50 řádek - v textové grafice, ovládané klávesnicí.
A to, co jsem vyjmenoval, jsou zrovna pro začátečníka vhodné domény, s nízkou úrovní vstupních požadavků a ke kterým na Internetu najde dostatek návodů a zdrojů.
Já se naučil, a stačilo mi, že jsem tomu chtěl rozumět. Něco smysluplného jsem naprogramoval až po mnoha letech (čtečku paketů fido komunikace), do té doby jsem si jen hrál. Takže vaši zkušenost nesdílím.
-
http://carlcheo.com/wp-content/uploads/2014/12/which-programming-language-should-i-learn-first-infographic.png
Hele, to je to docela dobrý.
-
To je ten typ trolla, co nahodí nesmyslné téma a pak už se baví, jak se lidi hádají.
Když jsem se v 15ti rozhodoval, co dál dělat, c++ byla jasná volba. No dneska už asi ne.
Já začal basicem na didaktiku gama (když pominu ten papírový ABC počítač), na PC pak jazykem C a dnes doporučuji začít Pythonem a po pochopení základů si rozšířit znalosti jazykem C. Pak už dotyčný budš schopen rozhodnout se sám, co dál.
Python na výuku docela dobrej. Ale C a C++ už IMHO nemá smysl. A šel bych rovnou do Rustu.
-
http://carlcheo.com/wp-content/uploads/2014/12/which-programming-language-should-i-learn-first-infographic.png
Proč má C# obtížnost tři hvězdičky? Já bych mu dal stěží jednu...
-
http://carlcheo.com/wp-content/uploads/2014/12/which-programming-language-should-i-learn-first-infographic.png
totálna hlúposť... najviac sa smejem na tom rozhodovaní programovacieho jazyka na základe toho či preferujem ručnú alebo automatickú prevodovku v aute, alebo tam s tým legom WTF?! Navyše to že tam je Ruby ale není tam Golang je tiež vtipné. Tiež vtipný je ten popis zameraní. V podstate celá ta infografika je na smiech.
-
http://carlcheo.com/wp-content/uploads/2014/12/which-programming-language-should-i-learn-first-infographic.png
totálna hlúposť... najviac sa smejem na tom rozhodovaní programovacieho jazyka na základe toho či preferujem ručnú alebo automatickú prevodovku v aute, alebo tam s tým legom WTF?! Navyše to že tam je Ruby ale není tam Golang je tiež vtipné. Tiež vtipný je ten popis zameraní. V podstate celá ta infografika je na smiech.
Je to z roku 2014.
-
http://carlcheo.com/wp-content/uploads/2014/12/which-programming-language-should-i-learn-first-infographic.png
totálna hlúposť... najviac sa smejem na tom rozhodovaní programovacieho jazyka na základe toho či preferujem ručnú alebo automatickú prevodovku v aute, alebo tam s tým legom WTF?! Navyše to že tam je Ruby ale není tam Golang je tiež vtipné. Tiež vtipný je ten popis zameraní. V podstate celá ta infografika je na smiech.
Je to z roku 2014.
a to v roku 2014 sa ľudia rozhodovali v ktorom jazyku budú programovať na základe toho či sa hrali s legom, alebo či majú v aute automatickú prevodovku?
-
http://carlcheo.com/wp-content/uploads/2014/12/which-programming-language-should-i-learn-first-infographic.png
totálna hlúposť... najviac sa smejem na tom rozhodovaní programovacieho jazyka na základe toho či preferujem ručnú alebo automatickú prevodovku v aute, alebo tam s tým legom WTF?! Navyše to že tam je Ruby ale není tam Golang je tiež vtipné. Tiež vtipný je ten popis zameraní. V podstate celá ta infografika je na smiech.
Je to z roku 2014.
a to v roku 2014 sa ľudia rozhodovali v ktorom jazyku budú programovať na základe toho či sa hrali s legom, alebo či majú v aute automatickú prevodovku?
Tolik k tomu, proč tam není go
-
To je ten typ trolla, co nahodí nesmyslné téma a pak už se baví, jak se lidi hádají.
Když jsem se v 15ti rozhodoval, co dál dělat, c++ byla jasná volba. No dneska už asi ne.
Já začal basicem na didaktiku gama (když pominu ten papírový ABC počítač), na PC pak jazykem C a dnes doporučuji začít Pythonem a po pochopení základů si rozšířit znalosti jazykem C. Pak už dotyčný budš schopen rozhodnout se sám, co dál.
Python na výuku docela dobrej. Ale C a C++ už IMHO nemá smysl. A šel bych rovnou do Rustu.
Imho C smysl má, protože je jednoduchý a umožňuje pochopit, jak to funguje na nižší úrovni. Krom tohoto edukativního smyslu to má i praktické využití v oblastech jako arduino nebo cython.
-
Ak ste úplný začiatočník tak Basic alebo Pascal. C resp C++ je dobrý jazyk, ale nie pre začiatočníkov porovnajte si toto (C++).
Neni to moc krásny príklad ale chcel som ním porovnať ako sa v oboch jazykoch pracuje s pamaťou.
#include <iostream>
#include <tuple>
std::tuple<uint8_t, uint8_t> hiLo(uint16_t num) {
void* addr = #
return std::tuple<uint8_t, uint8_t>{*(uint8_t*)addr, *(((uint8_t*)addr) + 1)};
}
int main()
{
uint16_t num = 256;
uint8_t lo;
uint8_t hi;
std::tie(lo, hi) = hiLo(num);
std::cout << "Lo byte: " << (int)lo << std::endl << "Hi byte: " << (int)hi << std::endl;
}
S týmto (QB64):
DIM NUM AS _UNSIGNED INTEGER: NUM = 256
DEF SEG = VARSEG(NUM)
DIM PNUM AS LONG: PNUM = VARPTR(NUM)
DIM LO AS _UNSIGNED _BYTE: LO = PEEK(PNUM)
DIM HI AS _UNSIGNED _BYTE: HI = PEEK(PNUM + 1)
PRINT "Lo byte: ", LO
PRINT "Hi byte: ", HI
alebo skrátená verzia:
NUM% = 256
DEF SEG = VARSEG(NUM%)
PNUM = VARPTR(NUM%)
LO = PEEK(PNUM)
HI = PEEK(PNUM + 1)
PRINT "Lo byte: ", LO
PRINT "Hi byte: ", HI
-
NUM% = 256
DEF SEG = VARSEG(NUM%)
PNUM = VARPTR(NUM%)
LO = PEEK(PNUM)
HI = PEEK(PNUM + 1)
PRINT "Lo byte: ", LO
PRINT "Hi byte: ", HI
Co je to za šílenost? Segmenty paměti jsem naposledy používal před 30 lety v dosu na 16 bitových procesorech, kde šlo adresovat jen 64 kB paměti. Doporučení basicu a pascalu sem také nějakým omylem propadlo z tohoto pradávného prostoročasu :-).
-
Imho C smysl má, protože je jednoduchý a umožňuje pochopit, jak to funguje na nižší úrovni. Krom tohoto edukativního smyslu to má i praktické využití v oblastech jako arduino nebo cython.
+1
-
NUM% = 256
DEF SEG = VARSEG(NUM%)
PNUM = VARPTR(NUM%)
LO = PEEK(PNUM)
HI = PEEK(PNUM + 1)
PRINT "Lo byte: ", LO
PRINT "Hi byte: ", HI
Co je to za šílenost? Segmenty paměti jsem naposledy používal před 30 lety v dosu na 16 bitových procesorech, kde šlo adresovat jen 64 kB paměti. Doporučení basicu a pascalu sem také nějakým omylem propadlo z tohoto pradávného prostoročasu :-).
:D Asi som trošku zaujatý lebo QBasic bol môj prvý jazyk s ktorým som začínal... A včera som si stiahol novú verziu https://www.qb64.org/ (kôli inej diskusii tu na roote) a som celkom uchvátený, že sa v tom dá programovať aj keď sa to za tie roky moc nezmenilo - prekvapuje ma čo to všetko dokáže a že je to vlastne celkom použiteľné.
C++ je to môj najobľúbenejší (imperatívny) jazyk, mám ho rád lebo sa s nim dá hrajkať a piplať v detailoch, ale odporúčať ho začiatočníkovi je imho blbosť. Ak si nachvíľu odmyslím, že som programátor a pozriem sa na kód očami laika tak ten kúsok kódu v basicu mi príde omnoho viac human readable. Preto si naozaj myslím že tým že začne programovať v BASICu nič nepokazí. On ajtak skôr čo neskôr narazí na limity jazyka a potom prejde na niečo iné. Vôbec neni dôležité aký jazyk je dnes IN ale skôr to v čo v ňom vzbudí záujem o programovanie ako také.
-
No asi jo, protože ten svět se přeci jen posunul a chtělo by to špetku soudnosti. Doporučovat seriózně někomu jako první jazyk něco, co jsem včera stáhnul a jsem překvapený, že v tom jde dokonce programovat, to je na facku.
-
...
Ja som v QBasicu programoval cca prvé dva roky môjho programátorského života (1997 - 1999). Už som to obdobie skoro vytesnil zo spomienok ale keď som si teraz po rokoch stiahol ten jazyk - všetky spomienky sa mi obnovili a keď som si pospomínal na niektoré konštrukcie tak som zistil že Basic mi dal celkom dobrý základ do rôznych oblastí programovania.
V Basicu som si prešiel hneď niekoľkými paradigmami... Zo začiatku som mal len 1 knihu - starú knihu z 80s pre mikropočítače kde som našiel zdrojáky jednoduchých hier ktoré som prepisoval do QBasicu v tých zdrojákoch sa používal skoro výlučne len príkaz goto alebo gosub / return. Týmito príkazmi sa nahrádzali jak funkcie tak cykly. A keď sa mi tie prvé aplikácie viac rozrástli pochopil som že používať GOTO je vopruz a že tadialto cesta nevedie z aplikácie sa mi totiž stala jedna veľká špageta.
Ale zistil som pritom že QBasic (narozdiel od basicu na 8-bitoch) obsahuje aj procedúry, funkcie a štruktúry a rôzne low level konštrukcie. A toto mi dalo základ k tomu že som sa neskôr zaujímal aj o low level programovanie. Neskôr som to potom všetko zúžitkoval pri Turbo Pascale, Delphi a ešte neskôr pri C / C++ Keby bol moj prvý jazyk PHP alebo Ruby či Python tak by som sa síce naučil hneď OOP ale vôbec by som nechápal ako funguje HW. Proste by sa stal zo mňa len ďalší lepič ktorý si naťahá 10 libiek a z nich potom vyskladá aplikáciu metódou ctrl+c ctrl+v. Poznám takch dosť.
Prečo mu odporúčam basic?
1. je to dobrý základ pre rôzne oblasti. Ak by si vybral ako prvý jazyk PHP alebo JS či Ruby tak pri webovom vývoji ostane a podľa mňa získa menší rozhľad ako keď začne jazykom ktorý má bližšie k hardwaru. Basic má blízko k hardwaru no zároveň je jednoduchý a ľahko pochopiteľný aj pre začiatočníka - má v sebe low level konštrukcie ktoré sú ale samovysvetľujúce. C / C++ má tie konštrukice tiež, ale pre začiatočníkom sa tie rôzne operátory (pointer, referencia, dereferenciaácia pointera) môžu mýliť.
2. k C / C++ treba poznať kopec teórie, sťahovať knižnice, pochopiť ako funguje pamať, preprocessor, kedy vytvárať objekt na halde a kedy na stacku etc, v QBasicu si s prár tutorialmi (alebo s helpom) dokáže naprogramovať jednoduchú 2D hru bez toho aby sťahoval nejaké libky všetko potrebné je súčasťou jazyka / prostredia - takže hneď vidí výsledok - a to je pre začiatočníka dôležité.
3. Basic bol navrhnutý tak aby bol naozaj zrozumiteľný začiatočníkom na učenie programovanie je imho ešte lepší ako pascal. Okrem toho archaické konštrukcie ako pri práci s pamaťou nutnosť nastaviť segment s ktorým pracuje ho aspoň naučia že pamať je rozdelená na segmenty. Vyššie programovacie jazyky ho od týchto problémov odbremenia lenže on žiaľ potom nebude chápať ako funguje počítač pod kapotou.
4. QB64 obsahuje kompletné vývojové prostredie ktoré je ušité na mieru práve začiatočníkom. Obsahuje aj kvalitný help ktorý ho prevedie prvými krokmi. A obsahuje aj komunitu nadšencov ktorí mu pomôžu keď si s niečim nebude vedieť rady. Obsahuje chybové hlášky ktoré sú zrozumiteľné (omnoho zrozumitelnejšie ako má C++ prekladač). Vývojové prostredie mu automaticky formátuje kód (niečo ako prettier) a chyby sa zobrazujú na mieste kde chyba vznikla.
-
Jako neprogramátor, co se programováním živit ani nechtěl jsem oceňoval, že když jsem v BASICu napsal
10 PRINT "AHOJ"
20 GOTO 10
RUN
tak to chodilo. A pak se na to mohly navěšovat další příkazy. A nemusely se hned na začátku řešit různé definice, deklarace a podobné věci než se došlo k tomu, aby ten program vůbec něco začal dělat.
Setkal jsem se s názorem, že když někdo začne s BASICem, tak je pro vážné programování ztracený - no budiž.
-
Keby bol moj prvý jazyk PHP alebo Ruby či Python tak by som sa síce naučil hneď OOP ale vôbec by som nechápal ako funguje HW. Proste by sa stal zo mňa len ďalší lepič ktorý si naťahá 10 libiek a z nich potom vyskladá aplikáciu metódou ctrl+c ctrl+v. Poznám takch dosť.
Nesmysl. Učím programovat své děti a používám k tomu Raspberry PI a k tomu různé HW elektronické moduly. A Raspberry staví právě na Pythonu. Basic je dávno překonaná minulost.
-
Jako neprogramátor, co se programováním živit ani nechtěl jsem oceňoval, že když jsem v BASICu napsal
10 PRINT "AHOJ"
20 GOTO 10
RUN
tak to chodilo. A pak se na to mohly navěšovat další příkazy. A nemusely se hned na začátku řešit různé definice, deklarace a podobné věci než se došlo k tomu, aby ten program vůbec něco začal dělat.
Setkal jsem se s názorem, že když někdo začne s BASICem, tak je pro vážné programování ztracený - no budiž.
Žijete v minulosti, v Pythonu toho dosáhnete neméně jednoduše.
while 1:
print "AHOJ"
-
3. Basic bol navrhnutý tak aby bol naozaj zrozumiteľný začiatočníkom na učenie programovanie je imho ešte lepší ako pascal. Okrem toho archaické konštrukcie ako pri práci s pamaťou nutnosť nastaviť segment s ktorým pracuje ho aspoň naučia že pamať je rozdelená na segmenty. Vyššie programovacie jazyky ho od týchto problémov odbremenia lenže on žiaľ potom nebude chápať ako funguje počítač pod kapotou.
Paměť není rozdělená na žádné segmenty, budiž to důkaz, že basic a jeho archaické konstrukce zdeformovaly vaše povědomí o tom, jak funguje počítač pod kapotou. Radši jdu pryč, protože mám nutkání být sprostý.
-
3. Basic bol navrhnutý tak aby bol naozaj zrozumiteľný začiatočníkom na učenie programovanie je imho ešte lepší ako pascal. Okrem toho archaické konštrukcie ako pri práci s pamaťou nutnosť nastaviť segment s ktorým pracuje ho aspoň naučia že pamať je rozdelená na segmenty. Vyššie programovacie jazyky ho od týchto problémov odbremenia lenže on žiaľ potom nebude chápať ako funguje počítač pod kapotou.
Paměť není rozdělená na žádné segmenty, budiž to důkaz, že basic a jeho archaické konstrukce zdeformovaly vaše povědomí o tom, jak funguje počítač pod kapotou. Radši jdu pryč, protože mám nutkání být sprostý.
Ak sa pamať nedelí na segmenty tak ako to teda je? Ja som bol v tom že smerník (pointer) na prmennú obsahuje adresu premennej v pamati.
A táto adresa sa skladá zo segmentu a offsetu. Pri 32 bitovej adrese je prvých 16 bitov segment a druhých 16 bitov offset. alebo sa mýlim?
-
Ak sa pamať nedelí na segmenty tak ako to teda je? Ja som bol v tom že smerník (pointer) na prmennú obsahuje adresu premennej v pamati.
A táto adresa sa skladá zo segmentu a offsetu. Pri 32 bitovej adrese je prvých 16 bitov segment a druhých 16 bitov offset. alebo sa mýlim?
Haha, to je nostalgie. Zhruba takhle (ale o něco složitější) to bylo dávno v reálném módu, myslím že procesory od i386 (uvedeny na trh v roce 1985, i když reálný mód se používal mnohem déle, to byla zhruba ta doba výroku "640 KB RAM by mělo stačit pro každého") dál už uměly virtuální adresování, tehdy se to nazývalo protected mód, a s tím se jede doteď. Adresa je prostě číslo, neskládá se z žádného segmentu a offsetu. Každý proces ovšem dostane svůj virtuální adresní prostor izolovaný od ostatních procesů, adresy do tohoto virtuálního prostoru pak teprve procesor (nebo řadič paměti, nevím přesně) překládá na fyzické adresy, z pohledu toho procesu je to ovšem zcela transparentní, uvádím to spíš pro úplnost.
Kdybych dnes někoho chtěl naučit, jak vypadá low level programování, doporučil bych mu Rust, nebo v horším případě C, to jen na malé pokusy. C++ jen tchyni, a to by ještě musela provést něco opravdu ošklivého. Na základy programování jako takového opravdu asi ten Python.
-
mi se zalibil golang.
C a C++ az pripadne potom, i kdyz my dedci jsme zacinali prave na C a C++.