Computer Related stuff which occupied me, and now occupies - you :-)
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.
Java Gui of Choice (2017) So first of all, yes, Javafx is still a thing. You want to build a gui for your Java application? You don't have many options, AWT, SWT and Swing are dead, JavaFX is the official way to go for a Java developer. Yes, you can have an HTML gui for your java application, and that is a perfectly valid choice, which should be accomplished by using Vaadin or Apache Wicket, but those options force you to deploy your gui with a web server which could be uncomfortable for many a developer. So JavaFX it is; Now, you can go around the web and learn how to use all of those plugins and wizards which will hide the simple mechanism of building a javafx gui or you can continue reading this post :-) JavaFX Installation/Configuration The first thing you will want to do is to download JavaFX SceneBuilder, the SceneBuilder is Oracle's official app for creating nice FXML files using simple drag and drop techniques. Although Oracle has open sourc
Garbage Collection If you have a Java app that handles large volumes of data but your app hangs randomly for several seconds (or even minutes), a good call will be a wrong configuration of Java's Garbage Collection. What can be done? First of all lets get some of the garbage collector's logs . In order to see the GC's logging (Stdout) details, use these command line parameters: -verbose:gc -XX:+PrintGCDetails -XX:+PrintGCTimeStamps Eg: java -jar -verbose:gc -XX:+PrintGCTimeStamps java_app.jar Now to the actual garbage collecting. Apparently Java 1.5 has three different fixed garbage collection modes . The fixed garbage collection modes are: -XX:+UseConcMarkSweepGC -XX:+UseParallelGC -XX:ParallelGCThreads= -XX:+UseTrainGC Eg: java -jar -verbose:gc -XX:+PrintGCTimeStamps -XX:+UseParallelGC java_app.jar If you find the fixed garbage collection modes not satisfying enough, you can configure the garbage collector manually with several additional command line parameters, use
Scenario The basic scenario here is having a windows desktop application with the drag and drop capability. Testing this application, you are using Appium over Winappdriver. The test I am attending to perform is a simple drag and drop. The above setting and scenario, isn't rare! actually it is a common case in desktop apps, that it is why it is so troubling to find that drag and drop is an issue. Searching the web, I found many ways of accomplishing the D&D, which basically I can split to two groups, the first one is using the driver.Mouse actions, where I will use a mouseDown, mouseMove and MouseUp, the second method will use the Actions object and will consist of actions.dragAndDrop() (Yes, there is such a function), or will do it the long way of Actions.ClickAndHold().MoveTo().Release(). But it seems that in some cases, both approaches just don't work. Let me be clear, this is a HUGE bug! There is a workaround, but it is a huge bug (especially when having a non working a