IT rekvalifikace s garancí práce. Seniorní programátoři vydělávají až 160 000 Kč/měsíc a rekvalifikace je prvním krokem. Zjisti, jak na to!
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 12:18

Dobrý den,
jsem úplný začátečník, ale velice cílevědomý a učenlivý. Studuji na gymnáziu, ale ne obor IT. Rád bych byl dobrý v oblasti hackingu, i proto chci začít s programováním. Vás se ptám, jak začít? Potřebuji úplné základy na pochopení principů. Rád bych slyšel Váš názor na 1) pojmy, které si musím objasnit, 2) pojmy, které se musím do hloubky naučit, 3) jazyk, se kterým začít (C++, Python, Pascal,.. ???) - například se obávám, že Java by pro mne byla zbytečně složitá. 4) vaše postřehy k začátku, co je podle vás dobré udělat/umět.
Děkuji mnohokrát za všechny odpovědi.
beginner

 
Odpovědět
27.9.2015 12:18
Avatar
Milan Křepelka
Tvůrce
Avatar
Milan Křepelka:27.9.2015 13:21

Takovéto nadšení postihne mnoho lidí. Být ten hacker. Koukat se na svět jako Neo, všude se dostat, všechno prolomit a být sám sobě hvězdou. To tě přejde. Až budeš tušit kolik za tím bude asi práce. A až dojde k rozbřesku, tak budeš teprve stát na špičce ledovce.

Nauč se jakýkoli vyšší jazyk(Python, Java, C#) a pak zkus jestli zvládněš ten nižší. C,C++.

 
Nahoru Odpovědět
27.9.2015 13:21
Avatar
Odpovídá na beginner
Neaktivní uživatel:27.9.2015 13:54

Naprosto souhlasím s Milanem - dokud nevíš co tě čeká, je snadné být super-nadšenec, když jsi na začátku. Já bych Milanův komentář doplnil o tenhle postřeh (připomínám, nejsem hacker, nikdy jsem nic nehackoval, mám jen teoretické postřehy a znalosti na velmi základní úrovni z okolí a stránek, případně komunity kolem Kali) : Podle mě je hacking toho typu, který zmiňuješ/nakousáváš ty ve své otázce problematikou velmi vysoké znalosti architektury platforem - kupříkaldu, vědět, že je něco jako SQL injection, dokázat rozlišit stránky na základě vzhledu(stáří), na kterých to má cenu zkoušet, stránky, který nemají ani smysl načínat atp. A tam se dostáváš k té JAVĚ - je to často používaná platforma? Je! Chceš se dostat do javovskejch systémů? Tak to respektuj a nauč se javu, pochop jak funguje, kde jsou její slabá místa, pak to můžeš udělat s jakýmkoliv dalším jazykem, platformou. Určitě je spousta hackerů, kteří aplikují systém napadání jen pomocí nástrojů, povrchové znalosti, zkušeností, ale to je způsob jak jen zúročit něco co už víš, moc nového se takhle nenaučíš (neříkám, že nic). Podle mě je tedy odpověď snadná, jdi a uč se všechno, chceš-li být hacker/Master hacker, musíš znát platformu.

Jednoduchá matafora/přirov­nání: Jsi-li hacker, jsi jako ninja v tmavém domě, máš možná spoustu reflexů a schopností, ale ten proti komu stojíš ten dům zná, možná ho dokonce postavil, ví kde jsuu uloženy zbraně, kde je úkryt, kde je schod a kde se bouchneš do hlavy, když nedáš pozor... rozumíš? Ty musíš vědět a myslet lépe a rychleji.

Pokud ta metafora někomu přijde zcestná, neberte jí úplně doslovně, jak jsem řekl, můžeš hackovat i za použití nástrojů a znalostí od někoho převzatých. Jestli je to to co chceš, najdi si hackovací tutoriály, získej základní znalosti o webu, desktopu, mobile devices ..internetu.. a tak podobně a pusť se do experimentování.

Závěrem chci říct, že nikoho nenavádím k nezákonné nebo nemorální činnosti, hacker je neutrální pojem - totožný (alespoň pro mě a většinu odborné komunity) s pojmem bezpečností analitik/speci­alista.

Jestli jsem něco neřekl jasně, jestli jsem se v něčem více, že méně mýlil, omlouvám se předem, jsem jen obyčejný programátor, nehacker - mohu se tedy mýlit. Ale vy zase nezapomínejte, že hacking/cracking není jen o tom se někam dostat - je to disciplína založená na přemýšlení, vylepšování, obcházení, zprovozňování něčeho .. není to vždy o boření a destrukci.

Díky za pozornost. ;)

