Jedan jezik da vlada njima svima

Skriven ispod sloja koda, jezik vene, žudeći za učenjem.

Jedan jezik da vlada njima svima

U trenutku pisanja ovog teksta, upit "programiranje jezika koji treba prvo naučiti" vraća 517 miliona rezultata pretraživanja. Svaka od ovih stranica će hvaliti jedan određeni jezik, a 90% njih će na kraju preporučiti Python ili JavaScript.

Bez daljeg odlaganja, želio bih službeno izjaviti da je svih ovih 517 miliona web stranica pogrešnih i da je jezik koji biste trebali prvo naučiti fundamentalna logika.

Nije dovoljno samo znati kodirati. Tržište je toliko zasićeno diplomcima instituta i kurseva da je pozicija juniora praktično prestala da postoji*. Da biste uspjeli u današnjem svijetu, morate i kodirati i imati napredno osnovno logičko razmišljanje.

*u daljem tekstu, imajte na umu da je ovo prevod, a situacija na tržištu rada za autora iu vašoj zemlji može biti drugačija (kao i druge nijanse), što, međutim, samo po sebi ne pogoršava originalni članak - cca. prevod

Moja prva lekcija informatike

Moj prvi uvod u informatiku bio je izborni predmet koji sam pohađao u 10. razredu. Već prvog dana, ušavši u učionicu, s oduševljenjem sam ugledao ispred sebe veliki broj kanti sladoleda i raznih preliva. Nakon što su svi sjeli, učiteljica je rekla:

“Danas ćemo degustirati sladolede koji se sami pripremaju. Ali uz jedan uslov: morate napraviti listu konkretnih uputstava kako pripremiti desert, a ja ću ih slijediti."

"Nema problema", pomislio sam, "ova lekcija neće trajati dugo." U roku od minut-dva zabilježila sam savršeni recept za sladoled iz snova:

  1. Izvadite i stavite tri kuglice sladoleda od malina u činiju
  2. Otvorite čokoladni sos i dodajte dve kašike u istu posudu
  3. Dodajte šlag u činiju
  4. Sve to pospite štapićima šećera i na vrh stavite višnje

Moj učitelj — „kompjuter“ u toj slatkoj metafori — izveo je sarkastičniju, doslovniju predstavu nego što sam ikada ranije video. Počela je revnosno bockati kantu za sladoled kuglicom, a da nije ni dodirnula poklopac.

„Dobro, dobro, ali prvo ga trebaš otvoriti!“ - uzviknula sam, pokušavajući da dobijem poslasticu što je pre moguće.

“Nisi ovo napisala u uputstvima, a ja ti nisam mogao napraviti sladoled. SLJEDEĆI!"

Pređimo naprijed do pokušaja #2

  1. Otvorite sladoled od malina skidanjem poklopca
  2. Izvadite i stavite tri kuglice sladoleda od malina u činiju
  3. Otvorite čokoladni sos i dodajte dve kašike u istu posudu
  4. Dodajte šlag u činiju
  5. Sve to pospite štapićima šećera i na vrh stavite trešnju

E, sad definitivno ne bi trebalo biti nikakvih problema. Za svaki slučaj sam se pobrinuo da svi sastojci za pravljenje mog kulinarskog remek-djela budu otvoreni.

Učiteljica je skinula poklopac, izvadila i stavila tri kuglice sladoleda u činiju. “Konačno, moj prelijepi sladoled je počeo da se ostvaruje!” Zatim je otvorila čokoladni sos i dodala dve supene kašike u činiju. Nije "dodala čokoladni sos od dve kašike" - ne mislite tako - ona je, naravno, same kašike stavila u činiju. Nema sosa u njima. Opet, nisam se trudio da sve tačno zapišem. Nakon što je ostalo obavljeno u istom duhu, dobio sam zdjelu sladoleda i dvije supene kašike, jedva primetne pod morem šlaga. Na vrhu je bio par štapića šećera.

Čini se da mi je u ovom trenutku konačno sinulo: kompjuter je logika u vakuumu. On nije svjestan okolnih okolnosti i ne pravi nikakve pretpostavke. On izvršava samo jasno formulisana uputstva i sledi ih od reči do reči.

Moj konačni rezultat bio je rezultat dugog, ali neophodnog niza pokušaja i grešaka:

  1. Ako to već niste učinili, otvorite svako od sljedećih pakovanja: sladoled od malina, čokoladni sos, šlag, šećerni štapići.
  2. Izvadite činiju i stavite je ispred sebe
  3. Uzmite kuglicu sladoleda i stavite tri kuglice sladoleda od malina jednu po jednu u činiju. Vratite kuglicu sladoleda na mjesto.
  4. Uzmite teglu čokoladnog sosa, zahvatite sos i sipajte sadržaj jedne kašike u činiju. Ponovite proces hvatanja i sijanja još jednom. Vratite kašiku i teglu na mesto.
  5. Okrenite pakovanje šlaga naopako i držeći ga iznad posude prelijte preko sladoleda 3 sekunde, a zatim vratite pakovanje na svoje mesto.
  6. Uzmite teglu štapića šećera, sipajte četrdesetak štapića u činiju i vratite teglu nazad.
  7. Uzmite jednu trešnju iz posude sa višnjama i stavite je na sladoled.
  8. Dajte učeniku činiju sa gotovim sladoledom i kašiku.

Posljednja tačka je bila posebno važna, jer je bez nje učitelj pretposljednji put jednostavno počeo jesti moj sladoled.

Ali ovo je programiranje. Stres kreiranja pažljivog skupa instrukcija za računar. U suštini, svaki programski jezik se svodi na to - pisanje instrukcija.

Karijera u programiranju

Programiranje je dostiglo tačku u kojoj je teško raspravljati o jednoj industriji, kao što je teško koristiti jednu riječ „programer“ kao opis posla. Dva programera mogu biti podjednako tražena na tržištu, koji znaju potpuno različite jezike, što znači da je sposobnost razvoja važnija od znanja određenog jezika. Univerzalni atribut koji dijele svi uspješni programeri je fundamentalna logika.

Najbolji programer je onaj koji je u stanju da pogleda kod iz novog ugla. A ovo je fundamentalno važno, jer većina softverskih proizvoda je zbirka nedokumentiranih fragmenata lošeg koda. Stalno ih treba spajati, popunjavajući praznine po potrebi. Ljudi koji nisu u stanju da povežu različite tačke jednom linijom moraće zauvek biti po strani.

Sve me ovo dovodi do još jedne deklaracije, ovoga puta podebljane: fundamentalno znanje je uvek bilo i biće najvažnije za programera.

Jezici dolaze i odlaze. Okviri postaju zastarjeli, a kompanije odgovaraju na potražnju promjenom tehnologije koju koriste. Postoji li jedna stvar koja se nikada neće promijeniti? Da – fundamentalno znanje, koje se naziva fundamentalnim jer je u osnovi svega!

Kako poboljšati osnovno znanje

Jedan jezik da vlada njima svimaFotografija Christophera Jeschke na Unsplash

Ako tražite početnu tačku za poboljšanje svog temeljnog logičkog razmišljanja, pokušajte započeti ovdje:

Znajte složenost vašeg programa

Također se zove Big O “složenost algoritma” se odnosi na ovisnost vremena potrebnog za izvršavanje programa od veličine njegovih ulaznih podataka (n). Važan korak je držanje prsta na pulsu algoritama koji se koriste.

Upoznajte svoje strukture podataka

Strukture podataka su u srcu svakog modernog programa. Znati koju strukturu koristiti u kom slučaju je disciplina za sebe. Strukture podataka su direktno povezane sa složenošću vremena izvršavanja, a odabir pogrešne strukture može dovesti do fundamentalnih problema u performansama. Pronalaženje elementa u nizu je O (n), što ukazuje na visoku cijenu korištenja nizova kao ulaznih podataka. Traženje hash tablice − O (1), što znači da u ovom slučaju vrijeme traženja vrijednosti ne ovisi o broju elemenata.

Ljudi su dolazili kod mene na intervju i tvrdili da je pretraživanje niza brže od pretraživanja kroz hash tablicu. Ovo je bio najsigurniji znak da ih ne biste trebali zaposliti – poznajte svoje strukture podataka.

Čitajte / gledajte / slušajte

Web lokacije poput UdemyPluralsight и CodeAcademy - Odličan izbor za učenje novih programskih jezika. Ali za osnove, konsultujte knjige o opštim principima, praksama i stilovima kodiranja. Najpreporučljivije knjige su “Obrasci dizajna”, “Refaktoring. Poboljšanje postojećeg koda", "Savršeni kod", "Čist kod" i "Pragmatistički programer". Konačno, svaki programer bi trebao zadržati kopiju "Algoritmi" pri ruci.

Vježbajte!

Ne možete kuvati kajganu a da ne razbijete jaja. Sajtovi poput HackerRankCodeWarsCoderByte, TopCoder и LeetCode ponudite hiljade zanimljivih zagonetki za testiranje vašeg znanja o strukturama podataka i algoritmima. Okušajte sreću u rješavanju problema koji vam se sviđa, objavite svoje rješenje na Github-u, a zatim pogledajte kako su mu drugi pristupili. Što nas dovodi do poslednje tačke:

Pročitajte kod drugih ljudi

Najveća greška koju možete napraviti kada idete razvojnim putem je da idete sami. Razvoj softvera je uglavnom timski rad. Zajedno stvaramo standarde, zajedno griješimo i, uprkos svim neuspjesima, zajedno postajemo bolji. Vrijeme provedeno u čitanju koda drugih ljudi će se lijepo isplatiti. Samo se uvjerite da je dobar kod.

Pa, najbolji savjet koji mogu dati je da se nikada ne stidite što još nešto ne znate. Kao što je već rečeno, naša industrija je ogromna i količina tehnologije je beskrajna. Potrebno je mnogo vremena i truda da se izgradi sveukupna slika, još više da postanete profesionalac u nečemu specifičnom, i red veličine više da biste usavršili svoje veštine u svom polju. Obavijestit ću vas kada to lično postignem.

izvor: www.habr.com

Dodajte komentar