Permalänk
Medlem

Nybörjare, Byta från java?

Hej jag började kolla på Java för ett tag sen och nu börjar jag känna att det kanske är lite svårt...?
Har kollat lite på python och det ser ut som att syntaxen är lite enklare eller förståeligare.
Saken är den att jag har köpt en bok, Java med swing.
Så min fråga till er lite mer rutinerade/kunniga är, borde jag kanske börja lite smått med python för att efter python gå tillbaka och fortsätta med java? Eller borde jag kämpa på med java? Känns lite waste att byta språk när jag har köpt en ny bok.

Ni som tycker att jag borde fortsätta skulle ni kanske kunna ge något tips, någon hemsida eller youtube kanal som kanske kan underlätta?
MVH Leo.

Permalänk
Datavetare

Vad upplever du som svårt i Java och eventuellt lättare i Python? Tittar man enbart på mängden konstruktioner i respektive språk skulle jag nog hävda att Java är ett relativt enkelt språk (och denna enkelhet är något som är en stor orsak till Javas popularitet), Java har färre språkmässiga konstruktioner än de flesta andra språk (undantaget är Lisp som typiskt är extremt enkelt när det kommer till själva språkfunktionerna).

Visst har Java, som i princip alla statiskt typade och kompilerade språk, mer krav i den grundläggande strukturen för program. Dynamiskt typade skriptspråk som Python har nära nog ingen "boilerplate" för att komma igång, det kanske känns lite enklare när man precis startar men redan vid relativ enkla program brukar den struktur och den extra syntax-/typ-check man får av kompilatorn i statiskt typade språk ge en större fördel än vad man eventuellt kan få av att behöva skriva lite mindre i ett dynamiskt typat språk.

Inom vissa domäner finns stora fördelar med dynamiskt typade språk, men är målet "bara" att lära sig programmering undrar jag om det åter igen inte är en fördel att ha ett statiskt typat språk + en kompilator som ger snabb feedback på uppenbara misstag.

Kanske börja med en bok som lär ut grunderna i Java i stället för att börja med en specifik domän (Swing). Head-first serien tror jag är väldigt bra för nybörjare, men tror inte den är fritt tillgänglig på nätet. O’Reilly böckerna gillar jag själv och noterar att Learning Java finns fritt att ladda ner, har dock inte läst den boken själv så kan inte gå i god för att det är en bra bok.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Hedersmedlem

Jag tycker att du ska fortsätta med Java. Dynamiskt typade språk är precis som Yoshman säger lite emklare att komma igång med, men man spenderar oftast mindre tid med runtime-fel och logiska fel än i statiskt typade språk.

Mitt tips när det gäller Java är att tidigt börja lära sig vad objektorientering innebär. Man måste verkligen förstå det för att fullt ut kunna förstå Java-kod.

Permalänk
Medlem

Okej tack så mycket för era svar dom gjorde mig något klockare och sätter iväg mig i en ny riktning! Kollade på hela Mr1Buyings serie på tuben och fick med mig lite grunder därifrån(tror jag lär mig bättre av att kolla på saker). Men att kolla på en enklare slags bok då! Ska även kolla det du länkade Yoshman.

Permalänk
Medlem

Jag kan rekommendera dig en bok som heter "Java - steg för steg" (är skriven av samma författare som java med swing, Jan Skansholm).
Den lär ut i lite lugnare tempo och varvar med många övningar så man får lösa lämpliga problem baserat på vad man precis läst.
Jag tycker övningarna är lärorika + att det ger ett litet avbrott så att det inte bara blir att nöta in ny information.

Permalänk
Skrivet av leoNilsson:

Okej tack så mycket för era svar dom gjorde mig något klockare och sätter iväg mig i en ny riktning! Kollade på hela Mr1Buyings serie på tuben och fick med mig lite grunder därifrån(tror jag lär mig bättre av att kolla på saker). Men att kolla på en enklare slags bok då! Ska även kolla det du länkade Yoshman.

Kan annars rekommendera Objektorienterad Programmering och Java, brukar finnas på biblioteken så man kan låna den och titta lite först om man tror den passar en.

Visa signatur

