Jaký programovací jazyk zvolit?

Jaký programovací jazyk zvolit?
« kdy: 27. 07. 2016, 11:36:48 »
Zdravím, chtěl bych se zeptat, jelikož přemýšlím, že bych se začal věnovat programování naplno, jaký jazyk si zvolit? Byla mi doporučená Java, ale přemýšlím také o C. Co lze těmito jazyky konkrétně naprogramovat a co již v dnešní době naprogramováno je, abych měl představu, co by pro mě do budoucna bylo větším přínosem. Rád bych během studia získával zakázky a pracoval z domova jako přivýdělek, ale nemám představu, který jazyk je v dnešní době perspektivnější a žádanější. Freelancer... Rok jsem měl na škole základy C v DOSu. Jaký software zvolit? Jak začít, jak jste začínali vy? Dokázal by mi s tím někdo pomoct? Pracuje někdo na zakázky? Jak to probíhá? Dnes je tolik jazyků, vůbec se v tom nevyznám. Díky za každou radu ;).


Martin

Re:Jaký programovací jazyk zvolit?
« Odpověď #1 kdy: 27. 07. 2016, 11:44:57 »
DOS ?  :o Kdy to bylo ? Víc jak deset let zpět ? Co jsi dělal doteď, úplně jiný obor ?

čobolotobolo

Re:Jaký programovací jazyk zvolit?
« Odpověď #2 kdy: 27. 07. 2016, 11:46:03 »
Cobol jednozačne v dnešnej dobe je to nutnosť.

karbous

Re:Jaký programovací jazyk zvolit?
« Odpověď #3 kdy: 27. 07. 2016, 11:50:04 »
Ja bych doporucil Fortran, neni v tom prilis velka konkurence...

Inkvizitor

Re:Jaký programovací jazyk zvolit?
« Odpověď #4 kdy: 27. 07. 2016, 12:32:04 »
Nic proti, ale prijde mi, ze jsi chodil do skoly nekde v rovnikove Africe, rok tam sel el. proud a pak uz ne, je to tak? Doporucuju zvolit nejake jine remeslo, ktere je Tvemu srdci blizsi.


TVL

Re:Jaký programovací jazyk zvolit?
« Odpověď #5 kdy: 27. 07. 2016, 12:39:17 »
To fakt nedává valný smysl.
Ve škole jsi mě rok základy C v DOSu? A v jakém roce to bylo? Byla to základní škola, nebo střední?
A teď jsi na jiné škole a chceš si přitom přivydělávat vývojem? Na jaké škole jsi v jakém ročníku?

Jestli se chceš naučit programovat (a nejsi na škole, kde se to učí/bude učit), tak fajn - jazyků je hodně. Pro začátečníka je vhodný třeba python, nebo java. Můžeš zkusit začít programovat web v nějakém PHP, to bych teď nechal jako vedlejší.

Zaměřil bych se na to, že se chceš naučit programovat, aby sis při studiu vydělával programováním. Takže na to rovnou zapomeň. Peníze za programování dostane někdo, kdo už toho sám HODNĚ umí. Kdo nějaký komerčně požadovaný jazyk ovládá a doloží v něm alespoň pár semestrálek, nebo nějaké malé vlastní projekty. A to se bavím o situaci, že bys někam docházel a seděl vedle někoho a pracoval na konkrétních malých úkolech podle jasného zadání.
Že bys bys schopen pracovat samostatně jako freelancer, tedy dokázat zanalyzovat problém, jestli bys ho uměl řešit a jak bys ho řešil a případně dokázal říct kdy a za kolik ho vyřešíš - na to zapomeň úplně. Pokud bys uměl velmi dobře programovat, tak freelancera bych ti nedoporučil než po aspoň 3 letech práce na plný úvazek v nějakém programátorském týmu.

Jak začínala většina lidí?
Většina lidí začínala tak, že je k tomu buď někdo přivedl a začínali s tím jako s kroužkem, nebo koníčkem na základní nebo střední. Nebo to měli jako předmět na odborné střední škole.
Tak se většina naučila tak nějak základy a menšina to už na střední (během několika let) zvládla tak, že mohli rovnou nastoupit do nějaké firmy na pozici "úplný blbec, nic neumí, ale možná z něj něco bude". V té firmě se pod vedením někoho během několika let takový člověk stal použitelným pro samostatnou práci.
Ten kdo nešel po střední hned do práce, tak většinou nastoupil na nějakou IT VŠ a tam do něj lili jak kvanta teorie, tak po něm chtěli programovat spoustu praktických a nepraktických věcí. V průběhu VŠ si prakticky všichni našli nějakou programovací brigádu - ale opět - chodili někam do firmy a první půlrok je nikdo nenechal na nic sáhnout samostatně.
V okamžiku dokončení VŠ měla většina lidí už jisté místo, kde už na půl úvazku pracovala a byla většinou samostatně použitelná.
Ale dělat freelancera by v tu chvíli IMHO většina pořád nezvládla.

