Kuinka hyvä Chatgpt:n käyttö on ohjelmoinnissa tai ohjelmoinnin harjoittelemisessa? Ehdoton valtaosa netissä olevista materiaaleista on "valitettavasti" englanniksi (mikä on ihan oma vika kun en sitä osaa). Chatgpt:tä voi käyttää suomeksikin. Ja joo toki englantiakin pitää treenata. Tosin sekin vie aikaa niin kuin vie ohjelmoinnin harjoitteleminenkin.
Ja tänne en välttämättä enää kauheasti haluaisi lähettää kysymyksiä edes koodaamiseen liittyen, kun menneisyyteni tällä sivustolla on mikä on.
ChatGPT osaa todella hyvin ohjelmoinnin perusasiat, mutta toisaalta sitä kannattaa käyttää harkiten. Seuraava esimerkki tuo esille ongelman:
lainaus:
Kehote: Haluaisin oppia tekemään Pythonilla ohjelman, joka arpoo lottorivin. Rivissä tulisi olla 7 numeroa väliltä 1-40.
Vastaus: Tämä on mukava ja helppo projekti aloittaa Pythonin kanssa! Voimme luoda ohjelman, joka arpoo satunnaisen lottorivin 7 numeroa väliltä 1–40. Käytämme Pythonin sisäänrakennettua random-moduulia, joka on juuri tähän tarkoitukseen täydellinen.
Tässä on yksinkertainen esimerkki:
import random def arvo_lottorivi(): # Arvotaan 7 uniikkia numeroa väliltä 1-40 lottorivi = random.sample(range(1, 41), 7) lottorivi.sort() # Voimme lajitella numerot nousevaan järjestykseen return lottorivi # Kutsutaan funktiota ja tulostetaan arvottu lottorivi lottorivi = arvo_lottorivi() print("Arvottu lottorivi:", lottorivi)
Ongelmana on, että ChatGPT antaa yleensä mihin tahansa ohjelmointiin liittyvään kehotteeseen vastauksena suoraan valmiin koodin. Tämä ei ole hyvä tapa oppia itsenäistä ohjelmointia ja ongelmanratkaisua.
Kokeilin piruuttani samaa tehtävää, mutta 8th ohjelmointikielellä:
ChatGPT sai aikaiseksi tälläisen Forth ohjelmointikieleltä näyttävän toteutuksen, mikä ei kuitenkaan edes toimisi silläkään ohjelmointikielellä:
; Lotto-rivin arpominen ohjelma (7 numeroa väliltä 1-40) ; Alustetaan satunnaislukugeneraattori RANDOM 0 40 ; Funktio, joka arpoo 7 uniikkia numeroa : ARPOA-LOTTO 7 0 DO RANDOM 1 40 DUP SWAP 0= IF DROP THEN ; Jos numero on jo arvottu, arvo uudestaan SWAP LOOP ; ; Käynnistetään lottoarvonta ARPOA-LOTTO
Yksi toimiva tapa 8th ohjelmointikielellä voisi yksinkertaisesti olla vaikka:
' noop 1 40 a:generate ( a:shuffle 0 7 a:slice ) curry: arvo-lottorivi \ -- a : main arvo-lottorivi . cr ;
Onkohan Forth/8th yleisemminkin liian kova pala purtavaksi tekoälyille?
Jos noista kielimallitekoälyistä puhutaan, niin sehän riippuu olennaisesti siitä, kuinka paljon lähdemateriaalia niillä on ollut opetusmateriaaleissa. Eli jos jollekin kielelle on vähän lähdeaineistoa, kuten keskusteluja, niin siitä tulee tuollaiselle tekoälylle "vaikea".
En tiedä saako ChatGPT:n tulostamaa koodia edes käyttää omissa projekteissa. Tekijänoikeus ei kai anna käyttää lisensoimatonta koodia ilman lupaa. Olen huomannut, että kun jää jumiin, voi kielimallilta kysyä ideoita jatkoon ja jos nämä toteuttaa itse, ongelmia ei pitäisi tulla. Jos tekee ohjelmoinnissa virheen, voi kielimallia pyytää kehittämään prosessin, jolla kyseisen virheen uudelleentekemisen todennäköisyys pienenee. Ja aina voi tehdä esimerkiksi ohjelman, joka kerää omaa dataa kun koodaat. Sitten kielimalli voi analysoida dataa ja ehdottaa, mikä olisi pahin puute osaamisessa.
Jaska kirjoitti:
(04.09.2025 12:35:02): En tiedä saako ChatGPT:n tulostamaa koodia edes...
Käsittääkseni koodin käyttöä ei juuri rajoiteta, mutta yksinoikeutta koodiin ei ole. Tarkoittaa sitä että kielimalli voi antaa saman ratkaisun kelle tahansa muullekin. OpenAI ei myöskään ota vastuuta koodin virheellisyydestä tai sen tuottamasta harmista.
uudempikoodaaja kirjoitti:
(03.08.2025 02:13:44): Kuinka hyvä Chatgpt:n käyttö on...
Sanoisin, että ohjelmoidessa se on hyvä assistentti mutta, niin kuin edellä mainittiin niin ohjelmoinnin opetteluun se ei ole paras kaveri.
Ensinnäkin mainittujen valmiiden vastausten vuoksi, mutta myös siksi, että annettu koodi voi olla toimivaa vain kysymyksen asettelussa kerrotuilla parametreilla, jättäen esimerkiksi huomioimatta mahdollisia virhesyötteitä.
Tuotettu koodi voi olla myös melko jäykkää jolloin käytettävyys kärsii (mm. polymorfismin puute). Ohjelmointia opetellessa voi moni hyödyllinen asia jäädä pimentoon.
Ja viimeisimpänä se että tuotettu koodi voi olla myös ihan täyttä skeidaa ja esitetyt korjauspyynnöt vievät vain syvemmälle virheiden vallihautaan - syöden näin arvokasta opiskeluaikaa.