Ohjelmointikoulu CodeBerryn “Ohjelmoinnin perusteet” -sarjassa keskustelemme ohjelmointiin liittyvistä aiheista ja kaikesta mitä sinun täytyy tietää päästäksesi alkuun. Pysy kuulolla uusista artikkeleista, ja löydä vastaukset jokaiseen “mitä”, “miksi” ja “miten” -kysymykseesi, joita sinulla on saattanut tulla mieleen koodaukseen liittyen!

Haluaisitko oppia koodaamaan verkossa? Tule ja kokeile ensimmäisiä oppituntejamme maksutta Ohjelmtointikoulu CodeBerryssä.

 

Olet jo lukenut useamman artikkelin ohjelmoinnista, sukeltanut netin syövereihin ja tehnyt kaiken mahdollisen tutkimustyön ohjelmointiin liittyen. Nyt on viimein aika tehdä se iso ja vaikea päätös: “Mitä ohjelmointikieltä minun kannattaisi opiskella?”. Hyvä kysymys.

Onneksesi olemme koonneet tämän kattavan oppaan, joka auttaa sinua päättämään mistä koodausmotivaatiosi tulee ja mitä ohjelmointikieliä sinun kannattaisi sitten opiskella. Vaikka olisit yhä tiedonhakuvaiheessa, tämä opas selkeyttää erilaisten yleisimpien ohjelmointikielten tarkoitusta, sekä kohdeyleisöä.

Olemme myös identifioineet neljä erilaista tapaa listata parhaimmat ohjelmointikielet: suosio, kielen helppous, ansiomahdollisuudet ja käyttökelpoisuus.
Huom: Tässä artikkelissa olemme ryhmitelleet merkintäkielet, kuten HTML:n ja CSS:n, sekä komentosarjakielet, kuten Bash / Shell ja SQL, ohjelmointikielien luokkaan.

Aloitetaan kymmenestä suosituimmasta ohjelmointikielestä StackOverflow:n mukaan:

  1. JavaScript
  2. HTML
  3. CSS
  4. SQL
  5. Java
  6. Bash/Shell
  7. Python
  8. C#
  9. PHP
  10. C++

Lähde: StackOverflow

Tässä listauksessa JavaScript, HTML, ja CSS vievät kärkikolmikon sijoitukset suosituimpina ohjelmointikielinä. Nämä kolme kieltä ovat verkkopohjaisen front-end-ohjelmoinnin perusta, ja ovat siten loistavia kieliä vasta-alkajille. SQL, jota käytetään tietokantojen hallintaan, ja loput kielet, kuten Java, Python, C#, PHP, ja C++, ovat päteviä yleiskieliä, joita voit käyttää useisiin erilaisiin tehtäviin. Bash/Shell, ovat toisaalta taas komentokieliä (command language), joita käytetään Unix-pohjaisten systeemien kanssa kommunikointiin, kuten Linux tai MacOS.

 

 

Entäpä kymmenen helpointa ohjelmointikieltä?

  1. HTML
  2. Python
  3. JavaScript
  4. PHP
  5. Java
  6. R
  7. Shell
  8. Ruby
  9. Erlang
  10. Go

Lähde: WP Engine

Onneksi useimmat suosituimmista ohjelmointikielistä ovat myös helpoimpia opeteltavia. Kuitenkin tältä listalta löytyy myös muutama hieman tuntemattomampi ohjelmointikieli, kuten R ja Erlang. R on ohjelmointikieli, joka on suunniteltu tilastolliseen laskentaan (statistical computing) ja matematiikan aputyökaluksi, ja on siten loistava työkalu data-analyysiin (jota käsittelemme myöhemmin tässä artikkelissa). Erlangia käytetään pääasiassa telekommunikointi- ja viestintäsovelluksissa, kuten WhatsAppissa.

…entäpä millä ohjelmointikielellä on kovin ansiopotentiaali?

  1. F#
  2. Ocaml
  3. Clojure
  4. Groovy
  5. Perl
  6. Rust
  7. Erlang
  8. Scala
  9. Go
  10. Ruby

Lähde: StackOverflow

Jos olet uusi ohjelmoinnin maailmassa, et varmaankaan tunnista monia listauksessa esiintyviä ohjelmointikieliä. Sillä ohjelmointi on nopeasti kasvava ala, parhaiten maksavat ohjelmointikielet ovat useimmiten uusia, kaikista teknologisesti edistyksekkäimpiä kieliä. Joka tapauksessa “matalan tason” helppojen kielten kuten, HTML:n, CSS:n ja JavaScriptin osaaminen auttaa sinut mainiosti alkuun urallasi—muut kielet voivat odottaa!

HTML on varmasti yksi käytetyimmistä ohjelmointikielistä

Yleiskatsaus

Ansiomahdollisuuden, suosion ja kielen helppouden perusteella sinulla on jo varmasti oma motivaatio oppia jotakin tiettyä ohjelmointikieltä. Käymme läpi alla olevassa osiossa eri syitä tiettyjen ohjelmointikielien opiskeluun, jotka voivat auttaa sinua valitsemaan sinulle sopivimman ohjelmointikielen, sekä mitä käyttötarkoituksia eri kielillä on.

Kielen valitseminen käytännöllisyyden perusteella 

Tässä kohden homma alkaa käymään mutkikkaaksi. Kuinka “käytännöllinen” kieli on riippuu tietysti siitä, mitä haluat saavuttaa koodillasi. Esimerkiksi HTML ja CSS saattavat olla erittäin hyödyllisiä front-end-ohjelmoijalle, Swift ja Java ovat hyödyllisempiä mobiiliohjelmoijalle. Näissäkin vaihtoehdoissa on eroja, sillä Swifitä käytetään iOS-sovelluksissa, kun taas Androidin sovelluksien hallitsevin kieli on Java.

Osa ohjelmointikielistä, kuten Python (joka lienee myös tiettävästi käytetyin ohjelmointikieli maailmanlaajuisesti), on suunniteltu yleiskäyttöön, mutta monet muut kielet ovat erityistyökaluja, jotka ovat suunniteltu auttamaan sinua suoriutumaan tietyistä tehtävistä.

Mieti ensin, miksi haluat oppia koodaamaan, päätä sitten mihin alueeseen haluat keskittyä ja etsi sitten sinulle sopivin ohjelmointikieli:

Haluan ammattidevaajaksi

Game Developer / Pelinkehittäjä

Jos haluat todella työskennellä pelinkehittäjänä, sinun tulee hallita ainakin kaksi näistä pääohjelmointikielistä: C++ ja C#. Jos haluat kehittää pelejä huvin vuoksi – kuten 2D-mobiilipelejä, jotka perustuvat yhteisöihin ja verkkotoimintoihin – on silloin C# loistava valinta juuri sinulle. C# on helpompi oppia ja mutkattomampi kuin C++, tehden siitä pääohjelmointikielen indie- ja mobiilipelien maailmassa.

C++ on taas toisaalta äärimmäisen tehokas kieli, ja sitä voidaan käyttää 3D-mobiilipelien ja “AAA”-pelien ohjelmoinnissa PC:llä, sekä konsoleilla. Luodaksesi pelejä parhaalla mahdollisella suorituskyvyllä ja kauneimmilla grafiikoilla, C++ on paras vaihtoehto.

Web Developer / Web-ohjelmoija, web-kehittäjä

Artikkelissamme “A Brief Introduction to Programming”, puhuimme paljon kolmesta isoimmasta ohjelmointikielestä web-ohjelmoinnissa: HTML:sta, CSS:istä ja JavaScriptistä. HTML käsittelee formaatin, CSS määrittelee tyylin ja JavaScript herättää sivuston henkiin.