gl

Re:Jaký programovací jazyk zvolit?
« Odpověď #6 kdy: 27. 07. 2016, 12:56:21 »
Záleží na tom co chceš dělat. Lidem jako TVL a Inkvizitor se každopádně snaž vyhnout. Budou si na tebe vyskakovet jen proto, že mají víc let zkušeností i kdybys toho uměl víc než oni.

TVL

Re:Jaký programovací jazyk zvolit?
« Odpověď #7 kdy: 27. 07. 2016, 13:05:01 »
Záleží na tom co chceš dělat. Lidem jako TVL a Inkvizitor se každopádně snaž vyhnout. Budou si na tebe vyskakovet jen proto, že mají víc let zkušeností i kdybys toho uměl víc než oni.

Nestyď se a napiš, co má člověk s rokem školního programování C v DOSu dělat, aby dostával programovací zakázky, které by mohl dělat z domova.

Lama

Re:Jaký programovací jazyk zvolit?
« Odpověď #8 kdy: 27. 07. 2016, 13:12:13 »
Třeba tím "programovat pro DOS" myslel, že programovali konzolové aplikace. Dodnes má řada lidí zažito konzola==DOS.

Dokonce jsem jednou četl debatu nešťastníka co si koupil notebook s instalovaným Linuxem, nikoliv Windows a padlo tam vyjádření doslova "...Linux mi v DOSu píše, že...bla bla bla". On ten ten Linux snad ani neměl žádný WM. Nějakej Linpus či co to bylo, už nevim.

Jinak tyhle dotazy moc nechápu. Prostě si projdi pár jazyků a kterej se ti bude líbit, tak se jej nauč.
Nejlépe se jich nauč víc.

http://www.itnetwork.cz/jak-zacit-programovat-tvorit-aplikace-programy

Re:Jaký programovací jazyk zvolit?
« Odpověď #9 kdy: 27. 07. 2016, 13:20:48 »
Ach jo. Ale co už, čekám, než zabere kofein a mám pauzu na oběd, tak teda;

Nauč se Python.

Proč?

Jednak je to fajn jazyk a prostředí. Dělám v něm a dělal jsem i v javě a dalších, takže to vím.

Co je ale podstatnější, tak ho většina VŠ na rozdíl od Javy, C# a dalších neučí a trh je masivně hladový. Nebudeš muset bojovat s celou generací právě vyšlých studentů.

Momentálně dělám jednoho ze tří programátorů ve firmě a snažíme se nabrat další, takže jsem docela často u rozhodovacího procesu a u pohovorů. V minulé práci jsem měl taky několikrát tuhle příležitost, takže trochu vím, o čem to je.

Programování není jen o jazyku. To je naprostý základ, stejně jako psaní knih není jen o češtině. Tak jako se autor knih musí naučit vyprávět příběh, vytvářet zápletky a předkládat před čtenáře děj, tak se musíš naučit složitost algoritmů, členění programu do strukturovaných kusů (jeden by nevěřil, kolik se nám hlásí lidí, co dají jako ukázku  jednu nablitou 500 řádkovou funkci), standardní knihovnu, hledání a používání knihoven ostatních lidí. Základy linuxu, instalaci závislostí z package managerů a vytváření ucelených kusů kódu (=třeba vlastní balíčky).

Další důležité věci, které naprostá většina vysokoškoláků nedává je psaní dokumentace (myšleno docstringů tříd/metod/funkcí), práce s gitem (víc než jen "tohle je první commit") a unittesting. Přitom to jsou tři reálné věci, které v libovolné práci budou dělat od rána do večera. Je to pro ně to samé, co pila a malá sekerka pro dřevorubce - sice to není hlavní pracovní nástroj (=jazyk), ale používá se to každou chvíli.

Další věc, kterou vysokoškoláci naprosto postrádají, i když by jim to měla vysoká škola dodat, je rozhled. Prostě nemají vůbec tušení kde jsou, co je jejich kontext, jak má vypadat jejich práce, co jsou „sousední“ technologie a jak zapadají do světa, co generuje zisk a tak podobně. Málokdo z nich umí anglicky na přijatelné úrovni.

