Kirjautuminen

Haku

Tehtävät

Keskustelu: Ohjelmointiputka: JavaScript-opas – olisiko lukijoita?

Sivun loppuun

Merri [12.05.2013 22:38:24]

#

Innostaisiko ajatus? Löytyisikö lukijoita? Kuinka nyyppäystävällinen tarvitsee olla, eli pitäisikö lähteä "en ole oikeastaan ikinä ohjelmoinut, mutta tykkään nettisivuista" -tasosta vai mieluummin "osaan jo muita kieliä, perusteet evvk" -tasosta?

JavaScriptihän on luonteeltaan varsin erilainen kuin "perinteisemmät" kielet ja on tainnut myös kärsiä jonkin sortin huonohkosta maineesta tai vähintään heikosta arvostuksesta tässä vielä jokusia vuosia sitten. Suurin osa tästä on saattanut johtua siitä, ettei JavaScriptiä ole ymmärretty kunnolla, vaan sitä on yritetty käyttää "perinteisemmän" kielen tavoin ja tuomittu sitten paholaisen keksintönä kun toiminta on ollutkin jotain odottamatonta.

Ehkä olennaisin plussapuoli JavaScriptin opiskelemiselle on, että viime vuosien kehitys selainten ympärillä on ollut aika huikeaa ja nyt löytyy kaikenlaista uutta hyödyllistä. Esimerkkeihin voidaan lukea vaikkapa pelien ja demojen teon kannalta erittäin hyödyllinen canvas, olio-ohjelmointia helpottavien käytäntöjen ja kirjastojen synty, kieleen tulleet funktionaalista ohjelmointityyliä mahdollistavat uudistukset, mahdollisuus lukea tiedostoja ennen niiden lähettämistä palvelimelle, sekä suositun jQueryn mukanaan tuoma helppous toteuttaa nopeasti kaikenlaista kivaa toiminnallisuutta. JavaScript on myös rantautunut vahvasti palvelinpuolelle Node.js:n voimalla, joten kieli ei ole todellakaan enää rajoittunut pelkästään selaimiin. Kaikki varmasti ovat jo myös huomanneet, että Unreal Engine 3 on käännetty pyörimään sujuvasti Firefoxissa? Ei tarvetta minkään liitännäisen lataamiselle!

Sikäli jos tämän oppaan kirjoittaminen koskaan pääsee vauhtiin, niin sisältö tulisi olemaan hyvin tulevaisuuteen suuntautuvaa: selainvaatimus olisi automaattisesti Firefox 20+, Chrome 26+, IE10+ tai vastaava uusinta uutta tarjoava selain. En näe mitään syytä alkaa kirjoittaa historian painolastista tilanteessa, jossa Internet Explorer 8 on suurinpiirtein vanhin edelleen tukemista kaipaava selain, josta useimmilla ei tarvitse välittää pätkän vertaa kahden vuoden kuluttua.

jukkah [12.05.2013 22:54:40]

#

Tulisiko opas tänne Putkaan vai jonnekin muualle?

Lebe80 [12.05.2013 23:09:23]

#

jukkah kirjoitti:

Tulisiko opas tänne Putkaan vai jonnekin muualle?

Onko sillä väliä?

Omasta mielestä opas voisi olla hyvä juttu, lähinnä kun sillä oikeasti pystyy tekemään hyvinkin isoja juttuja.

Metabolix [12.05.2013 23:10:03]

#

Hyvälle JS-oppaalle olisi varmasti lukijoita. Olen itsekin aikonut kirjoittaa JS-oppaan, mutta en ole vielä ehtinyt edes aloittaa sitä. Putkassahan on jo opas (arkistossa), mutta se on tasoltaan aika onneton – julkaisun aikaan linja oli yleisesti vapaampi eikä raadilla ollut vielä omaa kokemusta JS:n järkevästä käytöstä.

Mielestäni oppaissa on hyvä käsitellä vain yksi aihe ja käsitellä se kunnolla. Niinpä varsinaisessa JS-oppaassa pitäisi lähteä alkeista ja opettaa pääasiassa kyseistä kieltä – siis ihan samoja muuttujia ja silmukoita kuin muidenkin kielten alkeisoppaissa. Sitten erikseen voi olla kattavia oppaita eri rajapinnoista ja kirjastoista, joita ovat esimerkiksi ”tavallinen” selaimen JS (DOM, tapahtumat, setTimeout), jQuery ja Node.js. Jonkin verran päällekkäisyyttä tulee väkisin jo siitä, että alusta asti täytyy saada aikaan jotain konkreettista, mutta enimmäkseen oppaiden olisi minusta hyvä olla erillisiä.

Alkeisopas olisi tärkeä myös siksi, että mielestäni JavaScript olisi erinomainen vaihtoehto aloittelijoiden ensimmäiseksi kieleksi. Sehän on harvinaisen kätevä: sillä voi tehdä sekä käytännöllisiä sovelmia että pelejä, nettisivujen kautta aloittaminen on helppoa, sama koodi toimii kaikilla moderneilla selaimilla, ja ohjelmoinnin voi aloittaa millä tahansa tekstieditorilla ilman erityistä kehitysympäristöä.

Jos alkeisoppaan kirjoitus ei kiinnosta, voi tietenkin kirjoittaa pelkästään jostain kirjastosta. Myös taitavammille suunnattu opas on toki parempi kuin nykyinen tilanne.

Merri [12.05.2013 23:33:26]

#

Mitä olen aiheesta lueskellut, niin muutamat JavaScriptiä opiskelevat ovat mielellään aloittaneet jQuerystä ja vasta sitten siirtyneet JavaScriptin opiskelemiseen. Tähän on syynä se, että jQueryllä pääsee nopeasti kiinni asiaan ja mielenkiinto pysyy yllä. Puhtaalla JavaScriptillä ei pääse yhtä helposti alkuun kun joidenkin yksinkertaistenkin asioiden tekemiseen on oppimiskäyrää, tai ainakin kirjoitettavaa on huomattavan paljon.

Jos otetaan vaikka köykäisenä esimerkkinä jonkin elementin luonti lennosta:

// toimii samantien selaimella kuin selaimella
var $elementti = $('<div/>').css({
    position: 'fixed',
    left: '20px',
    top: '20px'
}).text("Minä olen laatikko ja pysyn paikallani vaikka sivua vierittää!");

$('body').append($elementti);

// toimii selaimilla, jotka tukevat textContentia
var elementti = document.createElement('div');
elementti.style.position = 'fixed';
elementti.style.left = '20px';
elementti.style.top = '20px';
elementti.textContent = "Minä olen laatikko ja pysyn paikallani vaikka sivua vierittää!";
document.getElementsByTagName('body')[0].appendChild(elementti);

Sitten kun tästä jatkaa edemmäs manipulointiin, niin alkaa helposti mennä vaikeaksi, tai ainakin pitkäksi puhtaan JavaScriptin keinoin.

Tämän takia voisikin olla hyvä, jos jQueryn ottaa alkeisoppaaseen avuksi. Tietysti joitakin puhtaita JavaScript-puolen asioita kannattaa ottaa heti mukaan, esimerkiksi merkkijonot ja numerot. Toisaalta en pidä siitä ajatuksesta, että kaikki eri muuttujatyypit syötetään kerralla yhdessä artikkelin osassa.

JavaScript on kyllä aiheena helposti todella laaja, minkä tuosta ensimmäisestä viestistäni jo näkee. Heti voisi pistää suuntautumista moneen eri suuntaan: on fronttia, on bäkkäriä, on pelipuolta. Ehkä tämän takia on ehkä hyvä keskittyä ensin alkeispuolelle ja jatkaa siitä sitten syvemmin JavaScriptiin, fronttipuolen ongelmiin ja vakiintuneempien käytäntöjen opettamiseen. Pitää tässä ajan kanssa miettiä, mikä olisi paras lähestymistapa.

The Alchemist [13.05.2013 10:27:49]

#