Web-ohjelmoijat, jotka keskittyvät pääsääntöisesti UX-, eli käyttäjäkokemuspuoleen, HTML5 ja JavaScript ovat heidän useimmiten käyttämiään työkaluja. Verkkokauppoihin keskittyvät web-ohjelmoijat ovat kuitenkin siirtäneet osaamistaan edistyneimpien kielten, kuten Javan, Rubyn, Pythonin, PHP:n ja C#:n suuntaan. Pienyrityksien web-ohjelmoijat käyttävät todennäköisesti PHP:tä, kun taas uusimpien start-up -yrityksien ohjelmoijat käyttävät työssään usein Javaa, Rubya ja JavaScriptiä. Suuryritysten web-ohjelmoijat suosivat C#:ia ja Javaa usein Windows-pohjaisissa sovelluksissa.

Mobile Developer / Mobiilikehittäjä

Mobiilikehitys on usein suorasukaisempaa ja vaatii vain yhden ohjelmointikielen osaamista käyttöjärjestelmää kohden. Jos halua luoda mobiilisovelluksia iPhonelle tai iPadille, sinun täytyy osata koodata Swiftiä, Applen omaa ohjelmointikieltä iOS:ille. Vuonna 2014 esitelty Swift on erittäin tehokas ohjelmointikieli, joka suunniteltiin mahdollistamaan lähes jokaiselle Apple-laitteelle ohjelmoinnin. Swift-osaamisella voit kirjoittaa sovelluksia Macille, Apple Watchille ja Apple TV:lle!

Android-pohjaisten sovelluksien mobiilikehitys on kasvanut vuosien saatossa hurjasti ja ohittanut iOS-pohjaisten sovelluskehittämisen suosion. Android pohjautuu Javaan, joka tekee siitä helpon aloituskielen, mikäli sinulla on jo kokemusta Javasta. Voit myös siirtyä Android-sovellusten kehittämisestä monien muiden siistien asioiden tekemiseen, kun olet hankkinut hieman Java-osaamista.
Lopuksi, mutta ei suinkaan viimeiseksi tulee Windows-puhelin. Windows-puhelimen käyttöjärjestelmä pyörii C#:illa, joka on yksi Microsoftin omista ohjelmointikielistä. C#:illa koodaaminen on erityisen arvokas taito, jonka jokaisen Windows-kehittäjän pitäisi tuntea.

Nykyään mobiilikehittämisen rajat alkavat hämärtyä, kun sekä mobiili-, että työpöytäsovellukset yhtenäistyvät. Sen sijaan, että ohjelmointikielet eroteltaisiin erikseen mobiililaitteille ja tietokoneille, ne erotellaan ekosysteemien (Microsoft, Google ja Apple) mukaan. Google kehitti jopa oman kielensä nimeltä “Go”, jonka saatamme nähdä tulevaisuudessa Javan korvikkeena Androidissa.

Työpöytäohjelmistot

Kuten yllä mainittu, samoja ohjelmointikieliä, joita tarvitset mobiilikehittämiseen liittyvissä projekteissa, voidaan käyttää myös työpöytäsovelluksien kehittämiseen. Mikäli olet kiinnostunut Windows-pohjaisten ohjelmistojen kehittämisestä, sinun kannattaa keskittyä C#:in opiskeluun. Jos olet taas kiinnostunut monialustaisten ohjelmistojen kehittämisestä, sekä Mac-ohjelmien kehittämisestä, Javan ja Swiftin opettelu ovat korkealla tehtävälistallasi.

Tarjolla on myös useita loistavia, verkkopohjaisia ratkaisuja monialustaisten työpöytäohjelmistojen kehittämiseen käyttäen vain HTML:ia, CSS:ia, JavaScriptiä ja esimerkiksi Electronia.

Datatieteet