Citace
Dokázal by mi s tím někdo pomoct?

Pomáhat ti nikdo s ničím nebude, protože reálně nikoho nezajímáš. Zvykej si.

Všechno co budeš potřebovat se musíš naučit sám. Stejně tak každá práce, kterou kdy budeš dělat bude tak z 50% o tom co znáš a ten zbytek se musíš naučit během chvíle dynamicky, jinak jsi k ničemu a tohle není obor, který bys měl dělat.

Nauč se anglicky, sleduj programátorské komunity, ale ne jen pasivně, taky se zapoj. /r/programming je dobrý výchozí bod. Čti všechno co tam vyjde (hodí se RSS čtečka), orientuj se v tom, zjišťuj si co co znamená a jak to zapadá do kontextu s ostatním.

Pokud chceš úplně nejužitečnější radu: dělej vlastní projekty. Prvních 50-100 tisíc řádků, které napíšeš budou sračka. S tím se prostě nedá vůbec nic dělat, kromě toho se vypsat. Když vidím vlastní zdrojáky třeba jen tři/čtyři roky zpět, tak mám pocit, že bych se nafackoval a to programuju už 10 let.

Na začátku zapomeň na nějakou monetizaci. Prostě si piš vlastní projekty, dělej věci, které ti přijdou zajímavé a jsou pro tebe výzva. Vyzkoušej si programování grafických aplikací, práci s internetem, parsování HTML/XML, IRC bota, email klienta a tak. Naimplementuj si pár RFC, abys věděl jaký to je pocit. Zapoj se do nějakého existujícího opensource projektu a udělej tam třeba 100-200 commitů.

Neexistuje žádná zkratka. Kdokoliv, kdo ti bude tvrdit opak je lhář a chce tě jen zmanipulovat, aby sis koupil nějakou jeho knížku, nebo kurz, nebo nějakou takovou debilovinu.



Některé z těch vlastních projektů zahoď, ale ty povedenější dej na github. Dotáhni komentáře, dokumentaci, balíček, unittesty, vlastní styl, „python way“ dělání věcí.

Vlastní portfolio na githubu je strašně moc důležité. U nás ve firmě, kdo nemá něco na githubu, ten ani nemá šanci dostat se k pohovoru.

Reálná zkušenost z života: Poslední 4 práce mi získal github.

Slyšel jsi o takových těch pracovních pohovorech, kde po tobě chtějí fizzbuzz, dávají ti dělat projekty, psát algoritmy a tak? Kde se tě ptají na kraviny, jako jaká je tvoje oblíbená barva a jak by ses charakterizoval v pěti slovech? Situace, kde tě schválně na pohovoru stresují, aby viděli, jak si poradíš s řešením úlohy?

Nic z tohohle se tě netýká, když máš github plný projektů a pár tisíc commitů v commit logu.

Přijdeš jako Paša, chvíli se bavíš s budoucími kolegy o nějakém svém projektu, proč jsi udělal tohle, jaký používáš styl, proč používáš napoleon doc misto numpy stylu, a pytest místo unittest knihovny přímo v pythonu. Zcela přátelsky si pokecáte o různých dalších projektech, o NoSQL databázi, co jsi použil minule, o výhodách a nevýhodách bottle.py web frameworku, tvém oblíbeném ORM a co se zrovna učíš za toy jazyk (smalltalk, lisp, erlang, haskell a tak).

Pak si domluvíte nástupní plat a kdy chceš nastoupit a to je všechno. Možná se ještě z pohovoru i něco nového a zajímavého dozvíš, protože se to přesune z pozice „jsem zkoušen“ do pozice „s budoucími kolegy řeším mé projekty a novinky, abych ukázal rozhled“.

To si necucám z prstu, jsou to reálné zkušenosti a přesně takhle to probíhalo.

Citace
Pracuje někdo na zakázky? Jak to probíhá?

Během minulého roku jsem dělal několik zakázek. Funguje to tak, že někde začneš pracovat a děláš programátora třeba rok / dva, než se to naučíš. Jakmile se roznese, že jsi co k čemu, tak tě lidi začnou oslovovat se svými problémy. Celé to funguje naprosto sociálně a neformálně, takže se vyplatí nebýt autistou a mít i nějaké známé.

Příklad: Jdeš na oběd se sestrou a ta vezme i kamarádku. Kamarádky rodina má malou vinárnu a když se zmíníš, že jsi programátor, tak si vzpomene, že by potřebovali software na evidenci vína. Něco, co když půjde babka do sklepa a vezme tři láhve, tak aby si na tabletu odškrtla ty tři lahve tak, aby se je potom nesnažil otec prodat, tzn musí to mít i webové rozhraní. Rozpočet sto tisíc.

Příklad: Přijde kolega z jiného oddělení a v rámci socializace jdete na jídlo. V průběhu se jen tak zmíní, že mají pracovníky, kteří dělají některé poměrně složité věci a analýzy manuálně a jak je život nahovno, protože to nestíhají a potřebovali by nabrat tak 20 dalších lidí. Ty řekneš, že to je přesně práce programátora, tyhle věci jim usnadňovat a zefektivňovat a že by si měli někoho najmout, kdo by jim udělal custom software, který tu práce zautomatizuje. Za měsíc se ti ozve, že to prohnal přes vedení a že pro tebe má zakázku, rozpočet je 90 tísíc.

Příklad: Jdeš s bráchou do cider baru a chlastáte do noci, než se to rozhodnete zabalit. Cestou na bus narazíte na mix kavárny a hospody, před kterým stojí nějaký váš známý, který trvá na tom, aby jste zachlastali spolu. U stolu jsi v rychlosti představený asi 7 náhodným lidem, z nihž jeden dělá tatéra, další navrhuje mrazáky a další pracuje někde v helpdesku. Když řekneš že jsi programátor, jeden z nich se hned začne zmiňovat o nějaké zakázce na psaní webu.

Příklad: Tvůj kolega z jiného oddělené byl spokojený s odvedenou prací, takže tě pochválí u dalších kolegů. Jeden z nich je šéf oddělění, kterého už nebaví si objednávat validátory dat u externích firem, kde každý balíček stojí dva miliony, nemají k tomu zdrojové kódy a firma se chová jak zadek. Takže se ti ozve, že by pro tebe měl zakázku za 350 tisíc, tady jsou specifikace, věděl bys jak na to? Časový rozpočet tři měsíce.

Tohle jsou zcela reálné zážitky. Něco z toho jsem přijal, jiné věci jsem odmítl, většinou čistě z důvodu, že jsem něměl čas, protože už jsem dělal o víkendech a po včerech něco jiného.

Pokud chceš dělat tenhle druh práce, mám k tomu několik poznámek:

1. Je to psychicky náročné. Počítej s tím, že ti to žere čas, pokud to neděláš na fulltime, ale taky musíš sám sebe donutit pokračovat. Když narazíš na problém, tak ho musíš překonat. A pak znova a znova a do toho plnit deadline a psát dokumentaci a unittesty a starat se o nasazení a dvacet dalších věcí. Někdy máš zásek třeba týden / dva a strašně moc se ti do toho nechce, ale musíš, nebo udeří smluvní pokuty.

2. Pokud děláš na IČO, stát tě obere na daních docela hodně. Kdybys vzal třeba tu zakázku za 350 tisíc, tak bys z toho reálně měl něco pod 270 (daně, sociální, zdravotní a další sračky). To zní pořád super, ale jak dlouho to budeš dělat? Kolik u toho budeš mít stresu? Fakt zvládneš všechno, nebo si na něco budeš muset najmout dalšího člověka? Co když to projedeš časově? Chce se ti platit 2 tisíce pokuty za každý den zpoždění? Jsi připravený řešit reklamace?

3. Chce to vizitku, kterou dáváš lidem, kteří projeví náznaky zájmu. Sice se to může zdát v dnešní době facebooků a mobilů docela k ničemu, ale vizitka cestuje světem sama o sobě, je předávána z člověka na člověka a často se dostane někam, kde bys to vůbec nečekal.

4. Potřebuješ ukázky práce, kterou jsi udělal.

5. Občas se stane, že lidi nezaplatí. Zatím jsem měl štěstí, ale brácha už se soudil. Najednou musíš řešit právníky, vyhrožovat si a tak a je to rychle ošklivé.

---

No nic, domluvil jsem. Chtěl jsi informace, tak jsi je dostal. Jak si je přebereš je jen na tobě.

Inkvizitor

Re:Jaký programovací jazyk zvolit?
« Odpověď #10 kdy: 27. 07. 2016, 13:24:39 »
Záleží na tom co chceš dělat. Lidem jako TVL a Inkvizitor se každopádně snaž vyhnout. Budou si na tebe vyskakovet jen proto, že mají víc let zkušeností i kdybys toho uměl víc než oni.

Inkvizitor hlavne absolvoval desitky pracovnich pohovoru a zazil uz docela dost kolegu a podrizenych na to, aby si udelal predstavu, co muze nabidnout clovek, ktery se rozhodne z nouze programovat, k dane praci nema vztah a mysli si, ze na nej vsichni cekaji s otevrenou naruci po par mesicich samostudia.

expert

Re:Jaký programovací jazyk zvolit?
« Odpověď #11 kdy: 27. 07. 2016, 13:35:33 »
Citace
Nauč se Python.

Proč?

Jednak je to fajn jazyk a prostředí. Dělám v něm a dělal jsem i v javě a dalších, takže to vím.

Co je ale podstatnější, tak ho většina VŠ na rozdíl od Javy, C# a dalších neučí a trh je masivně hladový. Nebudeš muset bojovat s celou generací právě vyšlých studentů.

Python je super, dokonce je to druhý nejlepší jazyk na světě (ten první ještě nebyl vynalezen) a máš pravdu v tom, že je po něm hlad.
Bohužel ale s těmi platy Python developerů to není zas taková sláva. Kdybych na jeden graf vynesl histogram platů developerů v Pythonu, C++, C#, Javě apod., tak Python bude ten nejvíc vlevo. Je to tím, že ten hlad je způsoben především z řad webařských firem, které prostě tolik neplatí.

JardaP .

  • *****
  • 11 064
    • Zobrazit profil
    • E-mail
Re:Jaký programovací jazyk zvolit?
« Odpověď #12 kdy: 27. 07. 2016, 13:50:19 »
Cobol jednozačne v dnešnej dobe je to nutnosť.

Ja bych doporucil Fortran, neni v tom prilis velka konkurence...

Toz, soufky si delat muzete, ale oba jazyky se pouzivaji. COBOL proto, ze na nem porad jeste bezi rada systemu, ktere jsou tak rozsahle, ze na ne radsi nikdo nesaha a jen je udrzuji, obcas podle potreby upravuji. Takze treba clovek, ktery ovlada COBOL a ma na nej nervy, muze mit hezky vedlejsak. Ale umet jenom COBOL asi moc perspektivni neni.

A Fortran se pouziva proto, ze snad zadny jiny jazyk nema takove kvantum odladenych knihoven snad uplne na vsechno. Takze fycikove a matematici kvuli vam nebudou prechazet na .NET, Javu nebo Python, aby "udrzeli prst na tepu modernich technologii".

TVL

Re:Jaký programovací jazyk zvolit?
« Odpověď #13 kdy: 27. 07. 2016, 13:50:49 »
...

To je úplná programátorská červená knihovna a s tím sháněním zakázek.
Problém je, že náš člověk nyní nic neumí. A než se dostane dál, tak tvoje moudra budou někde dávno zapadlá.

TVL

Re:Jaký programovací jazyk zvolit?
« Odpověď #14 kdy: 27. 07. 2016, 14:00:35 »
Cobol jednozačne v dnešnej dobe je to nutnosť.

Ja bych doporucil Fortran, neni v tom prilis velka konkurence...

Toz, soufky si delat muzete, ale oba jazyky se pouzivaji. COBOL proto, ze na nem porad jeste bezi rada systemu, ktere jsou tak rozsahle, ze na ne radsi nikdo nesaha a jen je udrzuji, obcas podle potreby upravuji. Takze treba clovek, ktery ovlada COBOL a ma na nej nervy, muze mit hezky vedlejsak. Ale umet jenom COBOL asi moc perspektivni neni.

A Fortran se pouziva proto, ze snad zadny jiny jazyk nema takove kvantum odladenych knihoven snad uplne na vsechno. Takze fycikove a matematici kvuli vam nebudou prechazet na .NET, Javu nebo Python, aby "udrzeli prst na tepu modernich technologii".

COBOL je jazyk systémů, které se v Česku vyskytovaly minimálně. V ČR je zanedbatelný počet otevřených COBOL pozic. Ale nejsme omezeni na ČR, takže vzhůru do západní Evropy, tam COBOL práce je.

Má to jeden drobný háček - člověk musí být HODNĚ zkušený programátor, aby zvládl udržovat nějaký starý kritický systém jedoucí v COBOLu. Pokud vím, tak ty pozice obsazují lidi, kteří COBOL dělali už kdysi - a tudíž ho perfektně ovládají. Doba, kdy budou firmy rádi za začátečníky v COBOLu možná přijde, ale zatím IMHO nenastala.

Fortran se v Česku dělal. Ale fakt nevím, kolik z těch věcí ve Fortranu zůstala a nepředělala se v posledních 20 letech do něčeho jiného. Buď C, nebo do nějakých specializovaných matematických balíků. Jak je na tom nabídka práce pro Fortranistu v ČR, to neposoudím.