Odabir vašeg prvog programskog jezika

Svakako je ovo jedno od pitanja koje mi najviše dolazi u pristiglu poštu kada govorim o programiranju. Ako ćemo započeti seriju članaka koji će vam omogućiti da naučite kako programirati i vratiti besplatno znanje u obliku doprinosa zajednicama besplatnog softvera / otvorenog koda širom svijeta, potrebno je odgovoriti na ovo osnovno, pomalo teško pitanje. Koji programski jezik trebam naučiti?

Malo povijesti

Da bismo počeli razumjeti i odabrati programski jezik, prvo moramo znati malo o njihovoj povijesti, njihovoj upotrebi i funkcijama te kako s vremenom rješavaju različite potrebe.

Strojni jezici (niska razina)

Uobičajeno poznat kao MontažaTo su programski jezici koje bismo mogli definirati kao dijalekte općenitijeg jezika ... To zvuči pomalo komplicirano, ali dat ću to kao primjer ... Znamo da je univerzalni jezik računarstva struja, to znači da su u konačnici ono što računalo čita 0sy 1da, nazovimo ovo eračunalni engleski. U ovom primjeru španjolski je osnovno pravilo, ali kao što dobro znamo, španjolski koji govore Latinoamerikanci nije isti kao onaj koji se govori u Španjolskoj, pa čak i tako, španjolski Peru nije isti sa španjolskim Argentinom. Očito svi imamo gotovo iste riječi (0sy 1s), ali upotreba i značenje mogu se razlikovati ovisno o kontekstu.

To se događa na razini procesora. Kad razgovaramo o računalne arhitekture, (amd64, intel, arm, ...) upućujemo na dijalekt toga računalo španjolski. To je zato što različite tvrtke na svoj način razumiju redoslijed i značenje, pa se neke razlikuju u pojedinostima, poput protoka struje ili redoslijeda kojim će biti spremljene. 0sy 1s.

Ovi su programski jezici izuzetno brzi, jer rade na najnižoj mogućoj razini programiranja, ali jako ovise o arhitekturi i zasigurno su malo složeniji za učenje od ostalih. Često im je potrebna šira baza koncepata kako bi se podaci transformirali i na njima pokrenule korisne stvari. Za ljubitelje videoigara primjer bi bile SEGA konzole koje su koristile Assembly za programiranje svojih igara. Očito je u to vrijeme količina memorije bila minimalna u odnosu na današnju i bilo je potrebno svladati jezik koji može biti brz i proizvoditi lagane programe.

Jezici visoke razine

Ova velika skupina kontemplira one jezike koji su nastali poslije Montaža. Potreba za dobivanjem prijenosnog koda dovela je do pojave skupine jezika tzv sastavljeno. Među njima je prvi iskoristio C koji je od 70-ih godina pretežito programirao na razini operativnog sustava.

Sastavljeni jezici

Pogledajmo praktični primjer onoga što komentiram. Pogledajmo vrlo jednostavan program na jeziku C koji ispisuje jedan redak koda.

Vlastiti. Christopher Diaz Riveros

Nakon sastavljanja imamo sljedeće:

Vlastiti dizajn: Christopher Díaz Riveros

Ali sada da vidimo što bismo morali napisati da bismo replicirali isti rezultat u zborničkom kodu:

Vlastiti. Christopher Diaz Riveros

Ovo je prijevod naša tri retka koda iz simple.c, Datoteka simple.s kreira se pomoću naredbe gcc -S simple.c i to je ono što bi naš procesor razumio na dijalektu Montaža. Očito da bi se stvorila izvršna datoteka koja se sastoji od 0sy 1s datoteku treba obraditi simple.s i povezati ga sa zajedničkim knjižnicama našeg sustava. To se radi pomoću a asembler (as) konektor (ld).

Sastavljeni jezici pružaju veliku prednost u odnosu na one niske razine prenosivi. Prenosivost donosi kôd koji se može izvršiti na različitim procesorima bez potrebe generiranja određenog koda za svaku arhitekturu. Još jedna očita prednost je jednostavnost koju koristi prilikom čitanja i pisanja koda. Među glavnim nedostacima imamo visoku složenost, budući da u usporedbi sa sljedećim vrstama jezika koje ćemo vidjeti, sloboda koju C nudi može biti štetna ako ne znate kontrolirati, zasigurno je poput predaje pištolja, u nedostatku doživite da osoba na kraju puca u vlastitu nogu u pokušaju čišćenja pištolja.

Tumačeni jezici

Unutar ove skupine imamo veliku raznolikost jezika, među najvažnijima imamo Python, Ruby, Javascript, PHP itd. Osnovna ideja ovih jezika je pružiti brz način stvaranja i izvršavanja programa, jer mnogi teški procesi izvode se u interpreteru, a programiranje logike je ono što je implementirano u kod. Pogledajmo isti primjer gore, ali ovaj put napisan na Pythonu:

Vlastiti. Christopher Diaz Riveros

Među najistaknutijim stvarima možemo vidjeti da je prvi redak zadužen za pozivanje tumača (program koji će izvršiti našu aplikaciju), a sljedeći je kod "jednostavniji" od njegove verzije na C-u, budući da je sav težak posao izvedena na tumaču.

Vlastiti. Christopher Diaz Riveros

Interpretirani jezici pružaju programeru veći sloj sigurnosti, jer imaju rigoroznije sigurnosne kontrole (UPOZORITE da nisu savršeni, jer i najbolji mogu pogriješiti) i više ne trpimo rizik od pucanja iz oružja, a da toga nismo svjesni, jer bi u prvom pokušaju prevoditelj podigao upozorenje i izvršenje bi bilo otkazano. Glavni nedostatak postaje očit pri izvršavanju programa, jer je sporiji od binarnog pandana, upravo zbog veće količine obrade kako bi se osiguralo da kôd radi. Ako program ne zahtijeva izuzetno kratke rokove, razlika može proći nezapaženo, ali ako govorimo o tisućama ili milijunima podataka u sekundi, razlika postaje eksponencijalno uočljiva na kompiliranim jezicima.

Tipkanje

To je karakteristika programskih jezika, to mogu biti snažno slabo otkucao. Ostavit ću ovu temu za drugi post, jer je potrebno i znatiželjno shvatiti kako se memorija pohranjuje u programu, ali za sada trebamo samo napraviti razliku: Jako upisani jezici su oni koji zahtijevaju poznavanje vrste podataka koji idu raditi na varijabli ili konstanti, dok slabo vrste mogu izvoditi pretvorbe pa implicitno a sve će ovisiti o hijerarhiji pretvorbe koju slijedi jezik. (Ako se sada ne razumije, nema problema, ostavit ćemo to za kasnije)

Paradigme

Kao i sve u GNU / Linux svijetu, programski se jezici temelje na paradigmama i oko njih se generiraju zajednice. Na primjer, imamo Zaklada Python o Rubin o PHP o Bash (u tom slučaju to je GNU zajednica). Ono čime želim doći s ovim jest da ne mogu izraziti veliki broj prednosti i nedostataka koje ima svaki od njih, ali mogu vam reći da tamo gdje postoji besplatni programski jezik postoji zajednica za učenje i sudjelovanje. Vrijedno je spomenuti da su mnogi, ako ne i svi prevoditelji jezika, napisani u jeziku C ili nekom bliskom izvedenici, a njihov razvoj obično obavlja manja skupina zajednice koja je zadužena za odluke koje će utjecati na sve korisnike jezika. Institucije se čak mogu formirati kako bi osigurale ispravan razvoj jezika, kao što je slučaj sa C.

Koju odabrati?

Već smo dovoljno razgovarali o jezicima i još uvijek ne odgovaram na najvažnije 😛. Ali nadam se da mi nakon pregleda ovog malog članka nije potrebno da vam kažem koji jezik odabrati, jer ste s ovim informacijama u potpunosti sposobni potražiti onaj koji izaziva znatiželju. Očito ako želite naučiti programirati na nekom jeziku Montaža proći će puno vremena prije nego što budete mogli imati nešto funkcionalno, vrijeme će se uvelike smanjiti ako se odlučite za kompajlirani jezik, gdje ćete osim što imate prenosivost na * NIX sustavima, moći saznati i informacije u vezi s radom istog sustava, budući da ste u kontakt s C ili derivatima čini vas na ovaj ili onaj način naučiti kako operativni sustav funkcionira na općenit način. Napokon, ako želite naučiti nešto lagano, a to vam omogućuje puno, a da ne trebate puno razumjeti, interpretirani jezici zabavan su način učenja i razvijanja programskih vještina.

Učite uz nešto uzbudljivo

Ovo je najbolji savjet koji vam mogu dati, ako želite nešto naučiti, prvo morate pronaći nešto uzbudljivo, inače će biti prilično teško prevladati tipičnu krivulju učenja bilo kojeg programskog jezika. Pretpostavimo da upravljate sustavima, u tom slučaju ćete možda trebati naučiti idealan jezik za skriptiranje (protumačeno), unutar njih imamo Perl, Python, Bash itd. itd ... Možda su vaše igre, postoji mnogo projekata na jezicima kao što su Javascript, Lua, C ++, ovisno o vrsti igre koju želite igrati. Možda biste željeli stvoriti alat na razini sustava, jer imamo C, Python, Perl, kao što ćete vidjeti da se neki ponavljaju, a to je zato što se mnogi jezici mogu koristiti za mnoge zadatke, zato definicija višenamjenski jezici u većini ovih.

Pokrenite projekt

Pod tim ne mislim da ste stvorili sljedeći kompajler ili čak sljedeći programski jezik, projekt može biti ispravak male greške u vašem omiljenom programu, možda čak i pomoći u poboljšanju dokumentacije. Zašto dokumentacija? jer ne postoji bolji način da naučite kako softver funkcionira nego čitanjem i pomaganjem u pisanju njegove dokumentacije, jer je nakon izvornog koda najveći izvor informacija koji ćete pronaći o programu. U drugom ćemo trenutku vidjeti kako čitati kod projekta i razumjeti funkcije i vrijednosti koje stječu.

Puno vam hvala što ste došli ovdje i kao i uvijek, vaši komentari pomažu mi u stvaranju boljeg sadržaja i znam gdje se fokusirati, pozdrav.


Ostavite svoj komentar

Vaša email adresa neće biti objavljen. Obavezna polja su označena s *

*

*

  1. Za podatke odgovoran: Miguel Ángel Gatón
  2. Svrha podataka: Kontrola neželjene pošte, upravljanje komentarima.
  3. Legitimacija: Vaš pristanak
  4. Komunikacija podataka: Podaci se neće dostavljati trećim stranama, osim po zakonskoj obvezi.
  5. Pohrana podataka: Baza podataka koju hostira Occentus Networks (EU)
  6. Prava: U bilo kojem trenutku možete ograničiti, oporaviti i izbrisati svoje podatke.

  1.   anoniman dijo

    Kao i uvijek 10 !!!!!! Hvala na vašim člancima. Pozdrav i još puno toga !!!!

    1.    ChrisADR dijo

      Puno vam hvala 🙂 potiče me da nastavim pisati. Živjeli

  2.   Ruben dijo

    Mislim da je pogreška postaviti pitanje "koji jezik odabrati?" Ja sam jedan od onih koji misle da je jezika najmanje, važno je naučiti osnove programiranja i "računalno razmišljati". Odlučite se za sintaksu, njezino tipkanje, podržava li OOP, njegovu korisnost itd. Mislim da je to nešto što će prirodno doći u studiju i nakon svega, svaki programer zna više od 1, 2 i 3 jezika ... i zahvaljujući programskim konceptima (a ne sintaksi) koje ima, u stanju je programirati na jeziku na kojem još nema iskustva.
    Međutim, za inicirane mislim da dobar jezik može biti Python zbog svoje jednostavnosti, ali prije svega, otiđite malo dalje, proučite algoritme i znajte kako stvari funkcioniraju "iznutra".

    Pozdrav ChrisADR

    1.    ChrisADR dijo

      Pozdrav Rubén, hvala na dijeljenju
      Nešto sam naučio s vremenom u svijetu programiranja, a to je da "onaj tko puno pokriva, ne stiska" i pod ovom dobro poznatom frazom mislim da se puno puta, a posebno najoduševljeniji, odluče pokušajte sve malo i ostvarite vrlo brze zavoje u smislu kako naučite kodirati. Vjerujem, i osobno je mišljenje, da bi dobar programer trebao znati i svladati jezik kompajlera i jezik tumača, osim što treba imati pojam nekog skupštinskog dijalekta.
      Razlog je sljedeći, izrada prototipa uvijek mora biti nešto jednostavno i brzo, lako generirano i što općenito pokazuje rezultat, ali ako to nije dovoljno, mora postojati "plan B" kojem se treba pribjeći kad prevoditelj stigne njegova granica.
      Poznavanje dijalekta okupljanja ne samo da vam daje samopouzdanje, već vas uči i da mislite „računski“, ali očito je ovaj dio najsloženiji od svega, a zasigurno je nešto do čega svi programeri ne dolaze.
      No, vratimo se temi, jer glavna ideja koju mislim jest "odabrati jezik i PUNO vježbati", jer zaista je dobar način programiranja čitanje i pisanje koda, a to je nešto iz čega sam naučio kernel zajednica Kad dugo zadržavate istu sintaksu, prestajete vidjeti obrazac i počinjete se brinuti o POVRŠINI. Ideja odabira jezika ili sintakse od početka je ta da je netko u stanju naviknuti njeno čitanje i pisanje na takav način da može početi čitati ZNAČENJE programa umjesto sintakse programa.
      To je glavni razlog ovog posta da svatko bira svoj jezik tako da u nastavku možemo objasniti koncepte, možda se time razjasne sumnje 🙂
      Pozdrav i hvala na podjeli.

  3.   Deibis Contreras dijo

    hvala na postu bio je dobar.

    pozdravi

    1.    ChrisADR dijo

      Pozdrav Deibis, hvala što ste podijelili 🙂 Pozdrav

  4.   JorgeFS dijo

    Moj savjet: bilo što osim PHP-a. Prije dvadeset godina PHP je imao određeni smisao u svom postojanju zbog visoke razine složenosti koja je programirala web na drugom jeziku koristeći CGI. Ali danas postoji velika raznolikost okvira kako bi razvoj weba bio mnogo ugodniji na moćnim jezicima, kao što su Django za Python, Spring za Javu ili Rails za Ruby. Iako se PHP trenutno pojavljuje na svim ljestvicama popularnosti jezika, po mom mišljenju PHP će vremenom izgubiti na značaju.
    Toplo savjetujem da započnete sa C \ C ++ da biste razumjeli stvarnost programiranja, iako je krivulja učenja strma.
    Pozdrav.

    1.    ChrisADR dijo

      Pozdrav Jorge, hvala na dijeljenju, sjetim se samo Laravela, što je prilično čvrst okvir. Personally Osobno mi se nikad nije svidjelo Proljeće ili Java za web razvoj, čini mi se prilično glomaznim, ali pretpostavljam da je to dio vremena u kojem su proveli na tržištu, u to su vrijeme bili pioniri, a zasigurno su danas moderne alternative (Js, Python i Ruby) uspjele poboljšati način predstavljanja koda koji je čitljiv i prilagodljiv bez puno rada.
      Također sam sklon ljudima koji uče C / C ++ u nekom trenutku svog života, započeo sam s Javom, ali pretpostavljam da je u tome ljepota programiranja, možete početi sa svime što želite, sve dok ste dosljedni budite korisni 🙂 Živjeli

    2.    Ruben dijo

      Ne mogu se više ne slagati s tobom. Počeo sam prije mnogo godina s C i VB, da bih se kasnije usredotočio na PHP i JS (budući da sam se usredotočio na web razvoj), a kasnije tijekom studija učio sam uglavnom C / C ++ i Javu.
      PHP ima brojne prednosti koje nisam mogao navesti u ovoj poruci. PHP7 je brz (brži od Pythona ... bez upotrebe hhvm-a, različitih predmemorija, okvira kao što je Phalcon ili bytecode u slučaju Pythona), ima ogroman broj knjižnica i okvira, ima ogroman broj izravno implementiranih funkcija za korištenje u bilo kojem trenutku, njegova sintaksa toliko slična C-u olakšava migraciju na druge jezike.
      30% web stranica širom svijeta izrađeno je pomoću WordPressa (PHP) i čini se da se to ne mijenja, Wikipedia ga koristi, Facebook (s hhvm) i veliki broj web mjesta, ukupno 80%.

      Podsjećam vas da Ruby on Rails poput Djanga ima 12 godina! Kakvu su kvotu postigli u ovom vremenu? I naravno, govorimo o 2 okvira koji praktički imaju monopol i ne postoji vrsta fragmentacije. Koje druge ozbiljne alternative imam? Govoriti o tome da će PHP izgubiti na važnosti vrlo je malo smisla.

      Sad kad je Python u modi jer ima brzu krivulju učenja, to je jednostavan jezik i oni vam ga prodaju kao «postanite programer za 20 sati s Pythonom i radite na njemu», uz podršku tvrtki poput Googlea i da sada postoji moda traženja novih jezika (Idi, Dart….) kako bi se razlikovao u životopisu (ili poput svakodnevnog rođenja 50 okvira za Javascript!), ne znači da se stvari mijenjaju.

      Ruby je vrlo zanimljiv jezik, ali toliko se razbija s ustaljenim obrascima da mi je teško povjerovati da je postao popularniji od PHP-a. Naravno, Ruby mislim da je najgori jezik za započinjanje programiranja od svih.
      Razumijem da ste mi rekli da Python može biti zabavno programirati, čak i Ruby s njegovom beskonačnošću posebnosti ... ali Proljeće s Javom? Stvarno? Java može biti mnogo stvari ... ali ugodnija od Pythona i PHP-a?

      Sve je vrlo dobro započeti s Pythonom, ali dok se držite samo Pythona, riskirate da će mnoge tvrtke povjerovati da vaša razina programiranja nije „duboka“ (čak i ako ste jako dobri u Pythonu). To je zato što se natječete s drugim "višenamjenskim" jezicima kao što su C ++ ili Java. Možete programirati na Pythonu, a da ne znate razliku koji je vrag pokazivač, bitne operacije, način na koji radi sakupljač smeća i duga itd.
      Python je možda najmanje sličan "klasičnom programiranju" koji postoji i koji se može promatrati kao "jezik za djecu" (shvatite metaforu), a to je zauzvrat prednost i nedostatak.

      1.    JorgeFS dijo

        "Python je možda najmanje sličan" klasičnom programiranju "koji postoji i koji se može promatrati kao" dječji jezik "(shvatite metaforu), a to je zauzvrat prednost i nedostatak." LOL, ovo je jedna od najsmješnijih stvari koje sam vidio o Pythonu. Jeste li ikada stvarno naučili Python?
        Koliko dugo je to bilo širom svijeta izvan PHP-a?
        Prijatelj PHP rođen je mrtav. PHP (\ d +) ima puno tereta zbog vrlo lošeg početnog dizajna, a kako bi održao korisničku zajednicu, nastavlja temeljito povlačiti sve te početne pogreške u dizajnu. PHP je rođen bez modularnosti, s puno funkcionalnosti u stilu C (što, usput rečeno, ne znam odakle vam, budući da je njegova sintaksa slična C-u, lako se prenosi na druge jezike). Jezik visoke razine, kakav bi se PHP trebao ponašati, ima tako ružne stvari kao što je ovaj trag funkcija naveden na njegovoj službenoj stranici http://php.net/manual/en/indexes.functions.phpTo je zato što je rođen bez modularnosti, pa je sve prljavo izmiješano i bez prostora imena.
        Ovo je dio PHP koda:
        "Stream_notification_callback");
        stream_context_set_params ($ ctx, $ params);
        var_dump (stream_context_get_params ($ ctx));
        ?>
        u nekom trenutku možete li odrediti odakle su sve te 'stream' funkcionalnosti uvezene? NE, onda biste mogli reći da su to ugrađene funkcije, ali onda je cijeli ekosustav izgrađene funkcije? Dakle, u PHP kodu ima puno smeća, da ako niste u stanju razumjeti složenost i beskorisnost tako lošeg dizajna, oprostite mi, ali još uvijek ima puno svijeta za vidjeti.
        Wordpress je izvrsno softversko rješenje, ali to ne znači da ima dobru tehnološku osnovu. Možete čekićem udarati kamenom i zubima istjerivati ​​čavle, a i dalje možete izvrsno izraditi stolarske radove, ali naravno, s puno više posla od drugog stolara koji koristi dobar čekić.

        S druge strane: "postani programer za 20 sati s Pythonom i radi na tome", nikada nisam vidio takvu glupost. Web stranicu možete izraditi u PHP-u za 20 sati i bez znanja o tome kako funkcionira web programiranje ili samo programiranje. Zapravo je to razlog zašto je PHP toliko popularan, jer novaci po ulasku u ovaj svijet PHP vide kao točku brzog razvoja (zbog čega toliko PHP koda toliko usisava).
        Što se tiče Pythonovih nedostataka, jedini u kojem je bio uspješan bio je rad s pokazivačima, ali u svakom slučaju, Python je jezik visoke razine (kao i Java) i ne koristi ih na razini sintakse; ali bitne operacije, ozbiljne?, mislite na ovo x << y, x >> y: https://wiki.python.org/moin/BitwiseOperators. Ozbiljno sam shvatio stvar sa sakupljačem smeća: https://docs.python.org/3/library/gc.html.
        PHP praznine:
        -PHP ima vrlo loš dizajn objektno orijentiranog programiranja (OOP).
        -Ne možete još preopteretiti operatere.
        -Iznenađenje, function overloading u PHP-u nije ono što prirodno očekujete od ovog koncepta.
        ... .. i baš mi je dosadilo hehe.
        Pozdrav.

        1.    Ruben dijo

          Stavio sam u zagrade "razumijem metaforu" (uspoređujući Python sa C ++ / Java u istom radnom okruženju), jasno je da je niste razumjeli. Mogao bih vam reći da programer za C ++ može naučiti Python mnogo brže nego što programer za Python nauči jezik C ++, baš kao što ne čudi da je prosječna plaća programera za C / C ++ viša od zarade za Python.
          Mogao bih vam to objasniti drugim primjerima, čak i crtežom! ali čini se da se usredotočujete samo na dekontekstualizaciju i ismijavanje onoga što sam stavio.

          Ni u jednom trenutku nisam rekao da je PHP najbolji jezik na svijetu ili da ima uzoran dizajn, ne znam odakle vam to. Mislim da biste prije ocjenjivanja znanja drugih trebali poboljšati svoje razumijevanje čitanja. Istina je (i rekao sam u svojoj poruci) da je razvoj s njom vrlo okretan, pored cijelog ekosustava okvira, knjižnica i uslužnih programa koje možete pronaći.
          Također, kakvu usporedbu radimo? Python kao višenamjenski jezik ili za web? Zašto ga u tom slučaju uspoređujemo s PHP-om? PHP ima određeno polje i to je ono polje na kojem Python (s udjelom od 0.2%, koji se nije promijenio cijele godine) blijedi pored PHP-a.
          Pogledajmo sada PHP trendove; sa 82,4% u siječnju 2017. na 83.1% u siječnju 2018: https://w3techs.com/technologies/history_overview/programming_language

          Hoće li Python skinuti s trona PHP? Koje godine? za kojih pet godina? desetljeće?
          Python će se moći koristiti u mnogim drugim zadacima, pa čak i postati širi od PHP-a, ali Python kao jezik za web razvoj udaljen je svjetlosnim godinama da bude čak i relevantan, 0.2% stagnira naspram 83.1% (s porastom ove godine).

          Također stvari uzimate zdravo za gotovo govoreći da ne idem okolo izvan PHP-a, nagovještavajući da PHP znam samo onda kada već dugo nisam programirao u PHP-u haha. Trenutno iz radnih razloga uglavnom programiram na Javi.
          Niti sam rekao da programiranjem na Pythonu nemate znanja o bitovima, sakupljaču smeća ili pokazivaču. Umjesto toga, možete programirati na Pythonu, a da uopće ne znate što je ovo. Međutim, jako sumnjam da bi to bio slučaj za programera na C ++. I očito uspoređujem kad Python uđe u to polje "višenamjenskog jezika", a ne za web programiranje.

          Postati programer za 20 sati jednostavno je šala, pretjerano. Međutim, mogao bih vam ovdje staviti razne veze o mrežnim obrazovnim platformama i tečajevima koji obećavaju slične stvari. Ne krivite mene, krivite tržište rada koje misli da je postajanje "stručnim programerom" stvar pohađanja 20-satnog tečaja. A Python je jedan od modernih jezika, a uz to i s najbržom krivuljom učenja ... bijeli i u boci.

          Inzistiram, svoju poruku zasnivate na tome da kažete koliko je PHP loš (što se u određenom dijelu slažem). Čini mi se ispravnim, samo što moja poruka nije o tome, već o tome zašto će se PHP i dalje koristiti i sutra neće nestati kako mislite.

          pozdravi

  5.   niko dijo

    C -> Idi -> (Lisp | Haskell | Java | svejedno)

    1.    ChrisADR dijo

      Nedavno mi je čitatelj poslao preporuku za knjigu Go na moj e-mail, zasigurno jezik koji će se uzeti u obzir u budućnosti i o kojem će možda ovdje biti post 🙂 Mnogo slika za dijeljenje

  6.   mvr1981 dijo

    Pa ... i što programiram? Zašto danas učiti programski jezik s tako dobrim i iskusnim programerima koji već postoje? Koje probleme mogu riješiti, a što drugi već nisu riješili na mnogo učinkovitiji način? ... Ukratko: Koliko je originalno biti programer danas? Kako mogu surađivati ​​s drugima, a da me nedostatak znanja i iskustva ne izbaci?

    1.    ChrisADR dijo

      Pozdrav mvr1981, stvarno zanimljiva pitanja to namotavat ćemo ih od zadnjeg do prvog.

      Kako mogu surađivati ​​s drugima, a da me nedostatak znanja i iskustva ne izbaci?

      Ako ne želite da vas šutiraju, prvi korak je naučiti proces, ne možete zamisliti broj ljudi koji dolaze na projekte koji žele raditi stvari isključivo na svoj način, želeći da se zajednica prilagodi njihovim željama. To je sigurno kao da dolazim u vašu kuću i radim nered i ne poštujem vašu obitelj (takav je osjećaj puno puta). Ako to želite spriječiti, dobro obratite pažnju na smjernice za doprinos, sredstva kojima to možete učiniti i ne šaljite nešto nepotpuno, ako vam je potrebna pomoć, uvijek postoje načini za komunikaciju, ali loše obavljen posao učinit će vjerojatno stvaraju loše prve dojmove. Ako se ne želite isključiti, to ovisi o vama, možete ga vidjeti kao beskorisnog programera koji ne zna što radi ili onoga koji je na putu da postane izvrstan programer, a to se događa samo s praksom i sigurno s bubama na putu. Puno sam puta pogriješio prije nego što sam dobio svoj status programera za Gentoo, a to me nije spriječilo da pokušam unatoč "lošem vremenu" 🙂.

      Koliko je originalno biti programer danas?

      -Nije stvar u originalnosti, danas je to nužnost, samo razmislite o sljedećem, prije 20 ili 30 godina tipkanje je bilo nužnost, mnogi su poslovi zaključili da ste to znali ili barem mogli. Danas je poznavanje Officea nužnost, praktički nema posla koji vas ne stavi pred Office dokumente. Sutra, vrlo brzo, programiranje će biti nužnost. A to se također odnosi s osobnog gledišta, znati što se događa u programima kojima povjeravate tako važne stvari kao što su novac, zdravlje, obitelj, za mene je nešto logično, jer njihova ograničenja možete znati samo ako znate kako oni rade i za da biste to znali, morate znati programirati.

      Koje probleme mogu riješiti, a drugi već nisu riješili na mnogo učinkovitiji način?

      -Bio bi iznenađen količinom značajke koji su danas potrebni, i istini za volju, nije važno što u zajednici postoje najbolji programeri na svijetu, rad će uvijek biti veći od radnog kapaciteta programera, to mogu provjeriti u Gentoo-u, tamo su ljudi koji razvijaju jezgru, ljudi koji rade za Google, Sony, itd. itd. Jedino što nam je svima zajedničko je da nitko nema toliko vremena koliko bi želio da može obaviti sav posao na čekanju.

      Zašto danas učiti programski jezik s tako dobrim i iskusnim programerima koji već postoje?

      -Ovo je odgovoreno u drugom pitanju 😉 Ali sada mogu dodati da generacije moraju biti sposobne podržati rad koji je već razvijen, pod tim mislim da će oni "iskusni" programeri postupno nestati i to će biti potrebno za " mlađi »Razvojni programeri preuzimaju odgovornost i pomažu u održavanju ciklusa na životu, zajednica koja nema mlade i neiskusne ljude sklona je nestajanju s vremenom, upravo zato što neće biti mogućnosti prenošenja znanja.

      A što da zakažem?

      -Ovo je možda najteže odgovoriti, ali pokušat ću vam dati primjer koji sam nedavno počeo trpjeti zbog problema s GNOME-om 24 i njegovom vezom s Waylandom koji sprečavaju programe poput Shuttera da prave snimke zaslona. To mi predstavlja problem jer kad pišem svoje članke, moram vam pokazati što kažem, pretražujući malo, došao sam do aplikacije GNOME Screenshot, u najmanju ruku pomalo "minimalistički". Među njegovim funkcijama postoji i snimanje područja zaslona, ​​ali što se događa ako fotografiju nisam dobro snimio? Pa, moram napustiti i ponovno ući u program, nešto zamorno sigurno, pomogao bi mi gumb na kojem piše «Ponovno snimanje» ili slično, što mi omogućuje da snimim novo snimanje bez da moram napustiti i ponovo ući. To je malo programskog projekta, nikada nisam ništa programirao u GNOME okviru, tako da očito moram puno naučiti prije nego što pošaljem svoju "zakrpu" s novim gumbom, ali usput učim programirati i uz malo sreće jest svojstvo pomoći će više od jednog kad bude dostupan svima.

      Ovo je primjer, to je nešto jednostavno i to bi sigurno mogao učiniti bilo koji drugi "stručni" programer, ali zbog očitog nedostatka vremena to nije bilo tako, sada sam ja taj koji ima mogućnost učiniti to, a da zapravo niste super programer.

      Sada je samo na vama da pronađete nešto što bi vam život učinilo "jednostavnijim" u tom softveru koji tako često upotrebljavate, ljepota toga je u tome što ako slijedimo savjete koje ću vam dati u sljedećim člancima, jezik neće biti važan, jer Oni će znati osnove kako bi počeli razumjeti kôd koji čitaju i mijenjati ga tako da radi ono što želite, to je vrlo poseban osjećaj 🙂

      Pozdrav i još jednom hvala

      1.    niko dijo

        Mislim da je najjednostavnije samo jednom kad otvorim program za hvatanje gnomea otići do tipkovničkih prečaca i dodijeliti tri kombinacije print za snimanje svih alt-print za snimanje aktivnog prozora i super-print za odabir iz regija za hvatanje, dostupni su prečaci ovdje, jednostavno je pitanje njihova dodjeljivanja

        1.    ChrisADR dijo

          Zato vam dajemo primjer 🙂 jer male stvari poput tog gumba programiraju, nekima mogu pomoći jer drugima mogu proći nezapaženo, ali zasigurno ispunjavaju glavni cilj, pomažu naučiti programirati i ustupaju mjesto novim značajkama, Nakon tog gumba mogu se pokrenuti mnoge stvari, poput upravljanja sjednicama ili zaslona za pregled svih snimljenih fotografija, ili ukratko, puno stvari koje se mogu učiniti. Ideja je da pronađete nešto zbog čega ćete znatiželju znati, bilo koji softver koji radi na vašem sustavu možda će trebati poboljšanja ili nove značajke koje zbog nedostatka vremena ili osoblja još nisu implementirane 🙂

      2.    mvr1981 dijo

        Zahvaljujući tebi. su vrlo dobri odgovori.

    2.    Guillermo dijo

      Pa, nekome tko neće biti profesionalac na tom području, bilo bi potrebno vidjeti u kojem okruženju rade, kako za administrativne zadatke, tako i za direktive može biti zanimljivo znati, na primjer, Python / Basic i znati programirati makronaredbe u uredskim paketima kao što su LibreOffice ili MS Office. Postoje slučajevi kada ovo može uštedjeti mnogo sati rada za vas ili druge radnike koji vas okružuju i zatražiti od njih da izvrše bilo koji ponovljeni zadatak, možete stvoriti nadzornu ploču za brzi izračun glavnih omjera tvrtke nakon povezivanja s bazom podataka i izvedite neki SQL upit.
      Kao i sve, ako znate alate nadohvat ruke, možete razmisliti kako izvući maksimum iz njega. Nije sve izmišljeno.

  7.   Marcelo dijo

    Guillermo, potpuno se slažem s tobom, "Nije sve izmišljeno" i ono što je izmišljeno može se mijenjati. Alate morate iskoristiti maksimalno i koristiti onaj koji najbolje odgovara vašim potrebama.

  8.   Ricardo dijo

    Za programiranje, prvi jezik koji se uči je engleski, zatim onaj koji ih najviše privlači i čini im se najljepšim.

    1.    ChrisADR dijo

      Nisam to napisao, ali istina je 🙂 poznavanje engleskog puno pomaže jer je većina jezika napisana na njemu, ali i zato što je veća količina informacija iz prve ruke također veliko hvala na dijeljenju

  9.   Ruben salgado dijo

    Izvrstan članak, osim što motivira.

    1.    ChrisADR dijo

      Vrlo ljubazno, puno vam hvala 🙂 Pozdrav

  10.   Gonzalo martinez dijo

    Programiranje je znanje rasuđivanja i prevođenje tog obrazloženja u upute.

    Dva pojašnjenja o članku:

    1) Na temelju mog iskustva kao učitelja programiranja od gotovo 10 godina, nije važno s kojim jezikom učite, već kako učite i koliko je složen.

    Mislim da je jezik koji se može naučiti na strukturiran način, a zatim prijeći na druge složenije stvari, lakše nego započeti s jezikom poput Jave od početka.

    Lakše je naučiti nešto poput Hello World u C-u ili Pascal-u kao osnovu, nego s nekoliko redaka (PROGRAM u slučaju Pascal-a ili #include U slučaju C) možete početi razvijati algoritam i izravno kodirati program s njegovom logikom, kao u Javi, koja sama po sebi treba klasu, metodu i neke druge stvari koje su za početnike preopterećenje informacijama nepotrebne, a to se može zanemariti i prijeći na druge stvari, ali to su pojmovi koji postoje, i po mom mišljenju, previdjeti stvari nije dobar način za učenje, pogotovo ako vas jezik prisiljava da ih koristite. To je kao da prvi put započnete vježbanje cilja s M-16 i pucate mjesecima u poluautomatskom načinu držeći dršku objema rukama poput pištolja.

    2) Hoće li se jezik tumačiti ili kompajlirati ovisi o njegovoj provedbi, a ne o samom jeziku. Na primjer, ako se koristi Python, za web aplikaciju koja koristi wsgi (ili mod_wsgi u apacheu, ili uwsgi za Nginx), python kôd se kompajlira prilikom pokretanja odgovarajućeg modula, generirajući .pyc datoteke

    Postoje i binarni generatori datoteka za javu (koji generiraju izvorne binarne datoteke umjesto bajt-koda) ili kompajleri php skripti u čistim binarnim datotekama.

    Što se tiče onoga što kažu o PHP-u, to je jednostavno jezik osmišljen u drugoj eri, imajući na umu druge stvari, i bez razmatranja aspekata koji u to vrijeme nisu postojali. Jasno je da činjenica da se najviše koristi ne čini ga najboljim za bilo što na svijetu, ali postoji stvarnost: to je jezik s kojim postoje najveće šanse za posao u svim programima. Znajući da ne boli, čak i ako vam se ne sviđa.

    Čak sam i nekoliko godina radio kao administrator sustava i napustio posao programera, svako toliko moram PHP kôd staviti u nešto.

    1.    ChrisADR dijo

      Pozdrav Gonzalo, hvala na dijeljenju,

      Svakako govoreći o nepotrebnim preopterećenjima informacijama, znati da se isti jezik može protumačiti ili kompilirati nešto je što u ovoj fazi nije potrebno 🙂 Svakako je implementacija važna, ali ako to kažemo na ovoj razini, ne stvaramo više od zabune. Na isti se način ne rješavaju objektno orijentirana programiranja ili drugi pojmovi koji se moraju postupno dozirati kako se ljudima ne bi zavrtjelo u glavi.

      Budući da je prostor ograničen, glavni cilj posta je pokazati čitateljima koji žele programirati da postoje dva velika svijeta jezika, da su "tradicionalno" protumačeni "jednostavniji", da su "tradicionalno" sastavljeni malo više "složen", ali da vrijedi imati tu razinu složenosti da bismo imali čvršće razumijevanje i da je na svakoj osobi da odabere jezik, jer će, ovisno o programskom pristupu, moći odabrati svoje omiljene projekte i na istovremeno će moći razumjeti što čitaju i / ili pišu 🙂

      Još jednom puno hvala, pozdrav.

      1.    Gonzalo martinez dijo

        To je pogreška, ne postoje prevedeni ili protumačeni jezici, postoje tumači i prevoditelji za svaki jezik, oba za različite slučajeve.

        Nije to preopterećenost informacijama spomenuti sada, pogrešno je dati takvu izjavu. Po mom mišljenju, bilo bi produktivnije ignorirati prevoditelje da se ne želite preopteretiti informacijama.

        1.    ChrisADR dijo

          Hvala na pojašnjenju, uzet ću ga u obzir kad se vratim na temu. Živjeli

  11.   Ares dijo

    Koji jezik preporučujete za poslužiteljsku stranicu s obzirom na to da je php pao u nemilost?
    Isto za baze podataka, ne znam hoće li postojati nešto bolje i modernije od mySQL-a.

    1.    ChrisADR dijo

      PHP nije pao u nemilost ... Svaki jezik ima svoj životni ciklus, a php je sigurno već jezik koji ulazi u ljestvicu "zrelih", što ga čini korisnim na poslovnoj razini, gdje je stabilnost prije svega ... Poput nekih banaka u kojima je još uvijek razvijen u javi, koja je "zrelija" od php-a i sigurno ima svoje sljedbenike i klevetnike ... A o COBOL-u da i ne govorimo ...

      Ako je ono što tražite ujednačenost i modernost, javascript postaje jedan od omiljenih takozvanih "full stack programera", iako su rubin paradigma ili "jednostavnost" pythona također dobre reference ... Čak bi i perl mogao biti opcija, ovisno o potrebama 🙂

      U današnje vrijeme ORM (objektni relacijski maperi) dobiva veliku snagu u smislu upravljanja relacijskim podacima. Prelazi iz SQL sintakse u obradu klase i atributa ... Gotovo svi jezici (ako ne i svi) obrađuju neki ORM.

      . Mongo DB alternativa je relacijskim bazama podataka koja je postala prilično važna, no potrebno je znati njene prednosti i nedostatke i provjeriti je li to najbolje rješenje ovisno o specifičnoj potrebi.

      Nadam se da će vam pomoći, pozdrav 🙂

      1.    Ares dijo

        Hvala, provjerit ću to.

      2.    Ares dijo

        Zaboravio sam.

        Što mi preporučujete za rad s JAVA-om u Linuxu?
        Ako bolje razlikujete besplatno i zatvoreno.

        1.    ChrisADR dijo

          Eclipse i NetBeans su otvoreni izvor, nisam siguran postoji li neki koji je potpuno besplatan softver, imam naviku koristiti vim jer ponekad količina koda čini korištenje cijelog IDE-a sporim i sklonim pogreškama u izvršenju. Pozdrav 🙂

        2.    paulzeta dijo

          Za rad s javom u Linuxu koristim IntelliJ, preporučujem vam.

          1.    ChrisADR dijo

            PS, IntelliJ je vlasnički softver 🙂

  12.   je dijo

    Dečki se također sjećaju da ... Radim u banci i kažem vam da programski jezici odlaze na drugo mjesto kako bi SQL i Pohranjeni postupci bili prvi.

    1.    Gonzalo martinez dijo

      Morate ih uzeti u obzir pohranjene procedure, ali ako se ne koristi prijenosni jezik između motora, barem prema mom iskustvu, uvijek se radi o njihovom izbjegavanju, osim ako nema druge mogućnosti.