Datatieteiden kentällä Python ja R ovat molemmat kaikista käytännöllisimpiä kieliä, joita voit opiskella. Python on ikään kuin ohjelmoinnin monitoimilinkkuveitsi, joka on suunniteltu yleiseen käyttöön. Pythonin vahvuudet tulevat kuitenkin valtavasta joukosta ilmaisia data-analyysikirjastoja, jotka ovat täynnä erilaisia ominaisuuksia. Yksi suosituimmista data-analyysikirjastoista, Pandas, sisältää työkaluja, joiden avulla voit tuoda tietoja taulukoista tai käsittelyjoukoista aikasarja-analyysiä varten.

R on toinen ohjelmointikieli joka on varusteltu erityisesti tilastollista analyysia ja graafeja varten. R:n avulla voit sisällyttää ohjelmaasi lineaarista, ja epälineaarista mallinnusta, klassisia tilastollisuustestejä, aikasarja-analyysia, luokittelua, klusterointia ja paljon muuta.

Haluan perustaa startup-yrityksen

Web

Verkkokaupan julkisivun ollessa verkkosivu, HTML, CSS ja JavaScript ovat tarpeellisia front-end -kehittäjälle. Sinulla on kuitenkin runsaasti vaihtoehtoja back-endille, joka ottaa huomioon kaikki verkkokauppasi kulissien takana tapahtuvat toiminnot. Back-endin käsittelemiseen käytetään todennäköisesti Node.js:ia (JavaScript), Rubya tai PHP:ia. Näistä kolmesta Node.js on suosituin ja laajimmin käytetty, sekä nopeuden, että se pohjautuu JavaScriptiin.

Sillä startupisi on verkkopohjainen, sivuston suorituskyky ja käyttäjäkokemus ovat erittäin tärkeitä. Näinä aikoina hakukoneet kuten Google rankaisevat sinua ja laskevat hakutulospisteitäsi, mikäli käytössäsi on hidas ja “lagaava” sivusto. Tämä taas vaikuttaa suoraan kävijämäärääsi ja konversiolukuihin. Siksi suosittelemme nopeinta vaihtoehtoa, Node.js:ia back-endiin. Äärimmäisissä tapauksissa sinun on ehkä käytettävä Pythonia tai R-kieltä sivustosi back-endissä, mutta vain jos kyseessä on valtava määrä asiakas- tai tuotetietoja.

Jos haluat helpomman ratkaisun, joka on jo määritelty sinulle, kokeile rakentaa verkkokauppasi PHP-pohjaiseen WordPress-ratkaisuun. WordPressin avulla voit rakentaa kauppasi julkisivun drag-and-drop -käyttöliittymällä, kun taas ohjelma huolehtii front- ja back-endistä. Vaikka WordPress on suhteellisen helppo käyttää, sinun kannattaa silti oppia PHP tai palkata PHP-kehittäjä lisäämään lisäominaisuuksia tai korjaamaan vikoja niiden syntyessä.

Mobiili

Uberin kaltaiset mobiilipohjaiset startupit ovat tällä hetkellä varsin suosittuja ja menestyviä. Mobiili-startupin perustamiseksi on tärkeää, että luot sovelluksia, jotka ovat saatavilla sekä iPhonelle, että Androidille. On mahdollista kehittää Java-alustojen välisiä sovelluksia React Native-, Ionic-, PhoneGap- tai Cordova-ohjelmilla, mutta on suositeltavaa, että opit kunkin alustan alkuperäiset ohjelmointikielet parhaan suorituskyvyn saavuttamiseksi.

Jos et pysty koodaamaan kaikkea itse, tietylle käyttöjärjestelmälle erikoistuneen mobiilikehittäjän palkkaaminen voi olla hyödyllistä. Sinun on silloin palkattava Java-kehittäjä Androidille, Swift-kehittäjä iOS:lle, tai harvinainen moniosaaja, joka tuntee näistä molemmat, tai valita monialustainen ratkaisu.

 

