Gå til innhold

Aldri programmert før - veldig innstilt på å lære meg Java. Hvilke bøker?


Anbefalte innlegg

Videoannonse
Annonse

[...] java mangler [...] closures [...]

 

Egentlig ikke relevant, og du har jo i praksis rett. Men uansett.

 

 

Java har faktisk støtte for closures, men ikke «fulle» closures. Et anonymt objekt kan referere til bindinger innført av metodekall i sitt leksikale skop, så lenge de er final.

 

class Test {
public static void main(String [] args) {
	Runnable r = Test.test("Hello world!");
	r.run();
}

static Runnable test(final String str) {
	return new Runnable() {
	public void run() {
	System.out.println(str);
	}
	};
}
}

(Teite code-tag ødelegger jo indentering :( )

Lenke til kommentar
Hva er egentlig bedre i Python enn Java for nybegynnere?

Java er vel mye mere verbose enn python,dette gjør det verre og forstå for nybegynnere.

Lange deklarasjoner for list/dictionaries.

 

Python.

d = {}
d["my bowling scores"] = [120, 140, 165]

 

Java.

Map<String, List<Integer>> d = new HashMap<String, List<Integer>>();
List<Integer> lst = new LinkedList<Integer>();
lst.add(120);
lst.add(140);
lst.add(165);
d.put("my bowling scores", lst);

 

Litt for mye skriving spør du meg for og legg noe data inn et dictionary/HashMap.

Litt flere eksempler.

Java vs python

Nå synes jeg ikke java er et dårilg språk,nå er vel jeg ikke objektiv fordi jeg er veldig fan av python og synes det er et bedere språk.

 

 

Det viktigeste er at man starter med programmering og det er alltid greit og se på flere muligheter/språk når man er ny innen programmering.

Lenke til kommentar

Her har du jo et tilfelle som slår begge veier. Python er lite, konsist og enkelt, men Java er verbose, større og mer beskrivende. I eksempelet over vil nok ikke en nybegynner forstå mye. Du har en d. Hva er d? Og du setter d["my bowling scores"] = [120, 140, 165]. Hva vil det si?

 

I Java derimot vil du se (selv om det kanskje er litt uoversiktlig) at du lager en Map som har en String, og en list av integers. Du lager så en ny liste, og legger til i den lista poeng. Så legger du lista til Map objektet.

Det er mye nærmere hva man ville gjort i virkeligheten dersom det var faktiske objekter, altså lettere å se for seg for en som ikke er like inn i programmeringsspråket. Så jeg vil påstå at et mer verbose språk gjør det enklere å forstå.

Lenke til kommentar
Det er mye nærmere hva man ville gjort i virkeligheten dersom det var faktiske objekter, altså lettere å se for seg for en som ikke er like inn i programmeringsspråket. Så jeg vil påstå at et mer verbose språk gjør det enklere å forstå.

Jeg er nok uenig med i dette,greit nok det.

Jeg liker ikke noe som komplisere ting hverken i design eller programmeringsspråk.

 

Hva er d? Og du setter d["my bowling scores"] = [120, 140, 165]. Hva vil det si?

Viss enn skulle forklare dette til noen som aldrig har programmert.

Vise det live i IDLE.

>>> #Hva er d?
>>> d = {}
>>> d 
{} #Tomt dictionary
>>> type(d)
<type 'dict'>

>>> #d er et dictionary som kan bestå av nøkkel og verdi
>>> d {'my bowling scores': [120, 140, 165]}
{'my bowling scores': [120, 140, 165]}

>>>#Vi har lagd inn nøkkel og verdi
>>> dir(d)  #viser alle metoder for dictionary
>>>#Tester en par av metodene,tar ut nøkkel og verdi
>>> d.keys()
['my bowling scores']  #Nøkkel
>>> d.values()
[[120, 140, 165]]      #Verdi

Skulle vel forklare det greit.

 

Alle datatyper finnes selvfølgelig i python,men man deklarer dem aldrig.

Man lærer fort om datatyper selv om man aldrig deklarer dem som i mange andre språk.

Feilmelding gir som regel et klart svar.

 

>>> a = 5
>>> b = '4'
>>> x = a + b
Traceback (most recent call last):
 File "<interactive input>", line 1, in <module>
TypeError: unsupported operand type(s) for +: 'int' and 'str'

>>> #Da fikser man det
>>> a = 5
>>> b = '4'
>>> x = a + int(b)
>>> x
9

Endret av SNIPPSAT
Lenke til kommentar

Klart Java er mer verbost enn Python, sistnevnte er dynamisk typet. Allikevel er ditt eksempel og de på den sammenligningssiden du lenker til relativt intetsigende. Skal man sammenligne programmeringspråk på denne måten, noe som i og for seg er lite givende, må man komme med ordentlige eksempler. Lage en liste med tre ting i, eller skrive en linje til skjermen er meningsløse operasjoner. Ordentlige programmer som kjøres av ordentlige brukere i ordentlige systemer blir noe helt annet, og er en mye mer fornuftig sammenligning. I tillegg kommer alle andre mulige faktorer, som tilgjengelig kompetanse, tilgjengelige biblioteker, tidligere kode, integrering i tidligere systemer, portabilitet osv osv. Siden du linker til sammenligner Python mot Java på en veldig hildret, ad hoc og tåpelig måte. Klart at et skrujern er bedre enn en sag når man skal skru i skruer, men av og til må man sage også.

 

DawnDusk: Jeg anbefaler Effective Java av Joshua Bloch, ikke som første bok i Java, men andre. Når det gjelder første bok har jeg ingen gode erfaringer personlig, men jeg hørt gode ting om O'Reilly-versjonen. Glem ikke at disse ofte kan lånes på biblioteker. Da er det ikke så kjipt hvis boka ikke passet deg eller din stil.

Endret av Johan
Lenke til kommentar

At man finner en bok med en stil som man liker er veldig viktig. Man kan lære mye av en tørr og kjedelig bok - men man kan lære mer av en bok som ikke er fullt så kjedelig.

 

For å ta en liten sammenligning, se disse to linkenehttp://mislav.uniqpath.com/poignant-guide/ og http://ruby-doc.org/docs/ProgrammingRuby/ - begge starter fra scratch med ruby, den ene er skrevet med galskap - og inkluderer tegneserier, den andre er skrevet slik en god språkinnføring skal skrives. Jeg ble mer revet med av føstnevnte, selv om sistnevnte er best pedagogisk og faglig sett.

  • Liker 1
Lenke til kommentar
  • 2 måneder senere...

Jeg har strengt tatt bare vært borti en bok, men "Objects First with Java" er jeg fornøyd med. Den gir deg grunnleggende forklaringer og diskusjoner rundt hvordan og hvorfor ting bør kodes, organiseres osv. på den og den måten. Boken gir innsikt i både gode og dårlige løsninger og har lært meg mye.

 

Boken er på 500 sider og har svært mange oppgaver i seg, det gjør at man til tider kan føle at man står fast på en side ganske lenge om gangen hvis man gjør oppgavene, noe det oppfordres veldig til å gjøre. Til tider kan boken og oppleves som i overkant grundig, men det er hvertfall med på å gjøre slik at de aller fleste bør kunne lære seg dette uten problem hvis de tar seg tid til det.

 

Er fremdeles ikke ferdig med hele boken, men godt over halvveis. I boken er det som sagt veldig mange oppgaver, en av de store ulempene med den (i mine øyne) er at skribentene ikke har gjort løsningsforslagene/fasiten allment tilgjengelig, den er kun tilgjengelig for lærere. Dermed vil man med andre ord ikke alltid få svar fra boken om man har gjort det på den "riktige" eller "gale" måten eller om man har kommet opp med en god forklaring på noe boken ber deg forklare. Med det sagt kan det jo hende du finner løsningene et sted på internettet. ;)

 

Oppgavene som finnes i boken kan ikke gjøres uten at man benytter seg av CD-en som følger med boken, der ligger utgangspunktet for alle oppgavene som du blir bedt om å gjøre underveis i boken, noen ganger finnes det og en endelig versjon av det programmet du har blitt bedt om å utvide tilgjengelig og dermed vil du ha muligheten til å se hvordan bokens skribenter sin løsning ser ut.

 

En ting som jeg vet noen har hatt et problem med er at for å kunne ha noen nytte av boken (hvertfall i starten) må du bruke programmet BlueJ, og det er det bokens skribenter regner med at du kommer til å bruke utover i hele læringsprosessen. Selv har jeg ikke helt forstått hvorfor det er et problem for en del, men det er kanskje fordi jeg ikke har beveget meg over i et annet program ennå. ;)

 

Man trenger ikke være bekymret for om man har Mac eller Windows. Programmet finnes til mange operativsystem.

 

http://www.bluej.org/index.html

http://www.bluej.org/objects-first/

 

Boken brukes som lærebok/pensumbok ved Universitetet i Bergen og det er grunnen til at jeg har brukt den.

Lenke til kommentar

Programmering i java er en bok på norsk som er skrevet for at folk skal lære seg java fra scratch.

Kunne ikke noe java før jeg begynte på HiST, og det er denne boka vi bruker der.

Personlig syns jeg denne boken er ganske god, og lærer deg ting grundig fra begynnelsen. Også krydra med en del oppgaver og eksempler for å illustrere.

Utenom det sier jeg bare lykke til med java'en til trådstarter

  • Liker 1
Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
×
×
  • Opprett ny...