Üks keel kõigi üle valitsemiseks

Koodi kihte alla peitub keel, mis igatseb õppimist.

Üks keel kõigi üle valitsemiseks

Käesoleva artikli kirjutamise hetkel otsing "programmimine, millist keelt õppida esimesena" toob välja 517 miljonit otsingutulemust. Igaüks neist lehtedest kiidab ühte kindlat keelt, ja 90% neist soovitab lõpuks Pythonit või JavaScripti.

Ilma pikema eelmänguta tahaksin ametlikult deklareerida, et kõik need 517 miljonit lehte on valesid ja öelda, et keel, mida tuleks õppida esimesena — fundamentaalne loogika.

Lihtsalt kodeerimise oskus ei ole piisav. Turg on nii küllastunud lõpetajatest, et algtaseme positsioon on praktiliselt kadunud*. Et tänapäeva maailmas edukas olla, peate oskama nii kodeerida kui ka omama arenenud fundamentaalset loogilist mõtlemist.

* siin ja edaspidi pidage meeles, et see on tõlge ja autori ning teie riigi tööturg võib erineda (nagu ka teised nüansid), mis iseenesest ei tee originaali halvemaks — tõlkija märkus.

Minu esimene infotehnoloogia tund

Minu esimene tutvus infotehnoloogiaga toimus valikainena, mille ma võtsin 10. klassis. Esimesel päeval, kui ma klassiruumi sisenesin, olin üllatunud, nähes enda ees suurt hulka jäätisepakendeid ja erinevaid katteaineid. Pärast seda, kui kõik olid istuma asunud, kuulutas õpetaja:

«Täna maitseme ise valmistatud plombiiri. Aga on üks tingimus: teil tuleb koostada konkreetsest juhistest nimekiri, kuidas magustoit valmistada, ja mina — järgige neid»

«Pole probleemi,» mõtlesin ma. «See tund ei kesta kaua». Umbes minuti pärast viskasin ma kiire retsepti välja mu unistuste jäätisele:

  1. Võta ja pane kolm pallikest vaarikajäätist kaussi
  2. Ava šokolaadikaste ja lisa kaks supilusikatäit sellesse kaussi
  3. Lisa vahustatud koor kaussi
  4. Puista sellele suhkrust pulgakesi ja pane kirsike peale

Minu õpetaja — «arvuti» selles armsas metafooris — esitleti kahtlemata sulaselgelt ja rohkem naljatades, kui ma kunagi näinud olin. Ta hakkas innukalt kaevama jäätisepakendisse pallide jaoks, isegi kattega mitte puudutades.

„Jah, jah, aga kõigepealt peab selle lahti tegema!” kui hüüatasin, püüdes maiust kiiresti kätte saada.

„Sa ei kirjutanud seda juhendis, ja ma ei saanud sulle jäätist valmistada. JÄRGMISEGA!”

Käime aega kuni katse nr 2

  1. Ava vaarika jäätis, eemaldades kaane
  2. Võta ja pane kolm pallikest vaarikajäätist kaussi
  3. Ava šokolaadikaste ja lisa kaks supilusikatäit sellesse kaussi
  4. Lisa vahustatud koor kaussi
  5. Puista kõik see suhkrust pulgadega ja pane kirss peale

Nüüd ei tohiks küll probleeme olla. Ma isegi kontrollisin, et kõik koostisosad minu kulinaarse meistriteose valmistamiseks on avatud.

Õpetaja eemaldas kaane, tõstis kolm pallikest jäätist kaussi. „L finally mu kaunis jäätis hakkas reaalsuseks saama!” Seejärel avas ta šokolaadikastme ja lisas kaks supilusikatäit kaussi. Ta ei „lisanud šokolaadikastme kahest supilusikast” — ärge eksige — ta pani loomulikult kaussi ise lusikad. Ilma kastmeta nende sees. Taaskord ei vaevunud ma kõike täpselt kirja panema. peale seda, kui teine osa tehti samas vaimus, sain ma kätte kausi jäätise ja kahe supilusikaga, mis vaevu paistsid vahukreemimere alt. Peal oli paar suhkrupulka.

Tundub, et hetkel jõudis minuni lõpuks mõte: arvuti on loogika tühjas vaakumis. Ta ei tea ümbritsevatest oludest ning ei tee oletusi. Ta täidab ainult selgelt sõnastatud juhiseid ja järgib neid sõna-sõnalt.

Minu lõpptulemus oli pika, kuid vajaliku katsete ja eksimuste seeria tulemus:

  1. Ava, kui seda pole veel tehtud, iga järgmist pakki: vaarikamaitseline jäätis, šokolaadikaste, vahukoor, suhkrust pulgad.
  2. Võta kauss ja pane see enda ette.
  3. Võta jäätise lusikas ja pane üksikute kaupa kolm vaarikamaitselise jäätise palli kaussi. Pane jäätise lusikas tagasi paika.
  4. Võta purk šokolaadikastet, keera kastmest ja vala kaussi supilusikatäis. Korrake toimingut kastmise ja valamisega veel kord. Pane lusikas ja purk tagasi.
  5. Võta ja pööra tagurpidi vahukoore pakend ning hoides seda kausi kohal, vala sellega jäätisele kolm sekundit, seejärel pane pakend tagasi.
  6. Võta purk suhkrust pulgad, vala umbes nelikümmend pulka kaussi ja pane purk tagasi.
  7. Võta üks kirss kirsi kausist ja pane see jäätise peale.
  8. Anna õpilasele kauss valmis jäätisega ja lusikas.

Viimane punkt oli eriti tähtis, kuna ilma selleta alustas õpetaja eelviimasel korral lihtsalt mu jäätise söömist.

Aga see ongi programmeerimine. Pingeline juhiste komplekti koostamine arvuti jaoks. Põhimõtteliselt, see on see, milleks iga programmeerimiskeel kokku sumbub — juhiste koostamine.

Karjäär programmeerimises

Programmeerimine on jõudnud punkti, kus seda on keeruline arutada kui ühtset tööstust, samuti on keeruline kasutada ühtset sõna «programmeeri» töökuulutuse kirjeldamiseks. Kaks arendajat võivad olla võrdselt turul nõutud, olles täiesti erinevate keelte teadmistega, seega on oskus arendada olulisem kui konkreetse keele tundmine. Üks universaalne omadus, mis on kõigile edukatele arendajatele omane — fundamentaalne loogika.

Parim programmeerija suudab vaadata koodi uue nurga alt. See on põhimõtteliselt oluline, sest enamik tarkvaratooteid on kogum dokumenteerimata halva koodi killust. Neid tuleb pidevalt kokku panna, täites tühikuid vajadusel. Inimestel, kes ei suuda killustunud punkte ühtseks jooniseks siduda, tuleb igavesti jääda kõrvalistele kohtadele.

Kõik see viib mind veel ühe deklaratsioonini, seekord rasvases kirjas: fundamentaalsed teadmised on alati olnud ja jäävad programmeerija jaoks esmatähtsaks.

Keeled tulevad ja lähevad. Raamistikud jäävad ajale jalgu ning ettevõtted reageerivad nõudlusele, muutes kasutatavate tehnoloogiate staki. Kas on midagi, mis kunagi ei muutu? Jah — fundamentaalsed teadmised, mis ongi nii nimetud, sest need on kõigi aluseks!

Kuidas parandada fundamentaalseid teadmisi

Üks keel kõigi üle valitsemiseksFoto Christopherist Jeshke järgnevaga Unsplash

Kui otsite algpunkti oma fundamentaalse loogilise mõtlemise parandamiseks, siis proovige alustada siit:

Tunne oma programmi keerukust

Tuntud ka kui Big O «algoritmi keerukus» tähistab ajavahemikku, mille jooksul programm täidab ülesannet, sõltuvalt selle sisendandmete suurusest (n). Oluline on hoida end kursis kasutatavate algoritmide arenguga.

Tunne oma andmestruktuure

Andmestruktuurid on iga kaasaegse programmi alus. Teadmised, millist struktuuri igal juhul kasutada, on iseseisev teadusharu. Andmestruktuurid on otseselt seotud jooksva aja keerukusega ja vale struktuuri valimine võib põhjustada tõsiseid jõudlusprobleeme. Elementide otsimine massiivis on O(n), mis näitab massiivide kasutamise kulukust sisendandmetena. Otsing hash-tabelis on O(1), mis tähendab, et otsingu ajakulu ei olene elementide arvust.

Minu intervjuule on tulnud inimesi, kes väitsid, et massiivide otsimine on kiirem kui hash-tabelites. See oli ilmne märk, et neid ei tasu palkata — tunne oma andmestruktuure.

Loe / vaata / kuula

Sellised saidid nagu UdemyPluralsight ja CodeAcademy — suurepärane valik uute programmeerimiskeelte õppimiseks. Kuid alustamiseks pöörduge raamatute poole, mis käsitlevad üldpõhimõtteid, praktikaid ja koodimisstiile. Kõige soovitatavamad raamatud on "Kujundusmustrid", "Refactoring. Olemasoleva koodi täiustamine", "Täiuslik kood", "Puhtad kood" ja "Pragmatiseeriv programmeerija". Lõpuks peaks iga arendaja käepärast hoidma eksemplari "Algotritmid".

Harjuta!

Muna valmis tegemiseks peab muna purunema. Sellised saidid nagu HackerRank,CodeWars, , ja LeetCode CoderByte

,

TopCoder

pakuvad tuhandeid huvitavaid ülesandeid, et katsetada oma teadmisi andmestruktuuridest ja algoritmidest. Proovige lahendada meelepärast probleemi, postitage oma lahendus GitHub'i, ja seejärel vaadake, kuidas teised seda lähenesid. See viib meid viimase punkti juurde:

Allikas: habr.com

Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid 🔥 Osta usaldusväärne veebihosting DDoS kaitsega, VPS VDS serverid | ProHoster