"Vanilla js:llä" ei tee yhtään mitään. Elementtien luominen ja tyylien muokkaus, event handlereiden asettaminen, ajax-pyyntöjen tekeminen... kaikki on niin mahdottoman hankalaa jo yhdellä apillakin, mutta kun edelleen voi joutua tukemaan kahtakin erilaista tapaa saman asian tekemiseen. Tuloksena olisi vain kasa purkkaa, jolla ei tee yhtään mitään.

Javascriptillä ei yleensäkään koodata mitään ilman kirjastoja vaan aina lähtökohtana on n+1 erilaista kirjastoa eri tarkoituksiin. Jotta oppaasta olisi jotain apua ihmisille, niin sen on pakko unohtaa matalan tason js ja keskittyä eri kirjastojen tuomiin hyötyihin.

Itse kirjoittaisin alkuun enintään pari kappaletta (sivua) siitä, miten asiat tehtäisiin matalan tason javascriptillä ja että miksi niin ei kannata tehdä. Sen jälkeen jQuerystä kappale tai kaksi, jonka jälkeen jotain hc-ajaxia kunnon mvc-kehyksillä tms. Loppuun ehkä canvas- ja svg-kikkailuita parin kappaleen verran.

Ja pelkkien api-esittelyiden sijaan pitäisi keskittyä enemmän uudelleen käytettävien komponenttien luomiseen. Mielestäni js-ohjelmoinnin saralla laahataan php:täkin enemmän kunnollisen koodin perusteiden ymmärtämisessä. Hyvin usein lähdetään liikkeelle siitä, että tuo yksi elementti X pitää saada tekemään yhtä asiaa AB, eikä huomioida lainkaan kahtasataa muuta elementtiä, jotka jakavat saman toiminnallisuuden.

Eli siis ensin js:n alkeet + jQueryn perusteet, sitten jotain ajax-pyyntöjä ja jQuery-efektejä ja dom-manipulointia. Kolmanneksi otetaan jokin valmis mvc-kehys ja opetellaan tekemään kunnon gui-sovelluksia järkevillä komponenttirakenteilla. Viimeiseksi expert-moodi päälle ja kaivetaan multimediarukkaset: canvas- ja svg-härpäkkeitä ja kenties vielä ääniä.

Tarvittavia kirjastoja:

- Käyttöliittymä: JQuery, Bootstrap
- Mvc: BackboneJS, UnderscoreJS
- Multimedia: RequireJS, SoundJS, KineticJS, Raphäel

Turso [13.05.2013 11:58:21]

#

The Alchemist kirjoitti:

Javascriptillä ei yleensäkään koodata mitään ilman kirjastoja vaan aina lähtökohtana on n+1 erilaista kirjastoa eri tarkoituksiin. Jotta oppaasta olisi jotain apua ihmisille, niin sen on pakko unohtaa matalan tason js ja keskittyä eri kirjastojen tuomiin hyötyihin.

Aamen ja Hallelujaa, olen (puisto)kemistin kanssa tismalleen samaa mieltä. Hyvin olet asiat saanut esille!

Ajax + JQuery + muutama "kunnollinen" esimerkki, eikä mitään ääriyksinkertaistettua, sellaisten tutkiminen ja soveltaminen on mielekkäintä.

Metabolix [13.05.2013 12:30:50]

#

Merri kirjoitti:

Puhtaalla JavaScriptillä ei pääse yhtä helposti alkuun

The Alchemist kirjoitti:

"Vanilla js:llä" ei tee yhtään mitään.

Voidaanko nyt sekoilun välttämiseksi puhua erikseen (1) JavaScript- tai ECMAScript-kielestä ja (2) siihen liittyvistä rajapinnoista ja kirjastoista? Tavalliset DOM-luokat ja -metodit eivät ole osa itse kieltä, vaan ne ovat yksi kirjasto muiden joukossa ja ne voidaan käsitellä sen mukaan – tai jättää enimmäkseen käsittelemättä, ihan sama minulle.

Kirjastojen käyttö ei mitenkään muuta sitä, että pitää tuntea myös muuttujat, oliot, funktiot, ohjausrakenteet ynnä muut kielen rakenteet. On tietenkin totta, että pelkästään niillä ei voi tehdä yhtään mitään näkyvää, ja siksi sanoinkin, että myös perusoppaassa on pakko käyttää koodien havainnollistamiseen jotain kirjastoa. Olkoon se vaikka jQuery. Sillä ei ole mielestäni paljonkaan tekemistä jQueryn opettamisen kanssa. Onhan myös C++-oppaan alussa tapana tulostaa tekstiä std::cout-oliolla, vaikka merkkijonot ja oliot opetetaan vasta paljon myöhemmin ja juuri std::cout-olion erikoisuuksia ei opeteta lainkaan.

Se, että jotain kirjastoa täytyy vähän käyttää, ei ole mikään syy tunkea kaikenlaisia eri kirjastoja samaan oppaaseen. Kaikki hyötyvät, kun eri kirjastot käsitellään selvästi erillään: Jos joku haluaa tutustua vain uuteen kirjastoon, se käsitellään järkevästi erillisenä kokonaisuutena. Jos jokin kirjasto muuttuu, on helppo muuttaa vain yhtä opasta. Kirjastot eivät ole missään teennäisessä järjestyksessä vaan samanarvoisina kokonaisuuksina. Uusia kirjastoja voidaan lisätä ilman, että niitä tarvitsee tunkea osaksi samaa opassarjaa.

Merri kirjoitti:

Toisaalta en pidä siitä ajatuksesta, että kaikki eri muuttujatyypit syötetään kerralla yhdessä artikkelin osassa.

Tuo on hassusti sanottu, koska JS sisältää todella vähän muuttujatyyppejä. Yksi mahdollinen jako on kuitenkin, että ensin käsitellään yksinkertaiset tyypit ja varataan merkkijonoille, taulukoille ja olioille omat osansa, olioille ehkä useampikin.

Merri kirjoitti:

JavaScript on kyllä aiheena helposti todella laaja, minkä tuosta ensimmäisestä viestistäni jo näkee.

Siksi onkin erityisen järkevää käsitellä siitä eri asiat erikseen. Pelkkä JavaScript-kieli on itse asiassa verrattain yksinkertainen, ja siitä voisi kokonaisuudessaan tulla noin 8-osainen opassarja tavanomaiseen Ohjelmointiputkan tyyliin tehtynä – arvio perustuu vastaavuuksiin C++-oppaan kanssa ja oletukseen, että asiat käsitellään melko perusteellisesti.

Turso kirjoitti:

Ajax + JQuery + muutama "kunnollinen" esimerkki, eikä mitään ääriyksinkertaistettua, sellaisten tutkiminen ja soveltaminen on mielekkäintä.

Siinä tuntuukin olevan monen JS-koodarin käsitys ohjelmoinnista: kopioidaan jostain pari ”kunnollista” esimerkkiä ja tullaan sitten Putkaan valittamaan, kun eivät ne omalla sivulla toimikaan, vaikka kopiraitit poistettiin ja koodirivejä vähän siirreltiin randomisti ympäriinsä. Ehkä kuitenkin kannattaa tehdä kunnolliset oppaat, joissa opetetaan kaikki asiat muuttujista alkaen eikä vain valikoiden niitä hauskimpia kuten jQueryn efektejä.

groovyb [13.05.2013 12:39:47]

#

Olisi kyllä hyvä tehdä myös MVVM esimerkki (esim. KnockoutJS), missä suoraa DOM:n käsittelyä ei tehdä lainkaan.

The Alchemist [13.05.2013 12:42:39]

#

Javascript-kielen alkeet syntaksin, tietotyyppien välisten konversioiden ja joidenkin filosofisten erikoisuuksien kuten asynkronisuuden (callbackien) vahvan läsnäolon osalta voi mielestäni selittää noilla parilla ensimmäisellä johdantokappaleella. Tai no ehkä kolmella, jos asiaa vielä miettii.

