Computer Related stuff which occupied me, and now occupies - you :-)
Subscribe to this blog
Follow by Email
Help me become a great Java developer - What should I learn?
This is the subject of an email I got today, the rest of the email is as follows: Hi Chaiavi,
I didn't work on java for a while now, i am trying to become the best Java developer ever - well not ever there will always be you ;-) so that in the future job interviews i will actually know something :-)
and i need your help to guide me in the right direction :- where to start? what are more/less impotent subjects? what are the best places to learn from, so that I will learn a lot in short time with as little effort as possible that it will be easy fun and not boring and that I can finish before the next job interview (whenever it will be)
i am looking for online sites, video eLearning and even books if they are really good (since books takes a lot of time to learn from)
you know what, ignore everything i just said and just guide me into becoming the great Java developer i can be.
Well, this was my answer, maybe some of it can help someone else also: Dear Joe,
I thought about the issue since you sent me the email till now...
What is the easiest way to gaining the most with least effort.
Well, as you well know, there is no magic here, and in order to become really the best Java programmer you can be, you must work hard; no lottery tickets here.
But, I can give you some tips from my experience.
So here it comes:
I do think that at least one book should be considered to be learned, it could be any book, though i won't recommend on learning a book that specifies in one area (such as xml, webservices, threads etc), learn a general java book, and here I would recommend a specific one, I heard great recommendations for "Thinking in Java" by Bruce Eckel.
If you can buy the fourth edition it will be great, it contains more up to date information (java 6 etc), and also if you'll buy it you will feel obligated to reading it, if you don't want to buy it, you can learn from the electronic book which Bruce offers for free:
Now, about some videos, I still recommend the great 7 disc learning software (AppDev) I have bought several years ago, in fact, I myself, am learning from it in my lunch breaks (I've just finished the 4th disc, and now hear it for the second time).
I also recommend Mark Dexter's nice Flash tutorials residing in Eclipse's web site.
Start from the Java for beginners (3 hours in 17 lessons or so):
I do think that you should also read some material from the web, specific material, focus on subjects in Java you have worked on like JSF - you already worked with JSF so learning a little about it won't be too hard, and when the "future boss" will ask you what you worked on, you can be more specific and impress him.
Another little advice, I know that I learn better when i'm not at home - get out, go to the University and learn, go to a library and learn, or else... it won't happen.
And the last and most effective advice:
Start Programming - Only when you program something, you feel the real thing, and you learn through your fingers how to do it best.
I have this CXF client which sometimes throws normal exceptions but some of the other times it throws me a "Fault occurred while processing", well, what does that mean?
When you get back a "Fault occurred while processing" it means that a web service threw an unchecked exception. The CXF framework catches it and puts together a fault message which it sends back to the client. The client’s stack trace at that point is pretty-much irrelevant.
There may be a way to get CXF to log the server stack trace, but I haven’t found it yet (feel free to comment on the post if you found one). There may also be a way to stick a handler into the flow to get the exception before constructing the fault message, but I haven’t found that yet either (ditto).
If a checked-exception is thrown, then the exception – or at least its message – gets sent back to the client where it’s reconstructed and rethrown to be caught by the client.
Debugging a problem like this, once you can recreat…
Java is a great programming language but it has a big flaw - it's GUI framework sucks!
I am talking about building simple client-side applications.
If you don't want to mess with any web gui framework then you are bound to use swing.
You can always build swing writing the text and imagining how it will work but any smart programmer will search for a nice Swing GUI builder which will enable him/her to have a WYSIWYG sort of framework to work with.
There are several options of WYSIWYG frameworks to pick from, the most noticeable till the July (2011) was Netbeans' "Matisse" GUI builder.
There were others of course but none as free or as good as Matisse.
The biggest flaw of Matisse is that it doesn't reside on the best IDE out there - eclipse, but it can be found only on netbeans which isn't as good as Eclipse (Doesn't even have a "hover" feature to name one great flaw of netbeans) so if you want to build a GUI supported by good java logic you&…