# Kehittäjän blogi-pohja ## Web-ohjelmointi, syksy 2021 ### Tekijä: [Aaro Salo] ## Viikko 1 (1.9.- 6.9.2021) ### Mitä opin tällä viikolla Ensimmäinen viikko lähti kevyesti käyntiin ja käsittelimmekin ainoastaan lähinnä ohjelmistojen latauksia. Odotan innolla mitä web-ohjelmointi kurssi pitää sisällään. Sain ladattua onnistuneesti ensimmäisellä tunnilla tarvittavat ohjelmistot ja ohjelmistojen pitäisi toimia myös odotetusti. ### Mitä harjoituksia tein Ensimmäisellä viikolla emme saaneet vielä harjoituksia. Tavoitteena oli ainoastaan ladata kurssilla tarvittavat ohjelmistot. ## Viikko 2 (7.9. - 13.9.2021) ### Mitä opin tällä viikolla Tällä viikolla aloimme käsittelemään HTML:ää ja CSS:ää. Nämä eivät ole minulle aikaisemmin tuttuja ohjelmointikieliä, joten kaikki asiat ovat uutta. Aihe tuntuu kuitenkin mielenkiintoiselta. ### Mitä harjoituksia tein Tällä viikolla saimme myös ensimmäisen harjoituksen, joka koski HTML ja CSS kieltä. Onnistuin tekemään tehtävän 1. #### Harjoitus 1 Tehtävän tarkoituksena oli tutkia/opiskella valmiiksi annettua sivuston rakennetta. Sivusto oli rakennettu käyttäen HTML:ää ja CSS:ää. Tarkoituksena oli myös muuttaa tämä sivusto omanlaiseksi ja muokata täten valmiiksi annettua koodia. Tutkittuani tovin koodia, tehtävä tuntui yksinkertaiselta ja ymmärsin kuinka sivu oli rakennettu, sekä mitä kohtia tulisi muuttaa. Palautin tehtävän zip muodossa kurssin moodleen. ## Viikko 3 (14.9. - 20.9) ### Mitä opin tällä viikolla Tällä viikolla aloimme opiskelemaan javascriptiä. Kuten HTML ja CSS oli minulle uutta, niin myöskin javasript. Olen kuitenkin opiskellut jonkin verran javaa ja näin javasrip ei tuntunut niinkään eroavan siitä. Molemmissa koodi on peräti aika samanlaista ja funktiot muistuttavat toisiaan. Opin javasriptin alkeista ja suuntaa myös javasript-ohjelmointiin. ### Mitä harjoituksia tein Saimme tällä viikolla ensimmäisen javasript tehtävän ja sain sen myös mielestäni tehdyksi. #### Harjoitus 2 Tehtävänä oli kirjoittaa javascript kielellä ohjelma, joka kysyy käyttäjältä sanan ja tarkistaa onko se palindromi. Tehtävä tuntui aluksi todella hankalalta ja en oikein oivaltanut, kuinka lähteä sitä työstämään. Lopulta sain kuitenkin tehdyksi ohjelman, jonka pitäisi toimia. Tehtävän tekemistä myös minulle hankaloitti uudella alustalla (visual studio code, node.js) työskentely. Tässäkin meni tovi ennen kuin aloin ymmärtämään itse alustaa. ## Viikko 4 (21.9. - 27.9) ### Mitä opin tällä viikolla Tällä viikolla jatkoimme javascriptin opettelemista ja menimme hieman syvemmälle. Teimme harjoituksia tunnilla ja opin paremmin käyttämään visual studio codea sekä node js command promptia. Näiden kkäyttäminen tuntui mielenkiintoiselta. ### Mitä harjoituksia tein Tällä viikolla saimme toisen javasript tehtävän, mutta en itse saanut sitä tehtyä. #### Harjoitus 2 Tehtävä ei aluksi tuntunut lainkaan ylitsepääsemättömältä, mutta ongelmia alkoi ilmetä kun yritin tehdä hakutoimintoa. Hakutoiminnon tekemisessä tuntui kestävän niin kauan, joten en sitä lopulta saanut tehdyksi. ## Viikko 5 (28.9. - 4.10) ### Mitä opin tällä viikolla Tällä viikolla opettelimme käyttämään javasriptissä olevia luokkia ja yliluokkia. Tämä tuntui samalta kuin javassa olevien luokkien käyttö, joten asian ei niinkään tuntunut uudelta, vain kieli oli eri. ### Mitä harjoituksia tein Tein tehtävän 4, joka koski javascriptin luokkia. #### Harjoitus 4 Tehtävä ei tuntunut hankalalta, sillä minulla on paljon kokemusta javan kanssa luokkien pyörittelystä. Tehtävä rakentui ilman sen suurempia ongelmia. ## Viikko 6 (5.10. - 11.10) ### Mitä opin tällä viikolla Tällä viikolla aloimme opettelemaan REST apin luomista. REST apin luonti tuntui erittäin mielenkiintoiselta, ja oli mukava nähdä kuinka tekemämme asiat koodin puolelta näkyvät webbisivulla. Opettelimme myös gitin toimintaa. Tämä oli minulle aivan uutta asiaa ja sen vuoksi asiat tuntuivat alkuun todella hankalalta. Lopulta pääsin kuitenkin jyvälle siitä, kuinka REST api toimii. ### Mitä harjoituksia tein Saimme myös uuden tehtävän, joka koski REST apia. Tein tämän tehtävän. #### Harjoitus 5 Tehtävänä oli luoda REST api sanakirjaa varten. Alussa minulla oli suuria vaikeuksia hahmottaa, miten kyseinen REST api pitäisi luoda. Taulukon sanakirjaa varten onnistuin luomaan javasriptin oppien mukaisesti, mutta vaikeudet alkoivat ilmetä GET ja POST metodien luomisessa. Tuntui, että tarvitsisin vielä lisää opetusta REST apin luomisesta, jotta voisin tehtävän saattaa loppuun. ## Viikko 7 (12.10. - 18.10) ### Mitä opin tällä viikolla Tällä viikolla opettelimme kokonaisuudessaan REST apin käytön, ja opin myös lisää sen toimivuudesta. Perehdyin myös lisää gitlabin käyttöön ja kuinka saisin codesta vietyä gitlabiin koodia. En kuitenkaan onnistunut saamaan gitlabia kuntoon, sillä avaimien luonnissa oli jotakin vikaa. En onnistunut saamaan julkista avainta auki vaikka tein kaikkeni. Yksityisen avaimen sain tallennettua leikepöydälle, mutta kun yritin avata julkista avainta, antoi se virheilmoituksen. ### Mitä harjoituksia tein Jatkoin tällä viikolla harjoitusta 5, REST api sanakirjaa varten. #### Harjoitus 5 Jatkoin edellistä harjoitusta tällä viikolla, sillä se oli jäänyt minulta vielä vaiheeseen ja minusta tuntui, että tarvitsen lisää opetusta, jotta voin saattaa sen loppuun. Saimme tehtäväksi myös uuden REST api tehtävän, joka oli jatkoa tehtävään 5. Tämän vuoksi en tehtävää tehnyt vaan keskityin saattamaan edellisen tehtävän loppuun. Onnistuin luomaan GET ja POST metodit sanakirjaa varten ainakin keskiverto tasolla. ## Viikko 8 (19.10. - 25.10) ### Mitä opin tällä viikolla Tällä viikolla REST apin mukaan liittyi myös tietokanta. Eli käsittelimme, kuinka REST apilla pystyy hakemaan tietokannasta tietoja sekä muuttamaan niitä. Tämä tuntui aluksi hankalalta, mutta sitäkin mielenkiintoiselta. Tämä oli hyvää kertausta tietokannan luomisesta, sekä palautti mieleen kuinka sql toimii. Olen aikaisemmin opiskellut hieman tietokantojen luomista sekä sql:ää. Tietokannan luominen ei siis ollut lainkaan epäselvää. Opin myös miten REST apilla pystyy hakemaan tietoja tietokannasta. ### Mitä harjoituksia tein Saimme tehtäväksi uuden harjoituksen, joka koski REST apin luomista käyttäen tietokantaa. Aloitin tekemään tehtävää. #### Harjoitus 6 Harjoituksessa täytyi luoda tietokanta ohjeen mukaisesti. Tämän jälkeen täytyi luoda REST api, joka toteutti get,post,put ja delete metodit. Emme kerenneet tunnilla käydä niin tarkasti tehtävää, joten aloitin tehtävän vasta tekemällä tietokannan, ja loput jätin ensi viikolle, jotta saisin hieman lisää tietoa tehtävän kulusta. Tietokannan luonti kuitenkin onnistui vaivatta. ## Viikko 9 (26.10. - 1.11) ### Mitä opin tällä viikolla Tällä viikolla jatkoimme vielä REST apin ja tietokannan yhteyden parissa ja sen opettelemisessa. Harjoittelimme myös kuinka postmanilla voi tarkastaa metodien toimivuutta. Tämä viikko antoi enemmän ymmärrystä harjoitukseen 6. Kävimme läpi, kuinka get,post,put ja delete metodit saadaan toimivaksi REST apissa. ### Mitä harjoituksia tein Jatkoin harjoitusta 6. #### Harjoitus 6 Jatkoin harjoitusta 6, sillä se oli vielä kesken. Onnistui luomaan REST apiin toimivat get ja post metodit. Harjoitukseen kului kuitenkin vielä paljon aikaa, joten en saanut tehtävää vielä viimeisteltyä loppuun asti. ## Viikko 10 (2.11. - 8.11) ### Mitä opin tällä viikolla Tällä viikolla siirryimme React osuuden opettelemiseen. Viikko alkoi kuitenkin aika kevyesti reactin parissa, sillä aihe on laajempi kuin muut. Opin pintatasolla, kuinka React sovellus toimii. ### Mitä harjoituksia tein Tällä viikolla emme saaneet uutta tehtävää, joten jatkoin vielä harjoitusta 6. #### Harjoitus 6 Tällä viikolla sain viimeisteltyä harjoitukseen 6 put ja delete metodit. Näin sain tehtävän tehtyä onnistuneesti loppuun. Tehtävään kului itseltäni paljon aikaa, mutta sen viimeistelystä tuli antoisa olo. Tehtävä oli palkitseva ja oli kiva nähdä, miltä oma koodi näyttää web-sovelluksessa. ## Viikko 11 (9.11. - 15.11) ### Mitä opin tällä viikolla Tällä viikolla jatkoimme React sovelluksen lumisen parissa. Mukaan tuli hooks- metodin ja opin kuinka niitä tulisi käyttää sovelluksessa. Harjoittelimme tunnilla puhelinluettelo esimerkin avulla. Tuntui, että React sovelluksen opettelemisessa menisi ikuisuus, sillä tämä sisälsi paljon koodia ja muistamista. Reactissa kaikki komponentit lyödään yhteen, jotta saadaan hyvin toimiva sovellus. ### Mitä harjoituksia tein Saimme uuden tehtävän, joka koski React sovelluksen luomista. #### Harjoitus 7 Harjoituksen tarkoituksena oli luoda ensin tietokanta. Tämän jälkeen REST api, joka kutsuu tietokantaa ja lopuksi tähän React sovellus. Tällä viikolla aloitin kevyesti luomalla vain tietokannan ja siihen yhteydessä olevan REST apin. Tämä tuntui vielä helpolta, sillä olemme tätä paljon harjoitelleet. ## Viikko 12 (16.11. - 22.11) ### Mitä opin tällä viikolla Tällä viikolla jatkoimme React sovelluksen harjoittelun parissa. Tutkiessani tunneilla käytyä puhelinluettelo harjoitusta, opin kuinka kaikki koodit sekä metodit ovat yhteydessä toisiinsa. ### Mitä harjoituksia tein Jatkoin harjoitusta 7. #### Harjoitus 7 Aloin luomaan React osuutta tehtävään, mutta tässä osuudessa ilmeni itselleni ongelmia, joita en saanut selvitettyä. Tietokanta sekä REST api toimivat moitteettomasti. Ongelmat tulivat käyttöliittymän suunnittelussa. Sain käyttöliittymään lisäys metodit luotua, mutta tiedot eivät näy etusivulla. Tuntuu kuin käyttöliittymä ei saisi yhteyttä tietokantaan ja näin ollen tiedot eivät näy sovelluksessa. Pähkäilin ongelmaa todella kauan, mutta en vain tuntunut löytävän ratkaisua tähän. ## Viikko 13 (23.11. - 29.11) ### Mitä opin tällä viikolla Tällä viikolla olen yrittänyt perehtyä portfolion tekemiseen ja siihen liittyvän bootstrapin opetteluun. ### Mitä harjoituksia tein Aloitin tekemään portfoliota. #### Harjoitus 8 Aloitin tekemään portfoliota, mutta en jotenkin pääse tässä alkuun. En osaa yhdistää oppimaani, kuinka saisin portfolion auki, mutta jatkan opettelua ja toivottavasti saan portfolion tehdyksi. ## Viikko 14 (30.11. - 6.12) ### Mitä opin tällä viikolla Tällä viikolla harjoittelin portfolion tekemistä sekä bootstrapiä. ### Mitä harjoituksia tein Tein harjoituksen 8 - Portfolio #### Harjoitus 8 Sain tehtyä portfolion loppuun ja sen tekeminen oli mielestäni hyvää kertausta kurssin asioista. Ensimmäisten viikkojen tehtäviä oli kiva palautella mieleen ja muistella, mitä niissä oli oikein tehnyt.