Hei ohjelmointiputkan väki!
Tein tuossa muutama vuosi sitten jonkinnäköisiä Lua oppaita YouTubeen, niistä ei mitään ikinä tullut ja dumppasin koko projektin. Nyt olen kuitenkin kehittynyt menneestä paljon ja intoa oppaiden tekoon löytyy yhä, kielenä tällä kertaa Python 3. Tahtoisinkin kritiikkiä tuosta ensimmäisestä oppaasta, jotta saan nostettua videoiden tasoa myöhempiin oppaisiin (ja tarpeen tullen tehtyä uudelleen tuon ensimmäisen).
En puhu oppaassa niinkään Python 3:sta, vaan yleisesti ohjelmointikielistä, tulkeista ja kääntäjistä, ja binäärikoodista.
Pyrin tarkistamaan kaikki faktat mutta kertokaas toki jos jotain palturia olen löpötellyt: https://www.youtube.com/watch?v=18EFdi8Tf_8
Muutenkin kritiikki on aina tervetullutta, niin positiivinen kuin negatiivinenkin! Onko mitä parannettavaa? Onko mitään? Olenko jo aivan menetetty tapaus?
Löytyy muuten toinenkin video jo tuolta kanavalta, joten saa siitäkin kritiikkiä antaa jos joku sinne asti selviää!
Kyllästyin kuuntelemaan siinä vaiheessa, kun ykkösen kohdalla kulkee sähkö ja nollan kohdalla ei kulje sähkö. Eihän se ole ollenkaan noin. Tieto säilyy tai kulkee eri tavoin laitteiston eri osissa. Jos ja kun asia on liian vaikea oppassa selitettäväksi, parempi on selittää se vain yleisellä tasolla tai jättää kokonaan pois. Oppaasi kannalta on täysin epäolennaista, miten ykkönen ja nolla on teknisesti toteutettu, joten enintään hämmennät kuulijaa ja jaat väärää tietoa.
Lisäksi tuossa vaiheessa oli jo takana niin pitkä pätkä tauotonta ja tekstitöntä selostusta ja niin monta öötä, että selvästi myös esitystapa yhä edelleenkin vaatii lisää huomiota. Pidä taukoja, jaksota opas järkevästi ja laita alusta asti sisältöä myös videoon. Itse ainakin olisin kaivannut alussa täsmällisempää kuvausta oppaan sisällöstä; silloin olisin ehkä voinut etsiä oppaasta jonkin kiinnostavamman kohdan kommentoitavaksi.
Metabolix kirjoitti:
Kyllästyin kuuntelemaan siinä vaiheessa, kun ykkösen kohdalla kulkee sähkö ja nollan kohdalla ei kulje sähkö. Eihän se ole ollenkaan noin. Tieto säilyy tai kulkee eri tavoin laitteiston eri osissa. Jos ja kun asia on liian vaikea oppassa selitettäväksi, parempi on selittää se vain yleisellä tasolla tai jättää kokonaan pois. Oppaasi kannalta on täysin epäolennaista, miten ykkönen ja nolla on teknisesti toteutettu, joten enintään hämmennät kuulijaa ja jaat väärää tietoa.
En nyt tietenkään pyrkinytkään koko tietokoneen toimintaa kattamaan, mutta eikö se suurinpiirtein noin toimi? Esimerkiksi tästä selityksestä ymmärsin että ne transistorit siellä sitä sähkön kulkua/säilömistä säätelevät, ja muodostavat siitä tuota binääridataa. Korjatkaa toki jos aivan väärin olen ymmärtänyt, sitten pistän koko oppaan uusiksi. Pythonia osaan, mutta en tuosta ole aivan perillä mitä siellä syvemmällä koneessa tapahtuu.
lainaus:
Lisäksi tuossa vaiheessa oli jo takana niin pitkä pätkä tauotonta ja tekstitöntä selostusta ja niin monta öötä, että selvästi myös esitystapa yhä edelleenkin vaatii lisää huomiota. Pidä taukoja, jaksota opas järkevästi ja laita alusta asti sisältöä myös videoon. Itse ainakin olisin kaivannut alussa täsmällisempää kuvausta oppaan sisällöstä; silloin olisin ehkä voinut etsiä oppaasta jonkin kiinnostavamman kohdan kommentoitavaksi.
Kiitokset palautteesta. Eipä tuossa oppaassa vielä paljoa loppujenlopuksi ollut, mutta painetaan tuokin korvan taakse seuraavia oppaita varten! :)
Muokkaus: Tai no joo olet ehkä oikeassa, vaikka se toimisikin suurinpiirtein niinkuin selitin, niin ehkei se ole tärkeää oppaan (tai Python ohjelmoinnin) kannalta että miten se sähkö siellä oikein heiluu.
Mahi kirjoitti:
Metabolix kirjoitti:
Kyllästyin kuuntelemaan siinä vaiheessa, kun ykkösen kohdalla kulkee sähkö ja nollan kohdalla ei kulje sähkö. Eihän se ole ollenkaan noin. Tieto säilyy tai kulkee eri tavoin laitteiston eri osissa. Jos ja kun asia on liian vaikea oppassa selitettäväksi, parempi on selittää se vain yleisellä tasolla tai jättää kokonaan pois. Oppaasi kannalta on täysin epäolennaista, miten ykkönen ja nolla on teknisesti toteutettu, joten enintään hämmennät kuulijaa ja jaat väärää tietoa.
En nyt tietenkään pyrkinytkään koko tietokoneen toimintaa kattamaan, mutta eikö se suurinpiirtein noin toimi? Esimerkiksi tästä selityksestä ymmärsin että ne transistorit siellä sitä sähkön kulkua/säilömistä säätelevät, ja muodostavat siitä tuota binääridataa. Korjatkaa toki jos aivan väärin olen ymmärtänyt, sitten pistän koko oppaan uusiksi. Pythonia osaan, mutta en tuosta ole aivan perillä mitä siellä syvemmällä koneessa tapahtuu.
Siis esim. RAM-muistissa tieto on säilötty transistoreihin. Yksinkertaistetusti transistorista "luetaan" bitti niin, että jos ulostulo on 0 V, on kyseessä 0, ja esim. 5 V ulostulo tarkoittaa ykköstä.
Jos aiheena on ohjelmointikielet ja kääntäminen, bittien fyysinen olemus on täysin epäolennainen sivuseikka. Se ei ollenkaan auta ymmärtämään prosessorin toimintaa ja konekieltä.
Ero ohjelmointikielten ja konekielen välillä ei ole se, että ohjelmointikielet ovat tekstiä ja konekieli nollia ja ykkösiä. Kääntäjät eivät myöskään muuta ohjelmointikieliä "nolliksi ja ykkösiksi". Onhan Python-koodikin muistissa nollia ja ykkösiä, ja kääntäjä voi hyvin tuottaa selkokielistä assemblyä joka sitten erikseen muutetaan binääriksi.
Vesikuusi, eletroniikassa ohjata voidaan joko nollalla tai jännitteellä (NPN ja PNP transistorit). Toisinsanoen, transistorista voi lähteä joko nollaa tai jännitettä. Eli 5v piirissä 1 voi olla kumpi tahansa (0V tai 5V), riippuen kumman tyyppisiä transistoreja käytetään.
Olet oikeassa siinä, että konekieli on "vain" lukuja ja numeroita eikä koodattua tekstiä. Kannattaisi ehkä sanoa, että tietokone ymmärtää ainoastaan yhtä kieltä (konekieltä), ja että kääntäjät muuttavat muita kieliä tälle yhdelle kielelle.
Kääntäjän ja tulkin erosta se, että ei tulkki aina muuta koodia edes rivi kerrallaan konekielelle. Yleensä (mutta ei aina) se kääntää ensin koko tiedoston joksikin tavukoodiksi ja sitten tulkkaa tätä tavukoodia. Sano mieluummin, että kääntäjä luo uuden tiedoston, joka voidaan käynnistää myöhemmin, kun taas tulkki suorittaa koodin heti eikä luo mitään tiedostoja.
Mielestäni vaikuttaa erinomaiselta video-opassarjan alulta! Ohjelmointiputkaan Python 2-ohjeiden yhteyteen voisi laittaa linkin tähän video-oppaaseen, koska usein mietitään, miksei ohjelmointiputkassa ole Python 3-opasta.
Ohjelmointiopas ja ohjelmointikielet ovat yhdyssanoja. Sana "opas" ei ole erisnimi, joten sitä ei muutenkaan tulisi kirjoittaa isolla alkukirjaimella.
Hienoa, että teet videoita ohjelmoinnista. Tässä kritiikkiä:
Videon alussa kerrot, että "ensimmäinen opas tulee valitettavasti olemaan teoriaa". Ei ole hyvä pahoitella tätä, koska katsoja alkaa miettiä, miksi et valinnut jotain kiinnostavampaa aihetta.
Ensimmäinen koodiesimerkki on siinä mielessä harhaanjohtava, että annettu koodi ei toimi sellaisenaan, jos sen yrittää suorittaa. Minusta olisi parempi antaa toimiva muutaman rivin koodi.
Ennen videon nauhoitusta olisi hyvä suunnitella tarkoin, mitä videossa tapahtuu ja mitä puhut siinä. Nyt video tuntuu siltä, että nauhoitit sen yhdellä otolla sisään ilman suunnittelua.
Kiitokset erittäin paljon kaikille kritiikistä! Hyvä että tulin täältä kysymään apua ennen oppaiden jatkoa, päätin juuri nauhoittaa ensimmäisen oppaan uudestaan, tällä kertaa jätän tuon binäärikoodin vallan pois ja puhun vain konekielestä, kun en tuota tietokoneen toimintaa itsekään täysin hallitse.
fergusq kirjoitti:
Kääntäjän ja tulkin erosta se, että ei tulkki aina muuta koodia edes rivi kerrallaan konekielelle. Yleensä (mutta ei aina) se kääntää ensin koko tiedoston joksikin tavukoodiksi ja sitten tulkkaa tätä tavukoodia. Sano mieluummin, että kääntäjä luo uuden tiedoston, joka voidaan käynnistää myöhemmin, kun taas tulkki suorittaa koodin heti eikä luo mitään tiedostoja.
Totta tämäkin, en vain ole varma onko se vasta-alkajalle niin tärkeää tietää että miten se Python tulkki sitä tarkalleen ottaen tulkkaa, kunhan perus idea on selvillä. Mutta olet silti oikeassa, otan huomioon tuossa uudessa versiossa minkä tulen tekemään.
qwerty12302 kirjoitti:
Ohjelmointiopas ja ohjelmointikielet ovat yhdyssanoja. Sana "opas" ei ole erisnimi, joten sitä ei muutenkaan tulisi kirjoittaa isolla alkukirjaimella.
Kiitokset paljon, enpä olisi virhettä ihan heti huomannut.
Antti Laaksonen kirjoitti:
Videon alussa kerrot, että "ensimmäinen opas tulee valitettavasti olemaan teoriaa". Ei ole hyvä pahoitella tätä, koska katsoja alkaa miettiä, miksi et valinnut jotain kiinnostavampaa aihetta.
Ensimmäinen koodiesimerkki on siinä mielessä harhaanjohtava, että annettu koodi ei toimi sellaisenaan, jos sen yrittää suorittaa. Minusta olisi parempi antaa toimiva muutaman rivin koodi.
Ennen videon nauhoitusta olisi hyvä suunnitella tarkoin, mitä videossa tapahtuu ja mitä puhut siinä. Nyt video tuntuu siltä, että nauhoitit sen yhdellä otolla sisään ilman suunnittelua.
Saatat olla oikeassa, oma ajatuksenjuoksuni meni niin, että jos en mainitse tuota niin katsojat miettivät että tämmöistäkö tämä ohjelmointi aina on. Mutta jätän siis tuonkin pois! :)
Ensimmäisestä koodiesimerkistä ajattelin, että olisi hyvä näyttää jokin todella yksinkertainen pätkä koodia, jotta katsojat ajattelisivat ettei tämä nyt niin vaikeaa olekaan. Monella kun on tuo käsitys että ohjelmointikielet on erittäin vaikeita oppia. Mutta olet toisaalta oikeassa, kiitokset palautteesta!
No niin, pistin tuon koko opassarjan (huimat 2 opasta) uusiksi, yhdistin ne yhteen oppaaseen jossa koitan olla selittämättä liikaa turhia. Taitaa tuossa vieläkin pari öötä olla ja vähän pitää sanomisia miettiä, mutta ei enää läheskään niin paljoa.
Edit: Niin joo ja linkki videoon: https://www.youtube.com/watch?v=sXHA_wqcdLo
Voithan ne epäröinti kohdat nauhoittaa uudestaan ja editoida ne sinne väliin.
dartvaneri kirjoitti:
Voithan ne epäröinti kohdat nauhoittaa uudestaan ja editoida ne sinne väliin.
Se on toki yksi vaihtoehto, mutta on ne nyt jo niin vähäisiä että ei luulisi hirveästi haittaavan. Ei liian nirso saa olla ;)
Aihe on jo aika vanha, joten et voi enää vastata siihen.