Një gjuhë për t'u menaxhuar të gjitha

Nën një shtresë kodi fshihet një gjuhë, e cila pret të mësohet.

Një gjuhë për t'u menaxhuar të gjitha

NĂ« momentin kur po shkruaja kĂ«tĂ« artikull, kĂ«rkimi "cila gjuhĂ« programimi tĂ« studiohet e para" jep 517 milion rezultate. Çdo nga kĂ«to faqe do tĂ« mbĂ«shtesĂ« njĂ« gjuhĂ« tĂ« caktuar, dhe 90% e tyre, pĂ«rfundimisht, do tĂ« rekomandojnĂ« Python ose JavaScript.

Pa shumë hyrje, do të doja të shpallja zyrtarisht se të gjitha këto 517 milion faqe janë gabim dhe të deklaroj se gjuha që duhen studiuar e para është logjika themelore.

Thjesht të dish si të kodosh nuk është e mjaftueshme. Tregu është kaq i mbushur me të diplomuar nga universitetet dhe kurset, sa pozita e juniorit praktikisht ka pushuar së ekzistuari*. Për të pasur sukses në botën e sotme, ju duhet të kodoni dhe të keni një mendim të avancuar logjik themelor.

* kĂ«tu dhe mĂ« tutje, ju lutem, mbani mend se ky Ă«shtĂ« njĂ« pĂ«rkthim dhe situata nĂ« tregun e punĂ«s pĂ«r autorin dhe nĂ« vendin tuaj mund tĂ« jetĂ« ndryshe (ashtu si dhe nuanca tĂ« tjera), por kjo vetĂ« nuk e bĂ«n artikullin origjinal mĂ« tĂ« keq — shĂ«nim pĂ«rkthimi.

Mësimi im i parë i informatikës

Takimi im i parë me informatiken ishte një kurs opsional që mora në klasën e 10-të. Në ditën e parë, sapo hyra në klasë, u mahnita kur pashë një sasi të madhe shandanesh akulli dhe përbërësish të ndryshëm. Pas çdo personi u ul, mësuesja shpalli:

«Sot do të degustojmë veshkat e akullit të bërë nga vetë. Por me një kusht: ju duhet të përgatisni një listë të udhëzimesh të sakta se si të përgatisni ëmbëlsirën, dhe unë do t'i ndjek ato»

«Pa problem, — mendova unĂ«, — ky mĂ«sim nuk do tĂ« zgjasĂ« shumë». Diku pas njĂ« minute, unĂ« pĂ«rgatita njĂ« recetĂ« tĂ« shkĂ«lqyer pĂ«r akullorin e Ă«ndrrave tĂ« mia:

  1. Merrni dhe vendosni tre topa akulli me përzierje frutash në një tas.
  2. Hapni salcën e çokollatës dhe shtoni dy lugë gjelle në të njëjtin tas.
  3. Shtoni krem të rrahur në tas.
  4. Shtoni gjithçka me shkopinj sheqeri dhe vendosni një qershi sipër.

MĂ«suesja ime — "kompjuteri" nĂ« kĂ«tĂ« metaforĂ« tĂ« bukur — bĂ«ri njĂ« performancĂ« mĂ« sarcastike sesa kam parĂ« ndonjĂ«herĂ«. Ajo filloi tĂ« gĂ«rvishtte me njĂ« lugĂ« akullin nĂ« shandanin, pa prekur fare kapakun.

«MirĂ«, mirĂ«, por sĂ« pari duhet ta hapĂ«sh!» — thashĂ«, duke u pĂ«rpjekur tĂ« marr shijimin sa mĂ« shpejt.

«Nuk e theve kĂ«tĂ« nĂ« udhĂ«zim, dhe unĂ« nuk arrita tĂ« gatuaja akullore pĂ«r ty. TË TJERAT!»

Le tĂ« kalojmĂ« kohĂ«n deri nĂ« pĂ«rpjekjen e №2

  1. Hap akulloren me mjedra duke hequr kapakun
  2. Merrni dhe vendosni tre topa akulli me përzierje frutash në një tas.
  3. Hapni salcën e çokollatës dhe shtoni dy lugë gjelle në të njëjtin tas.
  4. Shtoni krem të rrahur në tas.
  5. Shtoni të gjitha këto me shkopinj sheqeri dhe vendosni një qershi sipër

Tani nuk duhet të ketë probleme. Madje kontrollova që të gjithë përbërësit për të përgatitur kryeveprën time kulinare ishin të hapur.

MĂ«suesja hoqi kapakun, mori dhe vendosi tre topa akullore nĂ« tas. «P finally ĐŽĐ°Đœ «mendova» qĂ« akullorja ime e mrekullueshme filloi tĂ« realizohej nĂ« realitet!» Ajo hapi salcĂ«n e çokollatĂ«s dhe shtoi dy lugĂ« nĂ« tas. PavarĂ«sisht nga «shtimi i salcĂ«s sĂ« çokollatĂ«s me dy lugë» - mos e mendoni - ajo, sigurisht, vendosi vetĂ« lugĂ«t nĂ« tas. Pa salcĂ« nĂ« to. Edhe njĂ« herĂ« nuk arrita t'ia shpjegoj gjithçka me saktĂ«si. Pas pĂ«rfundimit tĂ« gjithçkaje nĂ« tĂ« njĂ«jtĂ«n mĂ«nyrĂ«, mora njĂ« tas me akullore dhe dy lugĂ« qĂ« mezi dallohej nĂ«n detin e kremit tĂ« rrahur. NjĂ« çift shkopinj sheqeri ishin sipĂ«r.

Duket se në këtë moment më në fund më mbërriti: kompjuteri është logjikë në vakuum. Ai nuk di për rrethinat dhe nuk bën supozime. Ai ndjek vetëm udhëzimet e formulua qartë dhe vepron sipas tyre verbërisht.

Rezultati im përfundimtar ishte rezultat i një serie të gjatë, por të nevojshme provash dhe gabimesh:

  1. Hap, nëse këtë nuk e ke bërë akoma, secilën nga paketat e mëposhtme: akullorja me mjedra, salca e çokollatës, kremi i rrahur, shkopinjtë e sheqerit.
  2. Merr një tas dhe vendose përballë teje
  3. Merr një lugë akullore dhe një nga një vendos tri topa akullore me mjedra në tas. Vendos lutën për akullore në vend.
  4. Merr cans duke bërë sapo doje . Të vdes!
  5. Merr pakten kremë të rrahur dhe, duke e mbajtur mbi tas, spërkas akulloren për 3 sekonda, pas të cilave kthe pakten në vend.
  6. Merr bankën e shkopinjve të sheqerit, derdhi rreth dyzet shkopinj në tas dhe kthe bankën në vend.
  7. Merr një qershi nga bankë me qershi dhe vendos sipër akullores.
  8. Kalo nxënësit tasin me akullore të bërë dhe lugën.

Pika e fundit ishte veçanërisht e rëndësishme, pasi pa të, për herë të fundit mësuese thjesht filloi të hante akulloren time.

Por kjo Ă«shtĂ« programimi. Krijimi i tensionuar i njĂ« grumbulli tĂ« kujdesshĂ«m instruksionesh pĂ«r kompjuterin. NĂ« thelb, kjo Ă«shtĂ« ajo qĂ« pĂ«rfundon tĂ« jetĂ« çdo gjuhĂ« programimi — pĂ«rgatitja e instruksioneve.

Karrierë në programim

Programimi ka arritur nĂ« njĂ« pikĂ« kur Ă«shtĂ« e vĂ«shtirĂ« tĂ« diskutohet si njĂ« industri e vetme, ashtu si Ă«shtĂ« e vĂ«shtirĂ« tĂ« pĂ«rdoret njĂ« fjalĂ« e vetme "programer" si pĂ«rshkrim pĂ«r njĂ« pozita. Dy zhvillues mund tĂ« jenĂ« po aq tĂ« kĂ«rkuar nga tregu, duke njohur gjuhĂ« krejtĂ«sisht tĂ« ndryshme, prandaj, aftĂ«sia pĂ«r tĂ« zhvilluar Ă«shtĂ« shumĂ« mĂ« e rĂ«ndĂ«sishme se njohja e njĂ« gjuhe tĂ« veçantĂ«. Atributi universali qĂ« i pĂ«rket tĂ« gjithĂ« zhvilluesve tĂ« suksesshĂ«m Ă«shtĂ« — logjika themelore.

Programeri më i mirë është ai që mund të shohë kodin nga një këndvështrim i ri. Dhe kjo është shumë e rëndësishme, sepse shumica e produkteve software janë një grumbull i copëzave të dobëta të kodit të pa dokumentuar. Ato vazhdimisht duhet të mblidhen së bashku, duke mbushur hapësirat sipas nevojës. Njerëzit që nuk janë në gjendje të lidhnin pika të ndara me një linjë të vetme, do të mbeten përgjithmonë në rolin dytësor.

E gjitha kjo më çon në një deklaratë tjetër, këtë herë me guxim: Dijedhim e thellë gjithmonë ka qenë dhe do të jetë kryesore për një programer..

Gjuha vijnĂ« e shkojnĂ«. Kornizat bĂ«hen tĂ« vjetra, ndĂ«rsa kompanitĂ« reagojnĂ« ndaj kĂ«rkesĂ«s, duke ndryshuar grunf tĂ« teknologjive tĂ« pĂ«rdorura. A ka ndonjĂ« gjĂ« qĂ« nuk do tĂ« ndryshojĂ« kurrĂ«? Po — dijet themelore, qĂ« quhen ashtu sepse qĂ«ndrojnĂ« nĂ« themel tĂ« gjithçkaje!

Si të përmirësosh njohuritë themelore

Një gjuhë për t'u menaxhuar të gjithaFoto e Kristofrit Yeshke në Unsplash

Nëse po kërkoni një pikë fillestare për të përmirësuar mendimin tuaj logjik themelor, provoni të filloni nga këtu:

Dijedhim kompleksitetin e programës suaj

Po ashtu e quajtur Big O "kompleksitetit të algoritmit" i referohet varësisë së kohës së ekzekutimit të programës nga madhësia e të dhënave të saj hyrëse (n). Mbajtja e dorës mbi pulsin e algoritmeve të përdorura është një hap i rëndësishëm.

Dijedhim strukturat tuaja të dhënash

Strukturat e të dhënave janë themela e çdo programi modern. Të dish se cila strukturë të përdorësh në cilen rast është një disiplinë vetanake. Strukturat e të dhënave janë drejtpërdrejt të lidhura me kompleksitetin e kohës së ekzekutimit dhe zgjedhja e një strukture të gabuar mund të çojë në probleme themelore me performancën. Kërkimi i një elementi në një array është i barabartë me O(n), që tregon mbi koston e përdorimit të array-ve si të dhëna input. Kërkimi në një hash table është O(1), që do të thotë se në këtë rast, koha e kërkimit të vlerës nuk varet nga numri i elementeve.

Nell intervistat e mia, kanĂ« ardhur njerĂ«z qĂ« pretendonin se kĂ«rkimi nĂ« array Ă«shtĂ« mĂ« i shpejtĂ« se sa nĂ« hash table. Kjo ishte njĂ« shenjĂ« e qartĂ« se nuk ia vlen t'i punĂ«sosh — njoh struktura tĂ« tuat tĂ« tĂ« dhĂ«nave.

Lexo / shiko / dëgjo

Faqet si Udemy, Pluralsight dhe CodeAcademy janë një zgjedhje e shkëlqyer për mësimin e gjuhëve të reja të programimit. Por për bazat, referojuni librave mbi parimet, praktikat dhe stilin e kodimit. Librat më të rekomanduara janë "Modelet e Projektimit", "Ripopozimi. Përmirësimi i kodit ekzistues", "Kodi i Përkryer", "Kodi i Pastër" dhe "Programieri Pragmatik". Përfundimisht, çdo zhvillues duhet të ketë një kopje të "Algoritmeve" pranë tij.

Praktiko!

Nuk do të mundësh të bësh omeletë pa thyer vezët. Faqet si HackerRank, CodeWars, CoderByte, TopCoder dhe LeetCode ofrojnë mijëra probleme interesante për të testuar njohuritë mbi strukturat e të dhënave dhe algoritmet. Provoni fatin tuaj në zgjidhjen e një problemi që ju pëlqen, postoni variantin tuaj në GitHub, dhe pastaj shihni se si e kanë zgjidhur të tjerët. Kjo na çon në pikën e fundit:

Lexo kodin e të tjerëve

Gabimi më i madh që mund të bësh në rrugën e zhvillimit është ta përshkosh këtë rrugë në mënyrë të vetme. Zhvillimi i softuerit është në masë të madhe një punë ekipore. Ne krijojmë standarde së bashku, bëjmë gabime së bashku dhe, përkundër të gjitha dështimeve, bëhemi më të mirë së bashku. Koha e kaluar për të lexuar kodin e të tjerëve do t'iu japë përfitime të mëdha. Sigurohuni vetëm që të jetë kod i mirë.

Një këshill më i mirë që mund t'ju jap është që të mos ndiheni kurrë të turpëruar për atë që ende nuk e dini. Siç është thënë tashmë, industria jonë është e madhe dhe numri i teknologjive është i pafund. Duhet shumë kohë dhe përpjekje për të ndërtuar një pamje të përgjithshme, edhe më shumë për t'u bërë profesionist në diçka të caktuar, dhe shumë herë më shumë për të perfeksionuar mjeshtërinë tuaj në fushën tuaj. Do t'ju njoftoj kur të arrij këtë vetë.

Burimi: habr.com

Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS đŸ”„ Blini hosting tĂ« besueshĂ«m pĂ«r faqe interneti me mbrojtje nga DDoS, serverĂ« VPS VDS | ProHoster