Voidaan ihan hyvin yrittää puhua javascriptistä "kielenä" ja "erillisinä kirjastoina", mutta kun sellainen erottelu on hyvin haalea veteen piirretty viiva. Selaimen päässä operoidessa dom-rajapinta on käytännössä osa javascriptiä yhtälailla kuin if-else-rakennekin. Palvelimen päässä taas esimerkiksi Node.js-ympäristössä Node laajentaa js:ää joillakin globaaleilla ominaisuuksilla, joiden erottaminen jonkin ihmeen ISO-standardin määrittämästä kielen ominaisuudesta on mahdotonta ilman kyseisen standardin läpikohtaista tuntemista.

Turso [13.05.2013 12:44:16]

#

Metabolix kirjoitti:

Siinä tuntuukin olevan monen JS-koodarin käsitys ohjelmoinnista: kopioidaan jostain pari ”kunnollista” esimerkkiä ja tullaan sitten Putkaan valittamaan, kun eivät ne omalla sivulla toimikaan, vaikka kopiraitit poistettiin ja koodirivejä vähän siirreltiin randomisti ympäriinsä. Ehkä kuitenkin kannattaa tehdä kunnolliset oppaat, joissa opetetaan kaikki asiat muuttujista alkaen eikä vain valikoiden niitä hauskimpia kuten jQueryn efektejä.

Äläpä muuta sano! Kehtaavat hölmöimmät vieläpä kysyä neuvoa - mokomat aloittelijat :)

qeijo [13.05.2013 13:20:50]

#

Totta helvetissä kannattaa skipata kaikki turhat "ääriyksinkertaistetut" "perusteet" ja siirtyä suoraan käyttämään The Alchemistin listaamia "hardcore" kirjastoja. Eihän if lauseilla tai for silmukoilla tee mitään, kun osaa esim. KineticJS:llä luoda helposti ja nopeasti animaatioita.

Työhaastattelussa voi sitten tuumata että:
"Emmä javaskriptiä osaa sillain, mutt mutt.."

Turso [13.05.2013 13:46:05]

#

qeijo kirjoitti:

Totta helvetissä kannattaa skipata kaikki turhat "ääriyksinkertaistetut" "perusteet"

Mielenkiintoista, sarkasmiltasi taittuu terä heti alkuunsa, koska keskustelun aloittaja pyysi nimenomaan mielipiteitä, halutaanko ihan perusteita, vai jotain muuta. Mielipiteitä on kirjattu.

Sinänsä sympaattista, että joku on aidosti huolissaan lähimmäisen työurasta suhteessa näihin harrastelijasivuston oppaisiin - jos kohta tämä voi hieman luoda paineita oppaiden kirjoittajille :)

Lebe80 [13.05.2013 13:48:11]

#

qeijo kirjoitti:

Totta helvetissä kannattaa skipata kaikki turhat "ääriyksinkertaistetut" "perusteet" ja siirtyä suoraan käyttämään The Alchemistin listaamia "hardcore" kirjastoja. Eihän if lauseilla tai for silmukoilla tee mitään, kun osaa esim. KineticJS:llä luoda helposti ja nopeasti animaatioita.

Työhaastattelussa voi sitten tuumata että:
"Emmä javaskriptiä osaa sillain, mutt mutt.."

Ei niitä siellä kiinnosta haastattelussa oikeasti kiinnosta pätkääkään, jos vaan oot osannu tehdä näyttäviä jQuery-kokonaisuuksia. Eli tietenkin referenssejä pitää olla näyttää. Tietyllä tasolla jopa on suotavempaa osata näyttää, että niitä kirjastoja osaa käyttää, ettei yritä useampaa kuukautta koodata jotain omaa selektorikirjastoa, sillä aikaa kun ihan oikea asiakastilauksen deadlinet paukkuu.

Kaikki millä muutenkin saadaan kutistettua tuotantoaikaa on plussaa. Tietenkin jotain pitää myös itse osata soveltaa, jottei mene ihan copypaskomiseksi.

groovyb [13.05.2013 13:50:06]

#

Kai se on se sama hankaluus teki sitten mitä opasta tahansa. Henkilökohtaisesti olen kyllä sitä mieltä, että oppaat on lähinnä aloittelijoille, ja kaikkea advanced kamaa tulisi olla vaan bonuksena päälle. Ne henkilöt jotka esimerkiksi työkseen vähän haastavampaa java-, tai ecmascriptiä tekee, hakee tietoa pääsääntöisesti muualta. Kuten myöskin henkilöt joilla javascriptin alkeet on jo hyvin hallussa.

qeijo [13.05.2013 14:49:38]

#

Turso kirjoitti:

Mielenkiintoista, sarkasmiltasi taittuu terä heti alkuunsa, koska keskustelun aloittaja pyysi nimenomaan mielipiteitä, halutaanko ihan perusteita, vai jotain muuta. Mielipiteitä on kirjattu.

Ja minulla oli myös mielipide?

Turso kirjoitti:

Sinänsä sympaattista, että joku on aidosti huolissaan lähimmäisen työurasta suhteessa näihin harrastelijasivuston oppaisiin - jos kohta tämä voi hieman luoda paineita oppaiden kirjoittajille :)

Kyllä oikeiston aikoina on oltava tosissaan huolissaan kanssatoverien työllistymisestä!

Lebe80 kirjoitti:

Tietyllä tasolla jopa on suotavempaa osata näyttää, että niitä kirjastoja osaa käyttää, ettei yritä useampaa kuukautta koodata jotain omaa selektorikirjastoa, sillä aikaa kun ihan oikea asiakastilauksen deadlinet paukkuu. Kaikki millä muutenkin saadaan kutistettua tuotantoaikaa on plussaa. Tietenkin jotain pitää myös itse osata soveltaa, jottei mene ihan copypaskomiseksi.

Toki!, eihän tästä ollut kysymys. Mielestäni olisi vain loogisempaa opiskella JavaScript:in perusteet ennen kuin siirtyy kielen apukirjastoihin. Tämä siis sillä oletuksella että opassarja olisi suunnattu aloittelijoille.

The Alchemist [13.05.2013 20:33:00]

#

qeijo kirjoitti:

Totta helvetissä kannattaa skipata kaikki turhat "ääriyksinkertaistetut" "perusteet" ja siirtyä suoraan käyttämään The Alchemistin listaamia "hardcore" kirjastoja. Eihän if lauseilla tai for silmukoilla tee mitään, kun osaa esim. KineticJS:llä luoda helposti ja nopeasti animaatioita.

Voihan tuotakin kokeilla, mutten ehkä itse lähtisi noin radikaalisti liikkeelle. Silläkään ei valitettavasti päästä mihinkään, että kirjoitetaan samat liirumlaarumit merkkijonomanipulaatioista ja ehtolauseista jokaisen eri kielen oppaaseen ja jätetään kaikki muu pois, koska se menisi liian vaikeaksi. Javascript ei edes ole sellainen kieli, mitä ihmiset alkaisivat ensimmäisenä tekonaan opetella, joten yleisimmät alkeisparadigmat voidaan olettaa hallittavan.

Olisi oikeastaan parempi tehdä yksi yleinen "vasta-alkajien alkeisopas", jossa opetetaan boolen algebra ja intin ja stringin ero, ja viitata siihen kaikissa muissa oppaissa. Näin voitaisiin sivuuttaa kaikki irrelevantti tauhka ja saada oppaisiin kunnon asiaakin.

Antti Laaksonen [13.05.2013 22:39:56]

#

Nykyaikainen JavaScript-opas olisi hieno lisä Ohjelmointiputkan valikoimaan. Tosiaan tästä on ollut aiemminkin puhetta – ainoa ongelma on ollut löytää oppaalle kirjoittaja.

Mielestäni opas voisi olla suunnattu lukijalle, joka tuntee ennestään ohjelmoinnin perusasiat. En tiedä ketään, jonka ensimmäinen ohjelmointikieli olisi ollut JavaScript, vaikka se on sinänsä kaunis ajatus.

Metabolix [14.05.2013 00:30:19]

#

Antti Laaksonen kirjoitti:

Mielestäni opas voisi olla suunnattu lukijalle, joka tuntee ennestään ohjelmoinnin perusasiat. En tiedä ketään, jonka ensimmäinen ohjelmointikieli olisi ollut JavaScript.

