Viena valoda, lai pārvaldītu tos visus

Zem koda slāņa paslēpta valoda nīkuļo, alkstot tikt apgūtai.

Viena valoda, lai pārvaldītu tos visus

Å 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:

  1. Ievietojiet bļodā trīs karotes aveņu saldējuma
  2. Atveriet Å”okolādes mērci un pievienojiet divas ēdamkarotes tajā paŔā bļodā
  3. Bļodā pievieno putukrējumu
  4. 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

  1. Atveriet aveņu saldējumu, noņemot vāku
  2. Ievietojiet bļodā trīs karotes aveņu saldējuma
  3. Atveriet Å”okolādes mērci un pievienojiet divas ēdamkarotes tajā paŔā bļodā
  4. Bļodā pievieno putukrējumu
  5. 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:

  1. 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.
  2. Izņemiet bļodu un novietojiet to sev priekŔā
  3. 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ā.
  4. Ņ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ā.
  5. 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ā.
  6. Paņemiet burciņu ar cukura nūjiņām, ieberiet bļodā apmēram četrdesmit kociņus un ielieciet burku atpakaļ.
  7. Izņemiet vienu Ä·irÅ”u no Ä·irÅ”u bļodas un novietojiet to virs saldējuma.
  8. 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

Viena valoda, lai pārvaldÄ«tu tos visusFotogrāfs Kristofers JeÅ”ke par Unsplash

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 UdemyPluralsight Šø CodeAcademy - Lieliska izvēle jaunu programmÄ“Å”anas valodu apguvei. Bet, lai uzzinātu pamatus, skatiet grāmatas par vispārÄ«giem kodÄ“Å”anas principiem, praksi un stiliem. Ieteicamākās grāmatas ir ā€œDizaina rakstiā€, ā€œRefaktorings. EsoŔā koda uzlaboÅ”ana, "Perfekts kods", "TÄ«rs kods" un "Pragmatists programmētājs". Visbeidzot, katram izstrādātājam ir jāsaglabā "Algoritmi" pie rokas.

Prakse!

JÅ«s nevarat pagatavot olu kulteni, nesalaužot olas. Vietnes, piemēram HackerRankCodeWarsCoderByte, TopCoder Šø LeetCode piedāvā tÅ«kstoÅ”iem interesantu mÄ«klu, lai pārbaudÄ«tu savas zināŔanas par datu struktÅ«rām un algoritmiem. Izmēģiniet savu veiksmi, risinot problēmu, kas jums patÄ«k, publicējiet savu risinājumu vietnē Github un pēc tam skatieties, kā citi to izturējuÅ”i. Kas noved mÅ«s pie pēdējā punkta:

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

Pievieno komentāru