Üks keel nende kõigi valitsemiseks

Koodikihi alla peidetud keel vireleb, igatsedes õppida.

Üks keel nende kõigi valitsemiseks

Selle kirjutamise seisuga annab päring „programmeerimine, millist keelt kõigepealt õppida” 517 miljonit otsingutulemust. Kõik need saidid kiidavad ühte konkreetset keelt ja 90% neist soovitab Pythonit või JavaScripti.

Ilma pikema jututa tahaksin öelda, et kõik need 517 miljonit veebisaiti on valed ja keel, mida peaksite kõigepealt õppima, on fundamentaalne loogika.

Ainult kodeerimise oskusest ei piisa. Turg on instituutide ja kursuste lõpetajatest nii küllastunud, et juunioride ametikoht on praktiliselt lakanud olemast*. Tänapäeva maailmas edu saavutamiseks peab teil olema nii kodeerimine kui ka arenenud fundamentaalne loogiline mõtlemine.

*edaspidi pidage meeles, et tegemist on tõlkega ning olukord tööturul autori ja teie riigi jaoks võib olla erinev (nagu ka muid nüansse), mis aga iseenesest ei muuda originaalartiklit hullemaks - u. tõlge

Minu esimene arvutiteaduse tund

Minu esimene sissejuhatus informaatikasse oli valikaine, mille läbisin 10. klassis. Juba esimesel päeval klassiruumi sisenedes oli mul hea meel näha enda ees suurt hulka ämbriid jäätist ja erinevaid lisandeid. Kui kõik olid istunud, teatas õpetaja:

“Täna degusteerime isevalmistatud jäätiseid. Kuid ühe tingimusega: peate koostama nimekirja konkreetsetest magustoidu valmistamise juhistest ja ma järgin neid.

"Pole probleemi," mõtlesin ma, "see õppetund ei kesta kaua." Umbes minuti jooksul panin kirja oma unistuste jäätise täiusliku retsepti:

  1. Kühvelda ja aseta kaussi kolm kulbitäit vaarikajäätist
  2. Ava šokolaadikaste ja lisa kaks supilusikatäit samasse kaussi
  3. Lisa kaussi vahukoor
  4. Puista see kõik üle suhkrupulkadega ja pane peale kirss

Minu õpetaja – selles armsas metafooris “arvuti” – esitas sarkastilisema ja sõnasõnalisema esituse, kui ma kunagi varem näinud olin. Ta hakkas innukalt jäätiseämbrit kulbikuga torgama, ilma et oleks isegi kaant puudutanud.

"Olgu, okei, aga kõigepealt peate selle avama!" - hüüatasin, püüdes maiust võimalikult kiiresti kätte saada.

„Sa ei kirjutanud seda juhendisse ja ma ei saanud sulle jäätist teha. JÄRGMINE!"

Liigume edasi katsele nr 2

  1. Ava vaarikajäätis, eemaldades kaane
  2. Kühvelda ja aseta kaussi kolm kulbitäit vaarikajäätist
  3. Ava šokolaadikaste ja lisa kaks supilusikatäit samasse kaussi
  4. Lisa kaussi vahukoor
  5. Puista see kõik üle suhkrupulkadega ja aseta peale kirss

Noh, nüüd ei tohiks kindlasti probleeme tekkida. Igaks juhuks veendusin, et kõik koostisosad minu kulinaarse meistriteose tegemiseks oleksid lahtised.

Õpetaja eemaldas kaane, kühveldas ja pani kolm kulbikest jäätist kaussi. "Lõpuks ometi on mu ilus jäätis teoks saanud!" Seejärel avas ta šokolaadikastme ja lisas kaussi kaks supilusikatäit. Ta ei "lisanud šokolaadikastet kahest supilusikast" - ärge arvake nii - ta pani loomulikult lusikad ise kaussi. Kastet neis pole. Jällegi, ma ei viitsinud kõike täpselt kirja panna. Pärast seda, kui ülejäänu samas vaimus tehtud, sain vahukoore mere all vaevumärgatavalt kausi jäätist ja kaks supilusikatäit. Peal oli paar suhkrupulka.

Tundub, et sel hetkel jõudis mulle lõpuks kohale: arvuti on loogika vaakumis. Ta ei ole ümbritsevatest asjaoludest teadlik ega tee mingeid 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 vigade seeria tulemus:

  1. Kui te pole seda veel teinud, avage kõik järgmised pakendid: vaarikajäätis, šokolaadikaste, vahukoor, suhkrupulgad.
  2. Võtke kauss välja ja asetage see enda ette
  3. Võtke jäätiselusikas ja asetage ükshaaval kaussi kolm kulbitäit vaarikajäätist. Asetage jäätiselusikas oma kohale tagasi.
  4. Võtke purk šokolaadikastet, kühveldage kastet ja valage supilusikatäie sisu kaussi. Korrake kühveldamise ja valamise protsessi veel üks kord. Pange lusikas ja purk oma kohale tagasi.
  5. Võta vahukoorepakk tagurpidi ja kausi kohal hoides kalla 3 sekundiks jäätisele, seejärel pane pakend oma kohale tagasi.
  6. Võtke purk suhkrupulkadega, valage umbes nelikümmend pulka kaussi ja asetage purk tagasi.
  7. Võtke kirsikausist üks kirss ja asetage see jäätise peale.
  8. Anna õpilasele kauss valmis jäätisega ja lusikas.

Viimane punkt oli eriti oluline, sest ilma selleta hakkas õpetaja eelviimasel korral lihtsalt minu jäätist sööma.

Aga see on programmeerimine. Arvuti jaoks hoolika juhiste komplekti loomise stress. Sisuliselt taandub sellele iga programmeerimiskeel – juhiste kirjutamine.

Karjäär programmeerimise alal

Programmeerimine on jõudnud punkti, kus seda on raske arutleda ühe tööstusharuna, nagu on raske kasutada üksikut sõna "programmeerija" ametikirjeldusena. Kaks arendajat võivad olla turu poolt võrdselt nõutud, oskavad täiesti erinevaid keeli, mis tähendab, et arenemisvõime on olulisem kui konkreetse keele oskus. Universaalne atribuut, mida jagavad kõik edukad arendajad fundamentaalne loogika.

Parim programmeerija on see, kes suudab vaadata koodi uue nurga alt. Ja see on põhimõtteliselt oluline, sest enamik tarkvaratooteid on halva koodi dokumenteerimata fragmentide kogu. Neid tuleb pidevalt kokku viia, vajaduse korral lünki täites. Inimesed, kes ei suuda erinevaid punkte ühe joonega ühendada, peavad jääma igavesti kõrvale.

Kõik see viib mind teise deklaratsioonini, seekord paksus kirjas: põhiteadmised on programmeerija jaoks alati olnud ja jäävad esmatähtsaks.

Keeled tulevad ja lähevad. Raamistikud on vananenud ja ettevõtted vastavad nõudlusele, muutes kasutatavat tehnoloogiapakki. Kas on üks asi, mis kunagi ei muutu? Jah – fundamentaalsed teadmised, mida nimetatakse fundamentaalseteks, sest need on kõige aluseks!

Kuidas täiendada põhiteadmisi

Üks keel nende kõigi valitsemiseksFoto Christopher Jeschke edasi Unsplash

Kui otsite lähtepunkti oma põhilise loogilise mõtlemise parandamiseks, proovige alustada siit:

Teadke oma programmi keerukust

Nimetatud ka Suur O "algoritmi keerukus" viitab programmi käivitamiseks kuluva aja sõltuvusele selle sisendandmete suurusest (n). Kasutatavatel algoritmidel sõrme pulsil hoidmine on oluline samm.

Teadke oma andmestruktuure

Andmestruktuurid on iga kaasaegse programmi keskmes. Teadmine, millist struktuuri millisel juhul kasutada, on omaette distsipliin. Andmestruktuurid on otseselt seotud käitusaja keerukusega ja vale struktuuri valimine võib kaasa tuua põhimõttelisi jõudlusprobleeme. Elemendi leidmine massiivist on O (n), mis näitab massiivide sisendandmetena kasutamise kõrget hinda. Räsitabeli otsing − O (1), mis tähendab, et sel juhul ei sõltu väärtuse otsimise aeg elementide arvust.

Inimesed tulid minu juurde intervjuule ja väitsid, et massiivi kaudu otsimine on kiirem kui räsitabelist otsimine. See oli kindlaim märk, et te ei peaks neid tööle võtma – tundke oma andmestruktuure.

Loe / vaata / kuula

Saidid nagu UdemyPluralsight и CodeAcademy - Suurepärane valik uute programmeerimiskeelte õppimiseks. Kuid põhitõdede saamiseks vaadake üldisi kodeerimispõhimõtteid, tavasid ja stiile käsitlevaid raamatuid. Enim soovitatud raamatud on “Disainimustrid”, “Refaktoring. Olemasoleva koodi täiustamine, "Täiuslik kood", "Puhas kood" ja "Pragmatist programmeerija". Lõpuks peaks iga arendaja säilitama koopiaAlgoritmid" käepärast.

Harjuta!

Sa ei saa munaputru küpsetada ilma mune purustamata. Saidid nagu Hacker RankCode WarsCoderByte, TopCoder и LeetCode pakkuda tuhandeid huvitavaid mõistatusi, et testida oma teadmisi andmestruktuuride ja algoritmide kohta. Proovige õnne meelepärase probleemi lahendamisel, postitage oma lahendus Githubisse ja seejärel vaadake, kuidas teised sellele lähenesid. Mis viib meid viimase punktini:

Lugege teiste inimeste koodi

Suurim viga, mida arenguteele minnes teha võib, on üksi minna. Tarkvaraarendus on suures osas meeskonnatöö. Loome koos standardeid, teeme koos vigu ja saame kõigist ebaõnnestumistest hoolimata koos paremaks. Aeg, mis kulub teiste inimeste koodi lugemisele, tasub end kuhjaga ära. Lihtsalt veenduge, et see on hea kood.

Parim nõuanne, mida ma saan anda, on mitte kunagi häbeneda, et te midagi veel ei tea. Nagu mainitud, on meie tööstus tohutu ja tehnoloogia hulk lõputu. Palju aega ja vaeva kulub üldpildi ülesehitamiseks, veel rohkem millegi konkreetse professionaaliks saamine ning oma ala oskuste lihvimine suurusjärgu võrra rohkem. Annan teile teada, kui ma selle ise saavutan.

Allikas: www.habr.com

Lisa kommentaar