Tuo on aivan nurinkurinen perustelu. Eihän kukaan aloita JavaScriptilla, jos siitä ei ole aloittelijalle sopivaa opasta. Toisaalta kattava ja nykyaikainen QB-opas puuttuu vieläkin, vaikka varmasti tiedät monia, jotka ovat aloittaneet sillä.

Ensimmäinen kieli riippuu hyvin paljon siitä, mistä on selviä oppaita ja mitä muut suosittelevat. Myös ensimmäisen kielen pitää voida vaihtua, kun ajat muuttuvat. Nykyään JavaScript on erinomainen vaihtoehto ja juuri aloittelijan yleisten ongelmien kuten kehitys- ja ajoympäristön ja ohjelmien levittämisen kannalta lyömätön.

The Alchemist kirjoitti:

Javascript-kielen alkeet – – voi mielestäni selittää noilla parilla ensimmäisellä johdantokappaleella.

Aiempaan viestiisi viitaten kiinnitän tässä itsekin huomiota siihen, ”etteivät ihmiset tiedä yksinkertaistenkaan sanojen merkitystä”. Pari kappaletta ei riitä uuden kielen kattavaan opettamiseen edes ammattilaiselle.

The Alchemist kirjoitti:

Voidaan ihan hyvin yrittää puhua javascriptistä "kielenä" ja "erillisinä kirjastoina", mutta kun sellainen erottelu on hyvin haalea veteen piirretty viiva.

Ei ole mitään epäselvää siinä, että tietyt perusasiat pätevät kaikkiin JavaScript-ympäristöihin ja niistä on mahdollista kirjoittaa laadukas alkeisopas sotkematta asiaan useampaa kirjastoa.

The Alchemist kirjoitti:

Silläkään ei valitettavasti päästä mihinkään, että kirjoitetaan samat liirumlaarumit merkkijonomanipulaatioista ja ehtolauseista jokaisen eri kielen oppaaseen. – – Olisi oikeastaan parempi tehdä yksi yleinen "vasta-alkajien alkeisopas".

Tuo on ihan totta – oikeastaan. Luultavasti yleispätevä alkeisopas olisi niin teoreettinen ja vaikealukuinen, että aloittelijat eivät ymmärtäisi tai eivät viitsisi lukea sitä. Pitää joskus kokeilla kirjoittaa hyvä ja helppolukuinen yleisopas – olisihan hienoa, jos se onnistuisi.

Antti Laaksonen [14.05.2013 01:37:55]

#

Metabolix kirjoitti:

Tuo on aivan nurinkurinen perustelu. Eihän kukaan aloita JavaScriptilla, jos siitä ei ole aloittelijalle sopivaa opasta.

Minusta on aina vähän epäilyttävää, jos jokin kieli on ihanteellinen aloituskieli, mutta silti kukaan ei ole aloittanut sillä. Toisen koulukunnan mielestä ohjelmointi pitää ehdottomasti aloittaa Schemellä, vaikka ehdottajalle itselleen Scheme on ollut kymmenes opeteltu kieli.

Merri [14.05.2013 04:05:36]

#

Googlella löytyy heti päinvastaista väitettä. Tämän lisäksi Khan Academy käyttää JavaScriptiä alkaisopetuksessa. Toki heidän ympäristönsä on nätisti paketoitu kapistus, jossa on omat laajennuksensa. Jos jostain syystä vaikuttaa ettei kieli ole JavaScriptiä, niin se korjaantuu lukemalla dokumentaatiota tai syöttämällä koodin sekaan vaikka text(this, 50, 50). Kannattaa myös käydä lukaisemassa John Resigin mietteitä. Kaikkiaan ympäristö vaikuttaa hyvin täydelliseltä nimenomaan ohjelmointia aloittelevalle ja mielestäni päihittää vaikka Microsoftin Small Basicin, joka rajoittaa itsensä lähes pelkästään perusteiden opiskeluun.

Omat aatokseni sisältävät itseasiassa vähän vastaavaa: CodePen/JS Bin/jsFiddle -esimerkkejä ympättynä sivulle. Niitä pääsee suoraan jatkomuokkaamaan ja niitä voi kokeilla suositella opiskeluvälineiksi (vaihtoehtona on ympäristön eli tarvittavien ohjelmien ym. neuvonta). Tuossa linkitetyssä artikkelissa John Resig nostaa esille mm. virheiden korjaamisen, ja tämän seikan huomioiden voisi päätyä JS Binin suosimiseen: CodePenissä ei tällä hetkellä ole minkäänlaista virheentarkistajaa ja jsFiddlessä taas pitää erikseen painella JSHint-nappulaa, joka joko merkkaa virherivit mysteeripallukoilla tai räväyttää turhan dialogin naamalle. JS Binin ratkaisu näyttää virheet reaaliaikaisesti alhaalla on toimivin, tosin sekään ei tarkasta kirjoitusvirheiden varalta, eikä se tue ääkkösiä. Noin muutoin CodePenillä on jonkin tason etu siinä, että omat tuotokset näkee visuaalisesti omassa profiilissaan.

Mitä taas tulee DOMin opiskeluun, niin mielestäni se on semipakollinen opetettava. DOM alkaisi kuitenkin tulla mukaan jo jQueryn myötä. Ja tästä saadaan aasinsilta kirjastoihin: mielestäni niille ei kannata tehdä opiskelumateriaalia. Kirjastojen luonne on se, että niitä tulee ja menee. Ei ole poissuljettua, että jokin kirjasto muuttuu yllättäen tyystin erilaiseksi (esim. Dojo ja Prototype). Myös jokin uusi hyvin tehty kirjasto saattaa helposti korvata toisen, ja toisaalta käytettävät kirjastot riippuvat myös projekteista. jQuery poikkeaa tästä valtavirrasta kiitos järkyttävän suosionsa: se taitaa löytyä jo yli 60% netin sivustoista tätä nykyä? Lisäksi jQuery 2 on jo paljastanut, että aivan yllättäviä radikaaleja muutoksia ei ole tulossa.

groovyb [14.05.2013 08:22:13]

#

Olisiko yksi vaihtoehto siis luoda jonkinlainen Verkkokehitys -opas aloittelijoille. Kattaisi HTML:n ja javascriptin perusteet.

Erikseen voisi sitten tehdä tuon kattavan javascript -oppaan, jonka voisi mielestäni osioida perinteiseen Javascriptiin, sekä erillisiin sarjoihin koskien yleisimpiä kirjastoja.

Pekka Karjalainen [14.05.2013 10:47:37]

#

Minulla ei ole erityistä kantaa suomenkielisiin JS-oppaisiin, koska en kuitenkaan lue niitä. Siitä huolimatta ajattelisin, että eval-funktion hillittyyn käyttöön perustuva vuorovaikutteinen opas voisi olla hauska tehdä ja käyttää, jos sellaiseen jollakulla on riittävästi intoa. (Koodiesimerkkejä voisi muokata ja ajaa suoraan selaimessa tällä tavalla. Esimerkkejä löytyy esim. "interactive javascript tutorial" haulla tai vastaavilla termeillä.)

Toisista asioista minulla on sen sijaan ihan oikeita mielipiteitä.

Parasta ohjelmoinnin alkeisopetusta voi arvioida sillä perusteella, miten hyvin siitä nauttineet pärjäävät kokeissa ja jatko-opinnoissa (ja työelämässä, jos töissä pärjäämistä voi jotenkin luotettavasti mitata ohjelmoinnin osaamisen kannalta). Tähän vaikuttaa kielen lisäksi opetuksen sisältö ja laatu sekä opiskelijoiden tausta. Tällä tavalla saatu tulos on tilastollinen, ja kertoo siis miten keskimäärin käy, mutta ei takaa, että kaikki oppilaat kokevat saman auvon ja onnen.

