discostu Skrevet 5. mars 2006 Del Skrevet 5. mars 2006 Hei, har tenkt lenge på å sette opp post om dette, men har ikke fått rotet meg til det enda.. Saken er den at jeg studerer informatikk, og der lærer man jo endel programmering. Språket som skolen valgte at vi skulle lære oss var selvfølgelig Java. Kjipt synes nå jeg, men måtte bare finne meg i det.. Etter noen år med "programmering" har jeg enda ikke lært meg noe særlig. Kan programmere bra "før" objektorientert. Etter vi har passert denne delen har det liksom bare gått nedover. Jeg føler at jeg bør gjøre noe snart hvis jeg skal ha sjangse i å få ståkarakter i faget. Så, har noen tips til motivasjon og hvordan jeg skal angripe "Java"? Har selvfølgelig en lærebok, men finner det ufattelig kjedelig å lese bøker. Btw, så det skal være sakt, jeg finner faktisk programmering interessant, føler at det er noe jeg vil lære meg, men finner bare ikke ork til å gjøre noe. Dessuten sliter jeg veldig med ideer til hva jeg skal programmere.. Lenke til kommentar
834HF42F242 Skrevet 6. mars 2006 Del Skrevet 6. mars 2006 Jeg sliter faktisk med samme problem som deg her. Henger ikke med i javafaget og er veldig tiltaksløs. Håper noen kommer med gode tips her. Lenke til kommentar
Skuggen Skrevet 6. mars 2006 Del Skrevet 6. mars 2006 (endret) Hvis du vil lære java ordentlig så kommer du nok desverre ikke unna å lese litt i en bok. Da jeg lærte meg Java så leste jeg en bok, og etter hvert kapittel prøvde jeg å forestille meg hva det jeg nettopp hadde lest kunne brukes til (bortsett fra å stå på eksamen ). Prøv å forestille deg f.eks et enkelt spill og hvordan de forskjellige funksjonene til java kan brukes der. Hvorfor er det en fordel med objekter som arver egenskaper/metoder? Hvorfor er det lurt å lage interfacer? Hvorfor bruke forskjellige datastrukturer? Hvorfor bruker man rekursjon i stedet for en loop? En ting er å kunne et programmeringsspråk "flytende", en helt annen ting er å skrive gode, strukturerte og lett utvidbare programmer. Det lærer man seg gjennom bøker, web tutorials og prøving og feiling. Et godt opplæringsprogram som brukes på universitetet mitt er BlueJ. Har ikke prøvd det selv, men en kamerat har fortalt meg at han syntes det var veldig nyttig for å forstå konseptet bak objektorientert programmering. Lykke til! PS! Et must når man driver med java er å lære seg å bruke Java API. Lurer du på en funksjon, konstant eller klasse så står det der. Endret 6. mars 2006 av Skuggen Lenke til kommentar
discostu Skrevet 6. mars 2006 Forfatter Del Skrevet 6. mars 2006 Er to av de tingene du nevner der jeg stusser veldig på. det ene er interfacer, jeg vet hva det er, men fatter absolutt ikke hvorfor og hva man kan bruke det til, for meg virker det helt ubrukelig.. Java API ja! Har titta litt på den, men skjønner somregel ikke en dritt. Hvordan skal jeg lære meg mer om den? Lenke til kommentar
CruellaDeVille Skrevet 6. mars 2006 Del Skrevet 6. mars 2006 det ene er interfacer, jeg vet hva det er, men fatter absolutt ikke hvorfor og hva man kan bruke det til, for meg virker det helt ubrukelig.. 5711076[/snapback] Java støtter arv, men bare fra en superklasse. Et interface kan være en måte å implementere multippel arv. Eksempelvis hvis du har en klasse Media, som er superklasse til DVD og CD. Så kan du ha et interface Utlån, hvor du har variabler som utlåner, utlånsdato osv. Jeg har skrevet litt om interface her: http://nibbler.no/blog/?p=157 Lenke til kommentar
___ Skrevet 6. mars 2006 Del Skrevet 6. mars 2006 Interface kan være vanskelig å forstå, det slet jeg også endel med i begynnelsen. Et interface kan sees på som en slags "kontrakt", i form av en samling metoder og konstant-deklarasjoner. Når en klasse implementerer et interface, så lover den å implementere alle metodene deklarert i interfacet. Hvis den ikke gjør det, vil ikke klassen kompilere. Werner Lenke til kommentar
OscarWoHA Skrevet 10. mars 2006 Del Skrevet 10. mars 2006 Jeg slutta. Skal ta det opp igjen til høsten. Samme problem som trådstarter. Skikkelig kjedelig fag Lenke til kommentar
zulo Skrevet 15. mars 2006 Del Skrevet 15. mars 2006 du kan nesten tenke på et interface som en kontrakt, hvis du tenker på f.eks intel så har de sikkert en interface/standard/spesifikasjon på sokkel 775 kjøleribbe og vifter. Hvis f.eks zalman skal lake en vifte og kjøleribba til sokkel 775 da så kan de følge spesifikasjonen til intel og da vil den garantert passe når du kjøper denne vifta til din pc(hvis du har en p4 sokkel 775 da). Da sier de at vifta "er en sokkel 775"-vifte. Når du implementerer et interface så sier du at klassen "er en".. Lenke til kommentar
dude80 Skrevet 17. mars 2006 Del Skrevet 17. mars 2006 Dette kan hjelpe på motivasjonen: Skal du ha jobb når du er ferdig, bør du ha A i alle programmeringsfagene. Det viktigste faget er kanskje algoritmer & datastrukturer. Lenke til kommentar
er@ser Skrevet 18. mars 2006 Del Skrevet 18. mars 2006 Min motivasjon for å lære java, var at jeg begynte med tomcat og lagde enkle hjemmesider i jsp og utvidet etterhvert... Det er gøy når du får resultater som du kan dele med andre. Dette har gitt meg mye lærdom og erfaring. Jeg driver nå www.team-norway.org som egentlig bare var en nettside som jeg lagde for lære java. Jeg bruker denne fremdeles for å eksperimentere med nye "pattern" og "eksperimentell-kode" osv... Ikke vær redd for å gjøre noe feil, det lærer du bare av! Jobber nå som systemutvikler innen webapplikasjoner på .NET plattformen(!?!), mye pga erfaringene jeg har skaffet meg gjennom å leke med java på web. Bare ha det gøy og programmere er mitt tips! Lenke til kommentar
Deelay Skrevet 18. mars 2006 Del Skrevet 18. mars 2006 (endret) Dette kan hjelpe på motivasjonen: Skal du ha jobb når du er ferdig, bør du ha A i alle programmeringsfagene. Det viktigste faget er kanskje algoritmer & datastrukturer. 5768234[/snapback] Spørs hva vi vil jobbe med da! Jeg, f.eks., blir snart ingeniør og må derfor gjennom java, algoritmer og sånt! Men jobber og vil jobbe senere med web eller hardware-retta ting! Er jo selvfølgelig også programmering i web, men ikke så "kjedelig"( mitt synspunkt) språk! EDIT: Ønsker synspunkt som kan gjøre java mer "morsomt" jeg og! Endret 18. mars 2006 av Oxido Lenke til kommentar
tommy18 Skrevet 19. mars 2006 Del Skrevet 19. mars 2006 Et godt råd er å ta programmeringsfagene seriøst, så seriøst at du får A i fagene. I webutvikling er det programmering, programmering og enda mere programmering. Og så litt design da. Design-biten kan noen som har et kurs fra IT-akademiet, eller noen som har gått andre "ingeniør-light"-kurs ta seg av. Du som ingeniør skal lage nettstedet dynamisk (implementere tilstand), og programmere logikken. En dataingeniør innen program- og systemutvikling skal være systematisk og nøyaktig, og det beviser du langt ved å ha et topp resultat fra kjernefagene, dvs programmeringsfag og algoritmer. Lykke til! Lenke til kommentar
aleh Skrevet 28. mars 2006 Del Skrevet 28. mars 2006 (endret) To conquer java you must become java. Jeg hadde også problemmer med java og objektorientering da jeg først skulle lære meg det. Kom meg ut av den krisen ved å jobbe med små enkle oppgaver. Helt basic ikke GUI engang, konsoll hele veien og etter 10-11 sånne oppgaver så fikk jeg et sikkelig aha! opplevelse. Det gikk helt opp for meg. Etter det var det egentlig ikke noe forskjell mellom de 11 små oppgavene eller en stor. Samme gjelder forskjellige språk hvis man kan programere i java så kan ikke feks. C# være altfor vanskelig. Poenget er at det er viktig å jobbe med java for å bli bedre og det er også viktig å forstå hva er det man koder egentlig. Jeg tror denne forståelsen kommer når man løser et problem som man ikke viste løsningen på når man begynte. Etterhvert vil man ha nok erfaring til å kunne raskt og effektivt løse de fleste oppgaver. Endret 28. mars 2006 av aleh Lenke til kommentar
BMP Skrevet 28. mars 2006 Del Skrevet 28. mars 2006 Bruk litt mindre tid hver dag paa det som er tungt eller kjedelig! Men bruk den tiden mer effektivt, dvs. at du ikke diller med andre ting mens du gjor lekser eller oppgaver da faar du mere tid til kjekke ting som kansje gir deg litt mer overskudd og guts. Og kansje det viktigste som er nevnt tidligere, gjoer flere oppgaver som ikke er saa vanskelige. Lenke til kommentar
dayslepr Skrevet 28. mars 2006 Del Skrevet 28. mars 2006 beste forslaget ever: jobb et år; det er en stor sjanse for at du får en drittjobb, og etter det er det ikke noe mer igjen av deg bortsett fra en hel masse motivasjon (eller du kan være heldig å finne noe du liker - og det er jo også bra) Lenke til kommentar
blackbrrd Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 (endret) Litt av problemet med å prøve å lære seg å programmere er at man ofte lærer tungvinte måter å gjøre ting på for å forstå konsepter. Ikke noen god ide spør du meg. En ting som du garantert får bruk for hvis du skal bruke java er at du må kommunisere med databaser. Hvis du er litt newbie så kan det være en ganske stor utfordring å få til, men når du har fått det til så har du ihvertfall lært noe nyttig. Den vanligste måten å kommunisere med databaser på er ved bruk av jdbc og sql setninger. Når du har forstått hvordan det fungerer så kan du prøve å bruke en ORM (Object Relation Mapper) sånn som hibernate (www.hibernate.org). En ORM gjør at du rimelig automatisk lærer deg å bruke objekter En god gratis database som du kan kjøre på windows og som fungerer godt med jdbc/hibernate er postgres. Du får tak i den på www.postgres.org Hvis du fortsatt sliter med å se poenget så kan du jo prøve å lage dynamiske websider. En gratis webserver for servlets/jsp (skrevet i java) finner du på http://tomcat.apache.org/ Min erfaring er at i arbeidslivet så er det mye dataflyt og lite logikk. Oppgaver man får under utdanning er gjerne tunge på logikk og lette på dataflyt. Ser ikke helt hva de tenker med Interfaces er noe jeg har endt opp med å bruke når jeg skal prøve å gjenbruke kode. La oss si at jeg har to ordretyper (klasser) Mobil og PC, jeg har et Notat panel (klasse) som man skal kunne legges til i Mobil og PC vinduene. Istedetfor at panelet sjekker om den er lagt til i Mobil eller PC klassen og så kalle metoden for å hente ordrenr så kan man definere ett inteface Ordre som har metoden public int getOrdernumber(). Mobil og PC klassene implementerer det interfacet og jeg kan da i Notat panelet (klassen) bare kalle på vinduet det ligger (Mobil eller PC klassen) sin getOrdernumber() metode, uten å vite om det er en PC eller Mobil notatet hører til. Det høres kanskje ikke så vanvittig arbeidsbesparende ut, helt til du har 23 ordretyper og hvis du ikke hadde brukt interfaces så måtte du i Notat panelet hatt en if/elseif struktur med 23 sammenligninger på hvilket panel den holdt til i og så kallt den aktuelle metoden for å hente ut ordrenr. Ett litt dårlig eksempel, ettersom implementasjonen i Mobil og PC klassen nok er lik, men, interfaces blir som oftest brukt når implementasjonen i de forskjellige klassene er forskjellig... Endret 30. mars 2006 av blackbrrd Lenke til kommentar
___ Skrevet 30. mars 2006 Del Skrevet 30. mars 2006 Når du har forstått hvordan det fungerer så kan du prøve å bruke en ORM (Object Relation Mapper) sånn som hibernate (www.hibernate.org). En ORM gjør at du rimelig automatisk lærer deg å bruke objekter Hibernate er nok *altfor* tung materie for vår umotiverte venn. Han har nok adskillige trappetrinn igjen å gå før han bør begynne å snuse på det. I det minste bør han lære OO FØR han begynner med Hibernate. Werner Lenke til kommentar
blackbrrd Skrevet 31. mars 2006 Del Skrevet 31. mars 2006 Ikke vær så pessimistisk nå Å følge oppskrifter på nett på hvordan man kan gjøre ting fungerer ofte ganske bra spør du meg. Synes det er en bedre måte å lære på enn å lese i bøker Mente bare å komme med eksempler på hvor man faktisk bruker objekt orientert programmering. I diverse oppgaver på universiteter etc, så fungerer gjerne funksjonsorientert programmering like bra... Det gjør det ikke enklere å lære seg OO. Lenke til kommentar
siDDis Skrevet 9. april 2006 Del Skrevet 9. april 2006 (endret) Kan karakterer vera så viktig når omtrent alle som fekk A eller B det første året på kurset mitt har allerede hoppa av studiet fordi det blei for vanskeleg mens eg som bare får E føler at eg egentleg surfer igjennom heile greia ganske fint? Blir bare sur fordi eg føler eg får altfor dårlege karakterer til eksamenane men pytt pytt, eg kjem meg jo vidare. Min motivasjon i programmering er for det meste spel/media/grafikk og databaser. Det er to ting eg liker veldig godt. Har i det siste handla bøker som dekker PostgreSQL, PHP start og videregåande, SDL spelprogrammering, OpenGL og OpenGL shading, C++ ansi start og videregående og design patterns. Og alle dei har ingenting å gjere med studiet mitt. Men poenget med å studere er jo å lære. Ikkje få gode karakterer. Får sjå om eg får jobb med bare E'er når eg er ferdig. Det blir jo snart eindel open source prosjekter å putte på CVen og Endret 9. april 2006 av siDDIs Lenke til kommentar
Patton Skrevet 13. april 2006 Del Skrevet 13. april 2006 (endret) Interface i den "virkelige verden" blir veldig ofte brukt hvis du oensker at noen andre skal implementere en del av programmet ditt. Du definerer et interface, dokumenterer hva hver enkel metode skal gjoere, og de andre programmerer dette. Et veldig godt eksempel er database i java. java.sql.Connection er et interface definert av Sun. Alle database-firmaer som oensker aa gjoere JDBC (java database) tilgjengelig for en java programmerer maa implementere dette interfacet. Du som programmerer driter egentlig i hvordan interfacet implementeres, bare metodene gjoer jobben sin naar du bruker java.sql.Connection. Faar aa gjoere en sql-query, trenger du en Statement fra klassen Connection public Statement createStatement() Statement er ogsaa et interface, ser klin lik ut enten det kommer fra Oracle, MySQL osv., men er under overflaten annerledes. Igjen er dette deg revnendes likegyldig, klassen bak interfacet skal gjoer jobben sin. public ResultSet executeQuery(String aQuery) Denne metoden i interfacet Statement utfoerer en SQL-spoerring og leverer tilbake interfacet ResultSet. Jepp, man bruker stort sett bare interfacer i java.sql. ResultSet inneholder metoder for aa hente ut informasjonen i Queryen din. Naa lurer du paa kanskje hvor du faar en instans av interfacet java.sql.Connection. Som kjent kan man ikke skrive : Connection myConnection = new Connection(); Java bruker noe som heter dynamisk lading. Ikke noe du trenger aa bry deg som mye om akkurat naa, la oss si at det blir gjort med svart magi ved hjelp av klassen java.sql.DriverManager: public Connection getConnection(String url) Jepp, roten til alt interface-virvaret er en klasse. DriverManager-klassen "vet" om den skal returnere en Oracle-Connection, eller en MySQL-connection osv. DriverManager og interfacene er laget av Sun, mens klassene som gjoer alt database-arbeidet blir laget av de forskjellige database-bedriftene. Endret 13. april 2006 av Patton Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå