Zem koda slÄÅa paslÄpta valoda nÄ«kuļo, alkstot tikt apgÅ«tai.
Å ajÄ rakstÄ«Å”anas brÄ«dÄ« vaicÄjums āprogrammÄÅ”ana, kuru valodu apgÅ«t vispirmsā atgriež 517 miljonus meklÄÅ”anas rezultÄtu. Katra no Ŕīm vietnÄm slavÄs vienu noteiktu valodu, un 90% no tÄm galu galÄ ieteiks Python vai JavaScript.
Bez turpmÄkas kavÄÅ”anÄs es vÄlos teikt, ka visas Ŕīs 517 miljoni vietÅu ir nepareizas un ka valoda, kas jums jÄiemÄcÄs vispirms, ir fundamentÄlÄ loÄ£ika.
Nepietiek tikai ar kodÄÅ”anas prasmi. Tirgus ir tik piesÄtinÄts ar institÅ«tu un kursu absolventiem, ka junioru amats praktiski vairs nepastÄv*. Lai gÅ«tu panÄkumus mÅ«sdienu pasaulÄ, jums ir gan jÄkodÄ, gan jÄbÅ«t attÄ«stÄ«tai loÄ£iskÄs domÄÅ”anas pamatprincipiem.
*turpmÄk, lÅ«dzu, atcerieties, ka Å”is ir tulkojums, un situÄcija darba tirgÅ« autoram un jÅ«su valstÄ« var atŔķirties (kÄ arÄ« citas nianses), kas tomÄr pats par sevi nepadara oriÄ£inÄlo rakstu sliktÄku - apm. tulkojums
Mana pirmÄ informÄtikas stunda
Mana pirmÄ saskarsme ar datorzinÄtnÄm bija izvÄles priekÅ”mets, kuru apguvu 10. klasÄ. Jau pirmajÄ dienÄ, ieejot klasÄ, ar prieku ieraudzÄ«ju sev priekÅ”Ä lielu skaitu saldÄjuma spaiÅu un dažÄdu piedevu. Kad visi bija apsÄduÅ”ies, skolotÄjs paziÅoja:
āÅ odien degustÄsim paÅ”u gatavotus saldÄjumus. Bet ar vienu nosacÄ«jumu: jums ir jÄizveido saraksts ar konkrÄtiem norÄdÄ«jumiem, kÄ pagatavot desertu, un es tos ievÄroÅ”u."
"Nav problÄmu," es domÄju, "Ŕī nodarbÄ«ba nebÅ«s ilga." ApmÄram minÅ«tes laikÄ es biju pierakstÄ«jusi ideÄlo savu sapÅu saldÄjuma recepti:
- Ievietojiet bļodÄ trÄ«s karotes aveÅu saldÄjuma
- Atveriet Å”okolÄdes mÄrci un pievienojiet divas Ädamkarotes tajÄ paÅ”Ä bļodÄ
- BļodÄ pievieno putukrÄjumu
- To visu pÄrkaisa ar cukura nÅ«jiÅÄm un virsÅ« liek Ä·irÅ”u
Mans skolotÄjs ā ādatorsā Å”ajÄ jaukajÄ metaforÄ ā izrÄdÄ«ja sarkastiskÄku, burtiskÄku priekÅ”nesumu, nekÄ es jebkad agrÄk nebiju redzÄjis. ViÅa sÄka dedzÄ«gi bakstÄ«t saldÄjuma spaini ar kausiÅu, pat nepieskaroties vÄkam.
"Labi, labi, bet vispirms jums tas ir jÄatver!" - es iesaucos, cenÅ”oties pÄc iespÄjas ÄtrÄk dabÅ«t cienastu.
āJÅ«s to neierakstÄ«jÄt instrukcijÄs, un es nevarÄju jums pagatavot saldÄjumu. NÄKAMAIS!"
PÄriesim uz priekÅ”u lÄ«dz 2. mÄÄ£inÄjumam
- Atveriet aveÅu saldÄjumu, noÅemot vÄku
- Ievietojiet bļodÄ trÄ«s karotes aveÅu saldÄjuma
- Atveriet Å”okolÄdes mÄrci un pievienojiet divas Ädamkarotes tajÄ paÅ”Ä bļodÄ
- BļodÄ pievieno putukrÄjumu
- To visu pÄrkaisa ar cukura standziÅÄm un virsÅ« liek Ä·irÅ”u
Nu, tagad noteikti nevajadzÄtu bÅ«t nekÄdÄm problÄmÄm. Katram gadÄ«jumam pÄrliecinÄjos, ka visas sastÄvdaļas mana kulinÄrijas Å”edevra pagatavoÅ”anai ir atvÄrtas.
SkolotÄja noÅÄma vÄku, izmeta un ielika bļodÄ trÄ«s kausiÅas saldÄjuma. "Beidzot mans skaistais saldÄjums ir sÄcis piepildÄ«ties!" PÄc tam viÅa atvÄra Å”okolÄdes mÄrci un pievienoja bļodÄ divas Ädamkarotes. ViÅa ānepievienoja Å”okolÄdes mÄrci no divÄm ÄdamkarotÄmā - nedomÄjiet - viÅa, protams, ielika bļodÄ paÅ”as karotes. Tajos nav mÄrces. Es atkal neuztraucos visu precÄ«zi pierakstÄ«t. PÄc tam, kad pÄrÄjais bija izdarÄ«ts tÄdÄ paÅ”Ä garÄ, es saÅÄmu bļodu ar saldÄjumu un divas Ädamkarotes, tikko manÄmi zem putukrÄjuma jÅ«ras. Pa virsu bija pÄris cukura nÅ«jiÅu.
Å Ä·iet, ka Å”ajÄ brÄ«dÄ« man beidzot atausa prÄtÄ: dators ir loÄ£ika vakuumÄ. ViÅÅ” neapzinÄs apkÄrtÄjos apstÄkļus un neizdara nekÄdus pieÅÄmumus. ViÅÅ” izpilda tikai skaidri formulÄtas instrukcijas un ievÄro tÄs vÄrdu pa vÄrdam.
Mans gala rezultÄts bija ilgas, bet nepiecieÅ”amas izmÄÄ£inÄjumu un kļūdu sÄrijas rezultÄts:
- Ja vÄl neesat to izdarÄ«jis, atveriet katru no Å”iem iepakojumiem: aveÅu saldÄjums, Å”okolÄdes mÄrce, putukrÄjums, cukura standziÅas.
- IzÅemiet bļodu un novietojiet to sev priekÅ”Ä
- PaÅemiet saldÄjuma kausiÅu un ievietojiet bļodÄ vienu pÄc otras trÄ«s karotes aveÅu saldÄjuma. Ievietojiet saldÄjuma karoti atpakaļ vietÄ.
- Å em burciÅu ar Å”okolÄdes mÄrci, mÄrci iegremdÄ un Ädamkarotes saturu lej bļodÄ. AtkÄrtojiet mÄrÄ«Å”anas un ielieÅ”anas procesu vÄl vienu reizi. Ievietojiet karoti un burku atpakaļ vietÄ.
- PaÅemiet putukrÄjuma iepakojumu otrÄdi un, turot virs bļodas, 3 sekundes pÄrlejiet ar saldÄjumu, pÄc tam atgrieziet iepakojumu savÄ vietÄ.
- PaÅemiet burciÅu ar cukura nÅ«jiÅÄm, ieberiet bļodÄ apmÄram Äetrdesmit kociÅus un ielieciet burku atpakaļ.
- IzÅemiet vienu Ä·irÅ”u no Ä·irÅ”u bļodas un novietojiet to virs saldÄjuma.
- Dodiet skolÄnam bļodu ar gatavo saldÄjumu un karoti.
PÄdÄjais punkts bija Ä«paÅ”i svarÄ«gs, jo bez tÄ priekÅ”pÄdÄjÄ reizÄ skolotÄja vienkÄrÅ”i sÄka Äst manu saldÄjumu.
Bet tÄ ir programmÄÅ”ana. Stress, ko rada rÅ«pÄ«ga datora instrukciju kopuma izveide. BÅ«tÄ«bÄ tÄ ir katra programmÄÅ”anas valoda - instrukciju rakstÄ«Å”ana.
Karjera programmÄÅ”anas jomÄ
ProgrammÄÅ”ana ir sasniegusi punktu, kad to ir grÅ«ti apspriest kÄ vienu nozari, tÄpat kÄ ir grÅ«ti izmantot vienu vÄrdu āprogrammÄtÄjsā kÄ darba aprakstu. Divi izstrÄdÄtÄji var bÅ«t vienlÄ«dz pieprasÄ«ti tirgÅ«, zinot pilnÄ«gi dažÄdas valodas, kas nozÄ«mÄ, ka spÄja attÄ«stÄ«ties ir svarÄ«gÄka par konkrÄtas valodas zinÄÅ”anÄm. UniversÄls atribÅ«ts, ko dala visi veiksmÄ«gie izstrÄdÄtÄji fundamentÄlÄ loÄ£ika.
LabÄkais programmÄtÄjs ir tas, kurÅ” spÄj paskatÄ«ties uz kodu no jauna leÅÄ·a. Un tas ir bÅ«tiski svarÄ«gi, jo lielÄkÄ daļa programmatÅ«ras produktu ir nedokumentÄtu slikta koda fragmentu kolekcija. Tie pastÄvÄ«gi ir jÄsavieno, vajadzÄ«bas gadÄ«jumÄ aizpildot nepilnÄ«bas. CilvÄkiem, kuri nespÄj savienot atŔķirÄ«gus punktus ar vienu lÄ«niju, uz visiem laikiem bÅ«s jÄatrodas malÄ.
Tas viss noved mani pie citas deklarÄcijas, Å”oreiz treknrakstÄ: pamatzinÄÅ”anas programmÄtÄjam vienmÄr ir bijuÅ”as un bÅ«s vissvarÄ«gÄkÄs.
Valodas nÄk un iet. Ietvari kļūst novecojuÅ”i, un uzÅÄmumi reaÄ£Ä uz pieprasÄ«jumu, mainot izmantoto tehnoloÄ£iju kopu. Vai ir kÄda lieta, kas nekad nemainÄ«sies? JÄ ā fundamentÄlÄs zinÄÅ”anas, kuras sauc par fundamentÄlÄm, jo āāir visa pamatÄ!
KÄ uzlabot fundamentÄlÄs zinÄÅ”anas
FotogrÄfs Kristofers
Ja meklÄjat sÄkumpunktu savas fundamentÄlÄs loÄ£iskÄs domÄÅ”anas uzlaboÅ”anai, mÄÄ£iniet sÄkt Å”eit:
Ziniet savas programmas sarežģītību
Ko sauc arÄ« par Liels O āAlgoritma sarežģītÄ«baā attiecas uz programmas izpildei nepiecieÅ”amÄ laika atkarÄ«bu no tÄs ievaddatu lieluma (n). SvarÄ«gs solis ir sekot lÄ«dzi izmantotajiem algoritmiem.
ZinÄt savas datu struktÅ«ras
Datu struktÅ«ras ir katras mÅ«sdienu programmas pamatÄ. ZinÄt, kuru struktÅ«ru kÄdÄ gadÄ«jumÄ izmantot, ir disciplÄ«na pati par sevi. Datu struktÅ«ras ir tieÅ”i saistÄ«tas ar izpildlaika sarežģītÄ«bu, un nepareizas struktÅ«ras izvÄle var radÄ«t bÅ«tiskas veiktspÄjas problÄmas. Elementa atraÅ”ana masÄ«vÄ ir O (n), kas norÄda uz augstÄm izmaksÄm, izmantojot masÄ«vus kÄ ievades datus. Hash tabulas meklÄÅ”ana ā O (1), kas nozÄ«mÄ, ka Å”ajÄ gadÄ«jumÄ vÄrtÄ«bas meklÄÅ”anas laiks nav atkarÄ«gs no elementu skaita.
CilvÄki nÄca pie manis uz interviju un apgalvoja, ka meklÄÅ”ana masÄ«vÄ ir ÄtrÄka nekÄ meklÄÅ”ana hash tabulÄ. TÄ bija droÅ”ÄkÄ zÄ«me, ka nevajadzÄtu viÅus pieÅemt darbÄ ā pÄrziniet savas datu struktÅ«ras.
Lasīt / skatīties / klausīties
Vietnes, piemÄram
Prakse!
JÅ«s nevarat pagatavot olu kulteni, nesalaužot olas. Vietnes, piemÄram
Izlasiet citu cilvÄku kodu
LielÄkÄ kļūda, ko varat pieļaut, ejot pa attÄ«stÄ«bas ceļu, ir iet to vienatnÄ. ProgrammatÅ«ras izstrÄde lielÄ mÄrÄ ir komandas darbs. MÄs kopÄ veidojam standartus, kopÄ pieļaujam kļūdas un, neskatoties uz visÄm neveiksmÄm, kopÄ kļūstam labÄki. Laiks, kas pavadÄ«ts, lasot citu cilvÄku kodu, atmaksÄsies vÄrtÄ«gi. VienkÄrÅ”i pÄrliecinieties, ka kods ir labs.
LabÄkais padoms, ko varu dot, ir nekad nekautrÄties, ka kaut ko vÄl nezini. KÄ jau tika teikts, mÅ«su nozare ir milzÄ«ga un tehnoloÄ£iju apjoms ir bezgalÄ«gs. Ir nepiecieÅ”ams daudz laika un pūļu, lai izveidotu kopÄjo priekÅ”statu, vÄl vairÄk, lai kļūtu par profesionÄli kÄdÄ konkrÄtÄ jomÄ, un vÄl vairÄk, lai uzlabotu savas prasmes savÄ jomÄ. Es jums paziÅoÅ”u, kad es pats to sasniegÅ”u.
Avots: www.habr.com