Sillä, minkä kielen itse oppi ensimmäisenä ei ole niinkään merkitystä, jos perustaa ajattelunsa muilla keinoilla saatuihin todisteisiin. Hyvinkin voi jälkikäteen ajatella, että aloitti väärin, eikä muiden kannata toistaa samaa virhettä. Minä opin ensimmäisenä C-kielen, mutta olen sittemmin laajentanut siitä saatua osaamista monella tavalla. En todellakaan tiedä oliko se oikea kieli aloittaa edes minulle itselleni, mutta ei se turhaksi opiksi ole osoittautunut.

Putkassa ei merkitseviä tilastollisia tutkimuksia aloittelijoiden oppimisesta varmaankaan voisi tehdä, mutta silti projektisivua voisi käyttää kätevästi sopivien kielten käytön demonstrointiin. Jos jostakusta kieli X on vaikkapa hyvä tapa tehdä pelejä, siellähän on tilaa asiaa esitteleville esimerkkiprojektille. Niiden avulla itse kukin näkee, minkälaista jälkeä sillä saa aikaan harrastusprojektissa. Miksi turhaan väittää sen olevan hyvä, kun voi konkreettisesti näyttää?

Minulle henkilökohtaisesti tulee mieleen kolme kymystä, kun kuulen jonkin kielen olevan paras johonkin tarkoitukseen. Paras kenelle ja millä ehdoilla? Onko tälle väitteelle todisteita? Jos se on niin selvästi paras, miksi kaikki eivät käytä sitä? (Eri asia kannattaako näitä kysymyksiä esittää ääneen, kun joku on intoutunut julistamaan siitä oikeasta kielestä. Antaa veljen saarnata rauhassa.)

Olen kyllä useita ohjelmointikielistä yleisesti kertovia kirjoja lukiessani huomannut jotakin kiinnostavaa. Moni kirja kertoo esim. Haskell-, Scheme- tai SML-kielten toiminnasta hyvin huonosti sekä sisältää useita selviä virheitä ja epätarkkuuksia. Sama toistuu myös monissa nettikeskusteluissa. En ole nähnyt juuri koskaan näitä kieliä hyvin osaavien kuvaavan tavanomaisempia kieliä yhtä huonosti, joten vaikuttaa siltä, että niitä osaavat ymmärtävät keskimääräistä paremmin ohjelmointia.

Lisäksi monet tavanomaisempien kielten suunnittelijat ja kehittäjät osaavat näitä kieliä ja lainaavat joskus niistä ominaisuuksiakin (viime ajan muoti ovat olleet ns. lambda-funktiot, joita on kohta kaikissa paitsi C-kielessä). JS-kielen kehittäjä Brendan Eich esimerkiksi kertoo osaavansa Schemeä ja SML:ää, minkä selvitin joskus hänen blogiaan lukemalla.

Se voi tietenkin toimia niinkin päin, että ne jotka osaavat ohjelmointiasiat hyvin, oppivat aikanaan nämä kielet syystä tai toisesta. Tuskinpa niiden opettelu itsetarkoituksellisesti kovin monen ohjelmointielämää muuttaa millään tavalla. En sanoisi kenellekään, että näitä täytyy oppia tai niiden oppimisesta on takuulla hyötyä. Mutta suosittelisin ottamaan asioista selvää paremmin kuin nämä nimeltä mainitsemattomat nerokkaat kirjailijat, ennen kuin muodostaa vahvoja käsityksiä asioista.

No, olen varma että näistä asioista on monella vahvoja mielipiteitä, joita turhat todisteet tai perustelut eivät suotta rasita. Se on kiva, varsinkin jos pitää ne perustelemattomat mielipiteet itsellään. Ainahan voi kuitenkin selittämisen sijasta tehdä ja näyttää jotakin konkreettista, jos asia todella on niin tärkeä :-)

Rox [14.05.2013 15:19:11]

#

Eiks täällä oo semmonen jo? https://www.ohjelmointiputka.net/oppaat/opas.php?tunnus=js_01

groovyb [14.05.2013 15:52:01]

#

Miksiköhän tuota ei Oppaat -sivulta löydy. Ylläpito herätkääs vähän.

Metabolix [14.05.2013 16:04:49]

#

Miksiköhän ette osaa lukea Oppaat-sivun yläreunassa olevaa mainintaa vanhentuneista oppaista ja arkistosta? Maininta löytyy myös, kun etsii Oppaat-sivulta sanaa JavaScript. Lisäksi sanoin jo keskustelun alussa, että nykyinen opas on huono.

groovyb [14.05.2013 16:14:47]

#

Millä perusteella noita merkataan vanhentuneiksi?
Onko opas vanhentunut kun uusi standardi / versio julkaistaan?
Jos se on peruste, niin tuolta saakin sitten karsia samantein noita oppaita pois.

Metabolix [14.05.2013 16:37:23]

#

Arkistoon siirtämisen tarkka syy riippuu oppaasta. Mahdollisia syitä ovat uuden oppaan julkaisu (PHP), asian vanhentuminen (DirectX 8), nykymittapuulla heikko laatu (JS), merkittävä vajavaisuus (Pascal) tai yksinkertaisesti oppaan epäolennaisuus (QB). Monissa vanhoissa oppaissa on samaan aikaan useampikin vika.

Pelkästään versionumeron vaihtuminen ei ole syy arkistointiin, ellei uusi versio ole huomattavan epäyhteensopiva, ja silloinkin voidaan odottaa, että uusi versio leviää yleisesti käyttöön. Esimerkiksi VB.NET julkaistiin jo 2000-luvun alkupuolella mutta vanhan VB:n käyttö jatkui pitkän aikaa. Vastaavasti Python 2:ta käytetään yhä melko paljon, ja Pythonin versioiden väliset erot perusasioissa ovat melko vähäisiä; tosin pian voisi olla aika vaihtaa versiota.

Jos jokin opas on väärässä paikassa, siitä saa toki kertoa vaikkapa palautteen kautta. Jatketaan nyt kuitenkin tässä keskustelua uudesta JavaScript-oppaasta.

Rox [14.05.2013 21:58:12]

#

Toki uudempi ja kattavampi opas javascriptiin voisi olla ihan hyväksi, ite ainakin lukisin. Kaippa siihen jotain uusia juttuja on tullut kuuden vuoden aikana? OT: Jos joku hallitsee VB.NETin hyvin ja omaa riittävästi aikaa, opas siihen tulisi ainakin omalla kohdalla hyvään käyttöön.

Merri [15.05.2013 20:18:52]

#

Keräsin "hieman" yleisluontoista listaa asioista: http://vesa.piittinen.name/javascript-opas/ (salasana on putka). Suojasin vähän ettei vielä mihinkään hakukoneeseen vahingossa päädy. Kuitenkin... on tuota asiaa aikamoisesti, koska en ajatellut liikaa jumitella perusasioissa ja kehittyneempiä asioita kertyy helposti pitkä liuta. Eli tämänhetkinen ajatus olisi käydä semikattavasti nuo muutama ensimmäinen kohta ja sen jälkeen aletaankin jo nopeassa tahdissa edetä kohti vaikeampia asioita. Voi olla että moinen sykähdys on liian kovaa tahtia ainakin ensimmäistä ohjelmointikieltään opiskeleville, mutta en halua liikaa "tää nyt vaan toimii näin, älä koskaan tee tolleen toisin koska tässä lukee niin" -tyylistä tekstiä.

Se onkin sitten oma asiansa, miten ja koska kirjoitusprosessi lähtee muotoutumaan. Kuun vaihteessa on muutto Helsinkiin ja muuton jälkeen menee oma aikansa asettumiseen.

Antti Laaksonen [15.05.2013 22:56:19]

#

Vaikuttaa hyvältä suunnitelmalta. Moni asia tarkentuu varmasti sitten, kun kirjoittaminen pääsee vauhtiin. Toivottavasti löydät aikaa kirjoittamiseen: kyseessä on suuritöinen projekti, mutta lopputuloksesta olisi paljon hyötyä muille.

Metabolix [16.05.2013 20:02:48]

#

Mielestäni tuosta suunnitelmasta kannattaisi tehdä (ainakin tänne tulevassa versiossa, jos nyt sellaisen haluat tehdä) kolme erillistä kokonaisuutta: JS, DOM ja jQuery. JS-oppaan esimerkeissä olisi jQuery-koodia ilman tarkempia selityksiä. Selaimen työkalujen käyttö voisi olla joko liite tai aivan erillinen opas. Pohdittavaksi jää ajastinten oikea paikka, mutta ehkä ne voi upottaa JS-oppaan esimerkkeihin, vaikka ne ovatkin selainympäristön juttu.

Vaikka tietyssä ympäristössä tietty kirjasto olisi ”käytännössä osa javascriptiä”, ympäristöjä on muitakin. JS-opas täytyy kirjoittaa tätä ajatellen, tai se ei sovellu hyvin muiden ympäristöjen kanssa käytettäväksi. Tulevaisuuden opasaiheita voivat olla esimerkiksi WebGL ja pelimoottorit, eivätkä DOM ja jQuery silloin kuulu kuvioihin lainkaan. Tämän vuoksi lukijan pitää todellakin ymmärtää jo JS-opasta lukiessaan JS:n ja sen kirjastojen ero, ja siinä selvästi jäsennelty opas on avainasemassa. Lisäksi oppaan lukemista helpottaa, jos ei tarvitse itse poimia siitä oikeita kohtia ja hyppiä turhien yli; siksi eri asioista kannattaa tehdä erilliset oppaat.

Aiheesta ”käytännössä osa javascriptiä” täytyy vielä sanoa, että tuskinpa kukaan kehtaa silti väittää, että tietämättömyys tai jopa virheellinen tieto tekniikoiden rajoista olisi hyödyksi. Ohjelmoinnissa yleensä menestyy paremmin, jos tietää ja ymmärtää enemmän. Hyvää oppimista auttaa hyvä opettaminen – sitä monet onneksi yrittävät mutta jotkut ilmeisesti eivät edes yritä.

Merri kirjoitti:

Mitä taas tulee DOMin opiskeluun, niin mielestäni se on semipakollinen opetettava. DOM alkaisi kuitenkin tulla mukaan jo jQueryn myötä.

Voisitko selventää tätä? Minusta jQueryn ja perinteisten DOM-olioiden sekoittelu koodissa on yleensä vain sekavaa ja vaivalloista, kun lähes kaiken voi tehdä jQueryn avulla. Tietenkin DOM-puun ymmärtäminen käsitteellisellä tasolla on silti tarpeen, mutta sen selittäminen kuuluu HTML-oppaaseen eikä JS-oppaaseen.

Triton [18.05.2013 01:08:25]

#

JavaScript on luonteeltaan luokaton olio-ohjelmointikieli ja perustuu prototyyppeihin, joten mielestäni olisi hyödyllistä, että oppaassa myös tämä näkökulma tuotaisiin kunnolla esiin. JavaScriptihin on paradigmaltaan funktionaalinen kieli, joten myös tämän olisi hyvä käydä ilmi ja kuinka sitä voidaan ohjelmoinnissa hyödyntää, kuten closuret jne...

Grez [18.05.2013 02:54:05]

#

Metabolix kirjoitti:

Tietenkin DOM-puun ymmärtäminen käsitteellisellä tasolla on silti tarpeen, mutta sen selittäminen kuuluu HTML-oppaaseen eikä JS-oppaaseen.

En kyllä ymmärrä miten DOM-puu liittyy mitenkään HTML:ään. Toki Document Object Model on se standardoitu tapa, jolla HTML-dokumenttia objekteina käsitellään kun selaimessa käytetään javascriptiä tai muuta ohjelmointirajapintaa, mutta HTML:n ymmärtämisen kannalta sen rakenne voidaan ajatella minä tahansa muunakin hierarkisena rakenteena. Täysin hyvin voisi tehdä HTML:ää tukevan selaimen, jossa ei olisi DOMia.

Metabolix [18.05.2013 11:40:55]

#

Grez: Eikö käsitteellinen taso tarkoita sitä tasoa, jolla ei ole vielä tiettyä toteutusta? Siis DOM-puu ja HTML-dokumentin hierarkinen rakenne ovat käsitteellisellä tasolla likimain sama asia, koska molemmat kuvaavat samoja elementtejä ja niiden suhteita sekä attribuutteja. Näiden ideoiden selittäminen sopii HTML-oppaaseen, eikä koko DOMia tarvitse mainita.

Merri [19.05.2013 18:35:42]

#

Minusta tuntuu hieman höpsöltä, että pitäisi jättää selainympäristössä kokonaan esittelemättä dokumentin manipulointiin keskittyvät metodit ja esitellä vain jQuery, joka taas hyvin pitkälti toimii vain ja ainoastaan selainympäristössä. jQuery tekee toki hommasta kivempaa ja vähentää kirjoitettavan koodin määrää mukavasti, mutta sen ei pitäisi olla peruste lähes puhtaalle kirjastokeskeisyydelle. Varsinkin kun maagisesti asioita helpottava querySelector on tuettu IE8:sta alkaen.

Aiemmin DOMin opettaminen olisi ollut aika hankalaa selaintuen takia. Oli epäyhteneväisyyksiä ja vajaita toteutuksia. Kaikki viimeisimmät selaimet ovat kuitenkin nyt vihdoin viimein varsin yhtenäisiä edes ECMAScript 3:n tasolla. Täten yksi syy kirjastojen käyttöön on alkanut haihtua pois: toiminnallisuuksissa olevia poikkeamia ja puutteita ei ole enää tarvetta yhtenäistää yhtä paljon, joten opiskeltavaa on vähemmän ja opiskelu on helpompaa. Jos rajaan oppaan ihan viimeisimpiin selainversioihin (kuten aion), niin tuntuisi jopa jossain määrin idioottimaiselta olla antamatta eväitä kirjastoriippumattomaan kehittämiseen tai olla tuomatta pohjalla vaikuttavia standardeja esille.

Metabolix [19.05.2013 18:46:58]

#

En sanonut, ettei selaimen natiivia DOM-manipulaatiota saisi opettaa. Kaikkea saa. Kysyin vain (ja kysyn yhä), miten se ”tulee mukaan jo jQueryn myötä”. Minusta ainakin koodi on vähän kummallista, jos siinä käytetään jQueryn seassa vaikka sellaisia metodeja kuin createElement tai getElementsByTagName tai edes querySelector. Toki on hienoa, jos kerrot erikseen myös niistä, koska voihan niitäkin käyttää ja moni kirjastoihin jämähtänyt ei ehkä edes tiedä noista uudemmista.

Merri [19.05.2013 23:36:26]

#

Kirjastoa ei ole pakko käyttää kirjaston käyttämisen ilosta, vaan sitä voi myös käyttää sen verran kuin mitä sitä tarvitsee.

Aloitin oppaan kirjoittamisen ja ensimmäinen koodilistaus sisältää saman tien DOM-metodeja. Totesin tarvitsevani jonkin yhtenäisen ympäristön ja koska en halua pakottaa käyttämään mitään tiettyä selainta, ohjelmointiympäristöä tai ohjelmaa, niin opas tulee sisältämään runko-ohjelman, jota kehitetään taitojen, tietojen ja tarpeiden karttuessa. Opiskelija saa siis itse päättää käyttämänsä välineet, mutta joutuu käyttämään jotakin yhtenäistä pohjaa. Samalla voin (salakavalasti?) totuttaa hyviin käytäntöihin.

The Alchemist [20.05.2013 00:37:00]

#

Koodista tulee sekavaa purkkaa, jos jossain käyttää jQueryä ja jossain vetää natiiveilla metodeilla. Oli mullakin joskus aloittelevana koodarina sellainen fiilis, että on parempi vetää matalan tason apilla ja vähentää "riippuvuuksia" koodissa, ja käyttää sitä helppokäyttöisempää kirjastoa vain joissain kohdissa. Lopputuloksena juurikin sekavaa koodia.

Merri [20.05.2013 01:24:27]

#

Offiahan tämä, mutta et varmaan käyttänyt dollarikäytäntöä jQueryllä laajennettujen muuttujien nimeämisessä?

