Računala Windows Internet

Obrazovni programski jezici. Razvoj vještina programiranja korištenjem paketa Maple u nastavi informatike na profilnoj razini

Krajem pretprošlog tjedna u Moskvi se održao mali nastup na kojem je početnicima govorio s kojim jezikom da započnu svoj profesionalni put te kakvoj budućoj karijeri s relevantnim znanjima vrijedi težiti.

Neke pojedinosti ovog sastanka možete pronaći u komentarima na post, ali za sada pokušajmo saznati ovdje: pa koji jezik prvo naučiti?

To zapravo izgleda kao učiteljica mog sina, koji ide u prvi razred, piše slova bez potpisa, bez naslova. Izravno gledajući u masovni ekran, odjednom se osvijestite! Pretpostavljalo se i da Matma podučava razmišljanje, ali to nije išlo. . Ideja da se programiranje uvede u školu je super. Sasvim je druga stvar način na koji se uvodi, a tu su i brojni problemi. Prvo, ono što je napisao Pstreichek ili nespremni nastavni kadar. Sam nije bio veliki pas, ali je pokušao.

Prije, u osnovnoj školi, je li takvih ljudi bilo u gimnaziji i praktički nema nikoga. I to također ima veze s 2 stvari. Također, možemo se dogovoriti kako to netko može programirati, umjesto da želi biti učitelj. Svi znamo kako ova društvena skupina zarađuje i vrlo je važno imati strast prema podučavanju sljedeće generacije.

Stara škola

Prve lekcije informatike, učitelji s ljutnjom u srcu puštali su djecu kraj školskih računala kako bi ih naučili prvom programskom jeziku u životu. Prije 15 godina, u većini slučajeva to su bili proceduralni jezici Basic ili Pascal, ali ako ste imali sreće s učiteljem, mogli ste učiti C u isto vrijeme.

Izostavimo zasad posljednju iz jednadžbe i vidimo je li dobro početi učiti iz vrlo ograničenih jezika. Prednosti su očite: jednostavna sintaksa, slična uobičajenoj Engleski jezik, te priliku naučiti osnove programiranja u samo nekoliko sati. Ali postoji i minus: nedostatak stvarne praktične primjene bez učenja daljnji razvoj ove jezike (Visual Basic i Object Pascal). I u ovom slučaju bit ćete daleko od razvoja punopravnih modernih aplikacija.

Drugo, program je još važniji. Općenito, ne sviđa mi se ideja učenja rigoroznog programiranja. Moramo se usredotočiti jer svi ovdje pišu o novim tehnologijama.

  • Čak i ako ne u pravi smjer, sve je u redu.
  • Možete to popraviti u budućnosti.
  • Bolje raditi nego ne raditi.
Koji razred trebate programirati?

  • Nemam odgovarajuće kvalifikacije da bih konkretno odgovorio na pitanje.
  • Po meni bi trebali imati psihologa.
Vrlo cool aktivnost, podučavanje djece onome što je srž programiranja za njih je vrlo pristupačno i zanimljivo. Ideja o uvođenju učenja programiranja je idiotska. Stvari se mogu staviti na kotač informacija u srednjoj školi, kao i slučajevi korištenja s alatima dostupnim besplatno za svakoga da se upusti u fiziku, kemiju ili matematiku. Kao netko tko je zainteresiran, pronaći će informacije o samom Internetu.

Dakle, ako imate još dosta godina, okolnosti vas ne tjeraju da odaberete buduću profesiju, onda su proceduralni jezici odličan izbor. Trenirati, kako kažu, najbolje je na mačkama. Ali ako želite sutra početi zarađivati, onda ... Međutim, više o tome kasnije.

moderna škola

Kao što vjerojatno znate, mnogi moderni školarci počinju svoj put u programiranje s nekim pojednostavljenim verzijama "velikih" jezika, kao što su Scratch, Blockly ili Logo. Općenito, profesionalci bi se mogli prepisati iz proceduralnih jezika, ako ne za jedno "ali": ovi jezici ​​​​i aplikacije napravljene na njihovoj osnovi su zabavni servis za djecu.

