Mikä ohjelmointikieli?

  • Keskustelun aloittaja Keskustelun aloittaja Pemz
  • Aloitettu Aloitettu
Liittynyt
13.05.2019
Viestejä
2
Mihin ohjelmointikieleen kannattaa käyttää aikaa? Olen joskus opetellut todella vähän Pythonia ja nyt C# Unityn takia. Mihin kannattaa panostaa jos ajattelee tulevaisuudessa mahdollisesti työllistyä Suomen ohjelmointialalla?
 
Mielestäni lähestyt ongelmaa vähän väärästä päästä. Paljon mielekkäämpää on lähteä siitä mitä haluat saada tehtyä, ja valita työkalut sen mukaisesti. Python on oiva valinta numeroidenpyörittelyyn (analytiikka, koneoppiminen, ym.), JavaScript (esim. Node.js lisällä) taas sitten enemmän webbidevaukseen, C:tä taas jonnekin sulautettuihin järjestelmiin.

Lisäksi vielä sellainen huomio, että yhdellä kielellä pääsee toki alkuun, mutta hattuvakiolla 90% todennäköisyydellä joudut joka tapauksessa tekemisiin useamman kielen kanssa, halusit tai et. Tärkeämpää on opetella hyvät koodauskäytännöt (kommentointi, koodin pilkkominen järkevänkokoisiin osiin, versionhallinta, ym.) ja sitä yleistä koodauksessa tarvittavaa ongelmanratkaisua kuin osata täydellisesti joku yksi tietty kieli.
 
Viimeksi muokattu:
Mihin ohjelmointikieleen kannattaa käyttää aikaa? Olen joskus opetellut todella vähän Pythonia ja nyt C# Unityn takia. Mihin kannattaa panostaa jos ajattelee tulevaisuudessa mahdollisesti työllistyä Suomen ohjelmointialalla?
Javascript ja siihen päälle node ja react platformi. Tai siis toi platformi ja koodaat tolla ECMAscript2015 versiolla. No juu en ole itse tuolla (vielä) työllistynyt mutta työnantajilla on kiinnostusta tuohon ja siinä tulee hieman helpommin (ehkä) tuo funktionaalinen koodaus. Ei sillä etteikö C# LINQ ja expression treet ole ihan pätevä juttu myös.

Ja java on edelleen kovassa huudossa, tosin se EE-versio ja siinä joku spring boot. Javasta expression tree vastaava systeemi on streams. Nyt en tarkoita niitä tietovirtoja, vaan sitä mikä tuli java 8 -versiossa.
 
Python on hyvä kieli ohjelmoinnin alkutaipaleelle. Opetusmatskua löytyy valtavasti, sitä on kiva kirjoittaa ja saa aikaan paljon vähällä vaivalla. Se myös työllistää. Parhaiten työllistyvät varmaan yhä full-stack webbidevaajat, joiden työkalupakissa on esim. JavaScript/TypeScript, React, SQL/Mongo, Docker, HTML/CSS, AWS jne. Mutta ei noita kaikkia voi kerralla haukata. Python hyvä valinta alkuun.
 
Jos itse lähtisin opiskelemaan työllistymismielessä, syventyisin - Mongo/Maria Node.js Express.js Vue.js etc pinkkaan...
 
Eiköhän täällä työllisty vaikka opiskelisi VHDL/Verilogia ja vähän matematiikkaa... Toki voi olla vaikeaa jos ei kiinnosta yhtään kyseinen homma.
 
Tuossa ylempänä ihan fiksusti sanotaan että opettele ohjelmointia äläkä murehdi niinkään kieltä yms., mutta toisaalta lopulta usein joko osaat sen työnantajan haluaman stäkin tai joku muu vie paikan.

Usein siitä työnantajan haluamasta stäkistä pitää ainakin osa olla jossain määrin hallussa, mutta en hermoilisi oman stäkin sopivuudesta ihan liikaa.
Kun olen ollut avustamassa haastatteluissa, tuntuu ettei juuri kukaan osaa koko stäkkiä.
Meillä on loppupeleissä oltu tyytyväisiä, jos hakija osaa stäkin keskeisimmän kielen ja on joku käsitys parista seuraavaksi tärkeämmästä.
Käsitys softaprosesseista ja hyvistä softa-arkkitehtuureista on paljon tärkeämpää. Yllättävän harvalla hakijalla on näitä hallussa.

Toki jos tuo keskeisimmän kielen osaaminen uupuu ihan kokonaan niin siinä kyllä tippuu jo hakemusvaiheessa. Jos ei Java-töissä ole ikinä kokeillut javaa / MS-töissä ei ole ikinä avannut Visual Studiota niin silloin lähtee vähän liian nollista.
 
Kerran istuin rekrytöijän vieressä avokonttorissa. Ilman avainsanoja ei pääse haastatteluun. Rekrymies ymmärtää vaan, että nyt tarvitaan x , y ja z. Sitten haastatteluun voi ilmestyä joku tekninen asiantuntija, jolla sitten on parempi kuva, mitä oikeasti tarvitaan. Mutta sinne haastatteluun ei pääse ilman avainsanoja, kun ei se tekninen asiantuntija niitä hakijoita karsi siinä vaiheessa.

Kannattaa opetella joku asia hyvin, jota haluaa tehdä. Sitten vähän pintapuolista tietoa kaikesta muusta, että saa monta rastia siihen hakemukseen.
 
Kerran istuin rekrytöijän vieressä avokonttorissa. Ilman avainsanoja ei pääse haastatteluun. Rekrymies ymmärtää vaan, että nyt tarvitaan x , y ja z. Sitten haastatteluun voi ilmestyä joku tekninen asiantuntija, jolla sitten on parempi kuva, mitä oikeasti tarvitaan. Mutta sinne haastatteluun ei pääse ilman avainsanoja, kun ei se tekninen asiantuntija niitä hakijoita karsi siinä vaiheessa.

Kannattaa opetella joku asia hyvin, jota haluaa tehdä. Sitten vähän pintapuolista tietoa kaikesta muusta, että saa monta rastia siihen hakemukseen.

Tyhmänä sivusta kirjoitan, mutta jos osaamisesi on jo jollekkin kielelle hyvä, niin en kyllä haastattelutilanteessa poissulkisi sitä mahdollisuutta että voisit opetella hieman uutta. Sehän kuitenkin on satavarmaa että aina tulee uutta eteen. Paraskaan ohjelmoija ei tee mitään ilman ettei opettelisi työnmukaista uutta lähestymistapaa asoihin.

Lähinnä tarkoitan että itseluottamusta hieman lisää, niin sieltä ne paikat aukeaa. Toki tässäkin rajansa, mutta kukaan valittu ohjelmoija ei siinä haastattelutilanteessa "osaisi" ohjelmoida sitä mitä työ itsessään vaatii. Tai jos osaa, niin hakee kyllä IMO ihan liian helppoihin työtehtäviin.
 
Tyhmänä sivusta kirjoitan, mutta jos osaamisesi on jo jollekkin kielelle hyvä, niin en kyllä haastattelutilanteessa poissulkisi sitä mahdollisuutta että voisit opetella hieman uutta. Sehän kuitenkin on satavarmaa että aina tulee uutta eteen. Paraskaan ohjelmoija ei tee mitään ilman ettei opettelisi työnmukaista uutta lähestymistapaa asoihin.

Lähinnä tarkoitan että itseluottamusta hieman lisää, niin sieltä ne paikat aukeaa. Toki tässäkin rajansa, mutta kukaan valittu ohjelmoija ei siinä haastattelutilanteessa "osaisi" ohjelmoida sitä mitä työ itsessään vaatii. Tai jos osaa, niin hakee kyllä IMO ihan liian helppoihin työtehtäviin.

Isoissa firmoissa vaan se haastatteluun kutsuja on eri kaveri, kun se, joka miettii, onko paikka sinulle sopiva.

Sanon vaan, että haastatteluun pääsemiseksi pitää osata niitä asioita, joita rekrymies etsii.
Töissä pärjäämiseen pitää osata niitä asioita, joita rekrymies ei osaa vaatia, mutta jotka oli taas tässä esillä. Pitkälle pääsee, kun osaa jotain hyvin. Siitä on hyvä lähtökohta kehittyä.

Itsehän olen jo töissä.
 
Isoissa firmoissa vaan se haastatteluun kutsuja on eri kaveri, kun se, joka miettii, onko paikka sinulle sopiva.

Sanon vaan, että haastatteluun pääsemiseksi pitää osata niitä asioita, joita rekrymies etsii.
Töissä pärjäämiseen pitää osata niitä asioita, joita rekrymies ei osaa vaatia, mutta jotka oli taas tässä esillä. Pitkälle pääsee, kun osaa jotain hyvin. Siitä on hyvä lähtökohta kehittyä.

Itsehän olen jo töissä.

Tämähän se. Itsellä muutamia kokemuksia rekryfirmojen kautta haettavista paikoista ja puhelinhaastatteluissa melkein kuullut, kun rekrytyyppi vetää rakseja ruutuun, kun kuulee haluamiaan buzzwordeja.
 
Mä lähtisin siitä, että ensin tutkii mitä haluaisi tehdä. Kun päämäärä on tiedossa valitsee oikeat työkalut. Henkisesti kannattaa valmistautua siihen, että maailma muuttuu rajusti aika ajoittain ja sen vuoksi voi toisinaan käydä niin, että pitää lähteä uudestaan tyhjästä liikkeelle. Tärkein kyky olisi pysyä pirteänä ja oppia koko ajan uutta.

Tietty jotain cobol, sulautetetut jne. hommia on olemassa, missä maailma ei välttämättä muutu yhtä paljoa kuin pinon ylemmillä tasoilla.
 
Täältäkin ääni pythonille! Python on aloittelijalle helppolukuinen, mutta kyseessä on silti aivan täysverinen kieli! (Tosin, aina tulee liputettua sitä "omaa" kieltä, ja olen nyt 5v tehnyt päätoimisesti töitä pythonilla). Vaikka Python on aloittelijoille sopiva, se ei ole mikään aloittelijakieli.

Periaatteessa kielellä ei ole väliä, mutta aluksi kannattaa valita kieli:
- joka on suosittu
- johon löytyy netissä paljon ohjeita
- jolla voi ratkaista kaikki ongelmat (nettisivu, pikkupelit, numeronmuokkaus, tiedostojen käsittely...)

Moni muukin kieli kyllä täyttää yllä olevat vaatimukset, mutta niin myös python. Kokenut koodari voi vaihtaa kieltä kohtalaisen helposti, mutta toisaalta opin edelleen pythonista uusia puolia. Siksi alussa kannattaa keskittyä ennemmin yhteen kieleen.

Lisäksi kannattaa kielestä riippumatta valita hyvä editori (esim. Vs Code) ja siihen lintteri (=koodin laadun tarkistaja), jolla saa pahimmat koodivirheet pois.
 
Lisäksi kannattaa kielestä riippumatta valita hyvä editori (esim. Vs Code) ja siihen lintteri (=koodin laadun tarkistaja), jolla saa pahimmat koodivirheet pois.
Paitsi käännetyn kielen tapauksessa, jolloin kääntäjä korvaa linterin varsin pitkälti. Toki linterillä saa lisäapuja mutta ei ole läheskään yhtä hyödyllinen.
 
Paitsi käännetyn kielen tapauksessa, jolloin kääntäjä korvaa linterin varsin pitkälti. Toki linterillä saa lisäapuja mutta ei ole läheskään yhtä hyödyllinen.
Periaatteessa ymmärrän mitä tarkoitat, mutta itse käyttäisin ehdottomasti linteriä myös käännettyjen kielien kanssa, kuten C:n. Linterhän ei ainoastaan tarkista bugeja, vaan myös vahtii, että koodia kirjoitetaan tietyn tyylin mukaisesti esim. muuttujanimien osalta.

Esim:
Python: PEP8 / Google
C: LLVM / Google / Mozilla
 
Periaatteessa ymmärrän mitä tarkoitat, mutta itse käyttäisin ehdottomasti linteriä myös käännettyjen kielien kanssa, kuten C:n. Linterhän ei ainoastaan tarkista bugeja, vaan myös vahtii, että koodia kirjoitetaan tietyn tyylin mukaisesti esim. muuttujanimien osalta.

Esim:
Python: PEP8 / Google
C: LLVM / Google / Mozilla
Pointtinsa toki tuossakin. Ohjelmointiummikolle linterin hyödyt käännetyssä kielessä lienevät aika pieniä, sillä paljon tulee juurikin muuttujien nimiin liittyvää yms., mutta jos ohjelmointipohjaa on jo ja haluaa saada uudenkin kielen saman tien mahdollisimman hyvälle pohjalle, linter lienee oikein hyödyllinen. Toki linterit ovat kokeneemmallekin ohjelmoijalle hyödyllisiä.
 
Java Script, Type Script, minkä jälkeen Noden sielunelämä ja joku suosittu kirjasto, kuten React + NextJS. JS sooloilun jälkeen joku JVM kieli vähintään vielä. Scala (+ valitettavasti Javan perusteet) on esim. hyvä ja syntaksi yllättäen lähellä TS:ää ja funktionaalisen koodin kirjoittamiseen helppo oppia. Harva ns. fronttikoodari osaa ja ymmärtää edes vanilla JS:n toiminnan kunnolla.
 
Hieman offtopic, mutta itsellä vaikeuksia keksiä mitä koodaisi. Hello worldin tulostamisella ei paljoa uutta kieltä opi.

Mielikuvituksen puute hidastaa uuden opettelua.
 
Hieman offtopic, mutta itsellä vaikeuksia keksiä mitä koodaisi. Hello worldin tulostamisella ei paljoa uutta kieltä opi.

Mielikuvituksen puute hidastaa uuden opettelua.
Tee torrent-asiakasohjelmaan ominaisuus, joka satunnaistaa oikean olemassa olevan user agentin jokaiselle torrentille tai sessionille. User agentteja on käytetty todisteena oikeudessa, niin tällä sen vakuuttavuutta voitaisiin heikentää.
 
Jos nyt pitäisi opiskella uusi kieli niin olisko se Go, Rust vai joku muu? Python, JS, PHP, Powershell jo hallussa.
 
Jos nyt pitäisi opiskella uusi kieli niin olisko se Go, Rust vai joku muu? Python, JS, PHP, Powershell jo hallussa.

Vaikea tuohon mitään yleispätevää on sanoa, mutta sanoisin että joku C-syntaksin tyyppinen kieli. Go tai Rust varmasti ihan ok, mutta varmasti olisi hyvä myös jos olisi ihan old school C-kielen perusteet ainakin myös hallussa pohjaksi.

Lisäksi joku JVM-pohjainen kieli ei ole koskaan pahitteeksi. Vaikea sanoa kummin päin. Itse opettelin aikoinaan ensin C:n ja sen jälkeen vasta Javan. En siis kysynnän takia vaan perusteiden. Java varmasti (edelleen) helpompi lähestyä kuin Clojure, Scala tai Kotlin. Vaikea sanoa kun Java on aika paljon monipuolisempi kieli kuin 20-vuotta sitten ja sitä ei juuri tule enää itse käytettyä.

Lopulta pyörä keksitään aina vähän uudestaan. Go:lle ja Rust:lle ei välttämättä (vielä) ole Suomessa kysyntää niin paljoa kuin tutuilla ja turvallisilla kielillä, ellei ole muuten kova stack osaaminen taustalla. Yleistys, joka heitetty ihan stetsonista.
 
Viimeksi muokattu:
Ehkä alkuperäinen kysymys pitäisi muotoilla uudestaan. Mihin ohjelmointikieleen ei kannata tuhlata aikaa.

Tähän omat vastaukseni ovat Basic ja PHP ja Assembly (konekieli, ei webassembly). Tosin assembly siitä hyvä että oppii vähän sitä käyttäjärjestelmää ja tietokoneen tapaa toimia, eli siitä saa hyvää tietoa. Työllistymismerkitys assembly-kielellä on nolla.
 
Mitä kannattaa riippuu siitä mitä haluaa tehdä joko työkseen tai harrastuksena.

Suosittelen C, java, scala ehkä jopa tässä järjestyksessä.
Jos aikoo tehdä jotain tietokantoihin liittyvää niin kannattaa opetella myös tiedon mallinnus ja sql. Suosittelen lämpimästi kaikille web- devaajille sen perusteella minkälaisia toteutuksia on tullut vastaan muuten päteviltä koodareilta jotka eivät kuitenkaan tienneet tarpeeksi kannoista...

Oma "kielipolku" alkoi joskus 90- luvun alussa pascalilla ja sen jälkeen asm, C, C++, php, java, perl, C#, scala, python. Php:n mukana html/js. Ei muistikuvaa missä välissä mukaan tuli bat/sh/powershell.

Pääasiallinen työni ei ole ohjelmointi vaan tietovarastointi/raportointi mutta kaikkia muita paitsi pascalia ja asmia olen käyttänyt työuran aikana. Siitä millä kielellä työllistyy tai on nykyään kysyntää en osaa sanoa mutta oman kokemuksen perusteella monen kielen osaaminen on auttanut löytämään (toivottavasti) oikeampia ratkaisuja haasteisiin.
Ja on myös löytynyt mielenkiintoisia ja erilaisia tehtäviä tiedon visualisoinnista (esim Cognos+Google Maps+JS) windows- serviceen (C).
 
Jos nyt pitäisi opiskella uusi kieli niin olisko se Go, Rust vai joku muu? Python, JS, PHP, Powershell jo hallussa.
Riippuu tarkoituksesta. Työllistymismielessä esim. Stack Overflow'n vuotuinen kehittäjäkysely voi antaa hyviä ideoita. Listalla on kärkipäässä ainakin Java ja C#, joille luulisi Suomestakin löytyvän edelleen kysyntää. Osaamisen monipuolistamiseen taas löytyy useita suuntia:
  • C, C++: matalan tason ohjelmointi ja manuaalinen muistinhallinta, lisäksi työllistänevät edelleen ihan asiallisesti
  • F#, Haskell: funktio-ohjelmointi
  • Rust: erilainen lähestymistapa muistinhallintaan + C-tyyppiseksi kieleksi erityisen vahva tyyppijärjestelmä
  • Swift/Kotlin: mobiilikehitys
  • HTML/CSS: web-kehityksen toinen puoli, jos ei ole jo hallussa
Henkilökohtaisesti voin suositella Haskellia näkökantojen avartamiseen ja Rustia noin muuten hyvän ja modernin oloisena kielenä, mutta työllistymistä nämä tuskin edesauttavat merkittävästi muuten kuin joihinkin tiettyihin paikkoihin, joissa kyseisiä kieliä käytetään.
 
Yksinkertaista saada hostattua bäkissä + pikaiseen skriptailuun kotikoneella, esim. tiedostoformaattien konvertointi.
Joten se jää demoilu/protoilu -asteelle, ja kun softaa sitten oikeasti tehdään, se tehdään jollain muulla kielellä.
 
Mihin tarkoitukseen? Facebook käytti, mutta luovutti ja kehitti React-javascript kirjaston/frameworkin.
PHP:ssä ei ole mitään suurempaa vikaa tai syytä miksi sitä ei voisi käyttää nyt ja tulevaisuudessa. Töitä PHP kehittäjille löytyy helposti ja modernilla frameworkilla on erittäin mukavaa kehittää vaikka minkälaisia web äppejä.

Olisi mukava kuulla oikeita perusteluita, eikä tuommoista turhanpäiväistä välihuutelua.
 
Yksinkertaista saada hostattua bäkissä + pikaiseen skriptailuun kotikoneella, esim. tiedostoformaattien konvertointi.

En ota kantaa siihen onko PHP hyvä tai kätevä kielenä, mutta uskaltaisin väittää että Javascript (NodeJs) on käytevyydessä, niin hostaamisen kuin kotikoneella pikaisesti ajettavien skriptien suhteen, ajanut aika hyvin ohi.
 
  • Tykkää
Reactions: hmb
Ohjelmoinnista kiinnostuneen ei mun mielestä kannata liikaa murehtia kielivalintaa. Alkuun on hyvä päästä perille siitä mitä ohjelmointi noin yleisesti edes tarkoittaa ja oppia ne peruskäsitteet jotka toistuvat lähestulkoon kaikessa ohjelmoinnissa. Samalla on ihan kiva tutustua alan työkaluihin, joiden hallinta ei ole itsestäänselvyys alalla työskentelevienkään parissa.

Erinomaisena ensiaskeleena toimivat Helsingin yliopiston kurssit täällä: Etusivu - MOOC.fi alkaen tuosta Ohjelmoinnin MOOC:ista, joka on melko työläs, mutta palkitseva ja erittäin opettavainen paketti. Sen jälkeen on ihan hyvä pohja lähteä laajentamaan osaamistaan oikeastaan mihin tahansa ohjelmoinnin parissa. Työelämässä on erityisen paljon kysyntää tulevan Full stack openin sisällölle, jossa tutustutaan webbipalvelimen ohjelmointiin sekä selaimessa toimivien sovellusten toteuttamiseen. Tietokantojen perusteet on myös erittäin hyödyllinen sillä sitähän tämä ala isoilta osin nykyään on: tiedon hilloamista tietokantaan ja sen pyörittelyä.

Kun nuo kolme kurssia on hanskassa niin käsitys ohjelmoinnista on hyvällä kantilla ja kehtaisin jopa väittää, että sen jälkeen voi yrittää lähteä laajentamaan osaamistaan työelämään. Toki paljon jää opittavaa, mutta ohjelmoinnin alalla se on status quo, koskaan et osaa riittävästi.
 
Olisi mukava kuulla oikeita perusteluita, eikä tuommoista turhanpäiväistä välihuutelua.
Tästä oli youtube video facebook kehittäjien kertomana, miksi hylkäsivät PHP:n. En nyt löytänyt sitä enää pikaisella haulla. Mutta siis sinänsä PHP kielessä ei sinänsä varmasti ole mitään ongelmaa. Sen käyttö fullstack web-devauksessa aiheuttaa ainakin kahden kielen käytön ongelman ja templatejen käytön. Lisäksi näen PHP:n merkityksen työpaikoilla olevan laskevassa suunnassa. Siksi siis voisi tehdä nuo ohjelmoinnin opettelut jollakin sellaisella mitä tulevaisuudessakin käytetään. Mutta ilmeisesti webassembly tulisi apuun fullstack kehityksessä, että voit tehdä koodin millä kielellä tahansa.
 
Mihin tarkoitukseen? Facebook käytti, mutta luovutti ja kehitti React-javascript kirjaston/frameworkin.
 
Tästä oli youtube video facebook kehittäjien kertomana, miksi hylkäsivät PHP:n. En nyt löytänyt sitä enää pikaisella haulla. Mutta siis sinänsä PHP kielessä ei sinänsä varmasti ole mitään ongelmaa. Sen käyttö fullstack web-devauksessa aiheuttaa ainakin kahden kielen käytön ongelman ja templatejen käytön. Lisäksi näen PHP:n merkityksen työpaikoilla olevan laskevassa suunnassa. Siksi siis voisi tehdä nuo ohjelmoinnin opettelut jollakin sellaisella mitä tulevaisuudessakin käytetään. Mutta ilmeisesti webassembly tulisi apuun fullstack kehityksessä, että voit tehdä koodin millä kielellä tahansa.

Ihan mielenkiinnosta, mikä se toinen kieli on jota pitää käyttää php:n lisäksi ?
Eikös kaikkien muiden kuin noden kanssa tule kuitenkin vastaan javascript ja se kieli millä serveripää on tehty eli vähintään 2 ?

Monissa kielissähän on omat ongelmat ja kuopat joihin putoaa, phptä on kyllä arvosteltu siitä että tulee koodi-leiska spagettia.
Varmaan millä tahansa koodaten saa kyllä aikaan huonoa jälkeä ja todennäköisesti myös hyvää.

Eikä ole tarkoitus aloittaa php- väittelyä...
Töissä sitä ei juuri ole näkynyt mutta on ollut omissa pikkuprojekteissa näppärä.
 
Ihan mielenkiinnosta, mikä se toinen kieli on jota pitää käyttää php:n lisäksi ?
Eikös kaikkien muiden kuin noden kanssa tule kuitenkin vastaan javascript ja se kieli millä serveripää on tehty eli vähintään 2 ?
Frontti puoli onnistuu ihan pelkällä javascriptillä, ja backend myös halutessaan. Itsellä vähäinen kokemus LAMP/XAMP jutuista ja silloin oli sitä PHP:tä ja HTML sekasin noissa projekteissa.

Mutta itse aikoinaan vanhaan tyyliin loin sivut templatesta javalla ja DHTML:ää käyttäen sitten ympättiin javascriptiä tarpeen tullen vähän mukaan. Templatet toimii ihan hyvin paitsi näissä nykyisin käytössä olevissa SPA-softissa, kun pidetään kutsut serverille minimissä.

Mutta pääpointtini: Jos et osaa PHP:tä niin ei sitä kannata ruveta opiskelemaan työllistymisen takia.
Mikään ohjelmointikieli ei aseta estettä jonkun tyyppisen sovelluksen tekemiseen. Halutessaan voi backendin tehdä esimerkiksi assemblerilla.

Edit: yks typo korjaus. Rupee jo iltapäivä väsy painaa..
 
Mitä tuossa tarkoitat hostauksen käytettävyydellä? Onko Node-hostit yleisempiä tai halvempia tms., vai onko prosessi yksinkertaisempi?

Jos sinulle annetaan tiedosto jonka rakenteen tunnet mutta joka ei ole minkään standardin mukainen ja joka sisältää raakadatana x-bittisiä kuvia jotka haluat konvertoida ja tallentaa PNG:ksi, mitä askeleita ottaisit JS/Nodella:lla tuon saavuttamiseen puhtaalta pöydältä? Distrosta riippuen esiasennettuna löytyy jo PHP + GD, joilla kutsut paria funktiota ja parsit datan ulos.

Node-sovellusten pyörittely on kohtalaisen simppeliä ja yksinkertaisellakin setupilla pystyy palvelemaan jo melko isoa käyttäjämäärää. Helpoimmillaan homma toimii noden ollessa asennettuna kahdella komennolla: npm install ja node index.js (tai npm run start jos sellainen on määritelty package.json:issa). Ensimmäinen asentaa määritellyt riippuvuudet ja toinen suorittaa index.js -tiedoston, joka on usein ns. entry point nodesoftalle. Etenkin silloin kun serveri toimii pelkkänä rajapintana josta haetaan JSONia ja tietokantana on MongoDB niin devaamisesta tulee esimerkillisen mukavaa kun kaikki data on javascript-objekteja. Toki tuotantohommissa on fiksumpaa tunkea softa konttiin ja laittaa jonkun pilvipalvelun autoskaalaavan plattarin hoidettavaksi.

Seuraavaan kysymykseen vastaus olisi kai se, että etsii npm:ästä sopivan paketin jolla on kiva pyöritellä kuvia, kirjoittaa sen ympärille muutaman rivin koodia ja homma on kasassa. Node-maailmassa vitsihän on se, että mitään ei tehdä itse kun joku on kaiken jo keksinyt ja julkaissut npm:ään koodit mukavana pakettina.

Moderni PHP ei ole tuttua, mutta kaipa sekin nykyään toimii hyvin vastaavalla tavalla.

Edit: Nodesoftia pyöritellessä ei tosiaan aina ole edes käyttöä nginxille tms edessä olevalle webbiserverille kun sen perffi riittää itsessään jo monenlaiseen hommaan. Googlen V8-tiimi koostunee melkoisista wisardeista.
 
Onko Node-hostit yleisempiä tai halvempia tms., vai onko prosessi yksinkertaisempi?

Kieltämättä ei ehkä olisi pitänyt lähteä huutelemaan, kun kokemukseni PHP:stä on kuitenkin pääosin ~10 vuoden takaa, jolloin ei ainakaan sen hetkisellä osaamistasollani tuntunut että PHP olisi mitenkään kätevä pystyttää ympäristönä tai ajella web-palvelinta lokaalisti. Voisi kuitenkin toivoa, että noista ajoista on tultu aika paljon eteenpäin. Ja tietysti alla olevasta käyttöjärjestelmästähän tuo varmasti myös riippuu.

NodeJs:n helppoudella ajattelin ensijaisesti, että Node ei oikeastaan vaadi asennukseen muuta kuin sen varsinaisen Noden, jonka mukana tulee suoraan npm-paketinhallinta. Palvelinkäyttö onnistuu muutamalla rivillä kunhan importtaa Expressin, eikä etenkään kotikäytössä tai vaikka Herokuun heittäessä tarvitse miettiä web-servereitä tai muita eteen. Toisaalta vaikkapa jonkun tiedostojen prosessointiin on melko kätevää kirjoittaa modernilla ES6:lla siistin näköinen skripta ja ajaa se "node script.js". Tuolla on aika monet tiedostojenpyörittelyt ja muut pikku toimenpiteet tehtyä, mutta toisaalta kohtahan joku sanoo, että bash-scripti on se helpoin ja tarjoaa kaikki valmiit jutut.... eli eiköhän useimmat kirjoita nämä tällaiset sillä joka on jo a) tutuin ja nopein käyttää kielenä ja b) valmiina asennettuna, ellei ajoympäristö/asiakas muuta vaadi tai jossain tietyssä kielessä/kirjastossa ole heti valmiina työkalut jolla onnistuu. En ehkä JS:llä alkaisi ensimmäisenä mitään raw-kuvia pyörittelemään, vaikka tosin kaikkeen löytyy aina npm-paketti ja niin todennäköisesti tähänkin, mutta toisaalta enpä olisi arvannut että vaikkapa PHP tarjoaa sellaiseen käytettävät työkalut.

--

Loppujen lopuksi käytetyllä kielellähän ei pitäisi ohjelmoijalle ihan kamalasti olla väliä, ellei se ole mallia hirveä. Itse aloitin yliopistopohjalla vahvasti Java-koodarina, josta jatkoin työmaailmaan jossa oli vähän pakko opetella javascriptin niksit. Välillä joutui vähän Ruby-scriptejä tunkkaamaan. Kotona uusia töitä etsiessäni piti muutamassa viikossa vääntää aivot ymmärtämään Go:ta. Seuraava projekti kuitenkin olikin sittenensin vahvasti AngularJs + NodeJs, sitten React + NodeJs (Typescriptillä), nyt olen projektissa jossa on React+Kotlin, ja pari kuukautta sitten minua kaivattiin apukädeksi hoitamaan vanha kanta -> uusi kanta siirtoa, joka oli koodattu Pythonilla.

Kertaakaan ei ole tekniikoihin sananvaltaa juuri ollut, vaan tärkeintä on ollut omaksuminen ja konventioiden jatkaminen. Aika paljon se on antanut näkökulmia erilaisiin lähestymistapoihin, ja toisaalta aika usein joutuu myös kompromissina käyttelemään kaikkea sellaista, joista ei henkilökohtaisesti niin välitä. En esimerkiksi enää TypeScriptin käyttämisen jälkeen pysty ymmärtämään, miksi nykyisessä projektissani on ihan hirveä "TypeScript on paskaa" vinkuminen, mutta samalla kirjoitetaan tuhansia rivejä ihan hirveitä PropType-määrittelyitä... ja toisaalta React+Redux tunnutaan jatkuvasti olevan se paras fronttitekniikka joka ratkaisee kaiken, mutta enpä toisaalta muista että olisin koskaan onnistunut vanhaan aikaan jQueryllä saamaan koko sivua juntturaan sillä, että yritän kirjoittaa teksti-inputtiin jotain.... Tuntuu, että uudet tekniikat ovat samaan aikaan selkeyttäviä, ja tuovat toisaalta hirveän kasan uusia sudenkuoppia joita vältellä tai jotka pitää vaan tietää.

Jos ei halua olla tällainen jokapaikan höylä ja kameleontti, niin opeteltava kieli kannattanee valita lähinnä sen mukaan, mikä kiinnostaa osa-alueena, esimerkkeinä
- Backend-jutut -> PostgreSQL + Java/C#/Kotlin/joku muu
- Koneoppiminen, datascience, data-analyysit -> Python
- Frontti-jutut -> Javascript, React/Vue
- Pelijutut -> C# (Unity) tai C++ (Unreal)
- Sulautetut järjestelmät - C/C++
...jne.

Sitten kun ymmärtää noita osa-alueita ja osaa tehdä edes jollain, niin aika usein toki tulee eteen tilanne, että osaan Javaa mutta nää haluais .NET -backend-kehittäjän ja pitäs tehdä C#. Jos perusjutut on hallussa, ei liene kovin hankalaa vaihtaa lennosta toiseen kieleen. Työnhaussa ei tietenkään kannata valehdella vaan ainakin minusta voi rehellisesti myöntää että haen tähän vaikka en osaa juuri tätä hakemaanne kieltä. Ainakin minua harkittiin (ja muutamaan oltiin ottamassakin) useampaan paikkaan aikana, jolloin hain vähän haulikolla ampuen moneen paikkaan, jossa käytettiin kieliä joita en ennestään osannut.
 
Viimeksi muokattu:
Itselleni on aina iso haaste kun vaihtuu työkalut. Aloitin tekstieditorilla, siitä Eclipseen, QtCreatoriin ja lopulta tällä hetkellä VSCode. Aina järkyttävä säätäminen että saa sopivat työkalut käytettävään ympäristöön ja ne vielä toimimaan yhteen.
Ymmärrän hakeutumisen verkko mobiilisovellusten suuntaan koska sitten kun oikeasti pitää lähteä tutkimaan miksi joku pci laite ei toimi, käyttiksen moduli porsii tai jotain muuta ihanaa niin vitsit on välillä vähissä...
Niin ja samaa mieltä siitä että kielellä ei väliä mutta skriptaus, graffapuoli, OO, funktionaalinen maailma, transaktionaalisuus, tietokantojen perusteet ja ddd kun ovat tuttuja jollain setillä kieliä niin on jo hyvässä alussa. Jos meinaa mobiilisoftia kodailla niin xcode tai vastaava olis hyvä tonkaista. Versio hallinnan työkalut olisi hyvä katsastaa samoin kuin jokin testikehys esim gtest.
 
Itse suosittelisin alkuun pythonia. Se on helppoa ja mukavaa. Jos olet tyyppi, joka tykkää mennä hankalan kautta, niin lähde vetämään C:llä. Sillä oppii vähän matalamman tason ohjelmointia, joka on työläämpää, mutta voit pian ottaa jonkun Arduino-laatan ja tehdä vilkkuvaloja tms. Full-stack, eli verkko/mobiilipalveluiden tekeminen on mielestäni turhan vaativa setti lähteä alkuun harjoittelemaan, ellei ole jotain koulutusta tiedossa tai palavaa innostusta siihen. Teknologioita ja omaksuttavia konsepteja on vain niin monta, että se on aloittelijalle kova pala.

Itse olen opiskelujen myötä ja myöhemmin työelämässä joutunut kelaamaan vähän niinkuin koko paketin lävitse, kaikki tärkeimmät kielet. Ammattikoodarille tämä lienee normaalia. Python, Matlab, teknistä laskentaa, sensoritekniikkaa jne. C sitten kun sensoreita pitää alkaa veivata itse. Assembly tulee vastaan sitten jos/kun ongelmat on sitä luokkaa, että pitää ymmärtää mitä pellin alla tapahtuu. Johonkin projektiin on varmasti joku tunkenut C++:aa, ja sitä on sitten katsottava. Javascript, jos meinaat tehdä mitään verkkoon ja tässä vaiheessa tulee se full-stack-läjä kuvioon html:ineen, Reacteineen, Nodeineen, CSS jne. PHP aikanaan harrastuspuuhissa, mutta ei enää. Perlissäkin on tullut sukat märäksi. Kaverin projekti Rubyllä. Joo-o. Isoin kieliperhe, mitä olen onnistunut välttelemään lienee tuo Java/C# ja silläkin pelotellaan työhaastatteluissa aika-ajoin.

Ensinnä kannattaa ladata se visual studio code ja klikkailla "yes" kun se ehdottaa apupakettia siihen kieleen minkä valitset.
 
Itse suosittelisin alkuun pythonia. Se on helppoa ja mukavaa. Jos olet tyyppi, joka tykkää mennä hankalan kautta, niin lähde vetämään C:llä. Sillä oppii vähän matalamman tason ohjelmointia, joka on työläämpää, mutta voit pian ottaa jonkun Arduino-laatan ja tehdä vilkkuvaloja tms. Full-stack, eli verkko/mobiilipalveluiden tekeminen on mielestäni turhan vaativa setti lähteä alkuun harjoittelemaan, ellei ole jotain koulutusta tiedossa tai palavaa innostusta siihen. Teknologioita ja omaksuttavia konsepteja on vain niin monta, että se on aloittelijalle kova pala.

Itse olen opiskelujen myötä ja myöhemmin työelämässä joutunut kelaamaan vähän niinkuin koko paketin lävitse, kaikki tärkeimmät kielet. Ammattikoodarille tämä lienee normaalia. Python, Matlab, teknistä laskentaa, sensoritekniikkaa jne. C sitten kun sensoreita pitää alkaa veivata itse. Assembly tulee vastaan sitten jos/kun ongelmat on sitä luokkaa, että pitää ymmärtää mitä pellin alla tapahtuu. Johonkin projektiin on varmasti joku tunkenut C++:aa, ja sitä on sitten katsottava. Javascript, jos meinaat tehdä mitään verkkoon ja tässä vaiheessa tulee se full-stack-läjä kuvioon html:ineen, Reacteineen, Nodeineen, CSS jne. PHP aikanaan harrastuspuuhissa, mutta ei enää. Perlissäkin on tullut sukat märäksi. Kaverin projekti Rubyllä. Joo-o. Isoin kieliperhe, mitä olen onnistunut välttelemään lienee tuo Java/C# ja silläkin pelotellaan työhaastatteluissa aika-ajoin.

Ensinnä kannattaa ladata se visual studio code ja klikkailla "yes" kun se ehdottaa apupakettia siihen kieleen minkä valitset.

Arduino&Co on oikeasti C++ vaikka itse ei tarvitsekaan välttämättä kirjoitella luokkia...

Kielen vaihto ei yleensä olekaan se suurin ongelma.
Eniten haasteita ainakin itselle on ollut siinä että joka projektissa on aina eri mikäliebuilder joka pitää opetella että saa kirjastoriippuvuudet ja paketoinnin oikein, vähän tuntuu siltä että kaikki toimii eri tyylillä ja tietysti ainatarvitaan custom- ominaisuuksia jotka on hankalia juuri sen projektin työkaluille...
 
Kielen vaihto ei yleensä olekaan se suurin ongelma.
Eniten haasteita ainakin itselle on ollut siinä että joka projektissa on aina eri mikäliebuilder joka pitää opetella että saa kirjastoriippuvuudet ja paketoinnin oikein, vähän tuntuu siltä että kaikki toimii eri tyylillä ja tietysti ainatarvitaan custom- ominaisuuksia jotka on hankalia juuri sen projektin työkaluille...

Jep, varsinkin C/C++ tämä tuntuu olevan tuskallista. Linuxilla yleensä pakettien ja kirjastojen asennukset on IMO helpompia kuin Windowsilla. Modernit pakettienhallintasysteemit, kuten vaikkapa Noden npm tai Rustin cargo on kyllä todella mukavia. Webbipuolella on sitten vielä webpackit, gulpit tms. joiden konffailuun tuhrautuu tosiaan välillä enemmän aikaa kuin itse koodailuun. Ja vuoden päästä lienee taas uudet systeemit.
 
Jep, varsinkin C/C++ tämä tuntuu olevan tuskallista. Linuxilla yleensä pakettien ja kirjastojen asennukset on IMO helpompia kuin Windowsilla. Modernit pakettienhallintasysteemit, kuten vaikkapa Noden npm tai Rustin cargo on kyllä todella mukavia. Webbipuolella on sitten vielä webpackit, gulpit tms. joiden konffailuun tuhrautuu tosiaan välillä enemmän aikaa kuin itse koodailuun. Ja vuoden päästä lienee taas uudet systeemit.

Jep. Ja kaikissa java- projekteissa olevat ivy/ant/maven/jne...
 
Jos olisin nyt lähtemässä aloittelemaan niin kaivaisin itseäni kiinnostavasta nurkasta jonkun valmiin kitin, yrittäisin saada sen toimimaan ja siitä sitten kokeilemaan miten voisi muuttaa. Joku Arduino varmaan on ok, jos laitteisto kiinnostaa, raspi jos Linux, qt jos kiinnostaa käli, Eclipse jos Java, VSCode jos C# ja sitten nodejs jos verkko. Python on vähän haastavampi suositella kun oma käyttö on lähinnä portattavien scriptien tekoa. Kaikille on kuitenkin läjäpäin esimerkkejä joita kokeilla ja modata.
Ihan tyhjästä voi olla turhauttavaa aloittaa juurikin sen takia että projektien rakennus ja asennusinfra vaatii aika paljon tunkkaamista joka ei suoraan liity ohjelmointikieleen jota haluaisi opetella.
 
Itse valitsisin edelleen PHP:n, joka on helppo opetella ja varsin monipuolinen ohjelmointikieli. Toki miettisin myös, että mitä aiot koodata.
 
Jos data-analytiikka kiinnostaa niin suosittelisin perehtymään lisää Pythoniin. Bashin opettelu ei myöskään mene koskaan hukkaan.
 
Itse valitsisin edelleen PHP:n, joka on helppo opetella ja varsin monipuolinen ohjelmointikieli. Toki miettisin myös, että mitä aiot koodata.

Mites PHP työllistävyys on nykyään? Siis verrattuna JavaScript/TypeScript:iin, Javaan ja Pythoniin? Mulla on jotenkin kutina, että PHP on hiukan enemmän auringonlaskun kieli noihin muihin verrattuna.

Itse ehkä valitsisin Pythonin ekaksi kielekseni PHP:n sijaan ihan puhtaasti siksi, että sille lienee enemmän kysyntää. (Pidän myös Pythonista kielenä enemmän) Pikainen haku Duunitorista tukee tätä oletusta.
 
Mulla on jotenkin kutina, että PHP on hiukan enemmän auringonlaskun kieli noihin muihin verrattuna.
Muistelen kuinka aikanaan eräs nuori opettaja julisti vuonna 2001 miten PHP:ta ei käytä enää kukaan ja ainoastaan Pythonilla työllistyy.
Nykyään toki tilanne jo oikeastikin eri.

Ehkä tästä voisi kuitenkin sen verran yleistää kielivalintoja, että vaikka valitsee minkä kielen, sillä on jokin elinkaari, joka on työuraa lyhyempi. Toisaalta taas jos nyt valitsee suositun kielen, sillä on todennäköisesti edes jonkin verran käyttöä vielä 10 vuoden päästä. Ei tule siis olla liian jumissa yhteen kieleen, eikä myöskään pelätä valitsevansa "väärin".
 
Itse ainakin käytän kotisivuillani PHP:tä ja MySQL tietokantaa. Näiden taustalla tietenkin on HTML 5. Tietenkin siihen tässä olisi vielä hyvä osta jqueryä, javaa ja javascriptiä. Jos taas kiinnostaa laajempi ja kattavampi ohjelmointi niin silloin se voisi olla C++ mutta kyseinen ohjelmointikieli on todella haastava ja C:n tunteminen auttaa siinä mutta ei se silti tee sitä helpommaksi. Riippuu ihan siitä mitä haluaa tehdä ja valitsee ohjelmointikielen sen mukaan.
 
PHP työllistymisen kannalta on varma valinta. Vaikka market share on pienessä laskussa ollut jo pitempäänkin, niin pysyy varmasti relevanttina vielä vuosikymmeniä. Lisäksi aikasempi suosio takaa sen, että PHP:tä löytyy vähän joka paikasta. Nytkin tuntuu olevan haku päällä vaikka kuinka monessa paikassa.

Mielestäni ei kuitenkaan ole väliä millä aloittaa koodaamisen, kunhan oppii perusteet ja tekee jotain alusta loppuun. Onko se PHP, Java, Python tai ihan sama mikä, eipä sillä hirveästi ole väliä. Mutta jos aloittaa vaikka C:llä niin saattaa tulla äkkiä semmoinen olo ettei tämä ole mun juttu ja se jää sitten siihen.
 
Osittain tätäkin keskustelua sivusta seuranneena päädyin itse juuri ostamaan (plan B) udemyn kautta python kurssin. Python Bootcamps: Learn Python Programming and Code Training

Alunperin tarkoituksena oli syventyä ohjelmoinnin maailmaan likaamalla kädet microchipin pic-mikrokontrollereiden (c) kanssa, mutta tavaroita on nyt haudottu turhan pitkään vantaalla, joten se siitä ainakin toistaiseksi.
 
Itse harrastan pienimuotoista ohjelmointia ja itselle on tullut semmoinen vaikutelma että itse kieli ei aiheuta paljon vaivaa oli se sitten mikä tahansa mainstream kieli. Eli lähinnä sulkee pois brainfuckit ynnä muut. Enempi haaste tulee itse sen ohjelman kasaamisesta ja eri kirjastojen apin ymmärtämisestä. Minusta myös c on ihan hyvä kieli myös aloittelijalle koska se on melko pieni kieli vrt. C++. Vaikka ei tietty tarvitse käyttää kaikkia c++ toimintoja. Kuten aikaisemmin on jo sanottu niin kannattaa ihan sen kohde applikaation kautta valita se kieli.
 

Statistiikka

Viestiketjuista
261 839
Viestejä
4 548 799
Jäsenet
74 851
Uusin jäsen
hieunguyen

Hinta.fi

Back
Ylös Bottom