Pas një shtrese kodi, ekziston një gjuhë që dëshiron të mësohet.

Në momentin e shkruajtjes së këtij artikulli, kërkesa "cilën gjuhë programimi të studioj së pari" rezulton me 517 milionë kërkime. Çdo një prej këtyre faqeve do të rekomandojë një gjuhë të caktuar, dhe 90% e tyre, në fund, do t'i rekomandojnë Python ose JavaScript.
Pa shumë parathënie, do të doja të shpallja zyrtarisht se të gjitha këto 517 milionë faqe janë të gabuara dhe të deklaroj se gjuha që duhet të studiohet e para është logjika themelore.
Thjesht të dish si të kodosh nuk është më e mjaftueshme. Tregu është kaq i mbushur me të diplomuar nga universitetet dhe kurset, saqë pozita e juniorit praktikisht ka ndaluar së ekzistuari*. Për të arritur sukses në botën e sotme, ju duhet të kodoni dhe të keni një mendje logjike themelore të avancuar.
* këtu dhe më tej, ju lutemi mbani mend se kjo është përkthim, dhe situata në tregun e punës për autorin dhe në vendin tuaj mund të jetë e ndryshme (si dhe nuanca të tjera), që, megjithatë, vetvetiu nuk e bën artikullin origjinal më pak të vlefshëm — shën. përkth.
Mësimi im i parë i informatikës
Takimi im me informatikën ishte një kurs zgjedhor që ndoqa në klasën e 10-të. Në ditën e parë, sapo hyra në klasë, u mahnita kur pashë para vetes shumë kovë akulli dhe toppingje të ndryshme. Pasi të gjithë u ulën, mësuesja shpalli:
«Sot ne do të provojmë akulloret e përgatitura nga vetë ju. Por me një kush: ju duhet të bëni një listë të udhëzimeve specifike për përgatitjen e këtij ëmbëlsire dhe unë do t'i ndjek ato»
«Pa problem, - mendova, - ky mësim nuk do të zgjasë shumë». Diku pas një minute, unë hodha poshtë një recetë të shkëlqyer për akulloren e ëndrrave të mia:
- Merre dhe vendos tri topa akulloreje me malina në një tas
- Hap sosin e çokollatës dhe shto dy lugë gjelle në këtë tas
- Shto krem kaçkavall në tas
- Plasni gjithçka me shkopinj sheqeri dhe vendosni një kumbull sipër
Mësuesja ime – «kompjuteri» në këtë metaforë e dha një interpretim më sarkastik se çdoherë tjetër, duke goditur me pasion kovën e akullores me lugën për topa, pa e prekë as kapakun.
«Mirë, mirë, por së pari duhet ta hapim!» — thashë, duke përpiqur të marr ndihmën sa më shpejt.
«Nuk e ke shkruar këtë në udhëzime, prandaj nuk munda të të përgatis akullore. TË PRISHA!»
Të kalojmë kohën deri në përpjekjen e dytë
- Hap akulloren me frutin e malin, duke hequr kapakun
- Merre dhe vendos tri topa akulloreje me malina në një tas
- Hap sosin e çokollatës dhe shto dy lugë gjelle në këtë tas
- Shto krem kaçkavall në tas
- Spërkat gjithçka me karamele dhe vendos një qëll në krye
Tani s'ka pasur problem. Madje kontrollova që të gjithë përbërësit për të përgatitur kryeveprën time janë hapur.
Mësuesja heq kapakun, merr dhe vendos tre topa akullore në tas. «Më në fund, mbushja ime e bukur nisi të përjetohet në realitet!» Pastaj hapi salcën e çokollatës dhe shtoi dy lugë në tas. Jo «shtoi salcën e çokollatës nga dy lugë» — mos mendoni kështu — ajo, sigurisht, vendosi në tas vetë lugët. Pa salcë në to. Përsëri nuk u kujdesa të shkruaj gjithçka saktë. Pasuar nga pjesa tjetër në të njëjtin frymë, mora një tas me akullore dhe dy lugë, hardly e dukshme nën detin e kremit të rrahur. Në krye kishte disa karamele.
Më duket se në këtë moment më erdhi në mendje: kompjuteri — logjikë në vakuum. Ai nuk e di për rrethanat përreth dhe nuk bën supozime. Ai vepron vetëm sipas udhëzimeve të formulua qartë dhe i ndjek ato pa ndryshuar asgjë.
Rezultati im përfundimtar ishte një përfundim i një serie të gjatë, por të nevojshme provash dhe gabimesh:
- Hap, nëse nuk e ke bërë tashmë, çdo një nga paketat e mëposhtme: akullore në malinë, salcë çokollate, krem dhe shtiza sheqeri.
- Merr një tas dhe vendose përpara teje.
- Merr një lugë akulloreje dhe një pas një vendos tri topa akulloreje me malina në tas. Vendos lugën e akulloreve përsëri në vendin e saj.
- Merr një goxha me salcën çokollate, qit pak në tas, duke e derdhur përmbajtjen e një lugë gjelle. Përsërit këtë veprim me hedhjen dhe derdhjen e salcës dhe një herë tjetër. Vendos lugën dhe bankën në vend.
- Merr dhe ktheje përmbys paketimin e kremit dhe, duke e mbajtur mbi tas, derdh për tri sekonda mbi akulloren, pastaj kthe paketimin në vend.
- Merr një bankë me shtiza sheqeri, hidh rreth dyzet shtiza në tas dhe vendos bankën në vend.
- Merrni një han i vetëm nga tashti i qershive dhe vendoseni sipër akullores.
- I jepni nxënësit tasin me akullore të gatshme dhe një lugë.
Pika e fundit ishte veçanërisht e rëndësishme, sepse pa të, herën e parafundit mësuesja thjesht filloi të hajë akulloren time.
Por kjo është programimi. Një proces i tensionuar i krijimit të një seti të kujdesshëm të udhëzimeve për kompjuterin. Në thelb, kjo është ajo që përfaqëson çdo gjuhë programimi — krijimi i udhëzimeve.
Karriera në programim
Programimi ka arritur në një pikë ku është e vështirë ta diskutosh si një industri të vetme, ashtu siç është e vështirë të përdorësh një fjalë të vetme «programues» si përshkrim të një posti. Dy zhvillues mund të jenë njësoj të kërkuar nga tregu, duke njohur gjuhë krejtësisht të ndryshme, dhe kjo do të thotë se aftësia për të zhvilluar është më e rëndësishme se njohja e një gjuhë të caktuar. Një atribut universal që i përket të gjithë zhvilluesve të suksesshëm është — logjika themelore.
Programatori më i mirë është ai që është në gjendje të shikojë kodin nga një këndvështrim të ri. Kjo është thelbësore, sepse shumica e produkteve softuerike janë një grup copëzash të keqkoduar pa dokumentacion. Ato duhet vazhdimisht të mblidhen së bashku, duke mbuluar boshllëqet sipas nevojës. Njerëzit që nuk janë në gjendje të lidhin pikat e ndara me një linjë të vetme do të mbeten gjithmonë në plan të dytë.
Kjo më sjell në një tjetër deklaratë, këtë herë me shkronja të mëdha: njohuritë themelore gjithmonë kanë qenë dhe do të jenë të rëndësishme për programatorin.
Gjuhët vijnë dhe ikin. Kornizat ndodhin të jenë të vjetra, dhe kompanitë reagojnë ndaj kërkesës duke ndryshuar grumbullin e teknologjive të përdorura. A ka ndonjë gjë që nuk do të ndryshojë kurrë? Po — njohuritë themelore, të cilat quhen pikërisht kështu, sepse janë në bazë të gjithçkaje!
Si të përmirësojmë njohuritë themelore
Foto e Kristofrit në
Nëse po kërkoni një pikënisje për të përmirësuar mendimin logjik themelor, provoni të filloni nga këtu:
Njihni kompleksitetin e programit tuaj
I njohur gjithashtu si Big O «kompleksiteti i algoritmit» i referohet varësisë së kohës së përfundimit të programit nga madhësia e të dhënave të tij hyrëse. (n). Të kesh dorën mbi pulsin e algoritmeve të përdorura është një hap i rëndësishëm.
Njoh struktura të dhënash
Strukturat e të dhënave janë në themel të çdo programi modern. Të dish se cila strukturë të përdorësh në cilin rast është një disiplinë e vetme. 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 se përdorimi i array-ve si të dhëna hyrëse është i shtrenjtë. Kërkimi në një tabelë hash është O(1), pra, në këtë rast, koha e kërkimit të vlerës nuk varet nga numri i elementeve.
Një person në intervistë më tha se është më shpejt të kërkosh në një array sesa në një tabelë hash. Kjo ishte një shenjë e qartë që nuk duhet ta punësoja — njoh strukturat e tua të dhënash.
Lexo / shiko / dëgjo
Faqet si , dhe — zgjedhje e shkëlqyer për të mësuar gjuhë të reja programimi. Por për bazat, konsultohuni me libra mbi parimet, praktikat dhe stilet e kodimit. Librat më të rekomanduar janë "Modelet e Projektimit", "Rifaktorizimi. Përmirësimi i kodit ekzistues", "Kodi i Përsosur", "Kodi i Pastër" dhe "Programi Pragmatik". Së fundi, çdo zhvillues duhet të ketë një kopje të "" pranë.
Ushtrohu!
Nuk mund të bësh vezë të skuqura pa i thyer ato. Sites si , , , dhe ofrojnë mijëra detyra interesante për të testuar njohuritë mbi strukturat e të dhënave dhe algoritmet. Provoni fatin tuaj duke zgjidhur një problem të tërhequr, ngarko variantin tuaj në Github, dhe më pas shihni se si e kanë zgjidhur të tjerët. Çka na çon te pika fundit:
Lexoni kodin e të tjerëve
Gabimi më i madh që mund të bëni në rrugën e zhvillimit është ta zhvilloni këtë rrugë vetëm. Zhvillimi i softuerit është kryesisht një punë ekipore. Ne krijojmë standarde së bashku, bëjmë gabime së bashku dhe, pavarësisht dështimeve, bëhemi më të mirë së bashku. Koha e investuar në leximin e kodit të tjerë do të shpërblehet shumëfish. Vetëm sigurohuni që ky kod të jetë i mirë.
Këshilla më e mirë që mund t'ju jap është të mos turpëroheni kurrë për atë që nuk e dini ende. Siç u tha, industria jonë është shumë e madhe dhe numri i teknologjive është i pafund. Kërkon 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 specifike, dhe shumë më tepër për të përmirësuar mjeshtërinë tuaj në fushën tuaj. Do t'ju informoj nëse arrihet këtë.
Burimi: habr.com
