Koodi kihiseb keelt, mis igatseb Ôppida.

Artikli kirjutamise ajal annab otsing "millist programmeerimiskeelt Ă”ppida esimesena" 517 miljonit otsingutulemust. Iga neist saitidest kiidab ĂŒhte kindlat keelt, ja 90% neist soovitab lĂ”puks Pythonit vĂ”i JavaScripti.
Ilma igasuguste eelmÀngudeta tahaksin ametlikult kuulutada, et need 517 miljonit saiti eksivad ja öelda, et keel, mida esimesena Ôppida, on fundamentaalne loogika.
Lihtsalt teadmised kodeerimisest ei ole piisavad. Turg on nii ĂŒlerahvastatud ĂŒlikooli- ja kursuseloomulike lĂ”petajatega, et junioride positsioon on praktiliselt kaotanud oma tĂ€henduse*. Et tĂ€napĂ€eva maailmas edu saavutada, pead sa nii kodeerima kui ka omama arenenud fundamentaalset loogilist mĂ”tlemist.
* Siin ja edaspidi, palun pidage meeles, et see on tĂ”lge ning autori ja teie riigi tööjĂ”uturg vĂ”ib oluliselt erineda (nagu ka teised nĂŒansid), mis aga ei tee originaali halvemaks â tĂ”lkija mĂ€rkus.
Minu esimene infotehnoloogia tund
Minu esimene kokkupuude infotehnoloogiaga oli vabatahtlik kursus, mille ma vÔtsin 10. klassis. Esimesel pÀeval, kui ma klassiruumi astusin, olin vaimustunud, nÀhes enda ees suurt hulka jÀÀtisekotte ja erinevaid katteid. PÀrast seda, kui kÔik olid istuma sÀttinud, kuulutas Ôpetaja:
"TĂ€na me maitseme ise valmistatud jÀÀtist. Aga ĂŒhe tingimusega: peate koostama konkreetse juhendi, kuidas maiust valmistada, ja mina â jĂ€rgida seda."
"Ilma probleemideta, - mÔtlesin ma, - see tund ei ole pikk." Umbes minuti pÀrast koostasin suurepÀrase retsepti oma unistuste jÀÀtiseks:
- Koorida ja panna kolm palli vaarikamaitselist jÀÀtist kaussi
- Avada ƥokolaadimaitseline kastme ja lisada kaks supilusikatÀit samasse kaussi
- Lisada vahustatud koort kaussi
- Puistata kogu sellele suhkrupulgakesed ja panna peal kirsi
Minu Ôpetaja - "arvuti" selles armsas metafooris - nÀitles enam sarvinult ja sÔnas immenselt sÔna otseses mÔttes, kui ma kunagi olen nÀinud. Ta hakkas innukalt tikutama jÀÀtisekotti pallide lusikaga, isegi kattega puudutamata.
"HĂ€sti-hĂ€sti, aga esmalt peab see avama!" - hĂŒĂŒatasin ma, ĂŒritades maiust vĂ”imalikult kiiresti saada.
«Sa ei kirjutanud seda juhendis, ja ma ei saanud sulle jÀÀtist valmistada. JĂTKAME!»
Liigume edasi katse nr 2 juurde
- Ava vaarikajÀÀtis, vÔttes kaane Àra
- Koorida ja panna kolm palli vaarikamaitselist jÀÀtist kaussi
- Avada ƥokolaadimaitseline kastme ja lisada kaks supilusikatÀit samasse kaussi
- Lisada vahustatud koort kaussi
- Puista kÔik see suhkrupulgad peale ja pane kirsike peale
NĂŒĂŒd ei tohiks probleeme olla. Ma kontrollisin igaks juhuks, et kĂ”ik koostisosad minu kulinaarse meistriteose valmistamiseks on avatud.
Ăpetaja vĂ”ttis kaane Ă€ra, tĂ”stis ja pani kolm jÀÀtise palli kaussi. «LĂ” finally, minu imeilus plombert hakkas reaalsuseks saama!» Siis avas ta ĆĄokolaadikastme ja lisas kaks supilusikatĂ€it kaussi. Mitte «lisada kaks supilusikatĂ€it ĆĄokolaadikastet» â Ă€rge muretsege â ta pani muidugi kaussi ainult lusikad. Ilma kastmeta. Taas ei olnud ma vaeva nĂ€inud kĂ”ike tĂ€pselt kirja panna. PĂ€rast seda, kui kĂ”ik muu oli samas vaimus tehtud, sain kĂ€tte kausi jÀÀtisega ja kahe supilusikaga, mis olid vaevu mĂ€rgatavad koorevaiba all. Peal oli paar suhkrupulka.
Tundub, et sel hetkel taipasin lĂ”puks: arvuti â loogika tĂŒhjuses. Ta ei tea ĂŒmbritsevatest asjaoludest ja ei tee oletusi. Ta tĂ€idab vaid selgelt sĂ”nastatud juhiseid ja jĂ€rgib neid sĂ”na-sĂ”nalt.
Minu lÔpptulemus oli pikade, kuid vajalike katsete ja vigade tulemus:
- Ava, kui seda pole veel tehtud, iga jÀrgmise pakendi: vaarikajÀÀtis, ƥokolaadikaste, vahukoor, suhkrupulgad.
- VÔta kauss ja pane see enda ette
- VĂ”ta jÀÀtise lusikas ja pane ĂŒkshaaval kolm palli vaarikajÀÀtist kaussi. Pane jÀÀtise lusikas tagasi oma kohta.
- VĂ”ta ĆĄokolaadikastme purk, tĂ”sta kastet ja vala kaussi supilusikatĂ€ie sisu. Korda tĂ”stmist ja valamist veel ĂŒhe korra. Pane lusikas ja purk tagasi oma kohale.
- VÔta ja keerake vahukoore pakend tagurpidi ning hoia seda kausi kohal, vala neid jÀÀtisele 3 sekundit, seejÀrel pane pakend tagasi.
- VĂ”ta suhkrupulkade purk, kalla umbes nelikĂŒmmend pulka kaussi ja pane purk tagasi oma kohale.
- VĂ”ta ĂŒks kirsike kirsside kausist ja pane see jÀÀtise peale.
- KÀsi Ôpilasele kaussi valmis plomberti ja lusikas.
Viimane punkt oli eriti oluline, sest ilma selleta hakkas Ôpetaja eelviimasel korral lihtsalt mu jÀÀtist sööma.
Aga just see on programmeerimine. Pingeline hoolikalt koostatud juhiste kogumi loomine arvutile. PÔhimÔtteliselt seisneb iga programmeerimiskeel juhiste koostamises.
KarjÀÀr programmeerimises
Programmeerimine on jĂ”udnud punkti, kus seda on raske arutada kui ĂŒhtset tööstusharu, sama raske on kasutada ĂŒhte sĂ”na «programmeerija» ametikoha kirjeldamiseks. Kaks arendajat vĂ”ivad olla turul vĂ”rdselt nĂ”utud, teades tĂ€iesti erinevaid keeli, seega on oskus arendada tĂ€htsam kui konkreetse keele teadmised. Ăks universaalne omadus, mis on kĂ”igile edukaile arendajatele omane â fundamentaalne loogika.
Parim programmeerija suudab vaadata koodi uue nurga alt. Ja see on pĂ”himĂ”tteliselt oluline, kuna enamik tarkvaratooteid on kehva koodi dokumenteerimata killustik. Neid tuleb pidevalt kokku panna, tĂ€ites vajadusel lĂŒnki. Inimesed, kes ei suuda eraldatud punkte ĂŒhtseks jooniseks seostada, jÀÀvad pidevalt teisejĂ€rguliseks.
KĂ”ik see viib mind veel ĂŒhe deklareerimiseni, seekord paksus kirjas: fundamentaalsed teadmised on alati olnud ja jÀÀvad programmeerija jaoks esmatĂ€htsad.
Keeli tuleb ja lĂ€heb. Raamid muutuvad vananenuks ja ettevĂ”tted reageerivad nĂ”udlusele, muutes kasutatavate tehnoloogiate virna. Kas on midagi, mis kunagi ei muutu? Jah â fundamentaalsed teadmised, mis ongi fundamentaalsed, kuna need on kogu aluseks!
Kuidas parandada fundamentaalseid teadmisi
foto Christopher . Tundub, etÂ
Kui otsite lÀhtepunkti oma fundamentaalse loogilise mÔtlemise parandamiseks, proovige alustada siit:
Tea oma programmi keerukust
Samuti tuntud kui Big O «algoritmi keerukus» viitab programmi tÀitmise aja sÔltuvusele selle sisendandmete suurusest (n). Oluline on pidevalt jÀlgida kasutatavaid algoritme.
Tea oma andmestruktuure
Andmete struktuurid on igas kaasaegses programmis aluseks. Teadmine, millist struktuuri millisel juhul kasutada, on iseseisev distsipliin. Andmestruktuurid on otseselt seotud jooksva aja keerukusega ja vale struktuuri valimine vÔib pÔhjustada fundamentaalseid jÔudlusprobleeme. Elemendi otsimine massiivis on O(n), mis nÀitab, kui kallis on massiivide kasutamine sisendandmetena. Otsimine rÀndhash-tabelis on O(1), mis tÀhendab, et antud juhul vÀÀrtuse otsimise aeg ei sÔltu elementide arvust.
Minu vestlusele on tulnud inimesi, kes vĂ€idavad, et massiivi kaudu otsimine on kiirem kui rĂ€ndhash-tabeli kaudu. See oli kindel mĂ€rk, et neid ei tasu palgata â tunne oma andmestruktuure.
Loe / vaata / kuula
Sellised saidid nagu , ja on suurepĂ€rane valik uute programmeerimiskeelte Ă”ppimiseks. Kuid aluste jaoks pöörduge raamatute poole, mis kĂ€sitlevad ĂŒldisi pĂ”himĂ”tteid, praktikaid ja koodimise stiile. KĂ”ige soovitatavamad raamatud on "Disaini mustrid", "Refaktoreerimine. Olemasoleva koodi tĂ€iustamine", "TĂ€iuslik kood", "Puhas kood" ja "Pragmaatiline programmeerija". LĂ”puks peaks igal arendajal olema kĂ€epĂ€rast koopia "".
Harjuta!
Sa ei saa munapuderit valmistada, murdmata mune. Sellised saidid nagu , , , ja pakuvad tuhandeid huvitavaid ĂŒlesandeid, et testida oma teadmisi andmestruktuuride ja algoritmide kohta. Proovi Ă”nne soovitud probleemi lahendamisel, postita oma lahendus Githubi ja vaata, kuidas teised sellele lĂ€henesid. See viib meid viimase punkti juurde:
Loe teiste koodi
Suurim viga, mida arendusteed minnes teha, on kĂ€ia seda teed ĂŒksi. Tarkvara arendamine on suures osas meeskonnatöö. Me loome koos standardid, teeme koos vigu ja vastupidi kĂ”igile ebaĂ”nnestumistele, saame koos paremaks. aja, mis kulub teiste koodi lugemisele, tasub korduvalt Ă€ra. Lihtsalt veenduge, et see on hea kood.
Aga parim nĂ”uanne, mida ma saan anda, on see, et Ă€rge kunagi hĂ€benege mitte midagi teadmata. Nagu juba öeldud, on meie tööstusharu tohutu ja tehnoloogiate hulk on lĂ”putu. Ăldpildi loomiseks on vaja palju aega ja vaeva, kuid veelgi rohkem, et saada professionaaliks mingis konkreetses valdkonnas, ja veelgi rohkem, et oma ala oskusi tĂ€iendavalt lihvida. Teatan teile, kui ma selle ise saavutan.
Allikas: habr.com
