# Sprinttien kooste palautusta varten
Esimerkki pohja:
```
# Kehittäjän blogi-pohja
## Web-ohjelmoinnin jatkokurssi, syksy 2020
### Tekijä: [OMA OPISKELIJANUMERO JA NIMI]
## Viikko 1 (1.9.- 6.9.2020)
### Mitä opin tällä viikolla
-> ### Mitä tein projektiin
->
```
# Web-ohjelmoinnin jatkokurssi, syksy 2020
## Tekijä: [275957 Antti Partanen]
## Viikko 1 (1.9. - 6.9.2020) - sprint 1
### Mitä opin tällä viikolla
-> kertasin Reactin toimintaa
--> tein Hello-world esimerkin avulla toimivan React pohjan, minkä avulla tarkistin, että kaikki tarvittava oltiin asennettu ja kaikki toimi.
---> Tässä piti ladata node.js, koska en ollut asentanut sitä
---> käytin IDE Visual Studio Code
---> tein muistiinpanoja Reactin toiminnasta ja asentelusta (tein vuotta aiemmin kurssin 1, joten minun piti kerrata asioita)
----> ongelmia: node.js ei asennettuna. npx, npm komennot eivät toimineet, koska nimessä oli välilyönti
-> aloin tekemään pääprojektia
--> tein muistiinpanoja miten käynnistetään ja asennetaan kaikki Reactiin liittyvä
--> ongelmat: React komponenttien nimet pitää kaikkien olla isolla - unohdin tämän. CSS ei suostunut toimimaan - Global CSS cannot be imported from files other than your Custom <App. Please move all* global CSS imports to pages/app.js. Or convert the import to Component-Level CSS (CSS Modules).
---> En aiemmin ollut käyttänyt CSS Modules tyyppistä CSS tiedostoa, mutta sain sen toimimaan sprint 2 aikana, jos muistan oikein
---> OpponentField, Field, Spacer, Footer, Navbar
Tulos viikko 1 ajalta:

### Ajankäyttö
En lisännyt tämän viikon ajankäyttöön videoiden katsomista tai opiskelua, vaan vain puhtaasti ohjelmoinnin, joten se heittää reilusti. Vasta myöhemmin sanottiin, että siihen saa lisätä myös opiskeluun käytetyn ajan.

-> 5 tuntia 36 minuuttia.
--> En ole varma kuinka paljon tähän numeroon uskaltaa lisätä varsinaista opiskelu aikaa. 12 - 15 tuntia on mielestäni maltillinen arvio.
### Alkuperäinen sprint 1:
```
# Sprint 1
# Hello-world
-> tein helpon hello-worldin millä katsoin toimiiko react ja että kaikki asennettuna
https://www.youtube.com/watch?v=9hb_0TZ_MVI&t=122s
-> lataa node.js
## Työkalut
-> visual studio code
## käyttö
-> asennus: npx create-react-app hello-world - creates app called hello-world
-> cd hello-world - moves to app folder
-> npm start - starts the app and opens it
## Ongelmat:
yleisiä ongelmia projektissa
### Node.js ei asennettuna
-> asenna
### npx, npm komennot eivät toimi
-> kansion nimessä ei saa olla välejä
# pääprojekti
## aloitus
npm init -y
npm install next react react-dom
npm run dev
## ongelmat:
- react komponenttien nimet pitää kaikkien olla isolla - unohdin tämän
- CSS ei suostu toimimaan:
Global CSS cannot be imported from files other than your Custom <App. Please move all global CSS imports to pages/_app.js. Or convert the import to Component-Level CSS (CSS Modules).
https://www.youtube.com/watch?v=pKMWU9OrA2s
https://www.youtube.com/watch?v=7onGdDzU-Fg
CSS module video
## 6.11
hieman laiskasti päivitellyt tätä. Tein projektiin sivut joka näyttää tältä:

periaatteessa meillä projektissa nyt 2 pöytää joissa soluja. Projektissa myös footer/header komponentit. Tässä kohtaa ajattelin ojentaa tehtävän jatkamisen toiselle niin saadaan aikaan jakoa.
Ajatuksena, että soluihin lisätään onclick() event joka kuljettaa tiedon klikkauksesta eteenpäin. Tästä eteenpäin jatkaa Leevi tässä sprint 1 aikana.
## Sprint 1 aika:
Ei ehkä ole 1-1 oikean käytetyn ajan kanssa. Unohdin välillä klikata ajan seurannan päälle ja kurssilla katsottavaksi esitettyjen videoiden katsomiseen käytetty aika ei ole lisättynä tähän.

```
## Viikko 2 (11.11.-18.11.) - sprint 2
### Mitä opin tällä viikolla
-> tein nuolifunktio komponentit Reactilla projektiin edellisellä viikolla. Tällä viikolla lisäsin:
--> Laiva pohja Leeviltä
---> tähän tuli draggable ominaisuus
---> jatkoin aiempien komponenttien kehitystä eteenpäin - IDt
-> Lisäsin opettajan ehdottaman draggable toiminnallisuuden laivoille
--> tein muistiinpanoja opettajan linkittämistä ohjeista
-> Olin huolissani projektin edistymisestä, mutta muut saivat paljon aikaan viikoilla 4-5 (sprint 4-5), joten huoleni olivat turhia.
--> Tähän myös voi laittaa sen, että osalla ryhmäläisistä ei ollut Reactilla kokemusta ollenkaan, joten he opiskelivat sitä sprinttien 1-3 aikana paljon.
### Ajankäyttö

+ 15 min solujen idille
-> Tästä puuttui opiskeluun käytetty aika ja otin ylös vain osittain ohjelmointiin käytetyn ajan kun unohdin laittaa päälle.
--> lisäisin noin 8-10 tuntia opiskelua.
### Alkuperäinen sprint 2:
```
# Sprint 2
## Tavoitteet sprint 2
Tavoitteeksi laivojen raahamisen koodaminen jollain tasolla (niin että onnistuu -tietoa backendiin ei vielä tarvita).
-> tähän voi esittää toisenkin ratkaisun
-> tulevaisuuden ongelma: miten saada taulu ottamaan laivojen asemat? - joku ehdotti dynaamista map toimintoa, jolla saa id:t. En ole varma miten tämä tehdään ja moni muu asia on myös nimetty dynamic mapping, joten tiedon etsintä hankalaa.
## Valmiiksi saadut asiat
1) laiva komponentti - komponentit ovat vielä eri kokoisia verrattaessa pöydän soluihin.
2) laiva komponentin draggable ominaisuus
3) pöydän soluilla on yksilöivät IDt - ei vielä pushattu gittiin - haluan Leevin mielipiteen
### Draggable react komponentit
-> opettaja ehdotti näiden tekemistä
-> leevi valmisteli komponentin ships.js
-> laivan renderöintiin piti vain lisätä draggable asennuksen jälkeen
## Ongelmat
Ajatuksia ennen työn tekoa:
-> miten saada yhdistettyä draggable komponentti pelilautaan?
--> mahdollinen vastaus? -> onclick kerran, että alkaa raahaamaan laivaa ja onclick taas kun haluaa yhdistää laivan ja pelilaudan?
Muut:
-> Olen huolestunut projektin edistymisestä. Joku sanoi suunnittelevansa arkkitehtuuria, mutta ei ole jakanut ryhmän kanssa
--> yleinen projektin edistyminen on ollut vain frontin osalta. Backend (Mikael ja Teemu) ei ole tehnyt koodia vielä ja Leevi front end on tehnyt vain 1 laivat komponentin.
-> Leevi kieltäytyy tekemään git pushia valmiille komponentille vaikka pyysin laittamaan tehdyt koodit eteenpäin. En voi jatkaa omaa osaani, jos toinen ei laita koodia Azureen.
--> teenkö itse uudet laivat ja teen niille draggable ominaisuuden?
--> kysyn git pushia maanantaina uudestaan.
---> teki branchin josta latasin koodin
---> branch sotki azuren gitin ja en saa versioita selvitettyä.
### error draggable paketin kanssa
TypeError: Cannot read property 'className' of undefined
at Draggable.render
TypeError: children.props is undefined
-> JSX kommentti aiheutti errorin - kommentin poisto selvitti asian
## Muistiinpanot paketista https://www.npmjs.com/package/react-draggable
https://www.freakyjolly.com/draggable-react-components-using-react-draggable-example-application/#.X7EaTlDkuUk
Draggable React Components using react-draggable Example Application
-> opettaa drag and drop functionality on components in ReactJs application and create a simple working example with the help or **react-draggable package module**
--> event handlers available to track the movement
## paketin asennus
npm install react-draggable
## draggable komponentit
### Käyttöön otto
1) import Draggable:
import Draggable from 'react-draggable';
2) wrap the elements with Draggable to make them draggable on the page
-> Draggable elementti /Draggable
-> komponenttien css koodi pitää käyttää tässä projektissa css.module avulla, koska next vaatii sitä
### Event callbacks on draggable
-> event handlers can be added on the draggable component and defined inside the render() method
--> (näiden avulla onStop event handleriin liitto pelipöytään?)

### Axis
-> force dragging in a specific direction
### Define a handle to drag
-> instead of dragging the element by picking from anywhere we can set a selector in the draggable component which can be picker to drag
### Track position of draggable
-> mahdollista seurata x ja y arvojen avulla missä komponentti on menossa
--> aseta x ja y arvot pelilaudan sisään?
- bounds property can be used to define and limit the draggable area for the element
--> toimisi laudan kanssa?
Define bounds
-> bounds arvo in px from the current position

Parent as bound
-> the element can be dragged inside the parent by defining bounds="parent"
--> mahdollistaa vain laittamisen parent elementin sisään?
page as bound
-> bounds = "body"
## Muistiinpanot 2 - positronx
https://www.positronx.io/create-react-draggable-component-with-react-draggable-package/
-> ei sisältänyt juuri mitään uutta aiempaan muuta kuin selitykset eventeille.
### events:
1) onStart: This is called when dragging event invokes.
2) onDrag: Invoked when the drag event is in process.
3) onStop: This event evokes when dragging ends.
4) onMouseUp: This is event is evoked when the mouse is moved before stoping the drag.
5) onMouseDown: Called when the mouse is clicked to begin drag.
6) onTouchEnd: This is called in touch state before the drag ends.
7) onTouchStart: Invoked in touch condition before drag begins.
## Ajankäyttö

+ 15 min solujen idille
```
## Viikko 3 (18.11.-25.11.) - sprint 3
### Mitä opin tällä viikolla
-> Tein projektin uusiksi ilman Next.js, koska se esti backendiä etenemästä
-> DnD (Drag and drop) https://react-dnd.github.io/react-dnd/docs/overview
--> Aloin tutustumaan DnD toimintaan,
--> sain raahauksen toimimaan ja muistaakseni näihin sain Drag funktiot lisättyä, mikä palautti isDragging toiminnon ja tiputus palautti solun tiedot.
-> Git toiminta
--> Uusi repository samalla nimellä, missä projekti ilman next.js
--> Ship.js muokkaaminen
-> komponenttien kehitys
--> pelilaudalle kuvat sisään soluihin placeholdereiksi - (poistettiin sprintissä joko 4 tai 5)
--> muokkasin nuolifunktioita vanhan Reactin luokiksi, että Leevi näki ne kehitystyökalussa
---> myöhemmin nämä piti palauttaa taas nuolifunktioiksi, koska vanhoissa React luokissa ei mene yhtä hyvin hookit sisään kuin nuolifunktioilla tehdyissä - nuolifunktiot olivat tarpeellisia DnD toiminnalle
-> Soft skills - Tein tämän viikon yksin fronttia, koska Leevillä oli toinen projekti

### Ajankäyttö

-> 9 tuntia 14 minuuttia
--> käytin noin 5 tuntia tuohon päälle DnD opiskeluun, mutta en taas tajunnut merkata.
### Alkuperäinen sprint 3:
```
# sprint 3
## Tavoite
1) siirtää projekti uuteen react projektiin ilman next.js
2) drag and drop - https://react-dnd.github.io/react-dnd/docs/overview
## Tehdyt asiat
https://gitlab.com/BlankCourse/laiva
-> uusi repository, poistin vanhan ja nimesin samaksi uuden
-> Next.js poistettu
-> Ship.js draggable asiat poistettu
-> testasin lisätä sinisiä kuutioita td sisään
-> DnD osittainen toiminta, komponenttia "Laiva" voi raahata, mutta DnD käyttämät funktiot menevät hieman yli ajattelun vielä.
-> backendin pyynnöstä projekti siirsin kokonaan puhtaaseen reactiin ilman next.js
-> muokkasin field komponenttia, että se näkyy Leevin käyttämässä react kehitys sovelluksessa
--> muokkaukset piti poistaa, koska hookit eivät hyväksy classejä
---> muokkasin laivaa, pelikenttää, että niistä tulisi DnD sopivat (hook sopivat)

## ongelmat:
Your render method should have a return statement react/require-render-return
-> liittyy JSX toimintaan
-->
render{
return(
-> jsx
)}
-> DnD oli oletettua haasteellisempi ymmärtää.
--> yrittänyt katsoa esimerkkejä ja lukea, mutta näyttää merkkioksennukselta.
-> useDrag DnDssä on hook:
--> Hooks don't work inside classes
---> Ship.js komponentti on class - muunnetaan?
-> Komponenteissa Field,js ja Laiva.js on jo olemassa alusta DnDlle, mutta en saa päätä DnD funktioiden ympärille millä tehdään yhdistys. https://react-dnd.github.io/react-dnd/docs/api/drop-target-monitor
-> leevi ei osallistunut sprint 3.
-> mietitty ratkaisu:
1) getDropResult() avulla id tiilestä/solusta minkä päälle laitettiin laiva
2) Jos ymmärsin oikein, niin käytä state asettamaan laiva siihen kohtaan ID mukaan
3) valmis.
## Aika

## Muistiinpanot
https://www.youtube.com/watch?v=NW8erkUgqus
Playing around with react-dnd

Item type
-> limits items that can be dropped on specific location
-> dragged prop can be accessed from the drop location
-> monitor: 9.00
-> collectors: 9.30
--> function to turn DnD events coming from monitor into react props 'collecting' props
-> drag sources: 10
--> draggable components
--> carry information as component prop and can be passed on
-> drop targets: 10.15
--> accept certain types of draggable sources
https://www.youtube.com/watch?v=aYZRRyukuIw

https://react-dnd.github.io/react-dnd/about
https://react-dnd.github.io/react-dnd/docs/overview
Some of these concepts resemble the Flux and Redux architectures.
This is not a coincidence, as React DnD uses Redux internally.
When you drag something across the screen, we don't say that a component, or a DOM node is being dragged. Instead, we say that an item of a certain type is being dragged.
What is an item? An item is a plain JavaScript object describing what's being dragged.
The types let you specify which drag sources and drop targets are compatible
-> laiva drag source, board drop target
Monitors
Drag and drop is inherently stateful. Either a drag operation is in progress, or it isn't. Either there is a current type and a current item, or there isn't. This state has to live somewhere.
The monitors let you update the props of your components in response to the drag and drop state changes.
Connectors
The connectors let you assign one of the predefined roles (a drag source, a drag preview, or a drop target) to the DOM nodes in your render function.
In the component's render method, we are then able to access both the data obtained from the monitor, and the function obtained from the connector
Drag sources and drop targest
They really tie the types, the items, the side effects, and the collecting functions together with your components.
Whenever you want to make a component or some part of it draggable, you need to wrap that component into a drag source declaration. Every drag source is registered for a certain type, and has to implement a method producing an item from the component's props.
The drop targets are very similar to the drag sources. The only difference is that a single drop target may register for several item types at once, and instead of producing an item, it may handle its hover or drop.
high-order components
A higher-order component is a function that takes a React component class, and returns another React component class. The wrapping component provided by the library renders your component in its render method and forwards the props to it, but also adds some useful behavior.
In React DnD, DragSource and DropTarget, as well as a few other top-level exported functions, are in fact higher-order components.
https://www.youtube.com/watch?v=exZjmIGhTpw
https://codesandbox.io/search?refinementList%5Btemplate%5D=&refinementList%5Bnpm_dependencies.dependency%5D%5B0%5D=react-dnd&page=7&configure%5BhitsPerPage%5D=12
-> esimerkkejä
### dnd install: https://react-dnd.github.io/react-dnd/docs/faq
npm install --save react-dnd
npm install --save react-dnd-html5-backend
-> react-dnd-html5-backend - provides monitors
https://github.com/atlassian/react-beautiful-dnd/blob/master/docs/guides/combining.md
react-beautiful-dnd requires no additional wrapping elements to create <Draggable /> and <Droppable /> components. Therefore it is possible to have a <table> that has valid HTML as well as supporting drag and drop.
```
## Viikko 4 (25.11.-2.12.) - sprint 4
### Mitä opin tällä viikolla
-> parantelin projektin ulkonäköä
-> projektin yhdistämistä
-> tein kuvia mitä voitaisiin käyttää projektissa
--> Ei päädytty käyttämään näitä lopulta.
-> Aloin käymään full stack open kurssia Helsingin yliopistolta kerratakseni React osaamista.
-> Jatkoin DnD tekemistä
--> Saatiin kaikille soluille DnD funktio, hieman työläs tarkistaa, että kaikki oltiin numeroitu oikein ja IDt olivat myös oikein.
--> Luultavasti olisi kannattanut tehdä Solu komponentti, minkä sisälle propsien avulla tulee tarvittavat tiedot.
### Ajankäyttö


noin 11 tuntia 20 minuuttia yhteensä
-> Tämä piti aika hyvin paikkansa. Leevi aktivoitui tämän viikon aikana tekemään asioita ja minulla oli toinen palautus johon keskityin sprint 4 aikana.
### Alkuperäinen sprint 4:
```
# Sprint 4
## Tavoitteet
Eri palojen yhdistelemistä
Front end:
UI loppuun; drag and drop ja ampuminen
Backend:
Tieto ampumisesta toiselle ja tieto takas osuiko
reduxin jatkamista
## tehdyt asiat
-> parantelin projektin ulkonäköä
-> Drop toistot (100kpl) field.js tiedostossa ja ID asettelu
-> projektin yhdistämistä
-> tein kuvia mitä voitaisiin käyttää projektissa
-> Aloin käymään full stack open kurssia Helsingin yliopistolta kerratakseni React osaamista.
## Projektin yhdistäminen
-> projektin front end saatiin kivuttomasti yhdistettyä Mikaelin tekemiin asioihin
--> npm i socket.io
--> npm i socket.io-client
## ongelmia
-> solujen kuvien koko https://stackoverflow.com/questions/22862618/asp-wrap-image-inside-a-table

Ei halua ottaa lähteeksi css tiedostoa
-> liittyy jotenkin JSX toimintaan
-> en oikein tiedä mitä Leevi on tehnyt. Aloin tekemään front endiä paremman näköiseksi
--> odotan mitä leevi tekee maanantaihin mennessä ja parantelen sivun yleistä ulkonäköä
-> drop toiminnallisuus soluille
--> kopioidaan drop ja numeroidaan ne, ei ehkä paras käytäntö, mutta en osaa jalostaa tuosta omilla taidoillani mitään parempaa
## aika


noin 11 tuntia 20 minuuttia yhteensä
```
## Viikko 5 (2.12.-9.12.) - sprint 5
### Mitä opin tällä viikolla
-> tällä viikolla yhdistelimme muiden osia pääasiassa pääprojektiin
--> Vastailin DnD kysymyksiin muille
--> Saimme yhdisteltyä projektin osat yhteen ja lopputulos oli toimiva
-> kertasin paljon FSO kurssin avulla Reactia. Olen menossa nyt siinä 2 osiossa. Ajattelin suorittaa sen ainakin 5 op laajuisena joululoman aikana, mutta jos en ehdi niin teen 3 op ja jatkan siitä maaliskuussa kun kurssi aukeaa taas.
--> Toivoin tällä pystyväni auttamaan muita, jos tuli jokin ylitsepääsemätön ongelma Reactin kanssa.
### Alkuperäinen sprint 5:
### Ajankäyttö


-> 18 tuntia 14 minuuttia
## Kehittäjäblogissa esitetyt evidenssit sisältöjen ja tavoitteiden täyttymiselle
### Pura asiat auki siten että arvioija ymmärtää osallisuutesi eri oppimistilanteisiin
- Kirjoitin projektissa react komponentit ja toimivat pohjat, mistä muut lähtivät laajentamaan
-> lisäsin dokumentaation mikä selitti mitä DnD asiat tekivät komponenteissa. Esimerkiksi End ja sieltä tulevat item ja dropResult.
---> Muut laajensivat nähin komponentteihin liittyvät toiminnallisuudet, mitkä tarvitsivat omiin alueisiinsa
- DnD pohjat komponentteihin field ja laiva
-> siten että näistä saatiin ID:t mihin laiva tiputettiin ja mikä laiva tiputettiin.
- Projektin ylläpitämistä ja tarpeettomiksi päätettyjen JavaScript kirjastojen (next) poistaminen
-> Sprintit 1-3 yhdistelin projektin tiedostoja ja tein fronttia.
-> Poistin hankalaksi päätetyn Next.js projektista.
- Aloin kertaamaan FSO kurssin avulla
-> Aion käydä FSO kurssia kerratakseni tilaa ja muita Reactin ominaisuuksia.
### Kerro mitä opit ja miten ja miksi
Opin käyttämään Reactia itsenäisemmin ilman varsinaista "ohjetta".
-> Meille periaatteessa viskattiin "tehkää projekti laivanupotus" ilman sen suurempia ohjeita.
Myös ryhmä työskentely tuli web-ohjelmoinnin osalta tutummaksi ja myös työn jako.
-> aiemmat työt ovat olleet yksin tehtäviä, mutta nyt tässä projektissa ryhmätyö
-> Työn jako: tein paljon asiaa viikoilla 1-3, mutta sen jälkeen neuvoin muita niiden asioiden laajennuksessa sprinteissä 4-5 kun muut tekivät suurimman osan omista alueistaan.
-> "soft skills"
Github/gitlab käyttäminen
-> aiemmin ei ole tarvinnut tehdä branch pull tai muita komentoja, mitä tuli käytettyä paljon
-> projektin yhdistelyä muiden tiedostojen pohjalta
Ajanseuranta on haasteellista
-> Tuli käytettyä paljon aikaa miettimiseen, opiskeluun ja asioiden tekemiseen ilman, että laittoi ajastimen päälle
--> Esimerkiksi muutamassa ensimmäisessä sprintissä luulin, että meidän pitää vain ajoittaa ohjelmointi aika ja esimerkiksi ei videoiden katsominen ja asioiden opettelu.
```
# sprint 5
## tavoitteet:
saada peli loppuun/toimivaksi
## tehdyt asiat
-> viimeisen viikon sprintti missä yhdisteltiin projektia ja lisättiin toiminnallisuuksia
--> neuvoin muita jos heillä oli kysymyksiä DnD suhteen tai niiden osa-aluiden muokkaamiseen
---> projekti valmistui toimivaksi
## käytetty aika
2-8.12


-> 18 tuntia 14 minuuttia
## Kehittäjäblogissa esitetyt evidenssit sisältöjen ja tavoitteiden täyttymiselle
### Pura asiat auki siten että arvioija ymmärtää osallisuutesi eri oppimistilanteisiin
- Kirjoitin projektissa react komponentit ja toimivat pohjat, mistä muut lähtivät laajentamaan
-> lisäsin dokumentaation mikä selitti mitä DnD asiat tekivät komponenteissa. Esimerkiksi End ja sieltä tulevat item ja dropResult.
---> Muut laajensivat nähin komponentteihin liittyvät toiminnallisuudet, mitkä tarvitsivat omiin alueisiinsa
- DnD pohjat komponentteihin field ja laiva
-> siten että näistä saatiin ID:t mihin laiva tiputettiin ja mikä laiva tiputettiin.
- Projektin ylläpitämistä ja tarpeettomiksi päätettyjen JavaScript kirjastojen (next) poistaminen
-> Sprintit 1-3 yhdistelin projektin tiedostoja ja tein fronttia.
-> Poistin hankalaksi päätetyn Next.js projektista.
- Aloin kertaamaan FSO kurssin avulla
-> Aion käydä FSO kurssia kerratakseni tilaa ja muita Reactin ominaisuuksia.
### Kerro mitä opit ja miten ja miksi
Opin käyttämään Reactia itsenäisemmin ilman varsinaista "ohjetta".
-> Meille periaatteessa viskattiin "tehkää projekti laivanupotus" ilman sen suurempia ohjeita.
Myös ryhmä työskentely tuli web-ohjelmoinnin osalta tutummaksi ja myös työn jako.
-> aiemmat työt ovat olleet yksin tehtäviä, mutta nyt tässä projektissa ryhmätyö
-> Työn jako: tein paljon asiaa viikoilla 1-3, mutta sen jälkeen neuvoin muita niiden asioiden laajennuksessa sprinteissä 4-5 kun muut tekivät suurimman osan omista alueistaan.
-> "soft skills"
Github/gitlab käyttäminen
-> aiemmin ei ole tarvinnut tehdä branch pull tai muita komentoja, mitä tuli käytettyä paljon
-> projektin yhdistelyä muiden tiedostojen pohjalta
Ajanseuranta on haasteellista
-> Tuli käytettyä paljon aikaa miettimiseen, opiskeluun ja asioiden tekemiseen ilman, että laittoi ajastimen päälle
--> Esimerkiksi muutamassa ensimmäisessä sprintissä luulin, että meidän pitää vain ajoittaa ohjelmointi aika ja esimerkiksi ei videoiden katsominen ja asioiden opettelu.
```