Editováno 27.9.2015 13:57
Nahoru Odpovědět
27.9.2015 13:54
Neaktivní uživatelský účet
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 13:54

Každý (i vy) býval začátečník, pokud by to každého "přešlo", asi byste mi ani vy teď neodepsal na můj přspěvek. Té práce jsem si více než vědom, je to na každém rohu napsáno. To, že jsem jí zatím nezažil; práci jsem zažil a představivost mám, nemyslím, že by to bylo něco až tak nerozlousknutel­ného. Každopádně děkuji za radu. Vyšší je, předpokládám, ten, kde nemusím programovat "úplně vše" - méně náchylný k chybám a menší žrout času. Samozřejmě i lehčí. Tím bych začal. Přesto jsem si na Javu udělal obrázek z různých diskusí jako ne neideální, pro začátek moc obtížnou. Tudíž se ptám na výhody a nevýhody Pythonu a C# - který využiji, který poskytuje lepší začátek, pozdější porozumění ostatním jazykům,..

P.S.: Spíše se stylizuji do Elliota z Mr.Robot než do Nea

 
Nahoru Odpovědět
27.9.2015 13:54
Avatar
Odpovídá na beginner
Neaktivní uživatel:27.9.2015 14:02

Zase já, koukni JAVA je fajn jazyk/platforma. Já před ní znal jen Turbo Pascal ... trochu HTML CSS .. a vrhnul jsem se do ní po hlavě. Nebyla to chyba, naopak spíš láska na první pohled ;) . Naopak se totiž JAVA postará o spoustu věcí pro začátečníka komplikovaných - destruktory, garbage collector (a trochu dalšího) to všechno se řeší samo, nemusíš alokovat určité množství poměti pro proměnnou, jako jsem slyšel, že se děje na nižších vrstvách. Na diskuze zatrpklíků nedej, jsou lidi co budou nadávat na všechno/na cokoliv. Vyzkoušej zdejší tutoriály a materiály pro JAVU, vyzkoušej knížku JAVA bez předchozích znalostí - geniálně napsaný i přeložený (pár chybiček ze začátku tam je, ale toho si všimneš a nebudeš si kvůli tomu lámat hlavu neboj)

Java je sice trochu líná, ale i javisti jsou trochu liní ;) hodně toho zvládne za tebe a nikam ti neuteče. :D

Nahoru Odpovědět
27.9.2015 14:02
Neaktivní uživatelský účet
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 14:05

To Taskkill:
Souhlas, pak ses dostal k Javě - vím, že je obrovsky používaná, je mi jasné, že se jí budu učit, ale prozatím zastávám názor nezačínat Javou.
Dále, rozhodně nechci používat cizí postupy, experimentovat (možná i to zkusím, ale základ to nebude), ne, mně jde o to celé to pochopit, postupně se dostávat dál, ne postupovat podle někde dohledaných postupů, ale tvořit vlastní postupy..
Metafoře rozumím
Ohledně nézakonné činnosti, vím co "hacking" znamená, a to rozhodně není jen nezákonné nabourávání se do něčeho, kam nám je přístup odepřen.

 
Nahoru Odpovědět
27.9.2015 14:05
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 14:06

Rád bych připomněl, že moje 1. odpověď byla na 1. příspěvek od MK a moje 2. odpověď byla směřována na 1. příspěvek od T, teprve teď odpovím na 2. příspěvek od T.

 
Nahoru Odpovědět
27.9.2015 14:06
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 14:09

Samozřejmě, přesto bych rád znal nějaký jazyk ještě před Javou. Je to podle mne lepší, než se naučit Javu a pak jít např. na Python. Tudíž bych rád znal výhody a nevýhody Pythonu oproti C#.
Děkuji

 
Nahoru Odpovědět
27.9.2015 14:09
Avatar
Odpovídá na beginner
Neaktivní uživatel:27.9.2015 14:10

Rozdíl mezi Javou a C# je snad jen ten že java je multiplatforemní a c# je pro Windows.
Takže nechápu proč ti vadí java ale c# ne.

PS: Takže ti vlastně zbývá jen Python, vypadá to, že otázka o jazyku je vyřešena. :)

Editováno 27.9.2015 14:12
Nahoru Odpovědět
27.9.2015 14:10
Neaktivní uživatelský účet
Avatar
Richard
Člen
Avatar
Odpovídá na beginner
Richard:27.9.2015 14:11

Hacker je moc široký pojem, nemůžeš chtít umět všechno. Co tě zajímá? Weby, servery, embedded, sítě? Nejdřív si musíš vybrat jednu konkrétní větev bezpečnosti, tu poznat do hloubky a po pár letech můžeš rozšířit studium na další větev.

Musím nesouhlasit s tím co psali kolegové, určitě bys měl začít nižším jazykem, ideálně c/cpp. Když začínáš tak není takovej rozdíl se naučit nižší jazyk a hodit se ti to bude vždycky.

Jestli má nějakej smysl učit se nejdříve jazyky (natož třeba javu) nevím, měl bys začít teorií bezpečnosti a sítí. Kup si za pár korun vps a nauč se konfigurovat servery, až si budeš myslet že to máš v malíku, tak ten svůj server sundej a začni odznovu, dá ti to hodně.

Řekni jakým směrem chceš jít, pak můžem poradit i nějak konstruktivně. A hlavně, nebuď sám, jet one man show je sice sexy, ale jednak neefektivní a druhak nebezpečné.

Nahoru Odpovědět
27.9.2015 14:11
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 14:14

Znovu, jsem začátečník, čti: nevím, co mi vadí a co ne.
Doteď jsem na různých fórech vyrozuměl, že C# je takový předkrok k Javě, tak jsem rád, že mě vyvádíš z omylu. Pokud bych tedy chtěl nějaký jazyk před Javou, je nejlepší Python, Pascal nebo jiný? Nebo si všichni myslíte, že bych měl jít hned na Javu a potom co budu chtít?

 
Nahoru Odpovědět
27.9.2015 14:14
Avatar
Odpovídá na beginner
Neaktivní uživatel:27.9.2015 14:17

No měl jsem za to že na těch fórech jsou taky kilometrové diskuze kde se porovnává java a C#(asi záleží na jakém fóru jsi by, jestli bylo - java friendly nebo c# friendly).

S těmi jazyky moc zkušeností nemam(jen python jsem využil v Autodesk Maya/3Ds Max). Takže ti s tím musí poradit někdo jiný :)

Editováno 27.9.2015 14:19
Nahoru Odpovědět
27.9.2015 14:17
Neaktivní uživatelský účet
Avatar
Richard
Člen
Avatar
Odpovídá na beginner
Richard:27.9.2015 14:20

Pascal je mrtvý a nepoužitelný. Python je super jazyk na vývoj, pro cestu hackera relativně zbytečný, java to samé jako Python.

Jakým směrem chceš jít? Čeho chceš dosáhnout?

Nahoru Odpovědět
27.9.2015 14:20
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 14:33

To Richard:
toho si jsem vědom, začal bych s weby a třeba i sítěmi, později to rozšířil na servery,.., ale to je momentálně jen odhad. Proto chci začít s programováním, abych si ohledně tohoto trochu rozšířil obzory a samozřejmě "něco uměl", než přejdu na hacking.
Mohl bys napsat výhodu nižšího jazyku? Mně se např. zamlouvá postup naučit se nejdříve nějaký lehčí vyšší a pak až zabrousit na nižší, víc dopodrobna, víc možností chyby. Proč ne?
Ke třetímu odstavci, upřímně si toho teď pod pojmem VPS nevybavím mnoho, mohl bys mi přiblížit, kde koupit a jak se to naučím? Ohledně teorie, chápu, že ta je potřeba, byl bych rád za nějaký tip, kde ji hledat srozumitelně a ne až tolik obsáhle sepsanou (zazačátku) - nejdůležitější věci. Prohlubovat znalosti budu časem.
Svoje představy o směru jsem vyjádřil v prvním odstavci, ohledně "nebuď sám" - jediný, o kom vím, že má základy co se tohoto týče je můj učitel na Informační a komunikační technologie (IKT). Tudíž nevím jak si hledat druhého + prosím doplň, jak jsi myslel slovo "nebezpečné".

Dále, Pascal tedy ne, Python/Java - zde mi, prosím, řekni, který je jednodušší - lépe se na něm naučím, lépe vyžiji. Jak jsem již psal, nejdříve se chci naučit trochu programovat než (jestli vůbec) přejdu na hacking. Není to čistě jen začátek pro hacking. Mým cílem je jednoduše se v této oblasti vyznat, abych měl jednak jak sebe ochránit vůči hackerům a věděl, co je v této oblasti nejlepší, druhak měl veliké + na trhu práce a za třetí si myslím, že by mne to mohlo bavit a že je to skvělá výplň času vedle sportů.

 
Nahoru Odpovědět
27.9.2015 14:33
Avatar
Honza Bittner
Tvůrce
Avatar
Odpovídá na Richard
Honza Bittner:27.9.2015 14:35

A co #badass jazyky jako JSA (Assembler)? ]:-> :-)

Nahoru Odpovědět
27.9.2015 14:35
FIT ČVUT alumnus :-) Sleduj mě na https://twitter.com/tenhobi a ptej se na cokoli na https://github.com/tenhobi/ama.
Avatar
Odpovídá na beginner
Neaktivní uživatel:27.9.2015 14:39

Pokud chceš začít weby, tak by jsi se měl vykašlat na Python/Java, a začít se učit(HTML+CSS+PHP nebo ASP)

VSP = Virtual private server, prostě mašina na které běží např. web :)

Nahoru Odpovědět
27.9.2015 14:39
Neaktivní uživatelský účet
Avatar
Odpovídá na Honza Bittner
Patrik Valkovič:27.9.2015 14:41

Pokud chce tvořit nějaké exploity, bez ASM se určitě neobejde :D

Nahoru Odpovědět
27.9.2015 14:41
Nikdy neumíme dost na to, abychom se nemohli něco nového naučit.
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 14:46

Chápu to správně, že podle vás je úplně jedno, kde začnu, prostě bych měl vědět o tom co mě zrovna zajímá vše možné?
Úplný svůj začátek bych viděl právě v tom programování - JEDNODUCHÉ aplikace, příkazy, upomínky,.. (a to přes ten Python - třeba, pak přejít na Javu a pak nějaký nižší jazyk). Pak až ty weby, sítě, servery, hacking..

 
Nahoru Odpovědět
27.9.2015 14:46
Avatar
Richard
Člen
Avatar
Odpovídá na beginner
Richard:27.9.2015 14:56

Výhoda toho že začneš na nižším jazyku je ta, že se naučíš všechno co budeš potřebovat, všechno co jak funguje a tak dále. Pak přejdeš na vyšší jazyk a akorát ti odpadne práce s pamětí, datovými typy atd - to programování bude rychlejší, pohodlnější, ale budeš mít dobré návyky z nižších jazyků.

Pokud začneš na vyšším jazyku a pak se začneš učit nižší, najednou budeš muset řešit (a učit se) spoustu věcí co si nemusel a je to dost nepříjemné a demotivující, protože budeš muset dělat z tvého pohledu něco navíc, něco "zbytečného". Já jsem taky začínal na vyšším a pak jsem měl velké problémy se do toho dostat.

Jestli se rozhoduješ mezi Pythonem/Javou, tak určitě Python. Je o něco jednodušší, má strmější křivku učení, je všeobecně použitelnější a má lepší budoucnost.

Nahoru Odpovědět
27.9.2015 14:56
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 15:16

Tohle jsem chtěl slyšet. Tudíž se začnu učit nějaký nižší jazyk (tady bych opět potřeboval poradit), pak Python, Javu a uvidíme kam dál.

 
Nahoru Odpovědět
27.9.2015 15:16
Avatar
Tycek
Člen
Avatar
Tycek:27.9.2015 15:34

A proč nezačít právě tím Pascalem? Pokud jsi v životě neprogramoval ani nedělal nic podobného, naučí tě Pascal algoritmicky přemýšlet a naučí tě taky základní postupy, které využiješ jakémkoliv jiném programovacím jazyku.
Zaznělo tu, že Pascal je nepoužitelný, s čímž trochu souhlasím, ale jelikož byl Pascal vytvořen jako výukový jazyk, neočekává se, že člověk který se učí v Pascalu bude tvořit nějaké megaprojekty. Taky má Pascal dobře srozumitelné chybové hlášky oproti jiným nižším jazykům, kdy ti skoro hned nafackuje za chybu a ukáže ti kde je.
Můj názor tedy je, že Pascal na začátek není úplně nejhorší pro člověka, který v životě neprogramoval.

 
Nahoru Odpovědět
27.9.2015 15:34
Avatar
Odpovídá na beginner
Michael Škrášek:27.9.2015 15:54

Chceš být hacker,nebo se zaměřit i na crackování programů, pokud ano, tak budeš muset umět i JSA (Assembler), pokud ne, tak ti odpovím jen a otázku nižší jazyk: C a C++ jsou nižší jazyky, C je hodně rychlý a programují se v něm jiné jazyky či OS. C++ je objektový jazyk tzn. že v něm můžeš dělat velké projekty (hry ...), nechci nikoho pobouřit, ale myslím že je lepši volba C.

Volba je na tobě ;), ale počkej si ještě na další kometáře, určitě se objeví názory proč začít s C++ a i důvody. :)

a určitě neuškodí, když si přečteš úvody do těchto jazyků:
http://www.itnetwork.cz/…iho-jazyka-c
http://www.itnetwork.cz/…do-sveta-cpp

Nahoru Odpovědět
27.9.2015 15:54
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 16:07

Abych to prozatím shrnul:

Není až tak důležité NĚCO přečíst či pochopit než se půjdu třeba učit jazyk (z různých webů, youtube,.. (?) )

Pro pozdější přechod je lepší začít nižším spíš než vyšším.

Nejlepší nižší:
Pascal (nevyužiju, ale skvěle se na něm "zaučím")
C (využiju, ale budu se fakt prokousávat)
C++ (využiju, ale budu se fakt prokousávat)

Chápu vše správně?

 
Nahoru Odpovědět
27.9.2015 16:07
Avatar
Richard
Člen
Avatar
Odpovídá na Tycek
Richard:27.9.2015 16:46

Proč se učit něco co je dávno mrtvé? Když se chci začít učit jazyky, nezvolím jako první latinu, protože se dobře učí, ale jazyk kterej je použitelnej. Když bychom to brali takhle, tak ještě líp než pascal vychází robot Karel :-D.

V C se nedají tvořit velké projekty protože není objektový?

beginner Chápeš to správně, ale nad Pascalem opravdu ani nepřemýšlej, to byl dobrej jazyk před xy lety. Asi bych šel do c++, oproti c je tam objektovej model a je lepší se ho naučit rovnou než pak doučovat, pokud by jsi začal nejdříve s c a pak šel na c++ bude to podobně nepříjemný jako přechod z vyššího na nižší jazyk.

Nahoru Odpovědět
27.9.2015 16:46
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
Tomáš Brůna
Tvůrce
Avatar
Odpovídá na beginner
Tomáš Brůna:27.9.2015 16:51

S javou dělám od jedenácti a můj názor je že obtížnost oproti C/C++ je o hodně menší ;)

Nahoru Odpovědět
27.9.2015 16:51
Vi veri universum vivus vici
Avatar
Odpovídá na Tomáš Brůna
Neaktivní uživatel:27.9.2015 16:57

Pravě proto mu doporučují začít na nižších jazycích, aby mu přechody mezi jazyky potom nedělali problém.
Když začneš jako začátečník na těžším , tak si toho ani nevšimneš, ale potom přechod např. na javu bude jednodušší.. Když začneš např. s javou, tak potom přechod na c++ bude hardcore.

Editováno 27.9.2015 16:58
Akceptované řešení
+20 Zkušeností
+2,50 Kč
Řešení problému
Nahoru Odpovědět
27.9.2015 16:57
Neaktivní uživatelský účet
Avatar
Tomáš Brůna
Tvůrce
Avatar
Odpovídá na Neaktivní uživatel
Tomáš Brůna:27.9.2015 17:01

Souhlasím s tebou :) a pokud je na gymnáziu, tak si myslím že mu to nebude dělat nějak velké problémy :)

Nahoru Odpovědět
27.9.2015 17:01
Vi veri universum vivus vici
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 17:03

Chápu. Tudíž c++ je "nejtěžší" a zároveň hodně důležitý. Přechod na ostatní jazyky pak nebude takovej problém. Je tady někdo proti začátku s c++ nebo už na to půjdu? :-D

 
Nahoru Odpovědět
27.9.2015 17:03
Avatar
Tycek
Člen
Avatar
Odpovídá na Richard
Tycek:27.9.2015 17:16

Mrtvý sice je, ale na začátky se podle mně hodí. Tady moc nejde o to že se naučí JAZYK, který je mrtvý a nepoužitelný, spíš tu jde o to, že se naučí programátorsky myslet a naučí se základní konstrukce bez později nutných věcí jako třídy, OOP atd.
Podle mně by si na začátku s C++ mohl vylámat zuby, jelikož je to opravdu složitý jazyk na to, aby s ním někdo začínal. Ale pokud ho zvládne, ostatní jazyky už budou víceméně hračka.
Mimochodem o C jsem nenapsal ani zmínku.

 
Nahoru Odpovědět
27.9.2015 17:16
Avatar
Odpovídá na Richard
Michael Škrášek:27.9.2015 17:27

Trochu jsem to špatně napsal, neříkám že v C se nedají dělat velké projekty, ale že v C++ je udělá mnohem rychleji kvůli objektivitě a to samé ve vyšších jazycích kvůli paměti ....

Nahoru Odpovědět
27.9.2015 17:27
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 17:28

Zkusím to s tím C++, všem mnohokrát díky!

 
Nahoru Odpovědět
27.9.2015 17:28
Avatar
Odpovídá na Tycek
Michael Škrášek:27.9.2015 17:29

Kdyby šlo jen o to, naučit se algoritmy atd ..., tak může použít mnohem modernější výukový jazyk např. Small Basic :), jenže v tomhle případě de spíš o to, začít s dobrým jazykem, nechce tvořit velké hry a aplikace - chce hackovat ... :)

Editováno 27.9.2015 17:31
Nahoru Odpovědět
27.9.2015 17:29
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 17:35

ještě jedna věc - jak vlastně začít s tím jazykem? :-D něco stáhnu, přečtu nebo jak? :-D

 
Nahoru Odpovědět
27.9.2015 17:35
Avatar
Nahoru Odpovědět
27.9.2015 17:37
"I choose a lazy person to do a hard job. Because that person will find an easy way to do it. " Bill Gates
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 17:40

No jasný :-)

 
Nahoru Odpovědět
27.9.2015 17:40
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na beginner
Milan Křepelka:27.9.2015 18:04

To je omyl. Doporučení jako první začít s nižším jazykem nevychází z reality učení obecně. Človek vždy začíná s tou jednodušší věcí. Nikdo se nezačíná učit na motorce aniž by se naučil na tříkolce.

Vyšší jazyky jsou jednodušší na vyjádření toho co potřebuješ. Abych to blíže vysvětlil.

Vyšší jazyky jsou jednodušší jako jazyk a zároveň slouží k vytváření větších celků. Jsou kolem toho velké frameworky, které se vlastně člověk učí léta. Jakmile zabředněš to rozsáhlostí těchto frameworků, bude to pro tebe taktéž složité.

Nižší jazyky jsou složitější jako jazyk, ale ty knihovny okolo nejsou tak rozsáhlé. Ale řeší složitě to, co vyšší jazyky už vyřešily a programátora od zbytečných složitostí odstiňují.

A zpátky k učení. Ono ve skutečnosti ani jeden přístup není vysloveně špatný ani vysloveně dobrý. Když se naučíš zpočátu C++, půjdeš složitější cestou na začátku, ale později budeš v těch vyšších jazycích chápat důvody proč se některé věci dělají tak, jak se dělají. Na druhou stranu vyjadřovací schopnosti těch jazyků jsou nízké. Musíš se zaobírat moc věcma okolo abys vyjádřil to co chceš.

Když začneš první s vyšším, tvůj progres bude rychlejší. Rychleji a snadněji dosáhneš toho, co jsi chtěl počítači říct a nebudeš se zatěžovat zbytečnostma se kterýma se nový a moderní programátor vůbec nemusí už v životě setkat.

Osobně si myslím, že univerzálně správná rada není. Je to hodně i o tom člověku který vydal na dlouhou cestu. Koho potká, kdo mu pomůže a atd. Moje původní "doporučení" vychází ze zkušenosti, že pro začínající lidi je příjemnější vidět, že to ze začátku dělá to co člověk po tom stroji chce. Povím ti moji cestu(nebočítám webové technologie a odnože napsaného). Chronologicky Atari Basic, C, Pascal, C++, ASM, Step 7, C#. A teď babo raď :-)

 
Nahoru Odpovědět
27.9.2015 18:04
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na beginner
Milan Křepelka:27.9.2015 18:19

Jinak můj koment nesměřoval k tomu tě od svého cíle odradit. Naopak. Ono ti to nemělo dát takovou "facku", že bys hnedka zdrhnul z "boje".

 
Nahoru Odpovědět
27.9.2015 18:19
Avatar
beginner
Člen
Avatar
beginner:27.9.2015 18:53

To MK:
trochu mi to přijde tak, že nejdřív říkáš jaký omyl je začínat s nižšími ale pak ty nižší víceméně obhájíš a dojdeš k závěru, že je vlastně jedno, čím začít. Což mi upřímně dodalo jistotu začít s nižším - naučí mě to dopodrobna ten jazyk, okolo není rozsáhlé. Neni to na začátek ideální? pak přejdu na rozšíření, nebudu muset řešit, co znam a vím proč šlape.
Babo raď, proč ne ta Java, když na ní jede tolik zařízení?
Jinak, ASM a Javu chci přidat určitě, pak se zamyslím nad tím C# - ale tohle všechno je ještě moc daleko.

K poslednímu komentu - ani jsem to tak nepochopil, jen mě trochu vytočilo, když se zeptám o radu a první odpovědí je že jsem klučina co neví do čeho jde :-D protože tohle nepodceňuji.

 
Nahoru Odpovědět
27.9.2015 18:53
Avatar
Milan Křepelka
Tvůrce
Avatar
Odpovídá na beginner
Milan Křepelka:28.9.2015 7:37

Ne, jsem konzistentní. Dám ti příklad.

Když začneš např. s javou, tak potom přechod na c++ bude hardcore.

Jaká toto je "ideální" cesta, když C++ je "hardcore", tak začnu s tím rovnou? Je toto nějaká lepší cesta? Je lepší cesta se nechat rovnou hodit do vody? To podle mě nedává moc smysl.

Ale už bych to nerozpitvával. Karty jsou na stole. Rozhodni se dle sebe. Javu klidně. Když budeš umět Javu, umíš z 80% C# a obráceně. Jako zazyk. Ty věci okolo, tak už to je jinačí.

PS. Ale jsi klučina který v podstatě neví do čeho jde. Ostatně jako všichni začátečníci v jakémkoli složitějším oboru :-). To si neber osobně ani nějako pejorativně. Nech si rozhořčení na věci programátorské. Užiješ si dosytosti. Není mým cílem tě dopředu srážet ani se povyšovat. Kdykoli budu moci a budu mít čas, rád ti pomůžu.

 
Nahoru Odpovědět
28.9.2015 7:37
Avatar
David Novák
Tvůrce
Avatar
David Novák:28.9.2015 9:54

Já myslím, že záleží hodně, jakou máš ambici. Chceš pak "jen" vytvářet běžné aplikace nebo chceš mít hlubokou znalost v IT a být schopen navrhovat věci od základů?

Jestli ti stačí programovat "běžné" aplikace (tj. naházíš si do okýnka komponenty - tlačítka, textová pole, ... a pak jim naprogramuješ funkcionalitu - onClick, ...), tak je zbytečné začínat s nízkoúrovňovým jazykem - možná bys díky tomu byl schopen vytvářet o něco lepší algoritmy (důvod hned řeknu), ale myslím, že za tu časovou investici to nestojí.

Naučit se nízkoúrovňový jazyk totiž fakticky znamená, že se musíš naučit i všechno okolo - jak fungují operační systémy (především co se správy paměti týče), jak fungují CPU, atd. Proč? Protože když budeš chápat do hloubky, jak funguje PC, budeš moct opravdu využít sílu nízkoúrovňových jazyků a například napsat ovladač k nějakému HW nebo se opravdu zaměřit na optimalizaci nějaké vitální funkce většího programu a s využitím speciálních instrukcí to v ASM přepsat a několika až mnoho násobně ji zrychlit a tak zvýšit výkon celé aplikace. Možností je spousta..

A jak bylo řečeno, přechod na vyšší pak bude poměrně jednoduchý a rychlý. Ovšem naučení se byť jen obyčejného C ti zabere dlouhou dobu (pokud bys chtěl opravdu dobře, tak roky) a když k tomu ještě přidáš C++ a jeho rozsáhlou knihovnu, máš o "zábavu" postaráno.. ;)

Takže já ti radím, aby ses zamyslel, jak moc chceš studovat zbytek IT (návrh HW, fungování OS, ..) a co bys chtěl tvořit za aplikace (například pro tvorbu enginu pro hru se C++ perfektně hodí, ale pro tvorbu nějakého informačního systému nebo nějaké jiné "klikací" aplikace bude lepší Java (multiplatformní) nebo C# (Windows - a prý brzo také multiplatformní), protože nebudeš muset znovu od nuly tvořit již vytvořené.

Nahoru Odpovědět
28.9.2015 9:54
Chyba je mezi klávesnicí a židlí.
Avatar
beginner
Člen
Avatar
beginner:28.9.2015 15:26

Samozřejmě.
Také chci říct, že si té pomoci vážím, MK, ikdyž to tak možná nemuselo vypadat.
Jinak, co příspěvek, to jiný názor, přesně jako na ostatních fórech. Myslím, že využiji momentální nálady/chuti do tohoto a začnu s tím C++, moc se mi líbí, jak vypadají lekce na ItNetwork; píší to opravdu pro začátečníky. Představuji si to tak, že v C++ je jen víc věcí k naučení, ne těžší do té míry, že bych musel mít předchozí znalosti (?).
To DN:
Jakou mám ambici? Nejvíc mi jde asi o to (vzhledem k tomu že jsem na začátku 3. ročníku gymnázia) zjistit, jestli chci/mám na vysokou v oboru IT. Zároveň vím, že je to veliké plus a také chci být znalý v tomto oboru, do budoucna se to jistě hodit bude. Není to tak, že bych ed chtěl sestrojit nějakou appku na rýchlý peníze nebo co.
Zároveň podle všeho C++ není čistě nízkoúrovňový, ne jako takový ASM. Ohledně fungování HW a OS mám nadprůměrné, avšak ne vysoké znalosti.
Závěrem bych rád řekl, že počítám s tím, že to nebude za dva měsíce, podle všeho ani za rok, i přesto to s C++ "zkusím".

Když se naučíš zpočátu C++, půjdeš složitější cestou na začátku, ale později budeš v těch vyšších jazycích chápat důvody proč se některé věci dělají tak, jak se dělají.

  • ale nemožné to není
 
Nahoru Odpovědět
28.9.2015 15:26
Avatar
David Hartinger
Vlastník
Avatar
David Hartinger:28.9.2015 15:37

Diskuzi tlumím, od toho je tu článek http://www.itnetwork.cz/…ace-programy nemá smysl ptát se stále pořád dokola na to samé, všechny dotazy tazatele jsou tam zodpovězené.

Nahoru Odpovědět
28.9.2015 15:37
New kid back on the block with a R.I.P
Avatar
hanpari
Člen
Avatar
 
Nahoru Odpovědět
28.9.2015 19:06
Avatar
David Novák
Tvůrce
Avatar
Odpovídá na beginner
David Novák:28.9.2015 19:30

Tak to nebude na škodu, učit se C/C++ ;)

Jinak nevím, jaký jsi typ člověka.. Možná bych doporučil začít s čistým C - je o hodně méně rozsáhlé a tedy lepší než C++ z hlediska učení se základů :)

Nahoru Odpovědět
28.9.2015 19:30
Chyba je mezi klávesnicí a židlí.
Avatar
beginner
Člen
Avatar
beginner:28.9.2015 22:27

DČ:
četl jsem to ještě před vložením té prvotní otázky sem do diskuze. Chtěl jsem prostě znát názor vícero lidí, nic víc.

hanpari:
K pythonu přejdu později, pokud opravdu budu chtít přejít na ten hacking :-)

DN:
Zkusím hned C++, pokud budu opravdu na pokraji zoufalství, přejdu na C.

 
Nahoru Odpovědět
28.9.2015 22:27
Avatar
vajkuba1234
Člen
Avatar
Odpovídá na beginner
vajkuba1234:28.9.2015 22:33

Osobně bych doporučil pro začátek Javu. Doporučuji ji z toho důvodu, že v pro začátečníka je k dispozici mnoho knih novějšího vydání v češtině oproti C#, ke kterému jsem našel jen starší knihy. Java a C# jsou si velmi podobné, srozumitelné a v obou se píši i webové aplikace, takže můžeš klidně zkoušet prolomit (časem) jak aplikace na desktopu, tak i webu. Můj názor. :)

Nahoru Odpovědět
28.9.2015 22:33
No hope, no future, JUST WAR!
Avatar
beginner
Člen
Avatar
beginner:28.9.2015 22:35

Jak říkám, co člověk, to názor. Beru v potaz, přesto se pokusím začít C++-kem.

 
Nahoru Odpovědět
28.9.2015 22:35
Avatar
Jan Bezdíček
Tvůrce
Avatar
Odpovídá na Richard
Jan Bezdíček:1.10.2015 15:35

Python je zbytecny pro hackera ? oh boy ... drtiva vetsina hacking utilitek je napsana v pythonu a je pro to duvod ... potrebujes neco rychle zautomatizovat, zprovoznit rychle nejakou appku, ktera se chova jako server ? PYTHON !

 
Nahoru Odpovědět
1.10.2015 15:35
Avatar
Petr Juhaňák:24.11.2015 21:09

Učením strávíš hodně času a proto bych se držel toho, co tě baví a naplňuje.
Neuděláš velkou chybu, pokud zůstaneš chvíli u jazyka, který ti teď vyhovuje a zapojíš se do nějakého projektu nebo jej prostuduješ. Pak přejdi na jiný jazyk.

Z pohledu bezpečnosti je python dobrá volba. Na python narazíš téměř v každé knížce o hackingu. Hodně nástrojů pro bezpečnostní testování je v pythonu nebo mají alespoň nějakou možnost python integrovat jako rozšíření funkčnosti nástroje. Jako druhý jazyk bych nevynechal C.
(C++ mi vždy připadal, těžký v tom smyslu, že odvádí mnoho pozornosti svými konstrukcemi a naučit se jej skutečně používat je hodné obdivu, což říkám s pokorou a začátečníkům bych jej nedoporučoval).

Pak bych se začal věnovat administraci systému OS-službám a sítím.

Petr Juhaňák
instruktor hacking kurzů Hackerlab
http://www.hackingkurzy.cz

 
Nahoru Odpovědět
24.11.2015 21:09
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 49 zpráv z 49.