Pelialalla riittää ohjelmointihommia

Peliala

Startup-yrityksenä sinulla ei todennäköisesti ole rahaa ja resursseja kehittää “AAA”-nimikkeitä, kuten suurilla pelistudioilla on. Sen sijaan indie-kehittäjät keskittyvät yleensä juonikuvioihin ja luovuuteen pelien kehittämisessä. C ++ on monimutkainen, aikaa vievä ja se on usein vaikeakäyttöinen, mikä tarkoittaa, että se ei ole ehkä parhain valinta startupeissa. C# on helppokäyttöisempi, sekä mahdollistaa pelien julkaisun nopeammin ja ajallaan.

Verkkopelit ovat toinen hyvä aloitusvaihtoehto, mikäli olet uusi pelialalla. HTML5:n ja JavaScriptin avulla voit luoda uskomattomia pelejä. Katso vaikka tämä artikkeli, minkälaisia pelejä voit kehittää HTML5:llä ja JavaScriptillä: https://tutorialzine.com/2015/02/30-amazing-games-made-only-with-html5
Mikäli sinulla sinulla on kuitenkin kärsivällisyyttä, taitoja ja omistautumista mitä uskomattomimman 3D-pelin luomiseen, kieli, joka sinun tulisi oppia on ehdottomasti C ++. Tämä Microsoftin tehokas ohjelmointikieli on melkein kaikki mitä tarvitset upeiden pelien luomiseen sekä konsoleille ja tietokoneille.

Haluan rakentaa jotain hauskaa

Ohjelmoinnin houkuttelevin piirre ei ole pelkästään se, että se on hyödyllinen taito tai, että ohjelmistoalalla on korkea palkkaus, vaan se, että ohjelmointi on hauskaa! Jos haluat luoda jotain hienoa koodaamalla, sinun on ensin mietittävä, minkälaiset projektit kiinnostavat sinua. Haluatko luoda uuden mobiilisovelluksen, verkkopelin tai kehittää jopa oman tekoälyn? Haluatko ehkä automatisoida päivittäiset tylsät työtehtäväsi tai luoda jotain Google Appsille (G-Suite)? Kun ymmärrät hyvin seuraavat kielet, vain mielikuvituksesi on rajana sille, mitä kaikkea voit luoda.

Pikkupelit

Älä vain erehdy luulemaan, että sinun on oltava ammattilaisohjelmoija aloittaaksesi unelmiesi pelikehittäjän uran; sinun tarvitsee vain tuntea HTML5:ta, JavaScriptiä ja hieman WebGL:tä. Sekä Doodle Jump, että uskomattoman kuuluisa (tai surullisen kuuluisa) mobiilipeli, Flappy Bird, toimivat HTML5:n ja JavaScriptin avulla. Et varmasti tule koodaamaan “AAA”-pelejä konsoleille ihan lähiaikoina, mutta yllätyt siitä, mitä voit luoda jo rajoitetulla koodausosaamisella. Koodataksesi hieman edistyneempiä työpöytäpohjaisia pelejä haluat tutustua kieliin, kuten C # ja Python.

Google Apps (G-Suite)

JavaScript on sovellusten luomisen perusta Google-ekosysteemissä, eli G-Suitessa. Google väittää, että mikä tahansa G-Suiten sovellus voidaan luoda JavaScriptillä, eikä mitään muuta koodia tarvita. Tämä on hieman outo väite, kun otetaan huomioon, että Gmail on kirjoitettu Javalla, ei JavaScriptillä.

Tästä huolimatta sinun ei enää tarvitse osata JavaScriptiä, jotta voit luoda sovelluksia G-Suitessa. Sen sijaan uusi Google App Maker antaa sinulle drag-and-drop -käyttöliittymän, jonka avulla voit luoda omia mukautettuja sovelluksia ja se tarjoaa sovellusliittymät kaikille Googlen sovelluksille, kuten Google Mapsille ja Google Kääntäjälle. API eli Application Program Interface, suomeksi siis sovellusohjelmaliittymä, on avain, joka mahdollistaa kommukoinnin muiden Google-sovelluksien, sekä oman sovelluksesi välillä.