Dalje - značajan dio mladih su slavne osobe jer žele konzumirati, a ne probiti zid koda - morate imati predispoziciju za to. Programski sadržaj je toliki da će se, ako netko želi, pronaći. Sada je djeci najvažnije naučiti pravilno držanje, logično razmišljanje, vrlo dobro naučiti strani jezik – u smislu kontinuiteta i distribucije na pravoj razini. U svakom slučaju, takve se stvari mogu raditi kod matematičara-fizičara da se ne ometaju ti humanisti i budući medicinski programeri.

Odnosno, jedino što se može naučiti iz takvog programiranja je opća struktura programa, koncept ciklusa i operatora. Dakle, ako već imate 12 godina, onda zaboravite na ove dječje jezike, vrijeme je da uđete u svijet odraslih.

Brzi početak s perspektivom

Recimo da, nakon što ste odbacili sve uvode, želite odmah početi učiti jedan od popularnih programskih jezika, istovremeno učiti sve osnove programiranja. Tada vrijedi odgovoriti samo na jedno jednostavno pitanje: što točno želite učiniti? Ako programirate hardver, onda ovdje ne može biti ni rasprave: odgovor je C, odnosno jezik C. Kombinira sve što je potrebno početniku: jednostavnu sintaksu, velike mogućnosti, oboje za nastavak rada u ovom okruženju, i daljnja prekvalifikacija na "ne željezni" profil. Istodobno, u gotovo svakoj većoj maloprodajnoj trgovini električnom energijom možete pronaći ploče za otklanjanje pogrešaka, početne komplete za robotiku i druge novopridošle užitke.

Zato što sam imao informatiku i fakultet i to je bilo dno. Umjesto da razmišljate o vlasti, neka vlast preuzme plagijat i učini nastavni plan i program realističnijim, jer što djeca imaju gluplje informacije, to ćemo ih manje imati zanimljivi ljudi jer razvijati svoju strast nakon škole i raditi svoj posao više neće vrijediti.

Inače, netko se prevario misleći da odrasla osoba radi 8 sati i fajansa, a dijete mora cijeli dan u školi i poslije škole pregledavati knjige, jer na kraju svaki učitelj smatra da mu je predmet najvažniji. Zamoran je to posao kojeg se nitko neće sjećati za koju godinu, ali bogati ljudi će imati više novca za pokretanje posla rukama robotskih umova, što kao da znači nešto više. Kažete da mislite više, da imate pamet, dvije ruke i želju.

  • Što je najgluplji građanin, to bolje za vladajuću kastu i financijera.
  • To je računalo ili kopanje rupa – nije važno.
Sve je jako lijepo, ali kad primijetite ovo: tko će ih naučiti kodirati?

Ako smatrate da je web vaš poziv, tada morate započeti svoje putovanje standardno s HTML-om i CSS-om. To će vam omogućiti da kreirate statične stranice i dobijete grubu ideju o tome s čime se morate nositi. Nadalje, preporuča se koristiti Python. Prvo, zato što je ovaj jezik zaista jednostavan za naučiti. Drugo, prema nekim izvješćima, Python je najpopularniji jezik, ako uzmemo u obzir samo statistiku učenika od 2011. godine. Treće, mogućnosti ovog jezika su takve da ga danas koristite za izradu weba (poput DropBoxa ili Googlea), a sutra počinjete razvijati igru ​​(Civilization IV).

Učitelji koji ne mogu sami razumjeti osnove programiranja? Nemojte se zavaravati, ali ovo je realnost. Na akademskoj razini teško je pronaći učitelje koji jako dobro predaju programiranje, i to samo u školi. Lijepo je programiranje tretirati kao zabavu, ali ovaj video je predstavljen u potpuno drugačijem svjetlu.

  • Naravno, problem je osoblje.
  • Ali ništa se neće promijeniti bez akcije.
  • Akcije se pojavljuju, dobro je.
A oni jadni roditelji koji sada rade projekte dizajna vafla sada moraju naučiti kodirati i raditi projekte programiranja?: Ozbiljno, problem slabog osoblja može se riješiti razgovorom sa studentima koji će predavati nastavu tijekom kredita.


Teško za naučiti, lako se boriti

Ne napuštajući temu weba, možete odabrati JavaScript kao prvi programski jezik (zapravo treći nakon HTML-a i CSS-a). Upravo su to radili na satovima informatike prije 15 godina, a to je imalo sasvim određeno značenje: statične stranice s dodatkom doslovno 4-5 redaka imaju aktivnu komponentu, što podiže motivaciju za rad u tom smjeru. Istodobno, izvedba ne ovisi o pregledniku ili o njemu operacijski sustav. A to da ne spominjemo izglede za daljnji razvoj prema Node.js-u.

Zatim trebate stvoriti sigurnosna kopija student čiji roditelji plaćaju ogromne poreze? Je li moguće da se učenik osveti više od jednog roditelja čiji roditelji uzimaju 500 for mlađa braća i sestre?

  • Učenici predaju nastavu programiranja u osnovne škole Oh?
  • Uz obuku morate imati iskustvo ili znanje.
  • Učenik informatike je suprotnost učitelju.
Postoje jasno definirani ciljevi! Sada je moda, pogotovo u medijima, sve kritizirati, jer je tamo stvorila političku opciju.

Vrijedi raspravljati na temelju činjenica, a posebno službeno dostupne "dokumentacije". A videe poput ovog kreirala je agencija koju je naručilo ministarstvo i vjerojatno bi trebali pogoditi širu javnost, a ne IT stručnjake. Razumijevanje, analiziranje i rješavanje problema na temelju logičkog i apstraktnog mišljenja, algoritamskog mišljenja i načina predstavljanja. informacija. Programiranje i rješavanje problema s računalom i ostalo. Digitalni uređaji: algoritmi za polaganje i programiranje, organizacija, pretraživanje. te razmjenu informacija korištenjem računalnih aplikacija.

Svoje putovanje na webu možete započeti i s PHP-om ili Rubyjem, ali ako se nikada niste bavili programiranjem, onda je bolje slijediti put najmanjeg otpora, a ova dva jezika ostaviti za buduće učenje. Usporedite u isto vrijeme.

I konačno, na razvoj aplikacija. Tri načina: Java, Swift, C#. Želja da s njima započnete svoje učenje programiranja vrlo je ozbiljan izazov, koji u nedostatku marljivosti može ispasti glup, jer će za svaki od njih trebati nekoliko mjeseci intenzivnog učenja. Međutim, izgledi mogu poslužiti i kao poticaj, bilo da se radi o uspješnoj karijeri u mobilnom polju (Java - Android, Swift - iOS) ili igranju (C # + Unity).

Korištenje računala, digitalnih uređaja i računalnih mreža. uključujući poznavanje principa rada digitalnih uređaja i računalnih mreža, kao i provedbu proračuna i programa. Razvoj društvenih kompetencija kao što su komunikacija i timska suradnja, uključujući virtualna okruženja, suradnju i upravljanje projektima. Usklađenost sa zakonima i sigurnosnim propisima.

Sadašnji temeljni nastavni plan i program ne dodaje ništa novo, tako da nastavnici mogu dobro spavati, a razina informatike se neće mijenjati. Programiranje je dio informatike od najranije dobi, utječe na poučavanje drugih predmeta, služi pravom značenju IT koncepata i informatike. Podržava razvoj vještina kao što su logično razmišljanje, jasna prezentacija zajednički rad i učinkovitu provedbu projekta. Ako je loše, morate ga promijeniti. Promjene na početku neće nužno ići u pravom smjeru, ali bolje je nego biti na krivom mjestu. Mislite li doista da je vizija dužnosnika ispravna? Ovaj projekt će sigurno propasti, jer odgovarajućih ljudi ionako neće biti, a u ljudima je srž. Škola bi trebala biti mjesto podrške razvoju na mnogo načina, a ne samo stvari koje dobro zvuče ili na koje su "službenici" odsječeni od svijeta. Općenito govoreći, većina pruženih informacija negativna je i tjera nas na razmišljanje. Nedavno je autor ovog bloga u svom blogu objavio vrlo zanimljiva tema o školama programiranja, što je nekako povezano s gornjim člankom. Da moram "službeno" reći da bih to vjerojatno morao pročitati, ali srećom ne moram. Vaš tekst nisam primio! Ovo je bila moja zahvalnost "profesionalnim" novinarima TV-a, agorcima i ostalim ljudima koji su u vezi s političkim gafovima raspravljali o nova baza programiranje i uopće se nije odnosio na bit. Ne morate zapravo čitati pravila, postavljati i možete reći svoje jer to je vaš blog, za vaš novac i nema veze s tim. S druge strane, glavni tok posluje na osnovi koncesije i obično je regulirano tržište, dakle barem, teorija bi trebala biti spremnija. Često su učitelji ljudi koji nemaju poslovnog iskustva i zasigurno će rado čuti vaše mišljenje. Vi ste najvažniji za provedbu programa, nemojte obeshrabriti i usput osposobljavajte buduće stručnjake. Znate da je tema vrlo zanimljiva. Mislim da je ovo vrlo važna perspektiva. Ovaj termin je čak i dogovoren, ali iz nekog razloga nije izašao. Nažalost, mainstream medija još nema. . Radi se o stvaranju jeftinih programera na istoj osnovi kao i komunisti koji proizvode trakarice i posebne tvorničke radnike.

Danas sam napisao odgovor Nini Shumilini iz Tvera, na pitanje o Pythonu kao prvom programskom jeziku u školi.

Citirala je Konstantina Poljakova, zaključak njegovog članka u rujanskom broju Informatike:
Iz tih razloga autor je sklon podržati mišljenje I.A. Sukina: Python je dobar za profesionalne programere, ali korištenje kao prvog programskog jezika može biti loša odluka. Kako učitelji Pythona priznaju, oni koji su naučili programirati na Pythonu ne žele prijeći na druge jezike (niže razine). Nakon što su školarce naučili sortirati nizove pozivanjem metode sortiranja, teško je kasnije objasniti zašto su o algoritmima za sortiranje napisani čitavi svesci. A to može dovesti do pojave galaksije “programera samo za Python” koji nisu spremni prevladati dodatna ograničenja kako bi povećali učinkovitost programa. Zapravo, učitelj se nalazi u situaciji koja je dobro opisana frazom “Python ima takve mogućnosti, ali ne možeš tako podučavati!” (E.V. Andreeva). Istodobno, bilo bi korisno naučiti Python kao drugi jezik na satovima informatike (nakon Pascala ili C, na primjer).

Nastava je pomoćno tijelo Ministarstva narodne prosvjete. Konzultacije su završna faza rada u Vijeću za informacijsko obrazovanje prije podnošenja nacrta izmjena i dopuna programa na odluku ministra.

Po završetku konzultacija, Vijeće za ICT obrazovanje iznijet će izvješće o njihovoj provedbi i konačnu verziju projektnih promjena u temeljnom kurikulumu i informatici. Zanimljivo, obrazovanje na tom području informacijske tehnologije očekuje se u Dječji vrtić. Mala djeca koriste elektroničke digitalne uređaje za komunikaciju i igru ​​sa svojim voljenima. Učenici srednjih škola suočit će se s izazovom razvoja vlastitim programima i web stranice.

Moj odgovor je očito prerastao format pisma, pa ću ga za sada objaviti ovdje, a onda ga, možda, doraditi u članak.

Nesumnjivo, stavovi prema Pythonu su različiti. Doista, postoji zabrinutost da su dinamično tipkanje i previše jezika "visoke razine" štetni za učenje, da koncept "niza" ne bi trebao biti zamijenjen popisima visoke razine, budući da su školarci "prevareni" lakoćom rada s liste neće razumjeti principe unutarnje organizacije itd.

Međutim, najveći izazov u realizaciji ambicioznog opredjeljenja je nedostatak adekvatno obučenih i motiviranih nastavnika. Uvođenje temeljnih programa osposobljavanja ima za cilj zadovoljiti rastuću potražnju za osobama s takvim vještinama na tržištu rada. Tvrtka upravlja obrazovnim projektom "Master Coding", koji ima za cilj popularizaciju znanosti o programiranju u poljskim školama i uključuje učenike osnovnih škola diljem Poljske. Učitelji koji sudjeluju u programu obučeni su od strane stručnjaka da nastave s programiranjem u svojim školama sljedećih 8 tjedana.

No, po mom mišljenju, takve kritike uglavnom dolaze od "teoretičara" koji nikada nisu pokušali podučavati programiranje na Pythonu, isti Polyakov, iako je počeo objavljivati ​​članke o Pythonu u informatici, ali čini se da ga nikada nije koristio za učenje. Ali praktičari koji kritiziraju Python, odnosno ljudi koji bi pokušavali učiti djecu u Pythonu barem godinu dana, a onda bi odbili, ne znam.

Sudjelovanje u programu je besplatno. Nažalost, škola vas ne uči svemu što trebate znati kako bi vam olakšali život. Dapače, škola vam često puni glavu glupostima koje najvjerojatnije nikada nećete koristiti, iako ih svaki učitelj smatra vrlo važnim.

Iako u školi učimo i korisne stvari, neke od najvažnijih vještina koje su nam potrebne u odrasloj dobi niti se ne spominju. Ipak, moramo gledati s dobre strane: nikad nije kasno za učenje. Budući da je tehnologija jedna od najvažnijih tema današnjice, teško je povjerovati da se informatika ne uči u mnogim školama. A u informatici ne govorimo o spoju matematike i računala, već o sposobnosti rada na računalu.

Na primjer, E.V. Andreeva, koju je navodno citirao Polyakov, prije tri godine odlučila je pokušati podučavati školarce u razredima 6-7 u "Intelektualcu" na Pythonu. Prije toga sam bio prilično skeptičan prema ovoj ideji, ali sam je odlučio isprobati. Šest mjeseci kasnije već je govorila na konferencijama i rekla da se srednjoškolci najbolje podučavaju na Pythonu, da nije baš vjerovala u to, ali je pokušala i za nekoliko mjeseci njezini stavovi su se promijenili. Tako da ne znam što je točno Polyakov citirao i koliko je star ovaj citat, ali jučer sam konkretno pokazao ovu prepisku Andreevoj i tražio odgovor, na što je ona napisala „Shumilinin odgovor - srednjoškolce svakako treba učiti na Pythonu .”

Koje su prednosti Pythona? Ne samo u jednostavnosti jezika, već i u činjenici da se radi o ogromnom, višestrukom, svestranom svijetu programiranja. Lako je početi programirati u ovom svijetu, a čini se da nema smisla raspravljati o prednostima Pythona kao prvog programskog jezika - očito nema ništa lakše (od programskih jezika Opća namjena). Puno je sažetiji od Pascala i programiranje na njemu ne mora petljati s puno tehničkih stvari, što je teško za potpune početnike. Puno je lakše pisati programe za početnike ako se sastoje od pet redaka, a ne od petnaest, implementiraju iste algoritme, ali je potrebno manje vremena za pisanje i otklanjanje pogrešaka koda, što znači da se više zadataka može riješiti, te dalje napredovati, i Za rad s nizom, mnogo je prikladnije napisati:

a = * 1000
kako
var a: niz cijelih brojeva;
...
za i:= 1 do 1000 do
a[i] := 0;

Rezultat za programera je isti, ispada niz ispunjen nulama, ali u Pythonu - jedan redak umjesto tri, a značenje se ne mijenja. A onda će skeptici, naravno, reći da se ovako ne može pisati u Pythonu, da student mora shvatiti da je niz neprekidan komad memorije, da ga moramo deklarirati, odnosno rezervirati mjesto za njega, da moramo inicijalizirati ispunjavajući ga nulama... Pa, naš odgovor skepticima je da se značenje za programera početnika ne mijenja, naprotiv, niz a = * 1000 bolje odražava ono što student želi dobiti i odmah (Želim popis od jednog broja 0, ponovljen 1000 puta), mnogo je lakši za pisanje i omogućuje rješavanje više problema!

Samo pogledajte dva gornja isječka, koji ima više smisla? Koji ti se više sviđa?

Dakle, za početnike je Python nesumnjivo bolji. Štoviše, slaba djeca mogu stati ovdje, nakon što su stekla opću ideju o programiranju. Ali jaki studenti mogu krenuti dalje, a na raspolaganju će imati moderan univerzalni programski jezik koji se zapravo koristi za razvoj softver u vodećim svjetskim tvrtkama. Evo, na primjer, statistike - "Ono što pišu u Yandexu": http://blog.yandex.ru/post/ 77617/. Web stranice se mogu pisati u Pythonu računalne igrice, GUI, klijent-poslužitelj aplikacije, pa, to jest, bilo što.

Sada, u vezi s tvrdnjom da u jeziku ima mnogo stvari na visokoj razini i da ih je primamljivo koristiti, umjesto da naučite kako to funkcionira. Pa, ovo je metodološki problem, a ne problem programskog jezika. Opći metodološki pristup ovdje je sljedeći - prvo razumijemo kako to funkcionira, a zatim nam je dopušteno koristiti odgovarajući element jezika. Na primjer, prvo smo napisali razmjenu vrijednosti dviju varijabli kroz pomoćnu varijablu, a zatim ću pokazati kako se to radi pomoću torki (a, b) = (b, a). Prvo smo napisali najviše dva, tri broja, a zatim možete koristiti max funkciju. Zatim smo napisali program za pronalaženje maksimuma
sekvenca (niz), nakon toga možete koristiti max funkciju za popis. Prvo su sami napisali sortiranje, onda možete koristiti funkciju sortiranja, a ja čak inzistiram da učenici koriste standardnu ​​funkciju sortiranja - to je brže i praktičnije i omogućuje vam rješavanje više problema, ali tek nakon što nauče pisati sortiranje se.

Zapravo, postoji ugrađena sorta u bilo kojem suvremeni jezik programiranje (Java, C++, PHP), jer je sada tako prihvaćeno. Ne postoji samo u klasičnom Pascalu (ali u modernom Delphiju postoji), nema ga u starim BASIC-ima (a u Visual Basicu jeste), ali to ne znači da se svi ti jezici ne mogu koristiti, jer su izgradili -u sortiranju? I nikome ne bi palo na pamet zabraniti učenje ovih jezika u školi samo zato što "što ako učitelj uči djecu kako koristiti ugrađeno sortiranje, a onda ne možete toj djeci objasniti zašto moraju učiti složenost algoritama za sortiranje." Dakle, nije problem je li sortiranje u programskom jeziku ili ne, već je problem KAKO ga koristiti. Dovoljno je da neki školarci objasne što je "selekciono sortiranje" - to je razumljivo i vrlo jednostavno pisati u istom Pythonu, a s nekim možete razgovarati o učinkovitim algoritmima sortiranja, a prisutnost ugrađenog sortiranja ne ometa ovaj. Štoviše, ako učim djecu programiranju na istom C ++, onda pokušavam naučiti djecu kako koristiti sortiranje iz STL-a i kako ga učinkovito koristiti, a to ne ometa proučavanje algoritama za razvrstavanje. Na MIT-u (Massachusetts Institute of Technology) svi početni tečajevi programiranja prebačeni su na Python prije nekoliko godina. Na novom Fakultetu računalnih znanosti HSE-a, osnovanom 2014. uz sudjelovanje Yandexa, Python je prvi programski jezik koji studenti uče. Ovdje kao primjer navodim novi fakultet, jer. na sveučilištima s već uspostavljenim programima teže je bilo što promijeniti, na primjer, na fakultetu CMC-a Moskovskog državnog sveučilišta pokušaj da se Pascal zamijeni C kao prvim programskim jezikom nije uspio zbog nespremnosti da se promijeni postojećih programa i kontingenta nastavnika.

Dalje, pogledajmo izjavu "A to može dovesti do pojave galaksija “programera samo za Python” koja nije spremna prevladati dodatna ograničenja kako bi se povećala učinkovitost programa." U određenom smislu, u tome nema ništa loše. Programiranje postaje sve masovnija profesija, a mnoge programerske vještine ne spadaju u ono što je visoko obrazovanje, tj. , većina programera i ne trebate proučavati sveske posvećene algoritmima za sortiranje. Složenost algoritama za sortiranje je, naravno, područje visokog stručnog obrazovanja, ali programeri koji mogu napisati web stranicu na PHP-u ili program za računovodstvo
1C je također potreban, a potrebno ih je puno. Općenito, takvi programeri ne moraju razumjeti algoritme za sortiranje, samo trebaju znati koristiti standardnu ​​funkciju sortiranja za bilo koji zadatak i znati da ona može sortirati nizove bolje nego da su je sami napisali (a potpuno je čudno zahtijevati web programer znati o algoritmima brzog sortiranja, naravno, s tim znanjem neće biti ništa loše, ali je potpuno nepotrebno da bi funkcioniralo). Dakle, sustav osposobljavanja programera trebao bi uključivati ​​i srednje strukovno obrazovanje (gdje se podučavaju primijenjene stvari i tehnologije), i sustav visokog obrazovanja (gdje je jednostavno prikladno raspravljati o složenosti algoritama za razvrstavanje), baš kao što je to u mnogim industrijama, jer na primjer, u medicini (liječnik sa srednjom stručnom spremom obavlja standardne medicinske zahvate, a liječnik s visokom stručnom spremom zna propisati liječenje, odnosno analizirati uzroke i donijeti odluku). Da, postoje specijalnosti vezane uz programiranje i u srednjem specijaliziranom obrazovanju i u visokom obrazovanju, ali sustav ovdje nije izgrađen na isti način kao u istom sustavu medicinskog obrazovanja. I, da budem iskren, slabo znam što se događa u srednjem strukovnom obrazovanju s podučavanjem programiranja.

Jedna od analogija koje volim ovdje koristiti je napredak u automobilima. Početkom i sredinom 20. stoljeća vozač automobila morao je poznavati strukturu automobila i sam obavljati prilično složene popravke. Svaki vozač bi trebao biti prilično mehaničar. Sada mnogi vozači, dobro, ako imaju nešto zajedničko
razumijevanja strukture automobila, onda ga sigurno nikad ne popravljaju, radije obavljaju sva održavanja u autoservisu. Je li ovo dobro ili loše? To je, po mom mišljenju, neizbježno. Širina distribucije automobila postala je tolika da je teško od svih vozača zahtijevati vještinu popravka i dubinsko poznavanje strukture automobila. Široka upotreba automobila neizbježno će dovesti do činjenice da većina vozača neće imati duboko znanje o strukturi automobila. A automobili, zauzvrat, postaju sve prikladniji i pouzdaniji, tako da ih možete koristiti bez posebnih vještina.

Isto je i s programiranjem - programiranje je sve češće, a sami programski jezici postaju sve praktičniji i jednostavniji. Bez sumnje, broj programera raste i nastavit će rasti (iako još uvijek postoji veliki nedostatak kvalificiranih programera u industriji), dok će se razina dubokog razumijevanja stvari smanjivati. To je neizbježno, ali to nije razlog za odustajanje od modernih programskih jezika visoke razine, kao što nikome ne bi palo na pamet napustiti moderne automobile samo zato što su pouzdaniji i praktičniji, te ne zahtijevaju posebna znanja za stalnu upotrebu.