How did you learn Java?
I know that learning Java involves a lot of blood sweat and tears. i would just like to hear from the programmers out there. I'm talking about the ones that can debug all of the newbie problems. I am wondering if it is worth it to take Programming as a major in college or should I should go to selected boot camps. Or is it best to just learn from a book?
Anyway, I want to make this as freeform as possible because I am curious as to how others learn Java.
Thanks,
[487 byte] By [
pberardi1a] at [2007-11-27 8:11:56]

Self-taught through books, practice, articles, tests, practice, participation on forums, experimentation, study, professional experience, and practice.:o)~
Boot camps? Anything is better than going to boot camp.
I learned through experience. I never had any classes; I just learned by asking questions on these forums, looking at the tutorials, and looking at the API docs.
I would just get a task to do a certain thing and learn whatever pertained to it.
Due to this, I don't have the strongest knowledge of the bare basics, but I have certainly picked up enough over the 7 or so months I've been doing Java that I know them pretty well now.
> Self-taught through books, practice, articles, tests,
> practice, participation on forums, experimentation,
> study, professional experience, and practice.
>
> :o)
>
> ~
same here, excluding the professional experience. I do freelance job for several (online) companies but i don't count that as "professional experience"
I pretended to be a sexy girl and asked a lot of dumbarsed questions
> I pretended to be a sexy girl and asked a lot of> dumbarsed questionsDid you rec'v any comments about soapy wanks and for loops?
> Self-taught through books, practice, articles, tests,
> practice, participation on forums, experimentation,
> study, professional experience, and practice.
Same here.
@Op. It's usually pretty easy to learn new languages when you already know a few ones. The way of thinking is pretty much the same.
kajbja at 2007-7-12 19:56:10 >

I learnt C++. Since Java is C++ without the hard bits, it wasn't much of a leap.Learning C++ was akin to tearing my eyes out using my own elbows though.
I didn't really "learn" it so much as I had the knowledge bestowed upon me by a shadowy figure at a crossroads in Mississippi.
jverda at 2007-7-12 19:56:10 >

They say that learning your first language is the hardest and each subsequent language becomes easier. Basically with the first language you are learning the language as well as the concepts. After that all you need to learn is the syntax of the new language. Theoretically!
My first experience with programming was at high school where we scratched some marks on cards. Sent them off to a computer facility across town and a week later got back our printouts (if the program was successful). No idea what language it was.
After I got my first job I bought myself a Commodore 64 and self taught myself Basic.
At Uni I learnt Ada (pre OO)
Then C/C++ (as well as a few scipting languages like perl)
A little bit of Haskell and Prolog
Then Java and I am still learning.
> I didn't really "learn" it so much as I had the> knowledge bestowed upon me by a shadowy figure at a> crossroads in Mississippi.Oh my GOD! ME TOO!!! How bizarre is that?
> > I didn't really "learn" it so much as I had the> > knowledge bestowed upon me by a shadowy figure at> a> > crossroads in Mississippi.> > Oh my GOD! ME TOO!!! How bizarre is that?It was probably Bill Gates.
Thanks for all the serious responses. I have about one semester of high school basic, i took html intro, and VB intro... You can say that I am a brand new programmer, now learning java. This is the first time that I am being exposed to methods, parameters, arguments, data structures. I really feel overwhelmed.
Ive bought a few books and scour the internet for tutorials, its very difficult for me. I have been on java for about eleven weeks now. I am beginning to get a bit discouraged and just wanted to see what other people have experienced.
Im sure some of you all know me by my stupid questions.
Thanks again,
whats wrong with mississippi, i live there lol
the best way to learn java is get a book analyze the code while she is giving you a blow job
> It was probably Bill Gates.
While he may be the devil incarnate, you and I know very well that he wouldn't pass on inhuman java coding skills, no not java. HIS disciples will be coding in .NET.
And they will meet the java coders on a field near the hill of Megiddo....
BTW, I learned java via Vulcan Mind Meld
I learn Teh Basics ™ at university, which really meant I learnt a bit of syntax, and how to extend JFrame. Then I abandoned Java altogether for 4 years and wrote 'C' instead. Then I jacked my job in, got a Java job with a startup and jumped in at the deep end*.
But I wouldn't recommend that approach
*note that this new employer was aware of my inexperience with Java. Blagging jobs you can't do isn't cool, kids :-)
I never learnt Java. I just post stuff I found at geekinterview.com in reply, and hope it matches the question.
> I learn Teh Basics at university, which
> really meant I learnt a bit of syntax, and how to
> extend JFrame. Then I abandoned Java altogether for 4
> years and wrote 'C' instead.
> ...
You do have a CS background? I thought you studied philosophy at university.
> > I learn Teh Basics at university, which
> > really meant I learnt a bit of syntax, and how to
> > extend JFrame. Then I abandoned Java altogether for
> 4
> > years and wrote 'C' instead.
> > ...
>
> You do have a CS background? I thought you
> studied philosophy at university.
Huh? Not sure if that's an insult or not :-) Nope, no philosophy here. Not really a CS background, either. A business IT diploma is all, didn't really qualify as a "proper" CS course IMHO
> ...
> Huh? Not sure if that's an insult or not :-) Nope,
> no philosophy here. Not really a CS background,
> either. A business IT diploma is all, didn't really
> qualify as a "proper" CS course IMHO
Definitely not meant as one!
A colleague of mine has a philosophy degree. He is a decent software developer of whom I learn a lot.
; )
I really thought I read it a while back about you having such a background: must've been the Grolsch playing games with me.
Hi,
If you could learn by yourself it's better or else, if someone is there to give Knowledge Transfer(KT) to you, you could save a lot of time and concentrate on higher level areas.
But, you go ahead with the "Core Java" volumes 1 and 2 from Pearson Edition. It has really substantial knowledge
> > After I got my first job I bought myself a Commodore> 64 and self taught myself Basic.> HAi, I am very much wanting 2 lern teh jav but am hving 1 doubt.Wher du i get Comdore 64?
The best way to learn Java is by:
1) getting books. I suggest "Java for Dummies" (don't be turned off by the name), "Learn Java in 24 Hours", and the examcram books. These can be purchased from Nerdbooks.com.
2) download the SDK from Sun.
3) Do all of the practice examples and answer all of the questions at the end of chapters.
4) practice programming as much as you can. Many of the concepts such as threads and collections will seem too complicated at first,but they become clearer with practice.
5) avoid boot camps. Anyone who tells you that you can learnJava in five days or less does not know what they are talking about.
6)Let me stress this as strongly as possible: give yourself time for it all to sink in.
> The best way to learn Java is by:
> 1) getting books. I suggest "Java for Dummies"
> (don't be turned off by the name), "Learn Java in 24
> Hours", and the examcram books. These can be
> purchased from Nerdbooks.com.
> 2) download the SDK from Sun.
> 3) Do all of the practice examples and answer all of
> the questions at the end of chapters.
The problem is: it just teaches the Java syntax. It does not teach you how to program, and it most certainly doesn't teach you OO and app design, which IMO is most important.
> The best way to learn Java is by:
> 1) getting books. I suggest "Java for Dummies"
> (don't be turned off by the name), "Learn Java in 24
> Hours", and the examcram books. These can be
> purchased from Nerdbooks.com.
> 2) download the SDK from Sun.
> 3) Do all of the practice examples and answer all of
> the questions at the end of chapters.
> 4) practice programming as much as you can. Many of
> the concepts such as threads and collections will
> seem too complicated at first,but they become clearer
> with practice.
> 5) avoid boot camps. Anyone who tells you that you
> can learnJava in five days or less does not know what
> they are talking about.
It's better to talk to people who already are developers, and try to write small programs (IMHO). Use the books when you bump into problems.
Reading as much as possible isn't usually the best way. Let your curiosity guide you.
kajbja at 2007-7-21 22:31:50 >

> I learnt C++. Since Java is C++ without the hard> bits, it wasn't much of a leap.> > Learning C++ was akin to tearing my eyes out using my> own elbows though.I rather enjoyed learning C++ at uni. Perhaps the instructors made the
perseverance is important.. if you really want to learn, then find a way how you will learn it (",)... that's what i am doing right now at this very moment... i only have 1 book... i am reading now, and i find this site very useful to me, i joined here coz i want to ask someones opinion... it also helps to know other people's idea/suggestion/opinion...lastly dedication
I went the academic route. As an undergrad I majored in Mathematics.
This was before my university even had undergraduate degrees in CS.
They felt that if you want to do hardware, you should be an EE, and you
should do Math if you want to write software. But I had a concentration
in CS. This was before Java or C++. I learned several programming
languages, notably C and variations on Lisp. What I remember most
are the courses on data structures. I wish I had paid more attention
during the database courses -- I still feel too strongly that's someone
else's concern.
When I went on to grad school, Computer Science took a more theoretical
turn for me, and I spent even more time doing math and logic. I did
almost no programming. I can't remember many grad students who
did any conventional programming at all. When I finally burned up and
dropped out, I looked around to see what I could do to make a living,
and that's how I ended up programming. When Java came out I was
already doing C++, and I kissed the ground like the old pope, Java was
so much cleaner to work in.
How did I learn Java? In a hurry. I was told to do X in Java. My object-oriented
skills came later (I realize how muddled my C++ code was, in retrospect).
You can't expect to go from no programming knowledge to ninja skills
in 21 days. For one thing, and I've heard several people say this, you
have to rewire your brain to think differently. More logically, more
methodically, more critically. And I think things like learning other programming
languages, learning mathematics (especially discrete math) and formal
logic will all help you in Java. And don't ignore database theory ;-(
> > I learnt C++. Since Java is C++ without the hard
> > bits, it wasn't much of a leap.
> >
> > Learning C++ was akin to tearing my eyes out using
> my
> > own elbows though.
>
> I rather enjoyed learning C++ at uni. Perhaps the
> instructors made the difference.
Once pointers clicked, I had no problem with C++. I still go back and dig through C++ code sometimes, and it doesn't look completely alien to me :).
I will admit, though, C++ is much more difficult to learn, and I didn't have an easy time at it until I really got pointers.
I wouldn't have made the jump to Java except for the fact that it was necessary for my Bachelor's degree. I was at work one day and we needed a quick GUI replacement for some old FORTRAN/XMotif code, so I whipped it up in a few hours, and have used it ever since to that aim. Before I knew it, I was a full-time J2EE guy.
When I think of "the evils of C++" a couple things come to mind:1. People passing their C code through a C++ compiler and calling it C++.I guess that's one of the perils of a hybrid language.2. MFC. 'nough said.3. Deep dark, extreme template hacks.
I learnt turbo pascal and C in school, while I was doing that I taught myself intel assembly. After that I taught myself C++ and from there the step to Java wasn't so big. I had to learn Java for my work and I haven't looked back often since.
I liked C++ well enough once I'd learnt it (although I still hold that it's an absurdly complicated language). It was learning it that I didn't enjoy.
Here's a good essay on those big fat stupid "learn X in 21 days" books that should be outlawed:
http://www.norvig.com/21-days.html
> 1. People passing their C code through a C++ compiler and calling it C++.
> I guess that's one of the perils of a hybrid language.
Well, then you can call it Objective C, too :)! When was the last time you could write in three languages at once?
> 2. MFC. 'nough said.
Yes, evil evil evil... Qt (http://trolltech.com/products/qt) is quite reasonable to deal with, though.
> 3. Deep dark, extreme template hacks.
Absolutely. I hated templates and STL, and using Generics in 1.5 still brings back some glimmers of the old nightmares :).
> Yes, evil evil evil... Qt
> (http://trolltech.com/products/qt) is quite
> reasonable to deal with, though.
That's good to hear. Was planning on learning Qt and getting my C++ back in working order!
D.
PS Apropos of which, and not wishing to start an editor war, would you recommend Eclipse, KDevelop, or "other"?
> PS Apropos of which, and not wishing to start an
> editor war, would you recommend Eclipse, KDevelop, or
> "other"?
I've had issues with the C/C++ development tools on Eclipse, and KDevelop for C++/Qt is not as nice as Eclipse for Java, but it's pretty good, and certainly better than using vi and a makefile :). You just have to keep your KDE libraries straight from Qt libraries, or you lose platform indepence :).
> > Yes, evil evil evil... Qt
> > (http://trolltech.com/products/qt) is quite
> > reasonable to deal with, though.
>
> That's good to hear. Was planning on learning Qt and
> getting my C++ back in working order!
>
> D.
>
> PS Apropos of which, and not wishing to start an
> editor war, would you recommend Eclipse, KDevelop, or
> "other"?
BSD/Allman brace style. ;-)
> I've had issues with the C/C++ development tools on
> Eclipse, and KDevelop for C++/Qt is not as nice as
> Eclipse for Java, but it's pretty good, and certainly
> better than using vi and a makefile :).
I'm not looking for "which is the perfect editor", so much as "which one's adequate." I'll give KDevelop a whirl.
> You just
> have to keep your KDE libraries straight from Qt
> libraries, or you lose platform indepence :).
Of academic interest for now since this is purely mucking-about territory. But thanks for the tip.
D.
> BSD/Allman brace style. ;-)BSD/KNF or death!
> > BSD/Allman brace style. ;-)> > BSD/KNF or death!I'd rather watch Katie Hopkins on Apprentice reruns than put my starting brace on the same line as the conditional
> I'd rather watch Katie Hopkins on Apprentice reruns> than put my starting brace on the same line as the> conditionalI'd rather sit through a marathon session of "Flavor of Love: Charm School" than burn up a whole line on a single opening
It's a Kentucky kNife Fight!
K&R and KNF braces styles are parachronisms.To use these styles are the equivalent of sawing the skin between one's big toe and second toe with a double-edged linoleum knife and pouring lemon juice in the resultant incision.;-)
> To use these styles are the equivalent of sawing the
> skin between one's big toe and second toe with a
> double-edged linoleum knife and pouring lemon juice
> in the resultant incision.
BSD-Allman style is analogous to running the edge of a piece of paper across one's cornea and rinsing with boiling turpentine.
~
Somewhere a Python programmer is larfin'
> Somewhere a Python programmer is larfin'What about perl programmers who put the entire program on one line ? ;-)
> > To use these styles are the equivalent of sawing
> the
> > skin between one's big toe and second toe with a
> > double-edged linoleum knife and pouring lemon
> juice
> > in the resultant incision.
>
> BSD-Allman style is analogous to running the edge of
> a piece of paper across one's cornea and rinsing with
> boiling turpentine.
The injudiciousness of K&R is apparent to the most casual of observers.
Any gain is a sham.
Numerous studies have shown that proponents of K&R are more likely shove meat thermometers in their ears as a means of self-entertainment.
> Somewhere a Python programmer is larfin'Right, because using whitespace to delineate code blocks is sooo useful.;o)~
> Numerous studies have shown that proponents of K&R> are more likely shove meat thermometers in their ears> as a means of self-entertainment.I'm sorry, I couldn't hear you. I have a meat thermometer in my ear.~
> > Numerous studies have shown that proponents of
> K&R
> > are more likely shove meat thermometers in their
> ears
> > as a means of self-entertainment.
>
> I'm sorry, I couldn't hear you. I have a meat
> thermometer in my ear.
Where are you? My vision is a bit blurry.
Is "meat thermometer" some sort of slang term? If so I don't want to hear any more about it. Get that thing away from my ear!
mind your quotes, Dave! ;-)
Lets see a few examples of the available types as illustration to the casual observer.void myGoodFunc(){ // goodstuff}void aFuncSuchAsMightBeUsedByHitlerOrCharieManson(){ // no neeed to show code as it is bound to be sh1t}
Whitesmith
private void aFunctionOnlyPolPotCouldLove(String s)
{
if ("JoeyStalin".equals(s))
{
System.out.print("Will Young is the greatest!");
}
}
Yo, Philly boy, I got your back: http://forum.java.sun.com/thread.jspa?threadID=5154028&start=18&tstart=0
> Lets see a few examples of the available types as
> illustration to the casual observer.
>
> void myGoodFunc()
> {
>// goodstuff
Why stop there?
void
mygoodFunc
(
)
{
/*
goodstuff
*/
}
I mean, God invented the vertical scrollbar for a reason, right?
:-)
> >
> > After I got my first job I bought myself a
> Commodore
> > 64 and self taught myself Basic.
> >
>
> HAi, I am very much wanting 2 lern teh jav but am
> hving 1 doubt.
>
> Wher du i get Comdore 64?
Dang! I just revealed my age.
> I mean, God invented the vertical scrollbar for a
> reason, right?
>
> :-)
t
h
a
n
k
y
o
u
f
o
r
y
o
u
r
i
n
p
u
t
w
e
w
i
l
l
b
e
i
n
t
o
u
c
h
.
> I mean, God invented the vertical scrollbar for a
> reason, right?
>
> :-)
God invented the horizontal srollbar for a reason too. Why not just put all the code on one line? public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } }
And on the seventh day he rested. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .