Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I have been coding in java for a while now .... i want to continue in java and improve my coding abilities. I want some suggestions on -
any websites, blogs, to keep track of latest happenings in java like new coding techniques, standards, new java features, new APIs, basically anything new about java ..... (just for example sake Androidpolice keeps track all that is happening in android)
I have used a couple of classes from google guava libraries. are there any other such libraries which are helpful ?
Any suggestions are appreciated. Just wanna improve my java knowledge
Thanks
I will suggest you to participate actively in Stack Overflow. I improved a lot after joining SO. Better do lot of practice rather than reading. Create problems on your own and try to solve them. Practice makes man perfect.
I cannot recommend enough the Effective Java book by Joshua Bloch. The second (and most recent) edition assumes JSE6 hence recent (JSE7) features are not covered. But the content is impressive and certainly the kind of book I recommend developers who have moved beyond the basics.
As sans481 told, you have to practices.
Try to create different application in Java.
& If error occurs StackOverflow is here to solve your problem.
First clear funda of Java if you are not aware with it then try it.
Good Luck....
Try out some of the TopCoder challenges. They may not improve your knowledge of the API but they will make you a better programmer and thinker, and you can use Java as an implementation language.
Java Magazine is published on a bi-monthly basis in digital and mobile formats. It includes:
Profiles of innovative Java applications
Java technical how-to’s: Enterprise Java, New to Java, Rich Client, Polyglot Programming, and more
Java community news: Java User Groups, JCP standards, and more
Information about new Java books and conferences and events
Similar to TopCoder, there is also CodeChef, Project Euler and SPOJ which will help you with algorithms and make you a better programmer; not to mention helping you learn to write working Java code quickly. It won't help you write large programs, or learn object oriented stuff, but I still think it helps.
Warning, CodeChef may make you want to learn C++ because it's much more popular for online coding competitions (due to speed and memory differences).
Related
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
I am trying to learn JavaCV. As you all know, the lack of educational materials on this subject is a very big problem. In JavCV home page, they have provided lot of examples for the C++ examples in book "OpenCV CookBook". But the case is, they are not Java, they are in SCALA!!!! Now I have already gone crazy! I know lot of examples are in web, but I want to learn it from beginning to advance, then only I can do it properly. "OpenCV CookBook" is a very good book but it is all about OpenCV in C++, not anything about Java.
Someone please help me to find a better place to learn JavaCV. Provide me whatever, URL, Book, etc. But it must be about learning JavaCV in 100% Java, not in Scala, C++, C or whatever other language! Please help!
< update >
Times change - and so does OpenCV. Right now, a pure Java wrapper (not Android) is growing fast, allowing anyone to use OpenCV functions directly in desktop Java apps/
< /update >
You can find some tutorials in Java in the OpenCV samples directory: samples/android.
You can also find some more info here.
Now, I am pretty sure you will say you want Java, but not Android :). But this requires an explanation.
For various reasons - the main one being efficiency and the second one portability to embedded platforms, computer vision is done almost entirely in C/C++. It is the de facto standard. Everybody uses it, with good reasons, and good results.
There are different adapters to the C++ code base, like Python and Java, but they exist to fill some specific gaps: Python is used for fast prototyping, and Java for interfacing the Android main language. But in all scenarios, the 'real' algorithm development is done with C/C++. This is why nobody cares about tutorials/books/examples in other languages.
Conclusion: If you want to learn image processing, learn C++ or Python. If you want to build some app, learn the OpenCV java interface from docs/android tutorials. But do not expect flexibility or control over performance.
Updated note
There are two more things to specify here.
First, as Android gets on its wheels, and Python proves more and more popular, the content available in the two languages (and others) are increasing dramatically. But for the years to come, the core development group - and the best docs - will be in the C++ area.
Last, but not least, you should keep in mind that in any work or programming area, if you stick to one language, you're dead. Principles matter, and you should be able to implement them in a variety of languages, and you should be able to read and understand from a variety of sources. What about a programmer that says he is not able to translate pseudo-code into Java? It's quite the same with other languages.
You can read the great blog post Don't call yourself a programmer to understand why you should forget about programming in one language.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 6 years ago.
Improve this question
Is Java Concurrency in Practice still valid? I am wondering whether the ideas, concepts and implementation described in the book are still compliant with the latest Java versions.
I ask because the latest edition was done in 2006.
While my perspective may be biased, my current intention for updating the book would be almost strictly additive, covering fork-join, parallel decomposition, and the new parallel bulk data operations coming in Java SE 8.
EDIT 2020: ... and Project Loom.
EDIT 2021: ... and Project Loom :)
EDIT 2022: ... and Project Loom !
Yes, it's still valid in my mind. There isn't big change in this area from 6 to 7. Fork-join is a new feature, which is very suitable for divide-and-conquer type of problems. But all the existing stuff inside the book, such as synchronization, volatile, servlet, are still very valid.
I bought this book in 2013. I had very serious doubts that it would be current and useful given that this edition was published so long ago. The technology world moves quickly, and software technology even faster. Even so, this book is foundational. The concepts and practices that are discussed are more underpinnings for good software design and engineering than updates on the latest and greatest API's. This book has been indispensable, and I am glad that I got it before I had decided to write even a single line of concurrent code. It's probably saved me countless hours.
Yes definitely it's still valid, but I will recommend in addition or as an introduction The Well-Grounded Java Developer a well written book with a chapter on modern Java concurrency techniques and nicely done examples.
I would say so. JDK7 adds the fork-join framework but that is an enhancement rather than a replacement for earlier concurrency tools.
Yes. Very much.
You can always keep track on new things being introduced in Java, however, the book does a fine job of explaining the fundamentals.
If it helps, this comes from a full time researcher in concurrency and parallelism using OOP.
Yes. Still it is valid and i have got good feedback from my friends. It is one of the best book for learning the concurrency in java. You can read the review for Java Concurrency In Practice
If you are going to start your project using Java 8 you might want to consider fresh books and tutorials as well because of new stuff appeared in Java 8 like streams,lambdas and new atomics - that changes development methods a little bit.
Well, the book looks promising when I read certain preview chapters online. It gives enough insight on Java and general concurrency aspects. One can keep this book as a handy outfit when designing and implementing both naive and sophisticated concurrency applications.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 11 years ago.
Improve this question
I have some experience in working with java, but many are telling MATLAB will be a better option for doing projects in Artificial Neural Networks. Can anybody give proper suggestions to choose a language, so that i won't struggle in the middle.
I am expecting answers about the merits and demerits of the both MATLAB and java , in terms of my project and the learning curve of both the languages
You won't struggle in the middle wether you choose MATLAB or java to implement a neural network (a perceptron to begin with I guess), but I suggest you do it with the language you have most experienced in (I hope my sentence is grammatically correct, I'm not english native speaker).
With java, you'll have to implement simple matrix computations, but with MATLAB, you'll have to learn a new syntax for everything...
If you have MATLAB available then use that. MATLAB is quite easy to learn and for a neural network you will mostly use matrix operations and perhaps a few control structures like for and if.
I would very much think learning the MATLAB syntax for this is a lot easier than implementing (good) matrix operations in Java.
The hard part about neural networks is getting the math correct, not the implementation.
As a rule of thumb, choose the language you're most proficient with unless you can find a good reason to do otherwise.
Good luck and welcome to Stackoverflow. :)
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
Closed 7 years ago.
Improve this question
Please help me identify some small to medium sized open source projects that embody object oriented design (preferably in C++ or Java). I would like to use these projects to demonstrate how real world problems (as opposed to contrived text book examples) can be solved with an object oriented design. I want to be able to present a plausible explanation of why certain things were chosen to be objects and how they all work together to solve a problem.
Google Chromium (C++): windows, tabs, plugins etc. are all classes.
The Unreal Tournament Public Source Code (432 Headers) contains the declarations of the Unreal engine class library written in C++. I found it to be a rich example of a large object-oriented program. It taught me a lot about how to modularize and object-orient my code. It also demonstrates many tactics for getting a handle on a large code base.
Also, because all you can read are header files, you'll have a fun (and educational) time trying to figure out how the whole thing comes together. (I actually ended up writing my own x86 disassembler so I could cheat and read some of the definitions!)
On the same note, the Doom 3 SDK contains a large chunk of the Doom/Quake engine written in very readable C++.
Just about any large project designed in Java is object-oriented, almost by definition. You can take a look at Apache Hadoop as a large-scale, open-source, objected oriented project written in Java. Another is Apache Ant.
Eclipse would be a good example on the Java side: the plugin architecture is all object oriented.
I asked the same thing to my OO mentor. He pointed me to the JUnit sources, with the recommendation to see how it evolved version by version. This would show you how Kent Beck writes Java code.
Another example on this vein would be the sources of Fit by Ward Cunningham.
Closed. This question needs to be more focused. It is not currently accepting answers.
Want to improve this question? Update the question so it focuses on one problem only by editing this post.
Closed 8 years ago.
Improve this question
For the past few years, I've been working on a team that does .NET and SQL Server. I'll soon be joining a team that is Java and Oracle. What can I read/do to get up-to-speed.
Start here: http://java.sun.com/javase/6/docs/
Sun's documentation is pretty good.
See also:
Hidden Features of Java
Best Java Book you have Read So Far
Overriding Equals and Hashcode in Java
What is the Most Freequent Concurrency Problem You've Encountered in Java
Javapassion is a site that offers free courses on Java. If you are on a hurry, there are 1 to 5 days courses available. You should have no problem following it, if you have experience in Java.
There are many good books for Java, but Thinking in Java is free and is good both for getting started and using as a reference.
If you need conversion of things from one language to the other here is a great website:
http://www.25hoursaday.com/CsharpVsJava.html
This, similar, SO Thread might be helpful.
Josh Bloch's Effective Java is a fantastic book. If you want to learn modern Java idioms there are few better places to look at.
Be prepared to do a lot of reading. C# (assuming this was the language you have been using)is generally regarded as an improved Java, so the Java basics will not be hard to grasp. Java development tools are generally not as tightly integrated as the Microsoft stack, thus allowing for choices to be made. Lots of discussions in Javaland revolve around choosing tools.
Get to know something about the way Java packages things (jar, war, ear).
Learn about the classpath (an endless source of joy and grief).
Build a mental picture of how things work at compile time and run time (generics and type erasure, for instance).
Visit the JavaRanch (http://www.javaranch.com/) and test your Java knowledge with the Rules Roundup! Think of it as a certification mock exam, but with cows. ("No cows were harmed in the making of Rules Roundup.")