Terve
Olen Linuxia käytellyt tässä kohtapuolin vuoden, Debiania ja Gentoota, en mitään Ubuntuja. Kernelin käätnö sujuu jne. Linuxia ennen olen Windowsia käyttänyt, enkä Linuxiin siirtymisen jälkeen ollut sen kanssa missään tekemisissiä. Pientä serveriäkin pidän, mutta nyt on alkanut ohjelmointi kiinnostaa, HTML CSS on jotenkin hallussa, ja php:llä vähän leikkinyt. Osaiskos joku kertoa mistä kielestä, ja minkälaisista asioista kannattaa aloittaa? Ohjelmointi on aina kiinnostanut mielettömästi, mutta kärsivällisyys loppunut kesken, mutta ensi kesäksi aijon tämänkin opetella. Ikää ei hirveästi ole, mutta suurimpia unelmia ja suunnitelmia aikuisuuteen on jo, pitää suuria servereitä ja olla "kräkkeri". Saman alan ihmiset usein unelmoivat omasta käyttöjärjestelmästään, mutta minua ei kiinnosta. Olisikohan joku, samassa tilanteessa joskus kauan sitten ollut auttaa hieman aloittelevaa? Aikaa pystyn käyttämään 24 tuntia vuorokaudessa tähän. Ohjelmoitni on hakkerin perustaito, ja siihen tähtään. Omia kokemuksia olisi myös mielenkiintoista kuulla :)
Olen Linuxia käytellyt tässä kohtapuolin vuoden, Debiania ja Gentoota, en mitään Ubuntuja. Kernelin käätnö sujuu jne. Linuxia ennen olen Windowsia käyttänyt, enkä Linuxiin siirtymisen jälkeen ollut sen kanssa missään tekemisissiä. Pientä serveriäkin pidän, mutta nyt on alkanut ohjelmointi kiinnostaa, HTML CSS on jotenkin hallussa, ja php:llä vähän leikkinyt. Osaiskos joku kertoa mistä kielestä, ja minkälaisista asioista kannattaa aloittaa? Ohjelmointi on aina kiinnostanut mielettömästi, mutta kärsivällisyys loppunut kesken, mutta ensi kesäksi aijon tämänkin opetella. Ikää ei hirveästi ole, mutta suurimpia unelmia ja suunnitelmia aikuisuuteen on jo, pitää suuria servereitä ja olla "kräkkeri". Saman alan ihmiset usein unelmoivat omasta käyttöjärjestelmästään, mutta minua ei kiinnosta. Olisikohan joku, samassa tilanteessa joskus kauan sitten ollut auttaa hieman aloittelevaa? Aikaa pystyn käyttämään 24 tuntia vuorokaudessa tähän. Ohjelmoitni on hakkerin perustaito, ja siihen tähtään. Omia kokemuksia olisi myös mielenkiintoista kuulla :)
Vastaukset 21
Vanhimmat
Ensinnäkin unohda tuo kräkkeri-vouhotus. Paitsi että se on rikollista, huomaat ettei niissä töissä pitkälle potkita. Ajattele vaikka mopon virittämistä, sillä sekin tuntuu nuorista kovin tärkeältä, mutta todellisessa elämässä kyse on mitä suurimmasta hölmöilystä. Valitettavasti suurten servereiden ylläpitäjäksi ei varsinaisesti voi itsekouluttautua. Tiedollisti kenties, mutta käytännössä tarvitse vaikkapa diplomi-insinöörin paperit. Keskity siis lukion luonnontieden opiskeluun, älä niinkään ohjelmointiin. Ohjelmointi opetetaan koulussa, mutta luonnontieteitä tarvitset sinne saakka pääsemiseksi. Pientä web-hostaus -palvelinta pääset kyllä hostailemaan lähes millaisella koulutuksella tahansa, mutta sinähän halusitkin suurien palvelinfarmien pariin.
Toisekseen, tiedosta heti alussa, että ohjelmointialan työtehtävät ovat täysin erilaisia kuin ohjelmoinnin harrastaminen. Ohjelmoinnin harrastaja tekee itseään kiinnostavia töitä, silloin kun sattuu jaksamaan ja toivomallansa teholla. Ammattimainen ohjelmoija työskentelee silloin kun ei jaksaisi, projektissa, joka ei kiinnosta ja nopeammalla tahdilla kun on hyväksi. Ohjelmoinnissa maaginen avainsana ei ole vain osaaminen, vaan tuottavuus. Toisin sanoen valmista täytyy tulla ja mieluiten eilen.
ATK -alalla on on nykyisin kehnot näkymät. Muutama vuosi takaperin ymmärtämättömät päättäjät lisäsivät esimerkiksi ammattikorkeakoulujen ja yliopistojen tietojenkäsittelyn aloituspaikkoja kymmenellä prosentilla. Nykyisin tätä satoa sitten niitetään. Elämme lähes yksinomaan työnantajan markkinoita, jossa töiden saanti (ellet omaa rautaista näyttöä, eli muutavan vuoden työkokemusta) on vaikeaa ja jos saat töitä, työnantaja pystyy painamaan palkat alas ja tuottavuuspaineet kattoon. Näiltäkin palstoilta voit lukea aivan riittävästi työuupumuksesta.
Melkeinpä suosittelet, että unohdat ATK-alan ammattina (keskity harrastamaan) ja etsit töitä, joissa työllisyys pyritään varmistamaan koulutuksen suunnittelulla ja jossa ei ole tuottavuuden edellytystä. Esimerkiksi lääkereille löytyy hyvin töitä ja työskentely on tressittömämpää.
Ohjelmoinnin opettelun voit aloittaa melkeinpä millä kielellä hyvänsä. Kallistun Javan puoleen, sillä kieltä pystyy soveltamaan hyvin laaja-alaisesti (esim. palvelinohjelmointi). C on tietenkin kiintoisa valinta mikäli haaveilet peleistä, mutta käytäntö on usein erilainen.
*Ensinnäkin unohda tuo kräkkeri-vouhotus. Paitsi että se on rikollista*
Eipä tuossa viestissä mitään laittomasta kräkkeri jutusta puhuttu. Ainakin itse käsitin niin. Lainataampas pari kohtaa aloitus viestistä.
*pitää suuria servereitä ja olla "kräkkeri".* // huomaa lainausmerkit.
*Ohjelmoitni on hakkerin perustaito, ja siihen tähtään.* // hakkeri != kräkkeri.
jepjep, harrastelijamielessä mietin vain.. Toki olisi mahtavaa työnkin puolesta. Hakkerilla meinasin vain mielettömän osaavaa harrastelijaa, ja krakkerilla ei-niin-laittomassa mielessä.
Javaa olen ajatellut, myös perlia ja pythonia. Tuosta C/C :sta olen kuullut että ei kannata aloittaa..
Tietääkseni oikean krakkerin, rikollisen sellaseisen täytyy olla tekniikkaa edellä, ja muutenkin pirun älykäs, varsinkin jos isojakin juttuja tekee, toisin kuin mopon virittäminen, se ei vaadi mitään. Ja, jos olen krakkeri poliisissa, pysäytän älyään tuhoisasti käyttäviä hakkereita ei ole laillista, eikä hölmöäkään, eikä taida olla mopon virityskään jos vauhdista pitää, ja omilla alueillaan ajelee.
*Tietääkseni oikean krakkerin, rikollisen sellaseisen täytyy olla tekniikkaa edellä, ja muutenkin pirun älykäs, varsinkin jos isojakin juttuja tekee'
Ei välttämättä, tarvitaan vain nopeita hoksottimia ja tarkkaavaisuutta. Aika usein hyödynnettävät aukot ovat niin yksinkertaisia ettei niitä välttämättä edes huomaa.
Sanotaankos näin, että monissa nettikaupoissa turvallisuus sitäsuntätä, joten esim luottokorttien tiedot saa ihan helposti. Eikä tartte olla mikään guru miten uutiset antaa ymmärtää.
Jos osaat asentaa Lazaruksen linuxissa niin osaat (todennäköisesti) sitä käyttää (Eli kehitysympäristön asennus on todennäköisesti vaativampi työ Linuxissa kuin sillä ohjelmointi. Tämä ei tarkoita Lazaruksen windows-versiota joka on yhtä helppo asentaa kuin mikä tahansa muu windows-ohjelma). Lazaruksella teet esim graafisia ohjelmia nopeasti.
http://www.lazarus.freepascal.org/
Asennusvinkkejä:
http://fi.wikibooks.org/wiki/Lazaruksen_asennus
http://wiki.lazarus.freepascal.org/index.php/Lazarus_Documentation/fi
C on ok.
http://www.cs.uta.fi/ote/luennot/
http://staff.cs.utu.fi/courses/c /
Kannattaa silmäillä ylläolevat luentomonisteet.
Sen jälkeen joku hyvä opus, kuten http://www.itinfo.fi/ekirja.php?isbn=951-826-369-8
Java on hyvä "portti" C :aan, mutta myös itsessään hyvä kieli.
Yliopistojen kurssien sivuilta löytyy hyvää matskua.
Tuossa tuli jo hyviä vastauksia, mutta haluaisin korostaa yhtä asiaa: Kehitä erityisesti loogista ja analyyttista ajattelukykyäsi. Ohjelmoinnissa teknisten nippelitietojen hanskaaminen on eduksi, mutta käytännössä se notkean ajattelun omaava kaveri, jolla on hyvät taustatiedot, vetää pidemmän korren niin ammattikoodarina kuin "hakkerina". Ongelmien ratkaisua ei voi muistaa ulkoa, ongelmia ratkaistaan ymmärtämällä mistä on kysymys ja ajattelemalla järkevästi.
Keskity luonnontieteisiin ja englantiin aluksi. Laske matikan läksyt kiltisti, niin saat kunnollisen pohjan korkeakoulumatematiikkaan josta on jo suoraan hyötyä ohjelmoinnissa. Laske fysiikan laskut myöskin kaikki koska niissä opit hahmoittamaan käytännön elämän asioita matemaattisen tarkasti. Luen englannin sanat ja kielioppi niin ymmärrät paremmin ammattikirjallisuutta, joka on pääsääntöisesti englanniksi. (englanninkielisen ammattitekstin lukeminen vaatii yllättävänkin paljon tottumista) Tämä on sitä kovaa perustyötä joka vain on tehtävä.
Jos haluat saada äkkiä jotain aikaan, niin valitse vaikka jokin helpohko skriptikieli jolloin ei tarvitse ihmetellä kääntämistä kaikkine kommervenkkeineen. Ehkä jopa Visual Basic voisi sopia ensimmäiseksi kieleksi (en itse osaa)? Muista pitää jalat maassa, tässä hommassa kärsivällisyys todellakin on valttia. Ensimmäisen ohjelman toimintaan saattaminen saattaa olla iso homma.
Muista myös yksi asia, joka monelta unohtuu: *aina* on joku joka tietää asioista enemmän kuin sinä, pidä sopiva asenne päällä.
Juuh, harrastuksestani huolimatta koulu menee ihan hyvin, varsinkin nämä aineet jotka luettelit. Ideana oli vähän kesäprojektiksi opetella nämä. Ja tuosta visual basicista, ideana oli myös koodata linux-ympäristössä, kattelin vähän että windowspuolen juttuja nuo uudet basikit.
"Ja tuosta visual basicista, ideana oli myös koodata linux-ympäristössä, kattelin vähän että windowspuolen juttuja nuo uudet basikit."
Windows-kamaahan ne ovat, mutta ymmärsinkin että haluat opetella ohjelmointia etkä alustaa.
Unix:en äidinkieli on C, mutta mielestäni sitä ei kannata opetella ensimmäisenä. Kielessä on paljon pieniä perversioita joiden takia se on vaikea osattava ja jotain väärin opittua "taitoa" (tapaa) on vaikea kitkeä myöhemmin pois. Ehkä unicien joku pieni skriptikieli toimisi tässä tapauksessa. Oletko tutustunut AWK:iin? Se on täysin tekstin muokkaamiseen kehitetty värkki... ehkäpä kuitenkaan ei, kyllä se taitaa sitte Javan puoleen kääntyä. Se toimii joka alustalla ja sillä saa äkkiä graafista kilkettä aikaan jos se kiinnostaa. Javalla et pääse (helpolla) unixien ominaispiirteisiin kiinni, mutta ohjelmoinnin opetteluun se on nätti kieli. Toivottavasti joku osaa suositella hyvää kirjaa.
Jos taas Unix kiinnostaa yleisesti, niin osta joku sitä käsittelevä ei-ohjelmointi-kirja. Katsele esim. DataClub:n sivuilta joku suomenkielinen kirja ja amazon:n sivuilta ihmisten mielipiteet alkuperäisestä teoksesta. Sama metodi voisi toimia Java-kirjan valinnassa.
>...windowspuolen juttuja nuo uudet basikit.
Kyllä basicia löytyy Linuxillekin
http://www.realsoftware.com/
Basic:t ovat aika rajattuja, hitaita, jne.
Ei ole mitää järkeä opetella niitä käyttämään kun tarjolla on monia paljon, paljon, paljon
parempia kieliä.
Täytyypä vain ihmetellä joidenkin tietämystä ohjelmoinnista. Mistä ihmeestä ihmiset ovat tietonsa saaneet. Sillä vaikuttaisi että niiden tietämys on viime vuosituhannelta (tai vielä kauempaa).
Päivitä tietosi nyt.
Lazarus on helppo oppia. Siinä ideana on käyttöliittymän suunnittelu.
Tämä tapahtuu yksinkertaisesti hiirellä valitsemalla sopiva käyttöliittymäalementti. Voit helposti myös "säätää" kyseistä elementtiä halutunlaiseksi.
Kaiken taustalla on hyvin nopea FreePascal-kääntäjä. FreePascal on jo niin kuin nimestä voi päätellä Pascal-kielinen. Alunperihän Pascal -suunniteltiin nimenomaan ohjelmoinnin opetteluun. Nykyään Pascal on ns hybridikieli eli se on myös täysiverinen oliokieli. Eli on mahdollisuus edetä valitsemallasi tahdilla/tavalla.
Kokeile (Lazarus & FreePascal ovat avointa lähdekoodia)
http://linux.fi/index.php/Lazarus
https://sourceforge.net/projects/lazarus/
PS Mikähän muu kieli tarjoaa esim liukulukualueeksi: 1.9E-4951->1.1E4952.
Tai suurimmaksi kokonaisluvuksi 18446744073709551615 (perustietotyypeillä).
"Mikähän muu kieli tarjoaa esim liukulukualueeksi: 1.9E-4951->1.1E4952. Tai suurimmaksi kokonaisluvuksi 18446744073709551615 (perustietotyypeillä)."
Tästä se sinunkin ammattimaisuuden tasosi sitten kävi ilmi.
Eipä tuo tarjonnut kieltä missä suurin kokonaisluku on 32767. Näinhän tilanne joissakin kielissä ainakin aikoinaan oli/tai on :-)
"Eipä tuo tarjonnut kieltä missä suurin kokonaisluku on 32767. "
?? En ymmärrä. Ohjelmoinnin alkeiden opettelussa pärjää kielellä, jossa on suurin kokonaisluku on esim. 100.
Ei sillä ole merkitystä. Itse asiassa sellaisella kielellä, missä on vain kaksi erilaista kokonaislukuarvoa käytettävissä voi laskea minkälaisia ja kokoisia lukuja haluaa. (jos on mahdollisuus vielä määritellä omia tietotyyppejä, niin se onnistuu suhteellisen näppärästikin)
Eli yhdellä silmukalla periaatteessa pärjää jos se on ideana.
Mutta eikö ole järkevää käyttää sellaista kieltä mitä voi hyödyntää myös jatkossakin (jolla voi ratkaista monenlaisia ongelmia) .
While-silmukka riittää kielen silmukkarakenteeksi, mutta tietysti kieli tarvii muutakin rakennetta. Erilaisten asioiden "tarpeellisuutta" jossain kielessä voi hahmoittaa itselleen miettimällä miten kone suorittaa käännetyn ohjelman. Sillähän on käytössään vain pino ja joitakin aritmeettisia yms. operaatioita. Niillä mennään.
Ajatuksena oli siis kertoa mm se että kun tarvitset laskuissa tarkkuutta niin sen pystyt nopeasti ja helposti hyödyntämään Lazaruksella/Freepascal:lla.
Tutustu kieleen nimeltä Scheme. Siihen on sata ilmaista toteutusta, joten pääset halvalla kokeilemaan. Ei vie kuin vähän aikaa.
Kielen ansioita ovat helppous ja ilmaisuvoima. Vaikka et ikinä käyttäisi sitä "oikeassa työssä", opit sen kautta rakenteita, joita ei ole helppo oppia monien muiden kielten kautta. Niiden tunteminen tekee sinusta paremman ohjelmoijan melkein millä tahansa muulla kielellä.
http://www.schemers.org/
Täytyy lopuksi varoittaa, että joillekin tuon mianitun helppouden näkeminen kestää tovin. Katso kuitenkin ainakin missä kouluissa Schemeä käytetään opetuskielenä. Sillä lienee jotain painoarvoa.
PHP:n lisäksi voit katsella kieliä nimeltä Python ja Ruby webbituotannon kannalta. Ne käyvät muuhunkin toki. Niistä valitseminen on pitkälti makuasia: ota siis selvää vaihtoehdoistasi.
Schemenkin päälle on rakennettu webbikieli nimeltä Hop, jonka alustava versio julkaistiin aivan juuri.