Koodikihi alla peidetud keel vireleb, igatsedes õppida.
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:
- Kühvelda ja aseta kaussi kolm kulbitäit vaarikajäätist
- Ava šokolaadikaste ja lisa kaks supilusikatäit samasse kaussi
- Lisa kaussi vahukoor
- 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
- Ava vaarikajäätis, eemaldades kaane
- Kühvelda ja aseta kaussi kolm kulbitäit vaarikajäätist
- Ava šokolaadikaste ja lisa kaks supilusikatäit samasse kaussi
- Lisa kaussi vahukoor
- 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:
- Kui te pole seda veel teinud, avage kõik järgmised pakendid: vaarikajäätis, šokolaadikaste, vahukoor, suhkrupulgad.
- Võtke kauss välja ja asetage see enda ette
- Võtke jäätiselusikas ja asetage ükshaaval kaussi kolm kulbitäit vaarikajäätist. Asetage jäätiselusikas oma kohale tagasi.
- 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.
- Võta vahukoorepakk tagurpidi ja kausi kohal hoides kalla 3 sekundiks jäätisele, seejärel pane pakend oma kohale tagasi.
- Võtke purk suhkrupulkadega, valage umbes nelikümmend pulka kaussi ja asetage purk tagasi.
- Võtke kirsikausist üks kirss ja asetage see jäätise peale.
- 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
Foto Christopher
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
Harjuta!
Sa ei saa munaputru küpsetada ilma mune purustamata. Saidid nagu
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