Kas ir programmēšana?

Arvis Zeile
Arvis Zeile
28 Aprīlis, 2022 | 6 mins

Pirms 10'000 gadu cilvēks risināja uzdevumu, kā uztaisīt šķēpam asu uzgali, lai uzveiktu mamutu. Atrisināja. Tagad, digitālajā laikmetā, mēs risinām uzdevumus - kā optimizēt to, ko esam iemācījušies pēdējo 10'000 gadu laikā. Un viens no labākajiem rīkiem šādu uzdevumu risināšanai, mūsuprāt, ir programmēšana!

Patiess notikums:

Visdārgākā defise (“-”) vēsturē bija 135'000'000 USD, kad Mariner 1, pirmais kosmosa kuģis, kas pētījis Venēru, avarēja neilgi pēc palaišanas, jo vienā no vienādojumiem trūkst defises.

Programmu izveidošana un atkļūdošana prasa ievērojamu laiku, pacietību, cilvēcisko enerģiju un reizēm arī nervus. Ķeramies klāt raksta būtībai - Kas ir programmēšana?

Kas ir programmēšana?

Mums, programmētājiem patīk definīcijas, tāpēc sākšu ar programmēšanas definīciju: “Programmēšana ir aktivitāšu kopums, kas saistīts ar programmas izveidi digitālai ierīcei.”

Ja ir brīvas ~5 minūtes, tad iesakām arī izlasīt Wikipedia konspektu un noskatīties Khan Academy pieejamo video.

Tātad, atšifrējot definīciju: programmēšana ir darbību kopums, kas veltīts datoram saprotamu instrukciju sagatavošanai - projektēšanai, izstrādei, izvietošanai un atbalstam (pieskatīšanai, lai viss darbojas). Programmēšanas procesā sagatavotās instrukcijas sauc par programmām. Programmas is ļoti konkrētas un determinētas, tās apraksta kas un kad datoram ir jādara, lai izpildītu kādu uzdevumu. Ir četras (4) pamata veidu programmas:

  • Sistēmu programmas, tās nodrošina tādas pamatfunkcijas kā operētājsistēmas, diska pārvaldība, utilītas, aparatūras pārvaldība un citas darbības vajadzības;
  • Programmēšanas programmas, tās domātas programmētājiem un nodrošina tādus rīkus kā teksta redaktori, kompilatori, atkļūdotāji un citi koda izveides rīki;
  • Lietojumprogrammas (tautā zināmas kā web lapas, web sistēmas, aplikācijas, mobilās lietotnes, utt.), lai palīdzētu lietotājiem veikt uzdevumus. Piemēram: CRM programmas, noliktavas pārvaldības programmas, grāmatvedības programmas, interneta veikali. Arī ikdienā bieži lietojamie rīki Facebook, WhatsApp, Spotify un ziņu portāli ir lietojumprogrammas;
  • Iekārtu programmas, tās tiek izmantotas, lai kontrolētu mašīnas un ierīces, kuras parasti neuzskata par datoriem — telekomunikāciju tīklus, automašīnas, rūpnieciskos robotus un daudz ko citu. Šīs ierīces un to programmatūru var savienot kā daļu no lietu interneta (IoT).

Kas jāprot programmētājam?

Jau minēju, ka programmas veidošana var būt laikietilpīgs un satraucošs process. MAK IT uzskatām, ka, lai neapmaldītos programmatūras izstrādes procesā, izstrādātājam ir jābūt iemaņām šādās disciplīnās:

  • Prasību apkopošana un analīze - pamata vajadzībām prasību apkopošana pārsvarā aprobežojas ar īsu tekstu kurā vispārīgi aprakstīta risināmā problēma, dati kurus paredzēts ievadīt vai saņemt, un dati kuriem būtu jārodas no risinājuma.
  • Arhitektūras veidošana un projektēšana - reālos projektos šī daļa var nozīmēt vīziju, no kādām komponentēm sistēmai ir jāsastāv, vai pat var paredzēt plašu dokumentāciju un shēmas par to, kā sistēma tiks realizēta.
  • Programmēšana - šī ir tā daļa, kur top kods. Šajā posmā notiek risinājuma realizācija ar programmēšanas valodu.
  • Testēšana - šī daļa ir vesela zinātne. Kompānijās ar to nodarbojas speciālisti, kurus sauc par testētājiem, bet katram programmētājam ir jāsaprot testēšanas principi un jāprot pamata līmenī notestēt savu programmu.
  • Atkļūdošana - programmētāji ikdienā izmanto dažādus rīkus, lai atrastu kļūdas kodā. Šādā veidā tiek nodrošināta programmas kvalitāte un efektivitāte.
  • Darbināšana - lai programmas darbotos, nepieciešama atbilstoša infrastruktūra. No programmētājiem bieži dzirdam tādus vārdus kā serviss, datubāze, integrācija u.c. Lai veiksmīgi darbinātu programmas, tām nepieciešams izveidot stabilu, drošu un uzticamu infrastruktūru.
  • Komunikācija - īpaši pēdējos gados, tieši šī kvalitāte ir kļuvusi par kritisko komponenti jebkuras programmas izstrādē. Pārpratumi, neiedziļināšanās, nekonstruktīvas sapulces arvien biežāk ir iemesls sliktam rezultātam . Savukārt, savstarpēja sapratne, konstruktīvi dialogi un precīzi skaidrojumi ir pamats, lai sasniegtu vēlamo mērķi.

Programmētāji var specializēties dažādās tehnoloģijās, piemēram kāds vairāk strādā ar Web sistēmām, kāds ar robotiem, taču augstāk minētās prakses ir jāpārzina visiem. Un jo labāk tās pārzin, jo labāks programmētājs. Daļa no šīm zināšanām nāk tikai ar pieredzi.

Programmas izstrādes process

Tipisks programmu izstrādes process sastāv no vairākiem apakšprocesiem, kur pati programmēšana jeb datora instrukciju rakstīšana ir vien daļa no visa darba. Bieži programmu izstrādē tiek iesaistīti arī citu kvalifikāciju speciālisti, piemēram:

  • Sistēmu analītiķi,
  • Arhitekti,
  • Projektu vadītāji,
  • Dizaineri,
  • Testētāji,
  • U.c.

Un par to mēs ar prieku dalīsimies citā bloga ierakstā.

Kas ir programma un no kā tā sastāv?

Ja Jūs jautāsiet: “Vai tiešām pilnīgi viss, totāli viss, 100% viss, galu galā tiek glabāts nullītēs (0) un vieniniciņos (1)?”, tad atbilde būs: “Jā!”

Lai gan ikdienā Programmētāji izmanto augstāka abstrakcijas līmeņa valodas (programmēšanas valodas), tomēr rezutātā viss uzrakstītais kods un arī koda apstrādātie dati tiek izteikti un glabāti binārajā kodā. Šādā pierakstā pastāv tikai divi simboli – “0” un “1”, ar kuru palīdzību informācija tiek nodota komandu veidā datoram. Tā kā ar diviem cipariem “0” un “1” var nodot tikai 2 informācijas vienības, binārā sistēma kombinē šos bināros ciparus grupās, lai varētu nodot pēc iespējas detalizētākus ziņojumus (Wałaszek, 2018). Šādā veidā, pateicoties bināro ciparu grupai, kas izteikta kombinētā ciparu simbolā, dators spēj izpildīt prasītās operācijas. Piemēram, alfabēta atsevišķi burti tiek izteikti šādā veidā (BiMatrix, 2018):

  • „a” – 01100001
  • „b” – 01100010
Piemēram, vārds „hello” tiks iekodēts kā:
01001000 01100101 01101100 01101100 01101111

Katrai programmai ir redzamās daļas un neredzamās daļas. Redzamās ir tās, ko redz un lieto lietotājs (Tu - cilvēks). Taču ir arī neredzamās daļas un šīs slēptās daļas bieži izrādās visapjomīgākās. Ilustrācijā var redzēt klasiskas programmas “aisberga” efektu:

Biežāk sastopamie mīti

Viena programmēšanas valoda ir labāka par citām
Nē, Nej, No, いいえ. Droši apgalvojam, ka tā tas nav. Katrai programmēšanas valodai ir savas īpašības. Citas ir vairāk izmantotas, citas mazāk, taču katrai ir savs nolūks, stils un priekšrocības.
Programmētājs tikai raksta kodu
Lūdzu skatīt šī raksta sadaļu “Kas jāprot programmētājam?”
Programmas veidošanas projekts būs veiksmīgs, ja komanda sekos iepriekš sagatavotam plānam
Programmas izstrāde ir sarežģīts un radošs process, kam, gluži pretēji stingram plānam, ir vajadzīga elastība. Plānošana ir obligāta, taču prasības var mainīties, un var rasties situācijas, kurām var būt nepieciešami radoši risinājumi. Programmas veidošana un attīstība ne vienmēr ir lineāra un paredzama. Reāla projekta plānošanai ir jābūt sadalītai mazos plānošanas ciklos.
Programmas pabeigšana ir projekta beigas
Patiesībā, pabeidzot sākotnēji iecerēto programmu, ir veikts tikai pirmais solis. Tālāk seko atkļūdošana, jaunu funkciju pievienošana, izmaiņas tam, kam varbūt jāstrādā citādāk, utt.
Mākslīgais intelekts atrisinās visas mūsu IT problēmas
Mēs (MAK IT) varbūt kļūdāmies, taču mēs domājam, ka tā tas nebūs, jo tas joprojām ir kods, tas joprojām dara to, ko kāds tam lika darīt, pat ja tajā ir sarežģīti algoritmi, lai "mācītos" un pieņemtu lēmumus patstāvīgi.
Parasti ir tikai vien pareizs veids kā risināt problēmu ar programmēšanas palīdzību
Šo mītu satriec pīšļos viens konkrēts un neapgāžams fakts: ja 10 programmētājiem iedos vienu un to pašu uzdevumu, rezultātā būs 10 dažādas programmas. Katra programmētāja kods ir kā pirkstu nospiedumi - absolūti unikāls.

Joki kas nav joki

  • Apmēram ceturtā daļa no visa programmēšanas laika tiek veltīta domāšanai par to, ko lietotājs var izdarīt nepareizi un kā to novērst.
  • Programmētājs nav datoru remonta speciālists. Lai gan iesakņojušos stereotipu dēļ nemitīgi tiek lūgts salabot datorus un pat sadzīves tehniku.
  • Lietotājs nezina, ko viņš vēlas, kamēr viņš neredz to, ko viņš saņēma - E. Yodan
  • Jebkura programma vienmēr ir dārgāka un laikietilpīgāka, nekā gaidīts.
  • Programmētāju skaita palielināšana, lai programmu izstrādātu ātrāk, tikai palēnina procesu.
  • Ja programma būs veiksmīga un noderīga, tad tā noteikti būs jāpārtaisa.

P.S.

Interesants fakts, rakstot šo rakstu, uzmetu fiksu skatienu sev apkārt un ko es redzu:

  • Datoru,
  • Mobilo telefonu (viedtālruni),
  • Mūzikas bluetooth tumbiņu,
  • iPad,
  • ARANET4 iekārtu, kas mēra gaisa kvalitāti telpā,
  • Garmin pulksteni (viedpulksteni).

Sešas (6) iekārtas divos (2) kvadrātmetros. Un tās visas ir digitālas iekārtas, jo tiek darbinātas ar datorprogrammām.