Eli var $elementti = $('<div/>'); vs. var elementti = document.createElement('div');

The Alchemist [20.05.2013 08:42:51]

#

En itse näe siinä mitään hyötyä, koska eihän muitakaan muuttujia nimetä strFoo tai intFoo-nimillä. Tiedän, että monet haluavat käyttää $-alkuisia nimiä, koska ovat tottuneet aloittamaan jQuery-komentojen ketjut dollarimerkeillä: $('foo').bar().baz() -> $foo.bar().baz(). Ainoastaan event handlereiden tai iteraattoreiden sisällä käytän $this-nimeä, jos minun tarvitsisi muutoin kirjoittaa monta kertaa $(this) samassa scopessa. Oikeastaan en nyt edes keksi tilannetta, jossa haluaisin säilöä muuttujiin suoraan dom-elementtejä.

Tässäkin juuri nähdään, että on jopa tärkeää valita yksi lähestymistapa ja pysyä siinä, jottei synny sekaannusta esimerkiksi sen osalta, käsitelläänkö paljasta dom-elementtiä vai jQuery-oliota.

johku90 [22.05.2013 08:28:23]

#

Täytyypä sanoa, että vaikuttaa tulevan ihan mielenkiintoinen opas. Itse en ole paljon webbiohjelmointia harrastanut, joten ainakin minulle tuosta olisi paljon hyötyä :)

Varsinkin CSS:n salat kiinnostaisivat.

Merri [18.06.2013 00:09:58]

#

Aloin opiskella node.js:ää (hyödyn siitä töissäkin). Siksitoisekseen muuttokamppeita on edelleen purkamatta. Ei siis jää aikaa edistää tätä projektia, mutta päivitän edes tilannetta tähän väliin.

p99o [24.07.2013 13:05:54]

#

Jos saisi jonkinlaisen jQuery/ajax/JSON -oppaan niin olisi todella jees. Ei tuo JSON oikein aukea vaikka kuinka yrittäisi lukea oppaita ja vähän soveltaa.

(Mod. siirsi jatkoflametuksen toisaalle.)

Mandariinimies [24.07.2013 13:26:37]

#

JavaScript oppaalle olisi minullekin käyttöä. Hyvää Perl opasta kaipailisin myös.

late [25.07.2013 15:57:30]

#

Ohjelmointiputka JavaScript -opas kiinnostaisi erittäin paljon. Nyt käyn läpi W3Schools JS tutoriaalia. On ainutlaatuista kun saa lukea suomeksi ohjelmoinnista.

Suur Kiitos jos joku oikeasta edes harkitsee oppaan tekemistä <3

Merri [09.08.2013 23:19:22]

#

Otin tässä käyttöön ketterän kehityksen malleja vapaa-ajan projekteihin ja JavaScript-opas on valitettavasti backlogilla vähän heikommalla sijoituksella. Kokeilen tässä, miten paljon ajan organisoiminen työpaikan mallia mukaillen toimii yhden hengen osalta. Viikko mennyt ja vasta kolme lappua tehty! (Tosin töissä olen painanut hommia koko viikon enkä saanut ensimmäistäkään lappua valmiiksi. Elämä on.)

Oskuz [29.08.2013 16:22:24]

#

Kyllähän se kiinostaisi, näin aloittelevana.

late [30.08.2013 21:33:57]

#

Onko järkeä että putkalaiset keräävät rahat oppaan tekijälle? 5€ / putkalainen.. Sanotaan että kasaan saisi 200-300 euroa niin ainakin parempi mieli tekijälle.

(Mod. siirsi puolet viestistä uudeksi keskusteluksi.)

Blaze [30.08.2013 22:42:26]

#

late kirjoitti:

Onko järkeä että putkalaiset keräävät rahat oppaan tekijälle? 5€ / putkalainen.. Sanotaan että kasaan saisi 200-300 euroa niin ainakin parempi mieli tekijälle.

Mun puolesta saa kerätä rahaa vaikka kuuroille kissanpennuille (lahjoittaisin!). Suomen laki toki saattaa olla eri mieltä.

Merri [16.09.2013 00:28:16]

#

Laitoin esille sen verran mitä olen ehtinyt jossain määrin julkaisukelpoista tekstiä saada aikaiseksi.

http://vesa.piittinen.name/javascript-opas/

Kovinkaan pitkälle opas ei tosiaan etene tällä hetkellä, mutta esittelee se ainakin vähän perspektiiviäni aiheeseen.

Noin muutoin olen tällä hetkellä koukkuuntumassa Angulariin aika pahasti. Se vaan tekee asioista kivempia, vaikka sen eri osasten tajuaminen on vielä vaiheessa. Puolen vuoden kuluttua alkanee olla aika hyvin hallussa se, miten asioita sillä kannattaa oikeasti tehdä.

uta [16.09.2013 08:52:05]

#

Älä jätä closurien palleja roikkumaan ( ")();" ) koska ne on rumia ja noloja. Laita näin "());"

The Alchemist [16.09.2013 09:21:00]

#

Pienempi kuin, suurempi kuin ja yhtä suuri eivät ole yhdyssanoja.

Taitaa opas valmistua sopivasti Putkapäiville 2020, jos nykyinen tahti pitää linjansa. Nostan kissan pöydälle: kannattaisiko vain unohtaa opas ja pistää jakajan poletti uudestaan jakoon, jos sinua ei asia kiinnosta?

timoh [16.09.2013 12:07:00]

#

Tehkää homma GitHubissa niin saatte aika monta nyanssia ratkaistua yhdelä iskulla.

The Alchemist [16.09.2013 12:41:00]

#

Silloin oppaaseen olisi vaikea löytää yhtenäistä tyyliä, mikä on rasite lukijalle.

Lebe80 [16.09.2013 13:01:34]

#

The Alchemist kirjoitti:

Silloin oppaaseen olisi vaikea löytää yhtenäistä tyyliä, mikä on rasite lukijalle.

Toisaalta, enemmän se taitaa rasittaa, ettei sitä luettavaa ole ollenkaan, kuin se, että tyyli ei ole yhteneväinen. :)

timoh [16.09.2013 14:04:48]

#

Jep, tuskin tyhjää täynnä ainakaan parempi on ;)

Vaikkapa Merrihän tuonne voi luoda tietyn linjauksen ja ohjeet miten hommaa toteutetaan. Siinähän se sitten sutviutuu issueiden ja kommentoinnin kautta, että lopputulos on toimittajien mielestä riittävä. Näin esimerkiksi.

Edit. Esimerkkinä yhdestä jotakuinkin vastaavasta collaboraatiosta on http://www.phptherightway.com/

Merri [18.09.2013 22:23:18]

#

Piti hieman miettiä lähestymistapaa tähän viestiin ja ylipäätään Putkaan. Kirjoittelin tuossa jo viime yönä vastauksen tähän ketjuun, mutta kirjoitin sen liian äreässä mielentilassa (en saanut unta, aikainen herätys ja tuotantoonvientipäivä), joten se sai lähteä aamulla mäkeen. Voisin vaan jättää kirjoittamatta, mutta en vaan nyt tee niin. Eikä tämä täysin kata vain tämän keskustelun aihetta, mutta katsoo nyt tehdäänkö jälleen kerran tarpeetonta keskustelun pilkkomista vain sen takia, että on kirjoitettu itse työkalut keskustelujen pilkkomiseen ja pitää mainostaa moista kyvykkyyttä. Vink vink.

Putkalla on ongelma. Se ei ole vähäiset kysymykset tai keskustelun määrä. Ongelma on se, että tässä meillä on keskustelualue, joka ei ole yhteisö eikä pyri olemaan yhteisö. Yksilöitä on ja panostus on siinä, että kyllä yksilö osaa. Jos kysyt jotain niin pitää osata. Keskustelualueella kuitenkin usein ollaan kahdesta syystä: joko keskustellaan tai sitten tarvitaan apua. Apua kaipaavat eivät välttämättä ole aina siitä osaavimmasta päästä ja kah kun saavat kuulla siitä. Näyttää kovasti siltä, että olen armottomassa vähemmistössä siinä, että ensisijainen tavoitteeni on saada ongelma ratkaistuksi ja mielellään niin, että apua saaneelle saattaa jäädä jopa hyvä mieli, tai edes mielenkiintoa selvitellä asioita omillaan jos sattuu olemaan itselläni sellainen päivä, että vähät jaksan panostaa toisten mielihyvään.

Tähän kontrastina valtaosalla homma täällä menee pätemiseen, annetaan ehkä vastaus ja sen jälkeen vähät välitetään muusta. Kettuilua riittää enemmän kuin laki sallisi sikäli jos kettuilua vastaan olisi laki säädetty, mutta kyllähän tuota tarhausta Suomessa saa edelleen harjoittaa... varsinainen Ohjelmointitarha.

Joten kun ei tunnu kelpaavan se vähäkään täällä, mitä jossain välissä ehtii tehdä, niin ei sitten tarjota sitä loppuakaan. Olkoot sitten tekstit sellaisenaan ainoastaan harvojen sivuilleni eksyvien luettavissa. Ei ainakaan tarvitse elää tämän olemattoman kannustuksen kanssa. Opas valmistuu sitten kun valmistuu jos valmistuu. Eipähän tarvitse välittää kenenkään asian kannalta epäolennaisesta mielipiteestä ja ehkä joku joskus tuosta saa jotain hyötyä. Jos joku vahingossa vielä kiittääkin niin sitten ollaan jo plussan puolella.

Emmää täältä varmaan pysyvästi katoa, mutta toisaalta ei ole ollut kauheasti enää missä auttaa ketään. Hyvä jos viikossa tulee nettisivuhuoneeseen edes jokin uusi ongelma, johon voi kirjoitella vastauksen. On ollut aika hiljaista. Jotta kattellaan.

Antti Laaksonen [19.09.2013 00:25:18]

#

Tosiaan oppaita ei kannata kirjoittaa siinä toivossa, että työhön saisi kannustusta guruilta.

Valtaosa omista oppaistani guruilta saamastani palautteesta on, että oppaat (samoin kuin koko sivusto) ovat täyttä roskaa ja ne tulisi poistaa heti netistä, ettei kansa saisi niistä enempää huonoja vaikutteita. Kaikeksi onneksi guruista ei tarvitse välittää.

jukkah [19.09.2013 08:57:03]

#

Antti Laaksonen kirjoitti:

Tosiaan oppaita ei kannata kirjoittaa siinä toivossa, että työhön saisi kannustusta guruilta.

Sekä kannustavia että lannistavia ihmisiä löytyy jokaiselta leveliltä. Joillakin on valitettavasti sellainen käsitys, että toisen polkeminen on erittäin hyödyllistä. Itse en arvosta juurikaan lannistavia ihmisiä, eikä varmasti moni muukaan.

qeijo [19.09.2013 10:14:20]

#

jukkah kirjoitti:

Antti Laaksonen kirjoitti:

Tosiaan oppaita ei kannata kirjoittaa siinä toivossa, että työhön saisi kannustusta guruilta.

Sekä kannustavia että lannistavia ihmisiä löytyy jokaiselta leveliltä. Joillakin on valitettavasti sellainen käsitys, että toisen polkeminen on erittäin hyödyllistä. Itse en arvosta juurikaan lannistavia ihmisiä, eikä varmasti moni muukaan.

Monesti se että tulet poljetuksi kannustaa sinua parempaan. Olen varma siitä että esim. Late on hyötynyt siitä kun häneen ja hänen tuotoksiin on aika ajoin suhtauduttu erittäin kriittisesti.

Tietenkin kolikolla on kaksi puolta, haukkuminen on eri asia kun tuotoksen kritisoiminen. Itse kuljen välillä rajamailla, mutta se taas johtuu siitä että olen henkisesti hyvin epästabiili.

jukkah [19.09.2013 11:19:11]

#

qeijo kirjoitti:

Monesti se että tulet poljetuksi kannustaa sinua parempaan. Olen varma siitä että esim. Late on hyötynyt siitä kun häneen ja hänen tuotoksiin on aika ajoin suhtauduttu erittäin kriittisesti.

Rohkenen hieman epäillä olettamaasi: kun olin täällä uusi käyttäjä, en muista hyötyneeni kovin paljon maan rakoon lyttäämisestä. Sorry vaan kaverit... :(

Uskon, että jokainen aloittelija tekee lähes aina parhaansa, vaikka lopputulos olisikin täysi nolla. Sellaisessa tilanteessa ei tule lytätä vaan kannustaa ja perustella mielipiteensä. Kuten kaikki tietävät, Putkasta on lähtenyt useampi käyttäjä loukkaantuneena. Menetelmässä voisi olla siis vähän parantamisen varaa...

Voimakas kritisointi sopii akateemiseen maailmaan, koska siellä aloittelijatkin ovat aikuisia. Täällä Putkassa on paljon alaikäisiä, joihin tulee soveltaa hieman erilaisia menetelmiä.

tmub [19.09.2013 11:29:33]

#

Mielestäni toisen haukkuminen on perseestä varsinkin jos kyseessä on aloittelija ja/tai nuori. Toinen juttu onkin se, että jos joku Late huutelee täällä vuodesta toiseen samoja asioita ja entistä hölmömpiä.

On täällä onneksi ihan rentoja ihmisiäkin joilla vielä löytyy kiinnostusta vastata asiallisesti.

qeijo [19.09.2013 13:34:33]

#

jukkah kirjoitti:

qeijo kirjoitti:

Monesti se että tulet poljetuksi kannustaa sinua parempaan. Olen varma siitä että esim. Late on hyötynyt siitä kun häneen ja hänen tuotoksiin on aika ajoin suhtauduttu erittäin kriittisesti.

Rohkenen hieman epäillä olettamaasi: kun olin täällä uusi käyttäjä, en muista hyötyneeni kovin paljon maan rakoon lyttäämisestä. Sorry vaan kaverit... :(

Sehän on mahdotonta sanoa varmuudella, ainakaan se ei mitä ilmeisemmin ollut haitaksikaan.

jukkah [19.09.2013 21:59:03]

#

qeijo kirjoitti:

jukkah kirjoitti:

qeijo kirjoitti:

Monesti se että tulet poljetuksi kannustaa sinua parempaan. Olen varma siitä että esim. Late on hyötynyt siitä kun häneen ja hänen tuotoksiin on aika ajoin suhtauduttu erittäin kriittisesti.

Rohkenen hieman epäillä olettamaasi: kun olin täällä uusi käyttäjä, en muista hyötyneeni kovin paljon maan rakoon lyttäämisestä. Sorry vaan kaverit... :(

Sehän on mahdotonta sanoa varmuudella, ainakaan se ei mitä ilmeisemmin ollut haitaksikaan.

Tai sitten olen vain päässyt siitä yli... ;)

late [21.09.2013 15:06:46]

#

Tämä ei liity 100% aiheeseen, mutta onko mahdollista että joku opas-sarja olisi tehty videona? Eli monelle suht tuttu MOOC, siellä on MOOC-screencast, muistaakseni.

Tämä henkilö puhuu rauhallisesti ja näyttää yksityiskohtaisesti esim. miten silmukkaa toimii ja miten sitä voi tutkia (NetBeans). No kysynkin mitä mieltä olette jos osaa oppaasta toteutettaisiin videoiden avulla? Olisi todella hieno asia saada suomeksi opetusta, varsinkin esim. JavaScript, jQuery, kiitän!

The Alchemist [21.09.2013 15:39:16]

#

Jos nyt vaan Late etsisit tarvitsemasi ohjeet jossain muodossa ja jollain kielellä ja opettelisit nuo asiat, niin päästäisiin tästä jankkaamisesta vähitellen eroon. Olet jo monta kuukautta jauhanut siitä, että pitäisi saada tutoriaalia kyseisistä aiheista. Luultavasti koko idea js-oppaasta syntyi sinun jankkauksesi pohjalta. Mikset vain opettele?


Sivun alkuun

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta