Programiranje - Kako začeti?

32 minutno branje Zadnja sprememba:

Uvod v programiranje in predstavitev nekaterih programskih jezikov za začetnike
Kazalo


Izvirnik objavljen na fiziki 29/12/2013


[2016:] Dodano poglavje 2. Okolja ter specifike Windows okolja s slikami.

[2018:] Za dovršenost, dodane še slike iz OSX in Linux okolja. Le te so si velikokrat podobne, zato je pogosto dodana le ena slika, ki ponazarja izvedbo na obeh sistemih. Razmišljala sem tudi, da bi seznam spodnjih jezikov malo osvežila še z Go, Rust, Haskell, Lua ipd., vendar sem zaenkrat le premešala vrstni red, saj so tukaj omenjeni jeziki še vedno dokaj aktualni TIOBE Index. Sicer pa je jezikov v uporabi že toliko, da se ta seznam ne bi nikoli zaključil ali bil najbolj optimalen, kar tudi ni namen tega prispevka. Namen tega prispevka je le, mogoče koga spodbuditi k eksperimentiranju v tej smeri in mu nekoliko olajšati začetek.

[2019:] Dodala povezavo na brezplačni PHP tečaj v slovenščini php-tecaj.si. Hvala Anže, Marko in kompanija za to veliko delo \m/


1. Uvod

V letošnjem letu smo imeli predavanje na temo adolescenca. Med drugim je bila omenjena tudi procesorska moč v najstniških letih. Natančneje naj bi bili možgani sposobni predelati največ podatkov v najkrajšem času pri starosti 21 let. V enem razredu sem komentirala, naj to izkoristijo in naj ne zapravljajo te moči zgolj za igrice, naj to izkoristijo na primer za učenje programiranja. Pa me je dijakinja vprašala kje in kako se to naučijo?

Točno to sem se spraševala tudi sama, ko so me prepričevali naj začnem programirat, češ da bo meni zagotovo šlo dobro od rok.

In res v našem šolskem sistemu tega v večini programov ni, čeprav vsi menimo, da bi bilo to potrebno. Poleg jezikov, ki se jih dijaki učijo, bi bilo potrebno znanje vsaj enega programskega jezika, da znajo vsaj približno prebrati kodo in vedo kaj dela, saj se s programiranjem prej ali slej srečajo. Naši dijaki pa se v glavnem učijo Microsoft Office. Naprej ne bom argumentirala, saj je bilo že večkrat argumentirano. Za uvod predlagam ogled kratkega filma, ki izpostavi večino dejstev: Code Stars. Da se vrnem na vprašanje. Kje te naučijo programirat ne vem. Verjetno v šolah z besedo računalništvo ali informatika v nazivu, morda kakih tečajih, sicer se je pa potrebno naučiti sam. Kar je seveda samumevno: učiti se, sebe. Ostali lahko le pomagajo.


Kako se naučimo?


Tukaj lahko pomagam s skromnimi nasveti iz lastnih laičnih iskušenj. Sama nisem šolana v tej smeri, niti nimam opravljenega nobenega izpita iz računalništva, niti ne poznam nobenega resničnega človeka, ki bi mi lahko pomagal. Tako sem si pomagala sama kot si lahko vi, le s spletom in dobrimi virtualnimi ljudmi.:) Zato nisem kvalificiran človek, da sploh to pišem, ampak ker velja, da v demokraciji lahko vsakdo piše o bilo čem, zakaj pa ne?:P ali drugače /*In democracy there is no such thing as stupidity:D*/

[Pomembno:] Za programiranje ni potrebna nobena višja inteligenca. Lahko se ga nauči vsak človek tako kot branja in pisanja. Ne verjetmite ljudem, ki govorijo da je to le za ene posvečene voodoo ljudi!!! Vse kar je potrebno je volja in čas. Prav pride tudi določena mera matematičnega znanja, kar pa ni predpogoj. Poznam programerje, ki jim že Vietovi pravili delajo težave. Seveda pa programiranja ne gre jemati preveč z lahkoto in večina nas nikoli ne bo dosegla stopnje Dennisa M. Ritchija, Linusa Torvaldsa, Petra Ferrija ipd., vendar menim, da osnovno pismenost lahko dosežemo s trudom vsi. Na temo nauči se programiranja v 10 dneh je napisanih kar nekaj knjig, kot protiutež pa vam v branje predlagam pisanje Petra Norviga Teach Yourself Programming in Ten Years in One does not simply learn to code. Skratka, kot vedno, če se želimo nekaj novega naučiti, moramo vložiti čas in trud. Saj veste, nihče se zjutraj ne zbudi in kar zna japonsko, na žalost.

Uvod v programiranje za netehnične ljudi: Eat the World


2. Okolja

Tri leta so minila od kar sem pisala ta prispevek. V tem času sem svojo opremo nekoliko posodobila, tako da imam sedaj lahko nameščene tudi 64 bitne sisteme in VM-je. Prispevek, ki je večinoma namenjen Linux ukazni vrstici, bom zato poskušala dopolniti še z Windows in OSX različico. Ob tem se bom držala principa KISS (Keep it simple stupid). Torej:

Preden začnemo, si moramo postaviti okolje, ki nam bo omogočalo spodnje primere preizkusiti.


2.1. Linux

Večina stvari je že prednameščenih, tako da naše okolje že imamo. Potrebno je le namestiti nekatere željene jezike. Nameščeni paketi so odvisni od distribucije. Distribucija, ki ima nameščeno vse potrebno je Kali Linux. V kolikor niste še videli drugega sistema razen Windows, vam priporočam, da si Kali sliko namestite v VirtualBox, VMWare Player, Qemu, ali kakšno podobno virtualno rešitev. Tukaj omenjam le brezplačne različice. V kolikor vam sistem tega ne dopušča, Kali potrebuje najmanj 1GB rama, si naredite zagonski USB (Navodila za telebane, Uradna navodila). V BIOSU izberite USB kot prvo opcijo za zaganjanje sistema. Ko se sistem zažene, si naredite mapo koda, kot prikazano na Sliki 1.

Na Linux sistemih se ne bomo ukvarjali z Microsoftovimi posebnostmi, kot sta VB in C#.

Če bi si radi le malo ogledali kako kakšna Linux distribucija zgleda, predlagam ogled Ubuntuja, ki je baziran na Debianu, tako kot zgoraj omenjeni Kali Linux.


2.2. OS X

Tudi tukaj imamo naše programersko okolje že nameščeno. Potrebno je le odpreti Terminal, ki se skriva nekje pod Pripomočki (Utilities). Lahko pa si namestite nekoliko naprednješi iTerm2. Sicer se ne spominjam natančno, kateri jeziki so bili že v osnovi nameščeni. Če nam kakšen manjka, si v večini primerov pomagamo s Homebrew, oziroma snamemo namestitvene programe in sledimo navodilom. Tudi tukaj se ne bomo ukvarjali z VB in C#.

[2018:] Po prebiranju dokumentacije lahko povzamem: Večina skriptnih jezikov je prednameščena. Ni pa nameščen noben prevajalnik. Za prevajanje C, C++ in Objective-C je potrebno namestiti:

  • Opcija 1: XCode in Command Line Tools, ki nam namesti llvm-gcc/clang. Za naše primere bo zadostovalo. Namestitev

  • Opcija 2: GCC, GNU Compiler Collection, ki ga namestimo s Homebrew. Namestitev

Naredimo si mapo koda, kjer bomo shranjevali naše programe. Odpremo terminal in se znajdemo v svoji domači mapi. Natipkamo mkdir koda, ter se premaknemo v ustvarjeno mapo cd koda. Zapomnimo si lokacijo mape, ki jo preverimo s pwd. Glej Slika 2.


2.3. Windows

Verjetno si je na Windowsih najbolj smotrno namestiti brezplačen Visual Studio Community, ali njegovo različico brez grafičnega okolja Visual C++ Build Tools /* V nadaljevanju VS */. Ker me za Windos uporabnike najbolj skrbi, dodajam še pot do developer command prompta. Če si namestil Visual Studio Community, klikni Start → Vsi programi → Visual Studio 2015 mapa → Developer Command Prompt for VS2015. Če si namestil Visual C++ Build Tools, klikni Start → Vsi programi → Visual C++ Build Tools mapa → Visual C++ 2015 x86 Native Tools Command Prompt. Glej Slika 3.

Naredimo si še mapo, v katero bomo shranjevali našo kodo. Klikni Start, napiši cmd in pritisni Enter. Verjetno si pristal v svojem domačem direktoriju C:\Users\Uporabnik. Natipkaj:

C:\Users\Uporabnik>mkdir koda
C:\Users\Uporabnik>cd koda



2.4. Urejevalniki besedil

Linux: Vim, Emacs, SublimeText, Kate /*kde*/, Gedit /*gnome*/, nano, piko, femto … Hehe, ne femto editor ne obstaja, ampak se je tako lepo nadaljevalo … Svetujem, da si željen urejevalnik namestite z upravljalnikom paketov, ki ga na sistemu imate, saj boste tako imeli najmanj težav pri posodabljanju. Torej: yum install vim, apt-get install vim, emerge vim … , ali z njihovimi grafičnimi različicami, kot so Synaptic, Adept …

OSX: TextEdit, TextWrangler, SublimeText, Vim for Mac OSX, Emacs For Mac OSX, Atom

Windows: Notepad++, AkelPad, SublimeText, Atom ali kar tekstovni urejevalnik Visual Studia, ki ga kar pohvalijo … NotePad bo za naše potrebe v tem prispevku več kot dovolj.



3. Opisi nekaterih jezikov s primeri

Navedla bom nekaj aktualnih jezikov. Kateri jezik izberemo je odvisno od naloge/projekta, ki smo si ga zadali. Na primer: za izdelovanje dinamične spletne strani je nekako bolj primeren PHP kot C, kernel modula ne bom pisala v JavaScriptu itd. …

Posamičen jezik bom najprej kratko opisala, nato navedla osnoven primer napisan v danem jeziku, PozdravljenSvet, in pokazala kako se program prevede ali tolmači. Nekateri jeziki potrebujejo prevajalnike /*compiler*/, nekateri pa tolmače /*interpreter*/. Da smo dosledni. Nekatere termine bom pisala v angleščini, saj včasih ne poznam pravega prevoda, v izogib nesporazumom. Poskušala bom posredovati čim več povezav do vsebin, ki izčrpneje pojasnujejo uporabljene termine, pojme, produkte, … Nekako se moram omejiti, sicer se pisanje nikoli ne konča. o.O

Prevajanje ali tolmačenje programa je odvisno od operacijskega sistema in tukaj mogoče ne bom najbolj kompatibilna z vami, saj “laufam” na Linux i686, na starem računalniku in si zatorej ne morem omisliti nekega IDE-ja ali virtualnih Windowsov, saj bi mi računalnik “počepnil”. Iz navedenih razlogov za programiranje uporabljam vim in terminal. Vi ste verjetno na Winowsih in tam vam ne znam konkretno pomagati, zato sem vam navedla ustrezne IDE-je in povezave nanje, da si jih lahko namestite in preberete kako se to počne z njimi. Programe sicer pišemo enako povsod, le način izvedbe prevajanja je drugačen.

[2016:] Dopolnjena kompatibilnost, vendar je Vim še vedno moj IDE:P Vim Koans
/* Ok, priznam, da včasih tudi neovim, vendar še vedno večkrat natipkam samo vim. O Vimu pa mogoče kdaj drugič. */





3.1. Java

Kratek opis:

Ima trenutno največ razvijalcev. Znana je po prenosljivosti. Aplikacija napisana v Javi dela praktično na vseh operacijskih sistemih, ki imajo Javo nameščeno /*crossplatform*/. V Javi je napisano veliko Android aplikacij in igric, spletnih aplikacij, … Če zanemarimo število 0day-ev, ki vsak dan pricurljajo na plano, je trenutno eden najbolj popularnih jezikov. Je OOP (object oriented programming) jezik. Predogled, kaj bi se zgodilo na svetu, če Jave ne bi bilo: Javapocalypse. Več

Primer:

// PozdravljenSvetJava.java

public class PozdravljenSvetJava{
    public static void main(String[] args){
        System.out.println("Pozdravljen svet!");
    }
}
Prevajanje:

V OS X in Linux terminalu:

Prevajalnik za Javo je javac, ki si ga namestiš skupaj z jre7/8-openjdk (ime paketa je odvisno od distribucije) s pomočjo emerge, apt-get, yum, pacman, … Za namestitev Jave JDK, ki namesti tudi JRE, na OS X, bo najbolje sledititi Oraclovim navodilom. Namestitveni paket snameš tukaj. Odpri terminal in se premakni v prej narejeno mapo koda ter shrani zgornjo kodo v datoteko PozdravljenSvetJava.java. Nato izvedi ukaz javac PozdravljenSvetJava.java. Preveden program izvedeš z java PozdravljenSvetJava. Glej Slika 4.

Windows:

Sledi navodilom in si namesti Java SE Development Kit. Dodaj pot. Na Windows 10: Control Panel → System and Security → System → Advanced system settings → Environment Variables → System Variables → Path → Edit → New → Prilepi pot do jdk bin, v mojem primeru C:\Program Files\Java\jdk1.8.0_92\bin. Nato klikaj OK, Apply ipd. Nakar klikni start, vpiši cmd ter stisni Enter. Preveri če vse deluje. Natipkaj java -version in javac -version, ter preveri izpise. Premakni se v prej narejeno mapo koda ter natipkaj notepad PozdravljenSvetJava.java. V tako odprto beležnico skopiraj zgornjo kodo. Shrani kot PozdravljenSvetJava.java (ne kot Text files, ampak kot All files), zapri beležnico in izvedi ukaze, kot opisano prej. Glej Slika 5.

IDE:

Na računalnik si namestiš IDE Eclipse in s “klikanjem” opraviš isto.

[Opozorilo:] Javo po eksperimentiranju raje odnamesti, saj prinaša veliko nevarnosti. V kolikor želiš raziskovati naprej, si jo pač pusti nameščeno, vendar bodi previden.






3.2. C in C++

Kratek opis:

C je verjetno moj najljubši jezik, K&RC Ace of Spades in Dennis MacAlistair Ritchie, znan tudi kot DMR, Lemmy. Ne vem kako bi opisala mojo navezanost na C. Henry Precheur jo je opisal takole: C, old friend. Gremo k bistvu. Čeprav C in C++ velikokrat navajamo skupaj, kot v tem primeru, gre za dva različna jezika. C++ nekako izhaja iz C-ja, je pa OOP, kar C ni. C++ se široko uporablja v programski industriji: sistemi, video igrice, gonilniki, server/klient aplikacije, … C je jezik Linux kernela, kar bi moralo povedati dovolj. Tu bi navedla še citat Linusa Torvaldsa:

C++ is a horrible language. In other words: the choice of C is the only sane choice.

Kontekst: V katerem jeziku naj bo napisan Linux kernel …

Pa mogoče še: :P /* Moram nehati, takih in podobnih rekov je ogromno. */

Dennis Ritchie invents a powerful gun that shoots both forward and backward simultaneously. Not satisfied with the number of deaths and permanent maimings from that invention he invents C and Unix.

Več o C: Wiki | Egon Zakrajšek: ANSI C | ASMR C :P | Bash in C

Več o C++

En izmed meni najljubših tečajev na edX je Harvardov CS50, ki začne in gradi na C-ju. Zelo priporočam.

Primer in prevajanje C:

// PozdravljenSvetC.c

#include <stdio.h>

int main(void){
    printf("Pozdravljen svet!\n");
    return 0;
}

V OS X in Linux terminalu:

Zgoraj naveden primer shraniš s pomočjo urejevalnika besedil kot PozdravjenSvet.c. Nato ga prevedeš /*compilas*/ s pomočjo gcc /*GNU Compiler Collection*/ prevajalnika, z ukazom gcc PozdravljenSvetC.c -o PozdravljenSvetC. Tako dobljen program izvedeš s ./PozdravljenSvetC seveda v direktoriju, kjer se nahaja program. Datoteka mora biti izvršljiva: chmod +x PozdravljenSvetC.

Windows:

Odpri Visual Studio ukazno vrstico, kot opisano v poglavju 2.3. Premakni se v mapo koda, natipkaj notepad PozdravljenSvetC.c, skopiraj zgornjo kodo v beležnico in jo shrani. Beležnico zapri. Kodo nato prevedi v VS ukazni vrstici s cl PozdravljenSvetC.c ter jo izvedi tako, da natipkaš PozdravljenSvetC v ukazni vrstici. The Infamous Windows “Hello World” Program

In ja, tudi v C-ju se da napisati spletno stran:P


Primer in prevajanje C++:

// PozdravljenSvetCpp.cpp

#include <iostream>

int main(){
    std::cout << "Pozdravljen svet!" << std::endl;
    return 0;
}

V OS X in Linux terminalu:

Zgoraj naveden primer shraniš s pomočjo urejevalnika besedil kot PozdravljenSvet.cpp. Prevedeš ga s pomočjo Gnu prevajalnika /*compilerja*/ g++, ki je vključen v že prej omenjeni gcc, z ukazom g++ PozdravljenSvetCpp.cpp -o PozdravljenSvetCpp. Dobljeni program izvedeš s ./PozdravljenSvetCpp v direktoriju, kjer se nahaja program. Datoteka mora biti izvršljiva: chmod +x PozdravljenSvetCpp.

Windows:

Odpri Visual Studio ukazno vrstico, kot opisano v poglavju 2.3. Premakni se v mapo koda, natipkaj notepad PozdravljenSvetCpp.cpp, skopiraj zgornjo kodo v beležnico in jo shrani. Kodo nato prevedi v VS ukazni vrstici s cl /EHsc PozdravljenSvetCpp.cpp ter jo izvedi tako, da natipkaš PozdravljenSvetCpp v ukazni vrstici.

Programska okolja /*IDE*/:

Namesto, da delate v terminalu, si lahko namestite okolja kot so: Eclipse, NetBeans, Visual C++ (M$, menda vključen v Visual Studio), Xcode(OSX), … Tam odklikate kar je treba. Kot vidite okolja podpirajo več programskih jezikov, vključujejo razhroščevalnike /*debugerje*/, nudijo dopolnjevanje besed, te že sproti opozarjajo na napake in so primerna za velike projekte. Na posredovanih povezavah dobite navodila za namestitev teh okolj in njihovo uporabo.






3.3. C# (C Sharp)


Kratek opis:

C# je Microsoftov klon Jave. Aplikacije napisane v C# delajo v Windows okolju in potrebujejo .NET ogrodje /*framework*/. Je splošno orientiran jezik.

O tem jeziku vem bore malo. Winsow nimam, da bi karkoli testirala, tako da ne bom pametovala. Mogoče si bom winse namestila na kako virtualno mašino, ko kupim nov računalnik, da malo raziščem ta sistem in s tem tudi C#. Do takrat vam pa posredujem povezave do strani z več informacijami.

Več

Primer:

// PozdravljenSvetcs.cs

public class PozdravljenSvetcs
{
    public static void Main()
    {
      System.Console.WriteLine("Pozdravljen svet!");
    }
}
Prevajanje:

Kot sem že povedala, okrog C# ne bom pametovala, navajam povezavo do primera: Hello World -- Your First Program (C#).

Na Windowsih imate po večini verjetno nameščen Visual Studio, tako sem vsaj opazila na Windows računalniku, ki ga imam v razredu. Sicer pa si brezplačno namestite Visual Studio Express ali Visual Studio Comunity. Na slednji povezavi lahko tudi kupite, na primer, Professional. Za naše poskuse bo pa več kot dovolj brezplačen paket Visual C++ Build Tools.

[2016:] Ali pač …

Windows:

Odpri Visual Studio ukazno vrstico, kot opisano v Poglavju 2.3. Premakni se v mapo koda:

cd \
cd C:\Users\Uporabik\koda

Natipkaj notepad PozdravljenSvetcs.cs in pritisni Enter, skopiraj zgornjo kodo v beležnico in jo shrani. Zapri beležnico in v ukazni vrstici natipkaj csc PozdravljenSvetcs.cs. Preveden program, ki je pri tem nastal, PozdravljenSvetcs.exe, izvedi tako, da v ukazni vrstici natipkaš PozdravljenSvetcs.


Slika 9: Windows 10 C#

Slika 9: Windows 10 C#


Na ostalih sistemih se s C# ne bomo ukvarjali, saj je ta jezik specifika Microsoftovih Windowsov.





3.4. Python

Kratek opis:

Je splošno orientiran jezik in uporaben za različne namene in industrije: letalstvo, obramba, znanost, finance, programiranje v oblakih, … Google App Engine je napisan v Phytonu. Veliko ljudi se ga uči kot prvi programski jezik. Je pregleden, enostaven, … Navajam nekaj trditev iz The Zen of Python, ki jih ne bom prevajala, da se kakšna vsebina ne izgubi:

Beautiful is better than ugly.

Explicit is better than implicit.

Simple is better than complex.

Complex is better than complicated.

Le kako bi komu ne bil všeč tak jezik?

Več: Wiki | Dive Into Python 3 | Non Programmer’s Tutorial for Python 3

Primer:
# PozdravljenSvetpy.py

#!/usr/bin/python3

print("Pozdravljen svet!")

Splošno o izvajanju skriptnih jezikov

Ker je Python prvi skriptni jezik omenjen v tem prispevku, bom tu napisala še nekaj skupnih lastnosti pri izvajanju skript. Skriptni jeziki ne potrebujejo prevajalnika, ampak tolmača, ki vsako programsko vrstico sproti preslika v strojne ukaze in jih izvede [L]. Naši skripti je dobro povedati pot do tolmača, ali jo z določenim tolmačem izvesti. Pot do tolmača povemo s shebang vrstico, citiram:

#!/bin/sh
#!/bin/bash
#!/bin/csh -f
#!/usr/bin/perl -T
#!/usr/bin/env python

Shebang vrstica je sestavljena iz magičnih znakov #!, čemur sledi pot do tolmača in ostale opcije. Pot do tolmača na sistemu lahko, na primer, poiščemo z whereis ali which ukazom. Da nam ni potrebno tipkati na primer python mamba.py, ampak le ./mamba.py, pri čemer je mamba.py ime naše skripte, je treba skripto narediti tudi izvršljivo. To storimo s chmod +x mamba.py.

Naprej/nazaj na Python
Tolmačenje:

V OS X in Linux terminalu:

Na sistemu moramo imeti seveda nameščen Python3, ki je zadnja različica Pythona. Na Linux distribucijah si ga namestimo z ustreznim upravljalnikom paketov. Če smo izbrali prej omenjen Kali Linux, je že nameščen. Na OSX naj bi bil tudi prednameščen, sicer si ga namestite s Homebrew ali iz uradne spletne strani. Med Python2 in Python3 je kar nekaj razlik. Podpora Python2-ju se počasi izteka, tako da je verjetno smiselno uporabiti Python3. Preverimo pot do “tolmača” which python3 ali whereis python3, kodo primerno prilagodimo. Lahko pa uporabimo bolj prenosljivo, a nekoliko nevarnejšo različico #!/usr/bin/env python3. Zgornji tekst shranimo v datoteko PozdravljenSvetpy.py, ki jo izvedemo z ./PozdravljenSvetpy.py ali python3 PozdravljenSvetpy.py.

Pytonov upravitelj paketov je pip. Če želim namestiti, na primer, Django, natipkam: pip install django.

Windows:

Snamemo in namestimo zadnjo stabilno verzijo Pythona3 iz uradne spletne strani python.org. Pri namestitvi odklikamo, naj nam namestitveni program doda Python v pot. Pot preverimo in po potrebi dodamo, kot smo to storili pri Javi v poglavju 3.1. Nato kliknemo Start, vpišemo cmd in pritisnemo Enter. Premaknemo se v mapo koda in natipkamo notepad PozdravljenSvetpy.py. V beležnico skopiramo zgornjo kodo, shranimo in beležnico zapremo. Program nato izvedemo s python PozdravljenSvetpy.py.

Spletna stran v Pythonu2: python-cgi.py

IDE:

Na MIT-jevem tečaju Introduction to Computer Science and Programming in Python predlagajo Anacondo, že večkrat omenjen Eclipse, PyScripter






3.5. JavaScript

Kratek opis:

Najprej poudarimo: JavaScript ni Java. JavaScript jezik so razvili pri Netscape-u z namenom pisanja interaktivnih spletnih strani. Podpirajo ga vsi brskalniki. Je jezik spleta in spletnih strani, ki postaja vedno bolj popularen. Skupaj s HTML-jem poživi spletne strani, omogoča izpoljnjevanje raznih obrazcev itd. Na tej strani je kar nekaj JavaScripta: MathJax, galerija, … Je pač nujno zlo, ki se mu dandanes težko ognemo. Sama se ga izogibam, ko se le da.

Več: Wiki, Modern JavaScript Explained For Dinosaurs, Dwitter

Primer:

JavaScript funkcijo zapišemo v datoteko s končnico .js, ki jo nato v HTML-ju, v glavi <head> kličemo s <script> in izvedemo v <body>.

V spodnjem primeru naj bosta datoteki .html in .js v istem direktoriju, da se ne ukvarjamo s potmi.

Najprej napišimo našo pozdrav funkcijo v JavaScriptu:

//javascript.js

function pozdrav(){
document.write("Pozdravljen svet!");
}

Sedaj napišimo še .html dokument, ki bo uporabil našo pozdrav funkcijo:

<!--PozdravljenSvet.html-->

<!DOCTYPE html>
<html lang="sl">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <script type="text/javascript" src="javascript.js"></script>
</head>

<body>
  <h1>Moj prvi JavaScript</h1>
  <script>pozdrav()</script>
</body>
</html>

Tolmačenje:

Za pisanje JavaScripta ne potrebujete nobenih posebej nameščenih prevajalnikov, saj kodo interpretira (tolmači) že vaš brskalnik (Safari, Firefox, Chrome, IE, Midori, …). Kodo napišete s pomočjo kakega urejevalnika besedil, nato jo vključite v vašo .html datoteko, kot opisano zgoraj, ki jo odprete z brskalnikom (.html datoteko to je).

V kolikor je JavaScripta malo, kot v našem zgornjem primeru, ga lahko vključimo kar naravnost v .html. Zgornji primer v eni .html datoteki:

<!--PozdravljenSvet.html-->

<!DOCTYPE html>
<html lang="sl">

<head>
  <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
  <script>
    function pozdrav(){
    document.write("Pozdravljen svet!");
    }
  </script>
</head>

<body>
  <h1>Moj prvi JavaScript</h1>
  <script>pozdrav()</script>
</body>
</html>

Zgornji .html na tem strežniku: PozdravljenSvet.html.

IDE:

Poleg tekstovnega urejevalnika, lahko seveda uporabite Eclipse, NetBeans itd. Javascript ima tudi ogromno knjižnic, ogrodij, še.

Za ekperimantiranje v JavaScriptu večkrat pride prav tudi kak CodePen, JS Bin, JSFiddle ipd.





3.6. Visual Basic

Kratek opis:

Še eden izmed jezikov s katerim nimam nobenega stika, ampak ga omenjajo kot pomembnega. Njegovo naravno okolje je Windows. Je enostaven, hitro učljiv jezik primeren za začetnike. V njem so narejene enostavne GUI (graphical user interface) aplikacije. Tudi ta jezik je del M$ Visual Studia.

Več

Primer:

' PozdravljenSvetvb.vb 

Module PozdravljenSvetvb
  Sub Main()
      MsgBox("Pozdravljen svet!")
  End Sub 
End Module
Prevajanje:

Res ne poznam tega jezika, zato vam bom raje navedla povezavo do primera, kot da pametujem in c/p: Hello World in Visual Basic.

Najbližje kar sem prišla VB je VBScript, s katerim sem se igrala v poletnih mesecih, po izpolnjenih vseh obrazcih, napisanih vseh papirjih, ko moramo na šoli sedeti od 8:00-14:00 brez dijakov in gredo človeku po glavi neumnosti. Na naši šoli so povsod “Okna”. Ena izmed skript, ki je takrat nastala: crke.

Na Windowsih si kodo shranite s pomočjo urejevalnika besedil kot crke.vbs in kliknete nanjo. Ne morem testirat, če še dela, saj veste … nimam Winsow …

/*Opozorili so me, da vas nod32 (morda tudi kak drugi protivirusni program) ne spusti na to stran, saj misli, da je trojanec ali nekaj njemu podobnega … Zato sem v kodo v oklepaju (“aWScript.Shell”) dodala namerno a, da strani ne blokira. Črko a od tam zbrišite, če želite, da koda deluje.*/

[Dodatek 2016:]

Windows:

Odpri Visual Studio ukazno vrstico, kot opisano v poglavju 2.3. Premakni se v mapo koda, natipkaj notepad PozdravljenSvetvb.vb, skopiraj spodnjo kodo v beležnico in jo shrani. Kodo nato prevedi v VS ukazni vrstici z vbc PozdravljenSvetvb.vb, ter jo izvedi tako, da natipkaš PozdravljenSvetvb v ukazni vrstici.

Slika 12: Windows 10 VB

Slika 12: Windows 10 VB





3.7. PHP

Kratek opis:

Še vedno popularen skriptni jezik pri spletnih oblikovalcih. Mišljen je bil kot jezik za dinamične spletne strani. Ponavadi se ga učimo skupaj z SQL in ga povežemo s HTML-jem in raznimi bazami, kot so MySQL, postgreSQL, MariaDB ipd. Popularni CMS-ji napisani v PHP-ju so na primer WordPress, Joomla!, Drupal itd.

Več | PHP Manual

Primer php+html:
<!--PozdravljenSvet.php-->

<!DOCTYPE html>
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
    <title>PHP pozdrav</title>
  </head>

  <body>
    <h1>Pozdrav v PHP-ju</h1>
    <?php echo "Pozdravljen svet!"; ?>
  </body>
</html>

Tolmačenje:

Za predstavitev .php spletne strani je potreben spletni strežnik kot je Apache, Nginx, Lighttp … Zgornjo kodo torej shranimo s pomočjo urejevalnika besedil kot PozdravljenSvet.php in jo naložimo na server. Do nje nato dostopamo s pomočjo brskalnika: http://primer.com/PozdravljenSvet.php

IDE:

Na domačem računalniku si, za postavitev spletnega strežnika, baze, php-ja, pomagamo z WAMP (Winsi), MAMP (OSX), LAMP (Linux), vsa tri okolja podpira AMPPS, ali kako podobno rešitvijo.

IDE-ji, ki podpirajo PHP, so že večkrat omenjeni NetBeans, Eclipse

Spletna ogrodja: Laravel, Zend, Symfony

Zgornjo php kodo <?php echo "Pozdravljen svet!"; ?> lahko tudi skopiramo in izvršimo na 3v4l.org ali na eval.in, pa še kje, in tako preverimo njeno pravilno delovanje, ne da bi lokalno imeli nameščen spletni strežnik.

Slovenski spletni tečaj: PHP tečaj: Brezplačni tečaj programiranja





3.8. Ruby

Kratek opis:

Draguljček, uporaben za programiranje spletnih aplikacij, 3D modeliranje, robotika, internet, sistemska administracija … Jezik balansira funkcijsko programiranje in imperativno programiranje, je lep in “čist” jezik, uporaben povsod. Uporablja ga GitHub, Metasploit (prvotno sicer napisan v Perl, 2007 reprogramiran v Ruby), Homebrew, Redmine … Paketni upravitelj za Ruby je RubyGems. Na primer: Ruby on Rails s pomočjo gem namestimo z: gem install rails. Kolikor se spomnim, je imel ta jezik letos kar nekaj varnostnih težav, vendar verjamem, da so jih odpravili.

Več | Ruby: A programmer’s best friend

Primer:
# PozdravljenSvetrb.rb

#!/usr/bin/env ruby

puts "Pozdravljen svet!"

Tolmačenje:

V OS X in Linux terminalu:

Ruby je skriptni jezik in ga izvajamo Podobno kot Python v poglavju 6. Zgornjo kodo shranimo s pomočjo urejevalnika besedil kot PozdravljenSvetrb.rb in v direktoriju kjer se datoteka nahaja izvedemo ./PozdravljenSvetrb.rb ali ruby PozdravljenSvetrb.rb. Pred tem preverimo pot do tolmača in izvršljivost datoteke. Če datoteka ni izvedljiva/izvršljiva /*executable*/ jo naredimo izvršljivo: chmod +x PozdravljenSvetrb.rb. Za lažje ugotavljanje napak v programu, ugotavljanja ali program pravilno deluje, kako ga izboljšati ipd., ima Ruby irb. Če želimo gledati kako se program izvaja izvedemo: irb PozdravljenSvetrb.rb.

Windows:

S spetne strani rubyinstaller.org si snamemo namestitveni program, ki ga zaženemo in okljukamo, naj doda Ruby v pot. Ko je namestitev zaključena, odpremo cmd in preverimo namestitev z ruby -v. Če nam izpiše verzijo, vse deluje?, sicer preverimo pot (glej Java 3.1) ali si pomagamo z assoc in ftype v cmd-ju, nekako takole:

# odpremo cmd
assoc .rb=RubyScript
# spodnjo pot do ruby ustrezno prilagodimo
ftype RubyScript="c:\Ruby23-x64\bin\ruby.exe" "%1" %*

Nakar v cmd-ju natipkamo notepad PozdravljenSvetrb.rb, skopiramo zgornjo kodo v beležnico in jo zapremo. Datoteko izvedemo z ruby PozdravljenSvetrb.rb.

Spletna stran v Ruby: ruby-cgi.txt


IDE:

Eclipse, RubyMine, Aptana

Namesiš si okolje in odklikaš svojo pot …

Spletna ogrodja: Ruby on Rails, Sinatra





3.9. Perl

Kratek opis:

Perl. Kaj naj rečem? Punce imamo rade bisere:P Včasih so ga imenovali ga tudi “Duct tape of the internet”. Je dinamičen, splošno orientiran jezik, podobno kot PHP, Ruby, Python. Uporablja se za sistemsko administracijo, omrežno programiranje, kot tudi grafiko itd. Vsaka slava enkrat mine in tako je upadla tudi popularnost tega jezika, ki pa je še vedno dokaj prisoten. Perl velja za “grd” jezik, saj je težko berljiv, slabo pregleden ipd. Je pa tudi učinkovit jezik. Podobno kot velja, da je netcat “swiss army knife of the internet”, je veljalo, da je Perl “The Swiss Army Chainsaw of Scripting Languages” . Perl skripta se, podobno kot Ruby, Python itd, začne s shebang vrstico, natančneje z zaporedjem znakov #! za katerim je pot do tolmača.

Več | PerlMonks

Primer:

PozdravljenSvetpl.pl

#!/usr/bin/perl 

print "Pozdravljen svet!\n";

Tolmačenje:

V OS X in Linux terminalu:

Zdornjo kodo, seveda brez prve vrstice, ki je ime datoteke, prepišemo s pomočjo urejevalnika besedil in shranimo kot PozdravljenSvetpl.pl. Nato jo izvedemo z ukazom: perl PozdravljenSvetpl.pl ali kar ./PozdravljenSvetpl.pl. Pred tem se prepričamo ali je pot do tolmača prava: whereis perl ali which perl. Seveda moramo imeti na računalniku Perl nameščen.

Za Perl je napisanih tudi ogromno modulov, ki jih namestimo s pomočjo cpan-a perl -MCPAN -e shell in ko smo v lupini namestimo željen modul, na primer HTML::Form install HTML::Form.

IDE:

Padre, NetBeans, Geany

Spletna ogrodja: Dancer, Catalyst

V Perlu, podobno kot v Pythonu, Ruby itd, lahko pišemo tudi razne cgi skripte: Perl cgi primer


Perl 6

[Dodatek 2016]

Na Božič 2015 se je Perl prerodil in uradno je izšel jezik Perl 6.

Več: Wiki | Perl 6 Introduction

Windows:

Nameščanje Perl 6 si bomo olajšali z Rakudo Star, ki je uporabna produkcijska distribucija Perl 6. Z njihove spletne strani snamemo zadnjo stabilno verzijo namestitvenega programa za svoj operacijski sistem in jo poženemo. Ko je namestitev zaključena, preverimo ali imamo C:\rakudo\bin v poti, sicer dodamo (glej Java 3.1). Kliknemo Start, natipkamo cmd in pritisnemo Enter. Premaknemo se v mapo koda, ter natipkamo notepad PozdravljenSvetp6.p6. V tako odprto beležnico skopiramo spodnjo kodo in jo shranimo. Beležnico zapremo in program tolmačimo z perl6 PozdravljenSvetp6.p6.

Primer:

# PozdravljenSvetp6.p6

v6;

say "Pozdravljen svet!";

Ali povedano drugače:P

# PozdravljenSvetp6.p6

v6:

"Pozdravljen svet!".say;





3.10. Assembly (asm)

Documentation is a lie, source is an abstraction, assembly is the truth. And microcode is scripture.

egyp7, scriptjunkie1, aionescu

Kratek opis:

Poslastica za konec \m/

Zadnji v tej predstavitvi jezikov, a verjetno najpomembnejši. V slovenščini - zbirni jezik. Je nizkonivojski jezik. Nekako oče vseh jezikov, saj se veliko jezikov, ki uporabljajo prevajalnike /*compilerje*/ prevede vanj. Predstavlja najboljši približek dobesednemu prevodu navodil, ki jih računalnik izvaja, v človeku razumljivo obliko. Vezan je na arhitekturo računalnika npr: x86, x64, MIPS, ARM … Uporablja se za nekatere gonilnike, bootloaderje (grub, lilo), viruse, obratni inženiring, situacije, ko nam višji programski jeziki ne pomagajo. Malo ljudi na svetu še piše v tem jeziku, in ti so večinoma dobro plačani, a vsaj branje tega jezika nam pride zelo prav pri razhroščevanju, optimizaciji programov itd. Omejila se bom na x86 assembly, saj ga najbolj poznam zaradi arhitekture, ki jo imam, na tem 10 let starem računalniku.

Več: Wiki | x86 Assembly - knjiga | X86 Opcode and Instruction Reference Home | BOX-256 | Much Assembly Required | [xchg rax, rax] Hmmm, moram nehat! Samo je toliko zanimivega …

Primer Linux x86:

global _start

section .data
        align 2
        str:    db 'Pozdravljen svet!',0xA
        strLen: equ $-str

section .bss

section .text
        _start:

;       op  dst,    src

        mov edx,    strLen
        mov ecx,    str
        mov ebx,    1
        mov eax,    4
        int 0x80

        mov ebx,    0
        mov eax,    1
        int 0x80

Primer Windows x86:

.686
.model flat, stdcall

EXTERN MessageBoxA@16 : proc
EXTERN ExitProcess@4 : proc

.const
msgText db 'Pozdravljen svet!', 0
msgCaption db 'Windows assembly', 0

.code
Main:
push 0
push offset msgCaption
push offset msgText
push 0
call MessageBoxA@16
push eax
call ExitProcess@4

End Main

Prevajanje:

V OS X in Linux terminalu:

Tukaj gredo stvari malo drugače, saj je Assembly odvisen, ne le od arhitekture, ampak tudi od klicev operacijskega sistema. Zato večinoma ne moremo prevajati in izvajati enake kode, na različnih sistemih. Se pa da marsikaj, če se hoče. Spodaj bom opisala le klasičen primer in prevajanje na operacijskem sistemu Linux, arhitekturi i686. Program lahko sicer prevedemo tudi na Linux 64bit (Kali Linux, če ste sledili predlogu na začetku prispevka) s spodaj navedenimi ukazi.

Če vas zanima, kako bi napisali in prevedli program na OSX, si preberite kratek članek Filippa Valsorda Making system calls from Assembly in Mac OS X.

Torej Linux 32bit:

Zgornjo kodo (Primer Linux x86), s pomočjo urejevalnika besedil, shranimo kot PozdravljenSvetAsm.asm. Prevedemo jo s pomočjo, na primer nasm /*Netwide Assembler*/ z ukazom nasm -felf32 -g -o PozdravljenSvetAsm.o PozdravljenSvetAsm.asm, tako dobimo PozdravljenSvetAsm.o, ki ga nato povežemo z ld -go PozdravljenSvetAsm PozdravljenSvetAsm.o. Tako dobljen PozdravljenSvetAsm nato izvedemo z ./PozdravljenSvetAsm.

Nekaj osnovnih primerov prevanja programov z nasm na raličnih arhitekturah in operacijskih sistemih:

# 32bit Linux
nasm -felf32 -g -o PozdravljenSvetAsm.o PozdravljenSvetAsm.asm

# 64bit Linux
nasm -felf64 -g -o PozdravljenSvetAsm.o PozdravljenSvetAsm.asm

# 32bit OSX
nasm -fmacho32  -o PozdravljenSvetAsm.o PozdravljenSvetAsm.asm

# 64bit OSX
nasm -fmacho64  -o PozdravljenSvetAsm.o PozdravljenSvetAsm.asm

Povezovanje pa gre povsod podobno z:

ld -o PozdravljenSvetAsm PozdravljenSvetAsm.o

M$ uporablja masm /*Microsoft Macro Assembler*/, ki je vključen tako kot C# in VB v Microsoft Visual Studio IDE. Obstaja še GAS, FASM, YASM

Windows:

Z namestitvijo Visual Studia smo namestili tudi MASM (Microsoft Macro Assembler), ki ga bomo uporabili za naš primer. Kodo iz Linux okolja moramo nekoliko preurediti za naše okolje. Kliknemo Start, poiščemo Visual C++ 2015 x86 Native Tools Command Prompt ali Developer Command Prompt for VS2015 in v njem napišemo notepad PozdravljenSvetasm.asm. V beležnico skopiramo in shranimo zgornjo kodo (Primer Windows x86) in jo prevedemo z ml /coff /c /Cp PozdravljenSvetasm.asm. Nakar jo povežemo z link /subsystem:windows /out:PozdravljenSvetasm.exe kernel32.lib user32.lib PozdravljenSvetasm.obj. Program nato izvedemo tako, da v VS ukazni vrstici napišemo PozdravljenSvetasm.

[2018] Bonus:

Ker je ravno Assembly, prilagam še ARM primer izveden na RPI3. Kodo in prevajanje si lahko pogledate na Sliki 19. Ne bom razlagala več kaj in kako. Če ste se prebili do tukaj, verjamem, da se boste znašli:D

ARM arhitektura je trenutno zelo razširjena v vgrajenih sistemih. Najdemo jo v pametnih telefonih, tablicah, prenosnikih, kalkulatorjih, pametnih televizijah itd. Če vas zanima več o ARM Assembly, zelo priporočam Azeria Labs. Razna dodatna gradiva najdete, med drugim, tudi na asm.thi.ng.

IDE:

Če se temu lahko tako reče, Fresh: Uporaben na vseh sistemih, ki jih podpira FASM: DOS, Linux, FreeBSD, BeOS, MenuetOS …

Windows sistem: Kot že omenjeno Microsoft Visual Studio, winasm, EasyCode

OSX sistem: Xcode? vsebuje nasm.



4. Nabor učnih vsebin

Zgornji PozdravljenSvet primeri nam pomagajo pri postavljanju našega programerskega okolja in testiranju, če vse dela tako kot je treba. Nato se je potrebno začeti učiti strukture, sintakse, funkcij, objektov itd. posamičnih jezikov. Lahko bi vzeli knjigo, svinčnik in papir ter se lotili učenja, kar je tudi zelo zaželjeno. Knjig o učenju določenih programskih jezikov je ogromno.


4.1. Povezave do nekaj knjižnic

Na koncu je treba v roke knjigo vzeti in prebrati tisti prekleti priročnik.

Tukaj imam v mislih brezplačne knjige, saj dijaki in študenti navadno nimajo veliko denarja:

Če pa imate kaj denarja za porabiti, zelo priporočam knjige založbe nostarch.

Takih in podobnih knjižnic je na internetu ogromno in ravno tako knjig. Čeprav se knjige tipa Learn PHP in 24h zdijo smešne, so mogoče za začetnike vseeno uporabne, da dobijo neko osnovo. Seveda se nobenega programskega jezika ne da naučiti v 24h. Sama sem prebrala kar nekaj knjig, ki jih mogoče, ko sem jih brala, niti nisem prav razumela, ampak potem stvari nekako padejo na svoje mesto s časom in uporabo.

Ko neko knjigo/tekst o določenem programu preberemo, si seveda želimo sprobati kako to v praksi deluje. Zato si po navodilih iz prejšnje točke 2. postavimo programersko okolje in začnemo eksperimentirati.

Pri tem nam pomagajo tudi interaktivne spletne strani s svojimi prevajaniki, ki nam določajo naloge in razložijo stvari.


4.2. Povezave do brezplačnih spletnih tečajev

Velikokrat se učimo z opazavnjem drugih ljudi. Za boljše razumevanje nam zato pomagajo tudi razne video vsebine.


4.3. Nekaj povezav do video vsebin


4.4. Spletna orodja

Kot veliko zbirko kode in forum, kjer nam pomagajo pri programskih zagatah omenjam še stackexchange in stackoverflow. Čeprav se vsi delamo norca, verjamem, da večinoma poškilimo kdaj pa kdaj tja. Jaz priznam:D

Kot zadnjo in eno najpopularnejših strani zadnje čase navajam GiHub, ki je ogromna baza izvorne kode raznih programov, ki nam pomaga pri razumevanju.



5. Zaključek

Torej: Kako začeti? Le moje skromno mnenje

[2018:] Na kratko:

Če bi radi le malo eksperimentirali, obiščite zgoraj omenjeno Codecademy.

Če bi se radi resneje in sistematično začeli učiti programiranja pa svetujem udeležbo enega izmed spodaj navedenih brezplačnih tečajev (potrebno seveda znanje angleščine):

  1. Blažji začetek: MIT tečaj: Introduction to Computer Science and Programming Using Python: edX registracija, tečaj opravljate po lekcijah in delate domače naloge | mit vse gradivo dostopno, pogledate kar želite

  2. Trši začetek: Harvard tečaj: CS50’s Introduction to Computer Science: edX

Na dolgo:

V tem tekstu sem se omejila na 10 jezikov, saj sem morala narediti nek izbor. Programskih jezikov je še ogromno. Veliko jih je še, ki bi jih morala omeniti kot npr. Lisp, Lua, Tcl, Haskell, Scala, Go … Nekateri jeziki imajo že svoja narečja. Poznamo različne stile pisanja programov. Stil kodiranja Linux kernela, si lahko ogledate tukaj. Določeni so razni standardi, kot npr. ANSI C

Lista jezikov

Predlagam, da si izberete en jezik in se ga nekaj časa držite. V njem naredite čim več projektov, spoznate čim več funkcij, preberete in eksperimentirate čim več. Lahko pa storite tako kot jaz, ki sem naredila CodeCademy v par tednih in na koncu nisem vedla več niti kako v Pythonu napisati PozdravljenSvet. Preveč informacij naenkrat pač ne gre. Saj veste 7±2 pomnilni enoti. Tak pristop iz lastnih izkušenj odsvetujem.

Kolkor sem se pozanimala učijo na nekaterih šolah najprej Python in C++, in verjetno bi bilo s tema dvema jezikoma najbolje začeti. Namestite si Anacondo ali Eclipse, preberete njuna navodila za uporabo in začnete. Pred tem naredite morda še tečaj Pythona na CodeCademy, ali preberete kak priročnik, povezave do njih sem vam posredovala, in začnete s svojimi projekti. Navadno se začne s Hello World, nato razne matematične funkcije, nakar if, switch, for stavki, slovarji, “classes” in potem ideje kaj bi naredili pridejo kar same. Medtem si ogledate še kako kodo na GitHubu, jo sprobate, se igrate “scriptkiddy-je” in idej ne zmanjka.

Na IDE-je se ne spoznam, kot sem že povedala imam preslab računalnik za kaj takega, ampak kolikor sem prebrala ob pisanju tega prispevka, bi svetovala Eclipse, saj podpira največ jezikov in je kar priljubljen. Tudi Android aplikacije se da pisati s pomočjo Eclipse. Tako, da bi si lahko sami napisali kako igrico za vaš telefon ipd., saj se vedno igrate z njimi.

Ko osvojite strukturo, sintakso enega jezika, vam bo lažje naprej spoznavati še kak jezik, saj je princip podoben. Razlikujejo se imena funkcij, kako jih kličeš, imena objektov itd., ampak logika ostane ista. Od Pythona ali C++ se nato premaknete gor (Perl, Ruby …) ali dol (C, asm), odvisno v katere vode vas zanese. V glavnem brez strahu. Nič ne boste pokvarili. Če je s programom kaj narobe, pač ne bo delal in to je to. Včasih vas sicer pozdravi kaka Kernel panika ali na Winsih kak Blue screen of death. Nič hujšega. Windowse je tako priporočljivo ponovno namestiti vsake toliko časa, tisti na Linuxu in BSD-ju se boste pa že znašli.

Učenje programskih jezikov je podobno učenju tujih jezikov. Pri slednjih spoznavaš slovnico, besedišče, skladnjo ipd. Pri programskih jezikih pa spoznavaš funkcije, sintakso itd. Slednje je verjetno veliko lažje, saj je venomer prisotna neka logika, kar pri tujih jezikih ni nujno, če izvzamemo nemščino, ki je dokaj logična. Pri tujih jezikih je vedno en kup posebnih primerov in nekaj moraš kar slišati in vedeti po posluhu. o.O

Sama sem začela najprej s pisanjem Bash skript, ki sem jih na svojih sistemih potrebovala, nato malo html-ja, php-ja ipd. Prvi jezik, ki sem se ga resno lotila pa je bil C. C ni nujno dober kot prvi jezik, čeprav pravijo, da tisti ki zna C, se zelo hitro nauči vseh ostalih jezikov. Problem s C-jem je, da vam lahko hitro vzame vso voljo, saj moraš večino funkcij pisati na roke, uporabljati pointerje, znati uporabljati računalniški spomin, … Kot prvi jezik je verjetno primeren za bolj trmaste ljudi, ki se ne vdajo zlahka. Meni se je nekaj podobnega zgodilo že pri sistemih, saj sem po Windows 98 začela z Gentoo, ker je znanec delal eksperimente na meni in je verjetno želel videti ali bom preživela. V stilu:

Force them to use Gentoo like I did. That will sort the men from of boys (or the women from the girls, if you’re optimistic).

Takrat sem sedela in buljila tiste “proklete flage” in paketke cele dneve in noči, vendar mi ni žal, saj sem se ogromno naučila, naletela sem verjetno na čisto vse možne probleme. Ampak na koncu sem “skompajlala” tisti kernel, na srečo preživela in nisem izgubila razuma o.O Tako nekako je s C-jem pri programskih jezikih.

Upam, da bo ta prispevek komu pomagal pri začetkih programiranja.

V kolikor opazite kake napake, ali je potrebna kakšna izboljšava, mi prosim sporočite, saj seveda ne želim zavajati nikogar in sem sama amater na tem področju, tako da so kritike zaželjene.

! konec.f90

program konec
    print *, "Dost mam. Lahko noč svet!!!"
end program konec

Program konec je napisan v nekoč popularnem Fortranu. V terminalu program shranimo, ga s pomočjo gcc prevedemo gfortran -o konec konec.f90 in izvedemo s ./konec.


Konec.

Konec.




EOF