Corsair Vengeance LPX 4x8GB DDR4 2666MHz CL16 | Intel Core i7 6700 3,4 GHz 8MB | MSI Z170A KRAIT GAMING | Corsair Force Series 3 120 GB | Seagate SSHD Desktop 2 TB 7200 RPM 3,5" | Creative Sound Blaster Z PCIe | Western Digital 500 GB | Samsung Writemaster | Corsair TX750 V2 750 W | EVGA GeForce GTX 970 4GB SSC ACX 2.0+| Fractal Design Define R5 (Svart)

Permalänk
Medlem

Lika bra att fortsätta med Java. Det kommer inte vara lätt att programmera i början oavsett språk och syntaxen är det lätta. Fördelen enligt mig med Java är att det finns väldigt mycket guider på nätet.

Permalänk
Avstängd

Javax med Swing hade vi som förstabok i skolan (jag antar att det är den du har, av Skansholm), den är ganska grundläggande. Java är ett språk som många börjar med då det är relativt lättförståeligt, används mycket ute i verkligheten och för att det finns väldiga resurser online (vilket visserligen gäller rätt så många språk idag).

När man pratar moderna objektorienterade språk så är de ganska likartade egentligen, syntax skiljer sig men funktionsmässigt så brukar de vara ganska likvärdiga i alla fall på den nivå man kodar på när man är nybörjare. Då anser jag att det viktigaste är att lära sig att koda och mindre viktigt vilket språk man gör det i. Sen när du känner dig bekväm i ett språk så är det mycket lättare att sätta igång med något annat och då mest behöva lära sig syntaxen och vad som skiljer.

Jag jobbar exempelvis nästan uteslutande med C# (och ASP.Net och T-SQL) men jag har egentligen bara pluggat Java (och ren xHTML och SQLite) förutom en kort sommarkurs i spelutveckling i XNA som jag inte ens läste klart typ. Det fungerar bra ändå då programmeringstänket är i princip detsamma. Sen är ju C# och Java väldigt lika, steget över till typ Ruby eller så är väl lite större förstås.

Alltså: Välj ett språk. Lär dig grunderna i objektorienterad programmering; klasser; IF-sates; While-loopar; konstruktorer; vad en instans är; variablar och vad som skiljer en privat från en public och så; osv. Experimentera en del, skapa program som gör något och så. Sen kan du börja fundera på andra språk, och då kanske kolla typ jobbannonser vad som efterfrågas men läs också på lite om språket så att det är något som inte ligger för långt från vad du kan och är intresserad av. Haskell eller Erlang är ju roliga liksom men Java (eller liknande) hjälper dig inte så mycket och efterfrågan på de som kan dessa språk är ju inte så stor. Bättre då med typ Python.

Permalänk
Medlem
Skrivet av Yoshman:

Vad upplever du som svårt i Java och eventuellt lättare i Python? Tittar man enbart på mängden konstruktioner i respektive språk skulle jag nog hävda att Java är ett relativt enkelt språk (och denna enkelhet är något som är en stor orsak till Javas popularitet), Java har färre språkmässiga konstruktioner än de flesta andra språk (undantaget är Lisp som typiskt är extremt enkelt när det kommer till själva språkfunktionerna).

Visst har Java, som i princip alla statiskt typade och kompilerade språk, mer krav i den grundläggande strukturen för program. Dynamiskt typade skriptspråk som Python har nära nog ingen "boilerplate" för att komma igång, det kanske känns lite enklare när man precis startar men redan vid relativ enkla program brukar den struktur och den extra syntax-/typ-check man får av kompilatorn i statiskt typade språk ge en större fördel än vad man eventuellt kan få av att behöva skriva lite mindre i ett dynamiskt typat språk.

Inom vissa domäner finns stora fördelar med dynamiskt typade språk, men är målet "bara" att lära sig programmering undrar jag om det åter igen inte är en fördel att ha ett statiskt typat språk + en kompilator som ger snabb feedback på uppenbara misstag.

Kanske börja med en bok som lär ut grunderna i Java i stället för att börja med en specifik domän (Swing). Head-first serien tror jag är väldigt bra för nybörjare, men tror inte den är fritt tillgänglig på nätet. O’Reilly böckerna gillar jag själv och noterar att Learning Java finns fritt att ladda ner, har dock inte läst den boken själv så kan inte gå i god för att det är en bra bok.

Skrivet av widL:

Jag tycker att du ska fortsätta med Java. Dynamiskt typade språk är precis som Yoshman säger lite emklare att komma igång med, men man spenderar oftast mindre tid med runtime-fel och logiska fel än i statiskt typade språk.

Mitt tips när det gäller Java är att tidigt börja lära sig vad objektorientering innebär. Man måste verkligen förstå det för att fullt ut kunna förstå Java-kod.

Skrivet av snajk:

Javax med Swing hade vi som förstabok i skolan (jag antar att det är den du har, av Skansholm), den är ganska grundläggande. Java är ett språk som många börjar med då det är relativt lättförståeligt, används mycket ute i verkligheten och för att det finns väldiga resurser online (vilket visserligen gäller rätt så många språk idag).

När man pratar moderna objektorienterade språk så är de ganska likartade egentligen, syntax skiljer sig men funktionsmässigt så brukar de vara ganska likvärdiga i alla fall på den nivå man kodar på när man är nybörjare. Då anser jag att det viktigaste är att lära sig att koda och mindre viktigt vilket språk man gör det i. Sen när du känner dig bekväm i ett språk så är det mycket lättare att sätta igång med något annat och då mest behöva lära sig syntaxen och vad som skiljer.

Jag jobbar exempelvis nästan uteslutande med C# (och ASP.Net och T-SQL) men jag har egentligen bara pluggat Java (och ren xHTML och SQLite) förutom en kort sommarkurs i spelutveckling i XNA som jag inte ens läste klart typ. Det fungerar bra ändå då programmeringstänket är i princip detsamma. Sen är ju C# och Java väldigt lika, steget över till typ Ruby eller så är väl lite större förstås.

Alltså: Välj ett språk. Lär dig grunderna i objektorienterad programmering; klasser; IF-sates; While-loopar; konstruktorer; vad en instans är; variablar och vad som skiljer en privat från en public och så; osv. Experimentera en del, skapa program som gör något och så. Sen kan du börja fundera på andra språk, och då kanske kolla typ jobbannonser vad som efterfrågas men läs också på lite om språket så att det är något som inte ligger för långt från vad du kan och är intresserad av. Haskell eller Erlang är ju roliga liksom men Java (eller liknande) hjälper dig inte så mycket och efterfrågan på de som kan dessa språk är ju inte så stor. Bättre då med typ Python.

Ja jag har den! kanske gick igenom den lite för fort(har inte läst igenom hela) men jag får fortsätta med den ett tag till! Jag kan looparna och sen arv vilket ska vara jätteviktigt i Java, lite GUI, private kan jag också IF satserna sitter som ett smäck såklart gör variablarna också det! Har experimenterat väldigt mycket faktiskt har gjort alla dom där övningsuppgifterna i Swing boken fram till kapitel 6 där jag inte har kommit så långt då det handlar om GUI. Men jag känner att jag kan för lite för att byta språk.. så får hålla i ett tag till iaf!!

Permalänk
Datavetare

När du väl kommer till Swing så kan det vara bra att läsa på lite om nyheterna i Java8 (om nu inte boken redan inkluderar Java8) och hur t.ex. anonyma funktioner (lambdauttryck) kan förenkla kod du associerar med olika händelser som att en knapp trycks ner, eller liknande.

Ett sådant exempel hittar du här.

Visa signatur

Care About Your Craft: Why spend your life developing software unless you care about doing it well? - The Pragmatic Programmer

Permalänk
Medlem

Börja med python då. Python är väldigt enkelt och lätt att förstå då du bemästrar det kan du börja med Java igen eller om nu då har intresserat dig av någon annat tills dess

Permalänk
Medlem
Skrivet av Yoshman:

När du väl kommer till Swing så kan det vara bra att läsa på lite om nyheterna i Java8 (om nu inte boken redan inkluderar Java8) och hur t.ex. anonyma funktioner (lambdauttryck) kan förenkla kod du associerar med olika händelser som att en knapp trycks ner, eller liknande.

Ett sådant exempel hittar du här.

Tackar!

Permalänk

Jag tycker fortfarande du skall ta dina första programmerarsteg med hjälp av python. Det är inte utan anledning det används i massor av online-kurser (som inte handlar om att lära sig programmera i ett språk utan man skriver program för att lösa problem i det kursen egentligen handlar om).