Kirjoittaja Aihe: Miten alkuun ohjelmoinnissa?  (Luettu 4242 kertaa)

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Miten alkuun ohjelmoinnissa?
« : 03.07.17 - klo:21.51 »
Moi!

Tekisi mieli laajentaa tietokoneen käyttöä ohjelmoinnin suuntaan. Peruskoodia olen joskus tehnyt Windowsin VisualBasicilla mutta en ymmärrä mitään graafisten ikkunoiden tekemisestä yms. ilman tuollaista valmista sovellusympäristöä. Nyt mielessä kummittelee kaksi vaihtoehtoa:
1. web-selain + html-sivu + sen taakse toiminnallista koodia (kaikki siis omalla koneella)?
2. Joku VisualBasicia vastaava ympäristö Ubunutulle? Mikä?

Kumpaako suosittelette, kun tarve on lähinnä tehdä erilaisia syötettävään dataan liittyviä laskelmia (asioita, jotka saa toteutteua melko hyvin excelillä) ja aikaa tai intoa ei ole alkaa ohjelmointiguruksi. Millä tavalla saisi helpoimmalla tuollaisen VB:n tyylisen käyttäjälle helpon ohjelmointiympäristön aikaiseksi Ubuntuun?

Entä mikä kieli on se mihin kannattaa satsata? Java vai Python?
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

_Pete_

  • Käyttäjä
  • Viestejä: 1836
  • Fufufuuffuuu
    • Profiili
Vs: Miten alkuun ohjelmoinnissa?
« Vastaus #1 : 04.07.17 - klo:10.29 »
Mielestäni kannattaa aloittaa valitsemasi kielen perustutoriaaleilla. Graafiset VB tapaiset hässäkät kätkevät
liikaa itse ohjelmoinnin logiikkaa taakseen. Paras tapa opetella itse ohjelmointia (=logiikkaa) on käyttää
perus tekstieditoria ja komentoriviä.

AimoE

  • Käyttäjä
  • Viestejä: 2707
    • Profiili
Vs: Miten alkuun ohjelmoinnissa?
« Vastaus #2 : 04.07.17 - klo:10.57 »
Paras tapa opetella itse ohjelmointia (=logiikkaa) on käyttää perus tekstieditoria ja komentoriviä.
ja debuggeria

_Pete_

  • Käyttäjä
  • Viestejä: 1836
  • Fufufuuffuuu
    • Profiili
Vs: Miten alkuun ohjelmoinnissa?
« Vastaus #3 : 04.07.17 - klo:11.00 »
Paras tapa opetella itse ohjelmointia (=logiikkaa) on käyttää perus tekstieditoria ja komentoriviä.
ja debuggeria

Tämäkin kuuluu edistyneempien touhuihin. Aluksi paras keskittyä ihan perusteisiin, rakenteisiin,
kontrolln ohjauksiin, ehtoihin jne.


AimoE

  • Käyttäjä
  • Viestejä: 2707
    • Profiili
Vs: Miten alkuun ohjelmoinnissa?
« Vastaus #4 : 04.07.17 - klo:12.04 »
ja debuggeria

Tämäkin kuuluu edistyneempien touhuihin. Aluksi paras keskittyä ihan perusteisiin, rakenteisiin,
kontrolln ohjauksiin, ehtoihin jne.

Kysyjä on jo tehnyt jonkin sortin ohjelmointia, joten hän on ihan tarpeeksi pitkällä debuggeria varten. Olemassa olevan koodin muokkaaminen editorin ja debuggerin avulla on kaikkein tehokkain tapa oppia koodausta ja ohjelmistosuunnittelua, eikä sitä askelta kannata lykätä yhtään myöhemmäksi.

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Miten alkuun ohjelmoinnissa?
« Vastaus #5 : 04.07.17 - klo:12.21 »
Entä mikä kieli on se mihin kannattaa satsata? Java vai Python?

JavaScript jos meinaat tehdä selaimessa ajettavia web-sovelluksia, joissa ei tarvita erillistä backendia. Ja web-sovellusten backendissäkin JavaScript on modernein vaihtoehto Node.js:n ansiosta. Python puolestaan on erittäin hyvä data-aineistojen käsittelyyn ja tieteelliseen laskentaan Numpy- ja Pandas-kirjastojen kanssa.

Perinteisten graafisten käyttöliittymien ohjelmointiin paras käyttöjärjestelmäriippumaton ratkaisu on Qt. Se on hyvin dokumentoitu ja tuettu alusta, joka tarjoaa myös toimivan IDE:n ja graafisen suunnittelutyökalun. Ohjelmointikieleksi sopii C++ tai Python. Qt:n avoimen koodin versiolla voi tehdä ja julkaista myös suljettua softaa, kunhan noudattaa Qt:n LGPLv3-lisenssiä.
« Viimeksi muokattu: 04.07.17 - klo:20.34 kirjoittanut nm »

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Miten alkuun ohjelmoinnissa?
« Vastaus #6 : 04.07.17 - klo:20.05 »
ja debuggeria

Tämäkin kuuluu edistyneempien touhuihin. Aluksi paras keskittyä ihan perusteisiin, rakenteisiin,
kontrolln ohjauksiin, ehtoihin jne.

Kysyjä on jo tehnyt jonkin sortin ohjelmointia, joten hän on ihan tarpeeksi pitkällä debuggeria varten. Olemassa olevan koodin muokkaaminen editorin ja debuggerin avulla on kaikkein tehokkain tapa oppia koodausta ja ohjelmistosuunnittelua, eikä sitä askelta kannata lykätä yhtään myöhemmäksi.

Ongelma on siinä, ettei minua oikeastaan kiinnosta ohjelmointi sinänsä kovinkaan paljoa, vaan tarvitsen sitä erilaisten algoritmien toteuttamiseksi. Tähän menessä olen rakennellut erilaisia excel (libreOffice) taulukoita, mutta jossain vaiheessa nuokin käyvät epäkäytännöllisiksi. Siksi pohdin olisiko fiksumpaa opiskella tekemään ulkoisesti helppoja html-sivuja, joiden taustalla pyörisi joku koodi (php?) vai ryhtyä tekemään ihan itsenäisiä sovelluksia tuon "Visual basicin" tyyliin.

Hyvä esimerkki on vaikkapa veneen massakeskipisteen laskenta. Itse laskenta on melko suoraviiva ja helppoa (perusaritmetiikkaa), mutta ongelma on fiksun käyttöliittymän puute.

Toinen kaipaamani sovellus voisi olla muutaman dataloggerin tuottama lämpötilatieto, josta pitäisi saada koostettua erilaisia keskilämpötiloja ja muutosarvoja. Tässäkin tuo matemaattinen puoli helppo, mutta tietojen automaattinen kerääminen ja ymärrettävä käyttöliittymä se vaikeus.

Olen siis enemmän tiedemies kuin ohjelmoija. :) (Oikeasti en kumpaakaan)   
Xubuntu 22.04 LTS, Fujitsu Lifebook E754

SuperOscar

  • Käyttäjä
  • Viestejä: 3993
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Miten alkuun ohjelmoinnissa?
« Vastaus #7 : 04.07.17 - klo:20.56 »
Käyttöliittymien rakentelu on vähän toista kuin ohjelmointi algoritmien mielessä. Tahtovat olla turhankin kaukana toisistaan.

Matemaattisesti orientoituneelle melkeinpä suosittelisin puhtaasti funktionaalista kieltä kuten Haskelliä; ja kyllähän sillä käyttöliittymänkin voi rakentaa, vaikka se ei ehkä ole yhtä helppoa kuin jollain muulla.
pöytäkone 1, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; NUC: openSUSE Leap 15.5; RPi 1: FreeBSD 13.2-RELEASE; RPi 2: LibreELEC 11

nm

  • Käyttäjä
  • Viestejä: 16232
    • Profiili
Vs: Miten alkuun ohjelmoinnissa?
« Vastaus #8 : 04.07.17 - klo:21.02 »
Matemaattisesti orientoituneelle melkeinpä suosittelisin puhtaasti funktionaalista kieltä kuten Haskelliä; ja kyllähän sillä käyttöliittymänkin voi rakentaa, vaikka se ei ehkä ole yhtä helppoa kuin jollain muulla.

Nyt mennään kyllä jo aika kauas käyttöliittymäohjelmoinnin lähestyttävyydestä ja VisualBasic-näkökulmasta.  :)

Miten olisi PyForms: https://pyforms.readthedocs.io/en/v2.0/
« Viimeksi muokattu: 04.07.17 - klo:21.13 kirjoittanut nm »

SuperOscar

  • Käyttäjä
  • Viestejä: 3993
  • Ocatarinetabellatsumtsum!
    • Profiili
    • Legisign.org
Vs: Miten alkuun ohjelmoinnissa?
« Vastaus #9 : 04.07.17 - klo:22.30 »
Nyt mennään kyllä jo aika kauas käyttöliittymäohjelmoinnin lähestyttävyydestä ja VisualBasic-näkökulmasta.  :)

Joo, tiedän ;D Mutta niin kuin sanottu, minusta käyttöliittymien rakentelu on kokonaan toisenlainen puoli ohjelmointia kuin algoritmit. Tuntuu, että ehkä ne pitäisikin erottaa toisistaan.
pöytäkone 1, kannettavat 1–3: Debian GNU/Linux 12; pöytäkone 2: openSUSE Tumbleweed; NUC: openSUSE Leap 15.5; RPi 1: FreeBSD 13.2-RELEASE; RPi 2: LibreELEC 11

AimoE

  • Käyttäjä
  • Viestejä: 2707
    • Profiili
Vs: Miten alkuun ohjelmoinnissa?
« Vastaus #10 : 04.07.17 - klo:23.05 »
Nyt mennään kyllä jo aika kauas käyttöliittymäohjelmoinnin lähestyttävyydestä ja VisualBasic-näkökulmasta.  :)

Joo, tiedän ;D Mutta niin kuin sanottu, minusta käyttöliittymien rakentelu on kokonaan toisenlainen puoli ohjelmointia kuin algoritmit. Tuntuu, että ehkä ne pitäisikin erottaa toisistaan.

Kyllähän käyttöliittymien ohjelmointi on ihan yhtä Turing-ekvivalenttia kuin muukin ohjelmointi, vaikkei uskoisi.

Algoritmisen ohjelmoinnin ja käyttöliittymien ero muistuttaa softa- ja mekaniikkasuunnittelun välistä eroa; algoritminen ohjelmointi on kielellis-matemaattista, kun mekaniikkapuoli on visuaalis-spatiaalis-matemaatista. HW-suunnittelu on siinä puolivälissä; HW-inssit pystyvät tulkkaamaan keskustelua kun softa- ja mekaniikkapuoli puhuvat ihan eri kieltä. Vähän niin kuin MVC-mallissa kontrolleri datan ja visun välissä.

Joo joo, nukkumaamenoaika.

Snufkin

  • Käyttäjä
  • Viestejä: 454
    • Profiili
Vs: Miten alkuun ohjelmoinnissa?
« Vastaus #11 : 05.07.17 - klo:12.37 »
Nyt mennään kyllä jo aika kauas käyttöliittymäohjelmoinnin lähestyttävyydestä ja VisualBasic-näkökulmasta.  :)

Joo, tiedän ;D Mutta niin kuin sanottu, minusta käyttöliittymien rakentelu on kokonaan toisenlainen puoli ohjelmointia kuin algoritmit. Tuntuu, että ehkä ne pitäisikin erottaa toisistaan.

Varmasti noin ohjelmistosuunnitelijan vinkkelistä, mutta ei keksijän/tuotekehittelijän. Silloin tarvitaan molempia puolia, eli fiksu käyttöliittymä ja sen taakse fiksu algoritmi. Ero ohjelmistosuunnitellun ehkä siinä, että näitä "työkaluja" ei ole tarve hallinnoida vuosia, laajentaa tai tehdä mitään monen käyttäjän juttuja tai juurikaan dokumentoida. Tarve vain osana muuta tuotekehitystä.
Xubuntu 22.04 LTS, Fujitsu Lifebook E754