Ndarja e shqetësimeve

Prej kohësh ka qenë në mendjen time se mësimi i shkrimit të programeve softuerike duhet të jetë i detyrueshëm në shkolla.

Duke lënë mënjanë çdo përfitim ekonomik për individin, PBB-në ose për shoqërinë në përgjithësi, ai ju mëson se si të analizoni fenomene komplekse në mënyrë abstrakte dhe si t'i zbërtheni ato në komponentë funksionalë, natyra e të cilëve mund të kuptohet në mënyrë të pavarur nga make-up em>aktual.

Ju nuk keni nevojë të dini se si të bëni një alarm zjarri në botën reale për të programuar një alarm softueri që i përgjigjet një butoni në botën reale ... ju vetëm duhet të kuptoni se ekziston një sekuencë marrëdhëniesh ndërmjet një ngjarjeje (zjarri), pasojat e saj (njëra prej të cilave mund të jetë shtypja e një butoni alarmi zjarri) dhe ngjarjeve të mëvonshme që duhet të pasojnë (një sinjal që u dërgohet njerëzve të duhur, siç është Brigada e Zjarrfikësve).

Në fakt, ajo që mësoni është se … në botën reale … ​​sekuenca e marrëdhënieve nuk fillon në të vërtetë me një zjarr, por me një ngjarje krejtësisht të veçantë – domethënë, shtypjen e një butoni alarmi zjarri, i cili mund të shtypet në çdo kohë.

Në fakt, ajo që mësoni është se nuk duhet të shqetësoheni për arsyen përse u shtyp butoni, por thjesht për faktin se një buton u shtypi — mund të jetë një buton që shtyp dikush në një bankë për të njoftuar policinë se po ndodh një grabitje.

Në fakt, nuk duhet të jetë as një buton - mund të jetë një levë ... ose një zë ... ose një skanim i irisit ... çdo gjë.

Në fakt, ajo që mësoni është se … në botën reale … ​​ka entitete (të tilla si njerëz ose butona) dhe ngjarje (të tilla si shtypja e një butoni ose skanimi i një irisi).

Njëlloj, nuk keni nevojë të shqetësoheni domosdoshmërisht, kur ndërtoni programin, si ndodh ndonjë nga këto gjëra (dikush tjetër mund t'i shkruajë ato pjesë të kodit për ju), vetëm për të siguruar që elementët përbërës të duhur të zbatohen funksionet e nevojshme, të tilla që sjellja emergjente e së tërës, kur përfshihet i gjithë kodi i programit, është që një sistem alarmi softuerësh të arrijë saktësisht të njëjtin rezultat si një sistem fizik.

Ajo që mësoni është se si të zbërtheni një fenomen në grupin e tij më themelor të marrëdhënieve themelore … ajo që e bën atë një shembull të një klase fenomeni, në vend të një tjetri … ajo që e bën atë ashtu siç është … pavarësisht nga bota reale e elementeve të tij përbërës instantacion.

Ju nuk keni nevojë të dini ndonjë Kimi për të shkruar udhëzimet për përgatitjen e një filxhani çaji tre minutësh, për shembull ... ju vetëm duhet të dini se në çfarë rendi duhet të vendosni filxhanin, çajin, ujin dhe çdo element tjetër.

Në fakt, as nuk duhet ta dini se çaji ekziston për të përcaktuar sekuencën e saktë të ngjarjeve; ju vetëm duhet të dini se si të bëni një pije të nxehtë ... çdo pije të nxehtë ... dhe të zëvendësoni "X" çfarëdo që dëshironi të pini dhe ta lini atë për tre minuta përpara se të kryeni hapin tjetër (i cili mund të përfshijë ose jo heqja ose kullimi i një lënde, si çaji, nga një lëng i nxehtë).

Ajo që mësoni është "Ndarja e shqetësimeve".

Shtoni në Rekursion (shih "këtu" dhe "këtu") / "Vetë-referencë" dhe shumë gjëra që duket se kanë ... dhe në të vërtetë nuk kanë ... asgjë çfarëdo të bëjë me kompjuterët fillon të bjerë në vend - sepse është jo programimi/kodimi ose kompjuterët që janë problemi, por mendësia që ata krijojnë dhe mjetet e të menduarit që ata ofrojnë për të manipuluar konceptet abstrakte.

Ju mësoni se si të analizoni.

Gjëja e të mësuarit të vërtetë është se truri fjalë për fjalë mëson duke bërë … duke e rikrijuar veten fizikisht dhe funksionalisht si diçka që është në gjendje të bëjë atë që dëshiron të mësojë.

Dhe programimi kërkon që në fakt të bëni diçka në lidhje me idetë tuaja … për t'i programuar dhe testuar ato.

Kompjuterët bëjnë vetëm atë që ju u thoni, kështu që mënyra më e mirë për të zbuluar nëse idetë tuaja janë të shëndosha është t'i modeloni ato në mënyrë llogaritëse … sepse, nëse logjika juaj është e gabuar, modeli që keni ndërtuar nuk sillet njësoj si gjëja që po modeloni. dhe analiza juaj, si rrjedhojë, është dukshëm e metë - kështu që ju nuk keni asnjë alternativë për të ndryshuar mendjen se sa i saktë ishte perceptimi juaj në fillim.

Të mësosh të programosh është një nga mënyrat më brutale që do të mësosh të vësh në dyshim supozimet e tua për gjërat… sepse nuk ka asnjë tregues më të qartë se ata kishin gabuar sesa kur modeli juaj se si fluturojnë zogjtë i bën ata të përplasen me njëri-tjetrin – nuk ka më shumë Shembull i fytyrës suaj të fjalës "Ti je gabim" sesa diçka që nuk funksionon kur mbaron duke e bërë atë.