Tehtävien automatisointi

Oletko koskaan viettänyt lukemattomia tunteja päivittäen laskentataulukkoa, uudelleennimeten tiedostoja tai järjestäen kohteita uudelleen näppäimistöllä ja hiirellä? Osasitko koskaan ajatella tuon puuduttavan kokemuksen aikana, että tähän kaikkeen voisi olla parempi tapa? Tehtävien automatisointi on oma ohjelmointikenttänsä, joka on omistettu kaikkien tylsien tehtävien automatisoimiselle, joita kukaan meistä ei mieluiten tekisi.

Käyttäen yleiskäyttöisiä kieliä, kuten Pythonia ja Rubya, voit ohjelmoida tietokoneesi tekemään kaiken ikävän työn puolestasi. Ajan ja hermojen säästämisen lisäksi päivittäisten tehtävien automatisointi johtaa luonnollisesti tarkempaan työjälkeen, sillä meillä on tapana tehdä virheitä väsyessämme, hajamielisinä ja kyllästyneinä. Tietokoneet puolestaan työskentelevät taukoamatta ja saavat työn valmiiksi siinä epäonnistumatta.

Yksinkertainen tekoäly

Viime vuosina Pythonista on tullut yhä suositumpi tekoälyn alalla. Yksi tekoälyn kehittäjien suurimmista haasteista on ”syväoppiminen”, joka tarkoittaa kykyä oppia ihmisen tavoin. Nykyään “hermokartoitus” on tekoälyssä laajasti käytetty tekniikka, johon liittyy isojen päätöksentekopuiden luominen. Jokaista yhteyttä kohdellaan ikään kuin hermosoluna ja aivoissa olevana synapsina. Tämän tekniikan avulla tekoälyn tutkijat toivovat voivansa luoda kopion aivoista, jolla olisi siten samanlaiset toimintakapasiteetit kuin ihmisaivoilla, mukaanlukien luovat ominaisuudet.

TensorFlow on loistava resurssikirjasto Pythonille, sekä muille ohjelmointikielille. Vaikka se on kehitetty ensisijaisesti käytettäväksi Pythonin kanssa, TensorFlow.js on julkaistu JavaScriptiä varten tarkoituksena käyttää sitä verkon koneoppimiseen. Toisin sanoen, voit jopa käyttää JavaScriptiä testataksesi tekoälyä TensorFlow-sovelluksen avulla.

Lopuksi

Toivomme, että pidit artikkelistamme ja sinulla on nyt selkeämpi käsitys siitä, mikä ohjelmointikieli sopisi juuri sinulle. Kielet, kuten HTML, CSS ja JavaScript, ovat parhaimmat kielet aloittelijoille, mutta et varmasti voi mennä pieleen valitessasi hienon, monikäyttöisen kielen, kuten Pythonin tai C#:in.

Kerro meille kommenteissa, mitä ohjelmointikieliä parhaillaan opiskelet ja mikä motivoi sinua oppimaan niitä. Nähdään seuraavassa artikkelissa!

 

Ohjelmointikoulu CodeBerryn “Ohjelmoinnin perusteet” -sarjassa keskustelemme ohjelmointiin liittyvistä aiheista ja kaikesta mitä sinun täytyy tietää päästäksesi alkuun. Pysy kuulolla uusista artikkeleista, ja löydä vastaukset jokaiseen “mitä”, “miksi” ja “miten” -kysymykseesi, joita sinulla on saattanut tulla mieleen koodaukseen liittyen!

Haluaisitko oppia koodaamaan verkossa? Tule ja kokeile ensimmäisiä oppituntejamme maksutta Ohjelmtointikoulu CodeBerryssä.