Volba prvního programovacího jazyka

Určitě je to jedna z otázek, která se mi při programování dostává nejvíce do schránky. Pokud se chystáme zahájit sérii článků, které vám umožní naučit se programovat a vracet bezplatné znalosti ve formě příspěvků komunitám svobodného softwaru / open source po celém světě, je třeba na tuto základní odpověď trochu odpovědět těžká otázka. Jaký programovací jazyk se mám naučit?

Trocha historie

Abychom začali rozumět a volit programovací jazyk, musíme nejprve vědět něco o jejich historii, jejich použití a funkcích a o tom, jak v průběhu času řeší různé potřeby.

Jazyky stroje (nízká úroveň)

Běžně známý jako MontážJsou to programovací jazyky, které bychom mohli definovat jako dialekty obecnějšího jazyka ... Zní to trochu komplikovaně, ale ukážu to jako příklad ... Víme, že univerzální jazyk výpočetní techniky je elektřina, to znamená, že to, co počítač přečte, je nakonec 0sy 1ano, řekněme tomu epočítačová angličtina. V tomto příkladu je základním pravidlem španělština, ale jak dobře víme, španělština, kterou mluví Latinos, není stejná jako španělská, a přesto španělština v Peru není stejná jako španělština v Argentině. Je zřejmé, že všichni máme téměř stejná slova (0sy 1s), ale použití a význam se mohou lišit podle kontextu.

To se děje na úrovni procesoru. Když mluvíme o výpočetní architektury, (amd64, intel, arm, ...) odkazujeme na jeho dialekt počítač španělsky. Je to proto, že různé společnosti chápou pořadí a význam svým vlastním způsobem, takže některé se liší v detailech, jako je tok proudu nebo pořadí, ve kterém mají být položky uchovávány. 0sy 1s.

Tyto programovací jazyky jsou extrémně rychlé, protože fungují na nejnižší možné úrovni programování, ale jsou velmi závislé na architektuře a je jistě o něco složitější se je naučit než ostatní. Ty často vyžadují širší základ pojmů, aby bylo možné data transformovat a spustit na nich užitečné věci. Pro milovníky videoher by příkladem byly konzoly SEGA, které k programování svých her používaly program Assembly. Je zřejmé, že v té době bylo množství paměti ve srovnání s dneškem minimální a bylo nutné zvládnout jazyk, který by mohl být rychlý a produkovat lehké programy.

Jazyky na vysoké úrovni

Tato velká skupina uvažuje o jazycích, které následovaly Montáž. Potřeba získat přenosný kód vedla ke vzniku skupiny jazyků zvaných sestaven. Mezi nimi byl první, kdo využil výhody C, které od 70. let převládalo v programování na úrovni operačního systému.

Zkompilované jazyky

Podívejme se na praktický příklad toho, co komentuji. Podívejme se na velmi jednoduchý program v jazyce C, který vytiskne jeden řádek kódu.

Vlastní. Christopher Diaz Riveros

Po jeho sestavení máme následující:

Vlastní design: Christopher Díaz Riveros

Ale teď se podívejme, co bychom museli napsat, abychom replikovali stejný výsledek v kódu shromáždění:

Vlastní. Christopher Diaz Riveros

Toto je překlad našich 3 řádků kódu z simple.c, soubor simple.s je vytvořen pomocí příkazu gcc -S simple.c a to by náš procesor rozuměl v dialektu Montáž. Je zřejmé, že k vytvoření spustitelného souboru, který se skládá z 0sy 1s soubor je třeba zpracovat simple.s a propojit jej se sdílenými knihovnami našeho systému. To se provádí pomocí a assembler (as) konektor (ld).

Zkompilované jazyky poskytují velkou výhodu oproti těm na nízké úrovni přenosné. Přenositelnost přináší kód, který lze spustit na různých procesorech bez nutnosti generování konkrétního kódu pro každou architekturu. Další zřejmou výhodou je jednoduchost, kterou používá při čtení a psaní kódu. Mezi jeho hlavní nevýhody patří vysoká složitost, protože ve srovnání s následujícími typy jazyků, které uvidíme, může být svoboda, kterou C nabízí, škodlivá, pokud nevíte, jak ovládat, je to určitě jako předání zbraně , mohlo by se stát, že při nedostatku zkušeností člověk nakonec vystřelí vlastní nohu ve snaze vyčistit zbraň.

Tlumočené jazyky

V této skupině máme širokou škálu jazyků, mezi nejdůležitější patří Python, Ruby, Javascript, PHP atd. Základní myšlenkou těchto jazyků je poskytnout rychlý způsob vytváření a spouštění programů Je tomu tak proto, že mnoho složitých procesů probíhá v tlumočníkovi a programování logiky je implementováno v kódu. Podívejme se na stejný příklad výše, ale tentokrát napsaný v Pythonu:

Vlastní. Christopher Diaz Riveros

Mezi nejvýznamnějšími věcmi vidíme, že první řádek má na starosti volání tlumočníka (program, který provede naši aplikaci) a následný kód je „jednodušší“ než jeho verze v jazyce C, protože veškerá těžká práce se provádí na tlumočníka.

Vlastní. Christopher Diaz Riveros

Interpretované jazyky poskytují vývojáři větší vrstvu zabezpečení, protože mají přísnější bezpečnostní kontroly (POZOR, že nejsou dokonalé, protože i ti nejlepší mohou dělat chyby) a my už netrpíme rizikem střelby ze zbraně, aniž bychom si to uvědomili, protože na první pokus by tlumočník upozornil a poprava by byla zrušena. Hlavní nevýhoda se projeví při provádění programu, protože je pomalejší než jeho binární protějšek, a to právě kvůli většímu množství zpracování, aby bylo možné zajistit, aby kód fungoval. Pokud program nevyžaduje extrémně krátké termíny, rozdíl může zůstat nepovšimnutý, ale pokud mluvíme o tisících nebo milionech dat za sekundu, je rozdíl v exponovaných jazycích exponenciálně znatelný.

Psaní na stroji

Toto je charakteristika programovacích jazyků, které mohou být silně slabě napsaný. Nechám toto téma na další příspěvek, protože je nutné a zvědavé pochopit, jak je paměť uložena v programu, ale zatím musíme rozlišovat pouze: Silně napsané jazyky jsou ty, které vyžadují znalost typ dat, která budou zpracována na proměnné nebo konstantě, zatímco slabě typy mohou provádět převody tak implicitní a vše bude záviset na hierarchii převodu následované jazykem. (Pokud tomu nyní nerozumíme, žádný problém, necháme to na později)

Paradigmata

Jako všechno ve světě GNU / Linux i programovací jazyky vycházejí z paradigmat a kolem nich se generují komunity. Například máme Nadace Python o Rubín o PHP o Bash (v takovém případě se jedná o komunitu GNU). Chci se s tím dostat k tomu, že nemohu vyjádřit velké množství kladů a záporů, které každý z nich má, ale mohu vám říci, že tam, kde existuje bezplatný programovací jazyk, existuje komunita, která se má učit a účastnit se jí. Za zmínku stojí, že mnoho, ne-li všichni jazykoví tlumočníci, jsou napsáni v jazyce C nebo v nějaké blízké derivaci a jejich vývoj obvykle provádí menší skupina komunity, která má na starosti přijímání rozhodnutí, která se dotknou všech uživatelů jazyků. Lze dokonce zřídit instituce, které zajistí správný vývoj jazyka, jako je tomu v případě C.

Který z nich si vybrat?

O jazycích jsme už mluvili dost a já stále neodpovídám na to nejdůležitější 😛. Doufám ale, že po přečtení tohoto malého článku vám nebudu muset říkat, který jazyk si vybrat, protože s touto informací jste plně schopni hledat ten, který vzbuzuje zvědavost. Je zřejmé, že pokud se chcete naučit programovat v jazyce Montáž bude to trvat dlouho, než budete mít něco funkčního, čas se výrazně zkrátí, pokud se rozhodnete pro kompilovaný jazyk, kde kromě přenositelnosti v systémech * NIX se budete moci naučit informace týkající se fungování stejného systému, protože jste v kontakt s C nebo deriváty vás tak či onak naučí, jak operační systém funguje obecně. A konečně, pokud se chcete naučit něco lehkého a to vám umožní dělat hodně, aniž byste museli hodně rozumět, jsou tlumočené jazyky zábavným způsobem, jak se naučit a rozvíjet programovací dovednosti.

Učte se něčím vzrušujícím

Toto je nejlepší rada, kterou vám mohu dát, pokud se chcete něco naučit, musíte nejprve najít něco vzrušujícího, jinak bude docela obtížné překonat typickou křivku učení všech programovacích jazyků. Předpokládejme, že spravujete systémy, v takovém případě se možná budete muset naučit ideální jazyk skriptování (interpretováno), v rámci nich máme Perl, Python, Bash atd. ... Možná jsou vaše hry, existuje mnoho projektů v jazycích, jako je Javascript, Lua, C ++, v závislosti na typu hry, kterou chcete hrát. Možná byste chtěli vytvořit nástroj na úrovni systému, protože máme C, Python, Perl, jak uvidíte, některé se opakují, a to proto, že pro mnoho úkolů lze použít mnoho jazyků, proto je definice z víceúčelové jazyky ve většině z nich.

Spusťte projekt

Tím nechci říci, že vytvoříte následující kompilátor, nebo dokonce následující programovací jazyk, projekt může být opravit malou chybu ve vašem oblíbeném programu, možná dokonce pomoci zlepšit dokumentaci. Proč dokumentace? protože neexistuje lepší způsob, jak se naučit, jak software funguje, než číst a pomáhat psát jeho dokumentaci, protože po zdrojovém kódu je to největší zdroj informací, který o programu najdete. V dalším okamžiku uvidíme, jak číst kód projektu a porozumět funkcím a hodnotám, které získávají.

Velice vám děkuji, že jste se sem dostali, a jako vždy, vaše komentáře mi pomáhají vytvářet lepší obsah a vědět, kam se zaměřit, pozdravy.


Zanechte svůj komentář

Vaše e-mailová adresa nebude zveřejněna. Povinné položky jsou označeny *

*

*

  1. Odpovědný za údaje: Miguel Ángel Gatón
  2. Účel údajů: Ovládací SPAM, správa komentářů.
  3. Legitimace: Váš souhlas
  4. Sdělování údajů: Údaje nebudou sděleny třetím osobám, s výjimkou zákonných povinností.
  5. Úložiště dat: Databáze hostovaná společností Occentus Networks (EU)
  6. Práva: Vaše údaje můžete kdykoli omezit, obnovit a odstranit.

  1.   anonymní řekl

    Jako vždy 10 !!!!!! Díky za vaše články. Zdravím a ještě přijde !!!!

    1.    ChrisADR řekl

      Děkuji moc 🙂 povzbuzuje mě, abych dál psal. Na zdraví

  2.   Rubén řekl

    Myslím, že je chybou položit otázku „jaký jazyk zvolit?“ Jsem jedním z těch, kteří si myslí, že jazyk je toho nejmenšího, důležité je naučit se základy programování a „myslet výpočetně“. Rozhodněte se o syntaxi, jejím psaní, pokud podporuje OOP, její obslužnost atd. Myslím, že je to něco, co ve studiu přijde přirozeně a koneckonců každý programátor zná více než 1, 2 a 3 jazyky ... a díky programovacím konceptům (a ne syntaxi), které má, je schopen programovat v jazyce, ve kterém jste dosud nezažili.
    Pro zasvěcené si však myslím, že dobrým jazykem může být Python pro svou jednoduchost, ale především jděte trochu dále, prostudujte si algoritmy a vězte, jak věci fungují „uvnitř“.

    Zdravím ChrisADR

    1.    ChrisADR řekl

      Ahoj Rubén, děkuji za sdílení
      Ve světě programování je něco, co jsem se postupem času naučil, a to je to, že „kdo hodně kryje, nestlačí“ a touto známou frází mám na mysli, že se mnohokrát, a zejména ten nejnadšenější, rozhodne zkusit trochu a mají velmi rychlé obraty, pokud jde o učení se kódování. Věřím a podle mého osobního názoru by měl dobrý vývojář znát a ovládat jazyk překladače a jazyk tlumočníka, kromě toho, že má představu nějakého dialektu shromáždění.
      Důvod je následující: prototypování musí být vždy něco jednoduchého a rychlého, snadno generovatelného a to obecně ukazuje výsledek, ale pokud to nestačí, musí existovat „plán B“, k němuž se uchýlit, když dorazí tlumočník jeho limit.
      Znát dialekt shromáždění vám nejen dodá sebevědomí, ale také vás naučí myslet „výpočetně“, ale tato část je zjevně nejkomplikovanější ze všech a je to určitě něco, na co ne všichni programátoři přicházejí.
      Ale zpět k tématu, protože si myslím, že hlavní myšlenkou je „zvolit si jazyk a procvičovat LOT“, protože opravdu jediný způsob, jak dosáhnout dobrého programování, je čtení a psaní kódu, a to je něco, z čeho jsem se poučil komunita jádra Pokud po dlouhou dobu zachováte stejnou syntaxi, přestane se vám zobrazovat formulář a začnete si dělat starosti s POZADÍM. Myšlenka výběru jazyka nebo syntaxe od začátku spočívá v tom, že člověk je schopen zvyknout si na jeho čtení a psaní takovým způsobem, že místo syntaxe programu může začít číst VÝZNAM programu.
      To je hlavní důvod tohoto příspěvku, že si každý zvolí svůj jazyk, abychom v následujícím mohli vysvětlit pojmy, snad s tím jsou vyjasněny pochybnosti 🙂
      Zdravím a děkuji za sdílení.

  3.   Deibis Contreras řekl

    díky za příspěvek to bylo dobré.

    pozdravy

    1.    ChrisADR řekl

      Ahoj Deibisi, děkuji za sdílení 🙂 Zdravím

  4.   JorgeFS řekl

    Moje rada: cokoli jiného než PHP. Před dvaceti lety mělo PHP ve své existenci určitý smysl kvůli vysoké úrovni složitosti, která programovala web v jiném jazyce pomocí CGI. Ale dnes existuje velká škála rámců, díky nimž je vývoj webu mnohem zábavnější ve výkonných jazycích, jako je Django pro Python, Spring pro Java nebo Rails pro Ruby. Ačkoli se PHP v současné době objevuje na všech grafech popularity jazyků, podle mého názoru ztratí PHP časem svůj význam.
    Důrazně doporučuji začít s C \ C ++, abyste pochopili realitu programování, i když křivka učení je strmá.
    Zdravím.

    1.    ChrisADR řekl

      Ahoj Jorge, děkuji za sdílení, jen si pamatuji Laravel, což je docela solidní rámec 🙂 Osobně jsem nikdy neměl rád jaro nebo Javu pro vývoj webových aplikací, považuji to za docela těžkopádné, ale myslím, že je to část času, ve kterém byli trh, v době, kdy byli průkopníky, a jistě dnes moderní alternativy (Js, Python a Ruby) dokázaly zlepšit způsob prezentace kódu, který je čitelný a upravitelný bez velké práce.
      Jsem také nakloněn tomu, aby se lidé někdy v životě učili C / C ++, začal jsem s Javou, ale myslím, že to je krása programování, můžete začít s čímkoli chcete, pokud budete důslední, bude to užitečné 🙂 Na zdraví

    2.    Rubén řekl

      Už s vámi nemohu nesouhlasit. Začal jsem před mnoha lety s C a VB, abych se později zaměřil na PHP a JS (protože jsem se zaměřil na vývoj webu) a později jsem se během studia naučil hlavně C / C ++ a Javu.
      PHP má řadu výhod, které jsem v této zprávě nemohl uvést. PHP7 je rychlý (rychlejší než Python ... bez použití hhvm, různých cache, frameworků jako Phalcon nebo bytecode v případě Pythonu), má obrovské množství knihoven a frameworků, má obrovské množství přímo implementovaných funkcí pro použití kdykoli, jeho syntaxe podobná C velmi usnadňuje migraci do jiných jazyků.
      30% webů po celém světě je vytvořeno pomocí WordPress (PHP) a zdá se, že se to nezměnilo, používá to Wikipedia, Facebook (s hhvm) a velký počet webů, celkem 80%.

      Připomínám vám, že Ruby on Rails jako Django je 12 let! Jaké kvóty dosáhli v této době? A samozřejmě mluvíme o 2 rámcích, které mají prakticky monopol a neexistuje žádný typ fragmentace. Jaké další vážné alternativy mám? Říci, že PHP ztratí na důležitosti, nedává moc smysl.

      Nyní, když je Python v módě, protože má rychlou křivku učení, je to jednoduchý jazyk a prodávají vám ho, protože se „stávají programátorem za 20 hodin s Pythonem a pracují na něm“ s podporou společností jako Google že nyní existuje Móda hledání nových jazyků (Go, Dart….), která vás odlišuje v životopise (nebo jako každodenní zrod 50 frameworků pro Javascript!), neznamená, že se věci mění.

      Ruby je velmi zajímavý jazyk, ale natolik se prolomí zavedenými vzory, že je těžké uvěřit, že se stal populárnějším než PHP. Ruby je samozřejmě nejhorší jazyk pro začátek programování ze všech.
      Chápu, že mi říkáš, že programování v Pythonu může být zábavné, dokonce i Ruby s nekonečností zvláštností ... ale jaro s Javou? Opravdu? Java může být mnoho věcí ... ale zábavnější než Python a PHP?

      Začátek v Pythonu je velmi dobrý, ale protože se držíte pouze Pythonu, riskujete, že mnoho společností uvěří, že vaše úroveň programování není „hluboká“ (i když jste v Pythonu velmi dobří). Je to proto, že soutěžíte s jinými „víceúčelovými“ jazyky, jako je C ++ nebo Java. Můžete programovat v Pythonu, aniž byste věděli, jaký je sakra ukazatel, bitové operace, jak funguje sběrač odpadků a dlouhá atd.
      Python je možná nejméně podobný „klasickému programování“, které existuje, a lze jej považovat za „dětský jazyk“ (metafora), což je zase výhodou a nevýhodou.

      1.    JorgeFS řekl

        „Python je možná nejméně podobný„ klasickému programování “, které existuje, a lze jej považovat za„ jazyk pro děti “(rozumějte metaforu), což je zase výhodou a nevýhodou.“ LOL, toto je jedna z nejzábavnějších věcí, které jsem kdy viděl o Pythonu. Opravdu jste se někdy naučili Python?
        Jak dlouho to bylo po celém světě mimo PHP?
        Přítel PHP se narodil mrtvě. PHP (\ d +) s sebou hodně táhne kvůli velmi špatnému počátečnímu designu a kvůli zachování uživatelské komunity neustále velmi důkladně táhne všechny tyto počáteční chyby designu. PHP se zrodilo bez modularity, se spoustou funkcí ve stylu C (mimochodem, nevím, odkud jste přišli, protože jeho syntax je podobná C a lze jej snadno přenést do jiných jazyků). Jazyk na vysoké úrovni, jak by se měl PHP chovat, má takové ošklivé věci, jako je tato stopa funkcí uvedená na jeho oficiálních stránkách http://php.net/manual/en/indexes.functions.phpJe to proto, že se to zrodilo bez modularity, a proto je všechno špinavě smíšené a bez jmenných prostorů.
        Toto je část kódu PHP:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        v určitém okamžiku lze určit, odkud byly všechny tyto funkce „proudu“ importovány? NE, dalo by se tedy říci, že se jedná o integrované funkce, ale pak je celý ekosystém o integrované funkce?. A tak je v kódu PHP spousta nesmyslů, že pokud nejste schopni pochopit složitost a zbytečnost tak špatného designu, odpusťte mi, ale stále je před námi spousta světa.
        Wordpress je vynikající softwarové řešení, ale to neznamená, že má dobrou technologickou základnu. Můžete kladivem s kamenem a zatínat hřebíky zuby a stále můžete dělat vynikající tesařské práce, ale samozřejmě s mnohem více prací než jiný tesař, který používá dobré kladivo.

        Na druhou stranu: „staňte se programátorem za 20 hodin s Pythonem a pracujte na tom“, takovou hloupost jsem nikdy neviděl. Web v PHP můžete vytvořit za 20 hodin, aniž byste věděli, jak funguje programování na webu, nebo o samotném programování. To je vlastně důvod, proč je PHP tak populární, protože nováčci při vstupu do tohoto světa považují PHP za bod rychlého vývoje (což je důvod, proč tolik PHP kódu tak naštve).
        Pokud jde o nedostatky Pythonu, jedinou úspěšnou byla práce s ukazateli, ale každopádně Python je jazyk na vysoké úrovni (stejně jako Java) a na úrovni syntaxe je nevyužívá; ale bitové operace, vážné?, myslíte to x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Vážně jsem rozuměl sběrateli odpadků mnohem méně: https://docs.python.org/3/library/gc.html.
        Mezery v PHP:
        -PHP má velmi špatný design objektově orientovaného programování (OOP).
        - Operátory zatím nemůžete přetížit.
        -Překvapení, function overloading v PHP to není to, co od tohoto konceptu přirozeně očekáváte.
        … .. a právě jsem se nudil, hehe.
        Zdravím.

        1.    Rubén řekl

          Vložil jsem do závorek „pochopit metaforu“ ​​(porovnáním Pythonu s C ++ / Java ve stejném pracovním prostředí), je jasné, že jste tomu nerozuměli. Mohl bych vám říci, že programátor v C ++ se může naučit Python mnohem rychleji, než se programátor v Pythonu může naučit C ++, stejně jako není překvapením, že průměrný plat programátora v C / C ++ je vyšší než v Pythonu.
          Mohl bych vám to vysvětlit na dalších příkladech, dokonce i na výkresu! ale zdá se, že se soustředíte pouze na dekontextualizaci a zesměšňování toho, co jsem dal.

          Nikdy jsem neřekl, že PHP je nejlepší jazyk na světě nebo že má příkladný design, nevím, odkud to máte. Myslím, že než budete hodnotit znalosti ostatních, měli byste zlepšit své porozumění čtení. Je pravda (a řekl jsem to ve své zprávě), že vývoj s ním je velmi agilní, kromě celého ekosystému rámců, knihoven a nástrojů, které můžete najít.
          Jaký druh srovnání také provádíme? Python jako víceúčelový jazyk nebo pro web? V takovém případě, proč to porovnáváme s PHP? PHP má specifické pole a právě v tomto poli bledne vedle PHP Python (s 0.2% podílem, který se letos nezměnil).
          Nyní se podívejme na trendy PHP; z 82,4% v lednu 2017 na 83.1% v lednu 2018: https://w3techs.com/technologies/history_overview/programming_language

          Je Python tím, kdo sesadí PHP z trůnu? V jakém roce? za jakých pět let? desetiletí?
          Python lze použít v mnoha dalších úkolech a může se dokonce stát široce používaným než PHP, ale Python jako jazyk pro vývoj webových aplikací je vzdálený jen pár světelných let, než aby byl dokonce relevantní, 0.2% stagnuje proti 83.1% (s letošním nárůstem).

          Berete také věci jako samozřejmost tím, že říkáte, že nechodím ven mimo PHP, což naznačuje, že znám pouze PHP, když přesně jsem v PHP dlouho neprogramoval haha. V současné době z pracovních důvodů většinou programuji v Javě.
          Ani jsem neřekl, že programováním v Pythonu nemáte znalosti o bitových, sběratelích odpadků nebo ukazatelích. Spíše můžete programovat v Pythonu, aniž byste věděli, o co jde. Velmi však pochybuji, že tomu tak je pro programátora C ++. A očividně provádím srovnání, když Python vstoupí do pole „víceúčelového jazyka“, ne pro webové programování.

          Stát se programátorem za 20 hodin je prostě vtip, nadsázka. Mohl bych vám zde však uvést různé odkazy o online vzdělávacích platformách a kurzech, které slibují podobné věci. Neobviňujte mě, obviňujte trh práce, který si myslí, že stát se „odborným programátorem“ je otázkou absolvování 20hodinového kurzu. A Python je jedním z módních jazyků a také s nejrychlejší křivkou učení ... bílý a v lahvi.

          Trvám na tom, že svou zprávu zakládáte na tom, jak špatné je PHP (což v určité části souhlasím). Zdá se mi to správné, až na to, že moje zpráva není o tom, ale proč se bude PHP nadále používat a zítra nezmizí, jak si myslíte.

          pozdravy

  5.   nikdo řekl

    C -> Go -> (Lisp | Haskell | Java | cokoli)

    1.    ChrisADR řekl

      Nedávno mi čtenář poslal na můj e-mail doporučení knihy Go, určitě jazyka, který je třeba v budoucnu zohlednit a ke kterému zde snad bude příspěvek 🙂 Mnoho grafik ke sdílení

  6.   mvr1981 řekl

    No ... a co programuji? Proč se dnes učit programovací jazyk s tak dobrými a zkušenými programátory, kteří již existují? Jaké problémy mohu vyřešit, že ostatní je ještě nevyřešili mnohem efektivněji?… Stručně řečeno: Jak originální je dnes být programátorem? Jak mohu spolupracovat s ostatními, aniž by mě kopal nebo vylučoval nedostatek znalostí a zkušeností?

    1.    ChrisADR řekl

      Ahoj mvr1981, opravdu zajímavé otázky 🙂 převlékneme je od posledního k prvnímu.

      Jak mohu spolupracovat s ostatními, aniž by mě kopal nebo vylučoval nedostatek znalostí a zkušeností?

      Pokud nechcete být nakopáni, prvním krokem je naučit se tento proces, nedokážete si představit počet lidí, kteří přicházejí na projekty a chtějí dělat věci výhradně po svém, chtějí, aby se komunita přizpůsobila jejich přáním. Určitě je to, jako bych přišel do vašeho domu a udělal nepořádek a neúcta k vaší rodině (tak to mnohokrát cítí). Pokud tomu chcete zabránit, věnujte zvláštní pozornost pokynům, jak přispět, prostředkům, jak to udělat, a neposílejte něco neúplného, ​​pokud potřebujete pomoc, vždy existují prostředky ke komunikaci, ale špatně odvedená práce bude pravděpodobně vytvoří špatné první dojmy. Pokud se nechcete vyloučit, je to na vás, můžete ho vidět jako zbytečného programátora, který neví, co dělá, nebo toho, kdo je na cestě stát se vynikajícím programátorem, a to se děje jen s praxí a určitě s chybami na cestě. Mnohokrát jsem se mýlil, než jsem získal status vývojáře Gentoo, a to mi nezabránilo ve zkoušce i přes „špatný čas“ 🙂.

      Jak originální je dnes být programátorem?

      - Nejde o originalitu, dnes je to nutnost, jen si pomyslete na následující, před 20 nebo 30 lety, psaní bylo nutností, mnoho prací vyvodilo, že jste to věděli nebo alespoň mohli dělat. Dnes je znalost Office nutností, neexistuje prakticky žádná práce, která by vás nepřivedla před dokumenty Office. Zítra, velmi brzy, bude programování nutností. A to platí i z osobního hlediska, vědět, co se děje v programech, kterým svěřujete věci tak důležité jako vaše peníze, zdraví, rodina, je pro mě něco logického, protože jejich omezení můžete znát, pouze pokud víte, jak fungují a pro abyste to věděli, musíte vědět, jak programovat.

      Jaké problémy mohu vyřešit, které ostatní ještě nevyřešili mnohem efektivněji?

      -Byli byste překvapeni množstvím funkce které jsou dnes vyžadovány, a abych řekl pravdu, nezáleží na tom, že v komunitě existují nejlepší programátoři na světě, práce bude vždy větší než pracovní kapacita vývojářů, mohu to ověřit v Gentoo, tam jsou lidé, kteří vyvíjejí jádro, lidé pracující pro Google, Sony atd. ... jediné, co máme všichni společné, je to, že nikdo nemá tolik času, kolik by chtěl, aby mohl dělat veškerou čekající práci.

      Proč se dnes učit programovací jazyk s tak dobrými a zkušenými programátory, kteří již existují?

      -To je zodpovězeno ve druhé otázce 😉 Ale nyní mohu dodat, že generace musí být schopny podporovat práci, která již byla vyvinuta, tím myslím, že ti „zkušení“ vývojáři postupně mizí a bude to nutné pro “ mladší »Vývojáři přebírají odpovědnost a pomáhají udržovat cyklus naživu, komunita, která nemá mladé a nezkušené lidi, je náchylná k zániku v průběhu času, právě proto, že nebude příležitost předávat znalosti.

      A co programuji?

      -To je možná nejobtížnější věc odpovědět, ale pokusím se vám dát příklad poco, které jsem nedávno začal trpět problémy s GNOME 24 a jeho připojením k Waylandu, které brání programům jako Shutter v pořizování screenshotů. To mi dělá problém, protože když píšu své články, musím vám ukázat, co říkám. 🙂 Když jsem se trochu rozhlédl, dostal jsem se k aplikaci GNOME Screenshot, alespoň trochu „minimalistický“. Mezi jeho funkcemi je jedna z pořizování oblasti obrazovky, ale co se stane, když jsem fotografii nevyfotil dobře? Musím odejít a znovu vstoupit do programu, což je jistě zdlouhavé, určitě by mi pomohlo tlačítko s nápisem „Take again“ nebo něco podobného, ​​které mi umožňuje pořídit nový snímek, aniž bych musel odejít a znovu vstoupit. malý programovací projekt, nikdy jsem v rámci GNOME nic nenaprogramoval, takže se očividně musím hodně učit, než pošlu svůj „patch“ s novým tlačítkem, ale po cestě se naučím programovat as trochou štěstí je vlastnost bude k dispozici více než jednomu, až bude k dispozici všem.

      Toto je příklad, je to něco jednoduchého a že by to určitě mohl udělat jakýkoli jiný „odborný“ programátor, ale kvůli evidentnímu nedostatku času to tak nebylo, teď jsem ten, kdo má možnost to udělat, aniž by byl ve skutečnosti super programátor.

      Nyní je jen na vás, abyste našli něco, co by vám v tom softwaru, který tak často používáte, „zjednodušilo“ život, krásná na tom je, že pokud se budeme řídit radami, které vám v následujících článcích dám, na jazyku nezáleží, protože Budete znát základy, abyste začali rozumět kódu, který čtete, a upravte jej tak, aby dělal to, co chcete, to je velmi zvláštní pocit 🙂

      Zdravím a ještě jednou děkuji

      1.    nikdo řekl

        Myslím, že teprve poté, co jsem otevřel program gnome captures, je nejjednodušší přejít na klávesové zkratky a přiřadit tři kombinace print pro zachycení všech alt-print pro zachycení aktivního okna a super-print pro výběr ze zachycení regionu, dostupné klávesové zkratky jsou již k dispozici, jde pouze o jejich přiřazení

        1.    ChrisADR řekl

          Proto vám dáváme příklad 🙂 protože malé věci, jako je toto tlačítko, programují, mohou některým pomoci, protože si ostatní mohou nevšimnout, ale určitě splňují hlavní cíl, pomáhají naučit se programovat a dávají přednost novým funkcím, Po tomto tlačítku lze spustit mnoho věcí, například správu relací nebo obrazovku náhledu všech pořízených fotografií, nebo zkrátka spoustu věcí, které lze udělat. Myšlenka je, že najdete něco, díky čemu budete zvědaví, jakýkoli software, který běží ve vašem systému, může potřebovat vylepšení nebo nové funkce, které kvůli nedostatku času nebo personálu ještě nebyly implementovány 🙂

      2.    mvr1981 řekl

        Díky tobě. jsou velmi dobré odpovědi.

    2.    Guillermo řekl

      Pro někoho, kdo nebude profesionálem v oboru, by bylo nutné zjistit, ve kterém prostředí pracuje, a to jak pro administrativní úkoly, tak pro směrnice, může být zajímavé znát například Python / Basic a vědět jak programovat makra v kancelářských balíčcích, jako je LibreOffice nebo MS Office. Jsou chvíle, kdy vám nebo jiným pracovníkům, kteří vás obklopují a mohou je požádat o provedení jakéhokoli opakujícího se úkolu, může ušetřit mnoho hodin práce, můžete si vytvořit dashboard, který po připojení k jeho databázi rychle vypočítá hlavní poměry společnosti a provést nějaký SQL dotaz.
      Stejně jako všechno, pokud znáte nástroje na dosah ruky, můžete přemýšlet o tom, jak z toho vytěžit maximum. Ne všechno je vymyslené.

  7.   Marcelo řekl

    Guillermo, zcela s vámi souhlasím: „Ne všechno je vynalezeno“ a to, co je vynalezeno, je upravitelné. Musíte co nejlépe využít nástroje a použít ten, který nejlépe vyhovuje vašim potřebám.

  8.   Ricardo řekl

    Pro programování je prvním jazykem, který se učíte, angličtina, poté jazyk, který se jim nejvíce líbí a zdá se jim nejkrásnější.

    1.    ChrisADR řekl

      Nenapsal jsem to, ale je to pravda 🙂 znalost angličtiny hodně pomáhá, protože je v ní napsána většina jazyků, ale také proto, že větší množství informací z první ruky také moc děkuji za sdílení

  9.   Ruben salgado řekl

    Vynikající článek, navíc motivující.

    1.    ChrisADR řekl

      Velmi laskavé, moc děkuji 🙂 Zdravím

  10.   Gonzalo Martinez řekl

    Programování je umět uvažovat a převést toto uvažování do pokynů.

    Dvě vysvětlení k článku:

    1) Na základě mých téměř 10letých zkušeností učitele programování nezáleží na tom, s jakým jazykem se učíte, ale jak se učíte a jak složitý je.

    Myslím si, že jazyk, který se lze naučit strukturovaným způsobem a poté přejít k dalším složitějším věcem, je jednodušší než začít s jazykem, jako je Java, od samého začátku.

    Je jednodušší naučit se něco jako Hello World v jazyce C nebo Pascal jako základ, než s několika řádky (PROGRAM v případě Pascal nebo #include V případě C) můžete začít vyvíjet algoritmus a programovat jeho logiku přímo, jako v Javě, která sama o sobě potřebuje třídu, metodu a některé další věci, které pro začátečníka znamenají přetížení informací zbytečné, a to může být ignorováno a přejít k jiným věcem, ale jsou to koncepty, které tam jsou, a podle mého názoru není přehlédnutí věcí dobrý způsob, jak se učit, zvláště pokud vás jazyk nutí je používat. Je to jako poprvé zahájit trénink na terč s M-16 a střílet měsíce v poloautomatickém režimu a držet rukojeť oběma rukama jako pistoli.

    2) To, zda je jazyk interpretován nebo kompilován, závisí na jeho implementaci, nikoli na samotném jazyce. Například pokud se používá Python, pro webovou aplikaci, která používá wsgi (buď mod_wsgi v apache, nebo uwsgi pro Nginx), se kód pythonu kompiluje při spuštění příslušného modulu, generování souborů .pyc

    K dispozici jsou také generátory binárních souborů pro javu (které generují nativní binární soubory namísto bytecode) nebo kompilátory php skriptů v čistých binárních souborech.

    Pokud jde o to, co říkají o PHP, je to prostě jazyk navržený v jiné době, s ohledem na jiné věci, a bez zvážení aspektů, které v té době neexistovaly. Skutečnost, že je nejpoužívanější, z něj zřejmě nedělá to nejlepší pro cokoli na světě, ale existuje realita: je to jazyk, s nímž je největší šance získat práci ve všech programovacích programech. Vědět, že to nebolí, i když se vám to nelíbí.

    I já, který už několik let pracuji jako správce systémů a opustil jsem pozici vývojáře, musím často do něčeho vkládat kód PHP.

    1.    ChrisADR řekl

      Ahoj Gonzalo, děkuji za sdílení,

      Jistě řečeno o zbytečných informačních přetíženích, vědění, že stejný jazyk lze interpretovat nebo kompilovat, je v této fázi něco, co není nutné 🙂 Implementace je jistě důležitá, ale pokud to řekneme na této úrovni, nevyvoláváme více než zmatek. Stejně tak nejsou řešeny problémy objektově orientovaného programování ani jiné koncepty, které je třeba dávkovat postupně, aby se lidem neotočila hlava.

      Vzhledem k omezenému prostoru je hlavním cílem příspěvku ukázat čtenářům, kteří si přejí naprogramovat, že existují dva velké světy jazyků, že „tradičně“ interpretované jsou více „jednoduché“, že „tradičně“ kompilované jsou o něco více „složité“, ale že stojí za tu úroveň složitosti mít lepší porozumění a že je na každém člověku, který si zvolí jazyk, protože v závislosti na programovacím přístupu si bude moci vybrat své oblíbené projekty a na zároveň budou schopni porozumět tomu, co čtou a / nebo píší 🙂

      Ještě jednou moc děkuji, pozdravy.

      1.    Gonzalo Martinez řekl

        To je chyba, neexistují žádné kompilované ani interpretované jazyky, pro každý jazyk existují tlumočníci a překladače, oba pro různé případy.

        Není zmínka o informačním přetížení, nyní je chyba udělat takové prohlášení. Podle mého názoru by bylo produktivnější ignorovat tlumočníky, pokud byste nechtěli zahlcovat informace.

        1.    ChrisADR řekl

          Díky za vysvětlení, vezmu to v úvahu, až se vrátím k tématu. Na zdraví

  11.   Ares řekl

    Jaký jazyk doporučujete pro server vzhledem k tomu, že php upadl v nemilost?
    Totéž pro databáze, nevím, jestli bude něco lepšího a modernějšího než mySQL.

    1.    ChrisADR řekl

      PHP nevypadlo z laskavosti ... Každý jazyk má svůj životní cyklus a php je jistě již jazyk, který vstupuje do škály „dospělý“, což je užitečné na obchodní úrovni, kde je stabilita především ... Stejně jako některé banky, kde je stále vyvíjen v javě, která je více „vyspělá“ než php a určitě má své následovníky a kritiky ... A nemluvě o COBOLU ...

      Pokud hledáte jednotnost a modernost, javascript se stává jedním z oblíbených takzvaných „vývojářů s plným zásobníkem“, ačkoli dobré reference jsou také rubínové paradigma nebo „jednoduchost“ pythonu…. Podle potřeby může být i perl 🙂

      V dnešní době získává ORM (objektové relační mapovače) velkou sílu, pokud jde o správu relačních dat. Přechází od syntaxe SQL ke zpracování tříd a atributů ... Téměř všechny jazyky (pokud ne všechny) zpracovávají nějaký ORM.

      . Mongo DB je alternativa k relačním databázím, která se stala docela důležitou; je však nutné znát její klady a zápory a ověřit, zda by to bylo nejlepší řešení v závislosti na konkrétní potřebě.

      Doufám, že vám to pomůže, pozdravy 🙂

      1.    Ares řekl

        Díky, zkontroluji to.

      2.    Ares řekl

        Zapomněl jsem.

        Co mi doporučujete pro práci s JAVA v Linuxu?
        Pokud můžete lépe rozlišovat mezi volným a uzavřeným.

        1.    ChrisADR řekl

          Eclipse a NetBeans jsou open source, nejsem si jistý, jestli existuje nějaký čistě svobodný software, mám zvyk používat vim, protože někdy díky množství kódu je použití celého IDE pomalé a náchylné k chybám při provádění. Zdravím 🙂

        2.    paulzeta řekl

          Pro práci s Java v Linuxu používám IntelliJ, doporučuji vám.

          1.    ChrisADR řekl

            PS, IntelliJ je proprietární software 🙂

  12.   je řekl

    Kluci si také pamatují, že ... Pracuji v bance a říkám vám, že programovací jazyky jsou na zadním sedadle a nechávají SQL a uložené procedury jít jako první.

    1.    Gonzalo Martinez řekl

      Musíte je vzít v úvahu uložené procedury, ale nepoužíváním přenosného jazyka mezi motory, alespoň podle mých zkušeností, je to vždy o tom, jak se jim vyhnout, pokud neexistuje jiná možnost.