What should you never say to a Java programmer?

“Isn’t Java that C# clone?”

It has got to be something along the lines of, “Isn’t Java the same as JavaScript?”.

‘Any chance you can rewrite it in JavaScript?’

never say that “i can’t do it”.

“i never experience null pointer exceptions when i write *my* java”

Why java developers need eye glasses? Because they can’t csharp.

“Why is this program running so slowly?” 😉

“How to handle pointers in Java?”

What are the technologies a Java developer must know?

You can’t possibly know all the Java technologies out there because no company will give you a chance to. One company will swear by the Spring framework while other companies like LinkedIn have moved on and are into the PlayFramework.

However, let me give you a list of 10 technologies that will always pitch you ahead of your competition regardless of the company.

10 Skills that will make you a great Java Developer:

  1. At least one MVC Framework like JSF, Playframework, Struts, or Spring MVC
  2. Hibernate or JPA for databases
  3. Dependency Injection (@Resource)
  4. SOAP based Web Services (JAX-WS)
  5. Some build tool (AntMaven, etc.)
  6. JUnit (or other Unit Testing framework)
  7. Version Control mostly Git
  8. JSTL
  9. Application server/container configuration management and application deployment (whether it is WebSphereTomcatJBoss, etc. you need to know where your application runs and how to improve its execution)
  10. AJAX

Nonetheless being a smart Java developer takes more that just knowing your stuck.

Success!

What is the best way to practice and learn Java code?

I think that the best way to learn and practice any language is by doing projects.

Starting from a simple one – a console(program console) game for example.

Then continuing to a GUI game.

Then adding memory to it.

Then creating a server so that two players can play.

And later trying to optimize the algorithms and performance using regex and multi threading.

This is just an example of course. You can learn the different concepts with many different and small programs.

If you want to learn java – there are plenty of good sources such as “Udacity’s Intro to java”, Sololearn, TutorialsPoint, and many different YouTube channels.

Just download and install JDK and download a good text editor like Notepad++ or Atom (I use it). Then start coding.

Don’t download any IDE like eclipse or netbeans as they make things very easy for you and you don’t get to learn some basic concepts like creating packages etc.

When you are a amateur coder and you want to shift to development then go for IDEs (I use Eclipse).

And for practicing problems I would suggest geeksforgeeks or hackerearth. They have many simple as well as hard problems for you to try your coding skills.

What are some tricks to learn Java quickly?

1) Learn the language basics

This is the first step for very obvious reason. If you don’t know the basics then you will never know either what to do next or what you are doing wrong. Initially, I do not expect from you to become the master of all java basic stuffs like keywords, core concepts or basic coding techniques. What really I expect from you is just to read all the text available in below links, even if it just doesn’t make sense to you in the first attempt. Just keep reading it.

  1. http://docs.oracle.com/javase/tu…
  2. https://www.ibm.com/developerwor…

Please keep in mind that above two links are not the only links for basic knowledge. You can do a quick google search and find out many similar links.

When you are done with few links as two given above, re-read them again second time. Don’t skip any part of it. This time, things will start making more sense to you, and you will be able to connect between various concepts by yourself. If you are still not able to connect the pieces of information spread in multiple places, then keep repeating this step until you actually start relating the core concepts. Don’t worry about you are wrong or right, just relate them and better make notes. Notes will help you to measure your java learning curve.

2) Create some small programs

Once you are confident that you are very much familiar with most basic stuffs/keywords and concepts and you can actually relate them somehow, you are welcome to second step where you will have to start building some very very basic java programs e.g. hello world, simple addition and subtraction etc.

When you are writing the programs, keep in mind that first couple of programs are going to be real tough for you. But once you are done with them you will not face similar level of difficulty in next set of programs.

You may face difficulty so much that you may not able to type in your hello world program itself, all by yourself. Don’t hesitate, open google and search similar program. Don’t copy it using CTRL+C. Here just read the program, and type into your IDE (I suggest to use eclipse, as I find it very easy) and solve the compilation error caused by incorrect syntax you got while typing (basically I assume that you will make mistakes in lowercase/uppercase). If you are still not able to do it, then take the help of google again. Google is your friend, just remember it.

Do it for couple of programs and remember that always try to create program by yourself first and then use google. I am giving below a list of basic java programs which you may consider for beginning.

  • Display some text message.
  • Display a list of numbers (1 to 50) each in new line.
  • Find the max and min between two numbers.
  • Swapping between two numbers using any technique you know.
  • Build a calculator program able to add/substract/multiply and divide the numbers.
  • Create two classes (super class/sub class) and practice method overloading and overriding concepts.
  • Create some programs involving array e.g. printing output in array format in console.
  • And so on…

Above programs are just to give you a start and make you understand what I meant by basic programs. List can be longer and I will suggest you to add more items to this list and create programs for them. And remember, google is your friend 🙂

3) Create advanced programs using java APIs

Now when you are done with making most of the baisc programs, and most importantly, you are comfortable into creating such basic programs, jump to this step. Here, I will suggest you to work hard on learning java APIs inside java collections and java IOs. Just start exploring various classes and interfaces involved into these APIs and start creating programs for them. Please note that you should always try to find an already existing API and method for doing a certain task, and you should not be creating your own logic here. Your goal is to get familiarize yourself with these APIs, so always look for a solution within these APIs only.

Again I am suggesting few basic programs you can work on to start with. Later you can include more APIs and more such programs as much as you can.

  • Taking input from console and printing it
  • Reading a file from filesystem and printing it’s content in console
  • Creating a new file and writing some data onto it
  • Reading data from a URL and do some search on it’s content
  • Store elements in a list, and then iterate over it
  • Use HashMap to store random key-value pairs and iterate over it in multiple ways
  • Create some programs for searching and sorting over collection elements
  • And so on…

The more and more programs you build at this step, you will get more and more confidence. As soon as you are good in using these APIs, jump to most important and difficult task in next section.

4) Create at least one desktop application and one web application

This step will give you the confidence which is needed to face any java interview and prove your mettle in java related discussions. Idea is simple. You just have to decide at least one java desktop/GUI application (e.g. desktop calculator), and then one web application (e.g. hospital management). And now when you have most basic knowledge at your hand, start exploring everything which you will need to build your two applications.

Ask help from experts (I will also do my bit to help you), your experienced friends, colleagues and every person you know and who can help you. Read all available good material which comes into your way when searching for solutions and simple learning the concepts. Buy some books which are related to the concepts where you are struck in. Do everything what is needed to build these application. Make them you sole objective for few days (or weeks or even months).

Let me assure you that by the time you end up completing both exercises, you will be much more confident than ever before, when it comes to java. And more importantly, it helps you to develop a habit of getting things done at every cost. This attitude is very important in long run of your career.

5) Read and participate in some good java blogs/forums

After your above four steps are completed, you will be more of a confident man who is also able to help others like you have been few month back. Find people who know less and help them in solving the problems, even if it require some amount of time of you as well. A good place for these activities can be forums like Stack Overflow – Where Developers Learn, Share, & Build Careers. When you start learning about mistakes others are making, it just open up your mind on various directions and improves your thought processing capabilities.

In fact, last step is like infinite loop and you should keep doing it when the time permits. You will really appreciate the results when you will realize how mature you have become.

That’s all for now on my thoughts regarding best way to learn java. If you happen to agree with me, drop a comment. If you do not agree with me, drop your suggestion. I will include your thought into main article if it’s really good

I need to become an expert in Java programming. What can I do?

If you are a Java developer and passionate about technology, you can follow the points which could make you an outstanding Java developer.

1. Have strong foundation and understanding on OO Principles
For a Java developer, having strong understanding on Object Oriented Programming is a must. Without having a strong foundation on OOPS, one can’t realize the beauty of an Object Oriented Programming language like Java. If you don’t have good idea on what OOPS is, even though you are using OOP language you may be still coding in procedural way. Just studying OO principle definitions won’t help much. We should know how to apply those OO principles in designing a solution in OO way. So one should have a strong knowledge on Object modeling, Inheritance, Polymorphism, Design Patterns.

2. Master the core APIs
It doesn’t matter how strong you are in terms of theoretical knowledge if you don’t know the language constructs and core APIs. In case of Java, one should have very strong hands-on experience with core APIs like java.lang.*, I/O, Exceptions, Collections, Generics, Threads, JDBC etc. When it comes to Web application development, no matter which framework you are using having strong knowledge on Servlets, JSPs is a must.

3. Keep coding
Things look simpler when talking about them theoretically. We can give a solution to a problem very easily in theory. But we can realize the depth of the problem when we start implementing our approach. You will come to know the language limitations, or design best practices while coding. So keep coding.

4. Subscribe to forums 
We are not alone. There are lots of people working on the same technologies that we are working on. While doing a simple proof of concept on a framework may not give you real challenges, when you start using it on real projects you will face weird issues and you won’t find any solution in their official documentation. When starting to work on a new technology the best and first thing to do is subscribe to the relevant technology forums. Whatever the issue you are facing, someone else in the world might have already faced it earlier and might have found the solution. And it would be really really great if you can answer the questions asked by other forum users.

5. Follow blogs and respond
As I already told you are not alone. There are thousands of enthusiastic technology freaks around the world blogging their insights on technology. You can see different perspectives of same technology on blogs. Someone can find great features in a technology and someone else feels its a stupid framework giving his own reasons of why he felt like that. So you can see both good and bad of a technology on blogs. Follow the good blogs and respond/comment on posts with your opinion on that.

6. Read open source frameworks source code
A good developer will learn how to use a framework. But if you want to be an outstanding developer you should study the source code of various successful, popular frameworks where you can see the internal working mechanism of the framework and lot of best practices. It will help a lot in using the frameworks in very effective way.

7. Know the technology trends
In the open source software development technology trends keep on changing. By the time you get good idea on a framework that might become obsolete and some brand new framework came into picture with super-set of features. The problem which you are trying to solve with your current framework may be already solved by the new framework with a single line of configuration. So keep an eye on whats coming in and whats going out.

8. Keep commonly used code snippets/utilities handy
Overtime you may need to write/copy-paste same piece of code/configuration again and again. Keeping those kind of configuration snippets like log4.properties, jdbc configuration etc and utilities like StringUtils, ReflectionUtils, DBUtils will be more helpful. I know it itself won’t make you outstanding developer. But just imagine some co-developer asks you to help in fetching the list of values of a property from a collection of objects and then you just used your ReflectionUtil and gave the solution in few minutes. That will make you outstanding.

9. Know different development methodologies
Be familiar with various kinds of methodologies like Agile, SCRUM, XP, Waterfall etc. Nowadays choosing the development methodology depends on the client. Some clients prefer Agile and some clients are happy with waterfall model. So having an idea on various methodologies would be great.

10. Document/blog your thoughts on technology
In day to day job you may learn new things, new and better way of doing things, best practices, architectural ideas. Keep documenting those thoughts or blog it and share across the community. Imagine you solved a weird problem occurred while doing a simple POC and you blogged about it. May be some developer elsewhere in the world is facing the same issue on a production deployed application. Think how important that solution for that developer. So blog your thoughts, they might be helpful for others or to yourself.

What is the most common use of a graph in the Java programming language?

Not only in Java , You have to use graph in every programming language as like as java. When you want to solve route based , map based or co-ordinate based problem , most of the time you need to use graph algorithms depends on problem.

Charts are utilized to speak to some genuine applications: Graphs are utilized to speak to systems. The systems may incorporate ways in a city or phone system or circuit organize. Diagrams are likewise utilized as a part of informal communities like linkedIn, Facebook. For instance, in Facebook, every individual is spoken to with a vertex(or hub).

How can I convert my knowledge in Java programming into skills?

Through PracticeApplication, Advancing and Contribution.

Just most of the programmers do in other programming languages they use in
their projects, they do not limit themselves by merely understanding the basics.

In school or in a beginner’s tutorial, whenever you learn new a programming language, you see the same things being taught across these write ups (eg. syntax, control flow, loops, arrays, etc.). Why? Because these are the fundamentals.

Practicing

Converting these as your skill will require you a thorough practicing. Perhaps after reading about arrays, you can start studying Object Oriented Programming. You will find a lot of resources regarding that. Along this stage, you will apparently encounter more errors during runtime or compile time that you tend to solve each time it happens by searching its error code or message in StackOverflow or Google Search.

Application of Knowledge

After you feel comfortable practicing the basics and fundamentals, you will now find yourself not only looking and reading outputs on your IDE’s console but instead, you will be more tempted on applying it on a project based outputs.

You start creating a small project with GUI or form controls using frameworks such as AWTSwing or SWT. Whilst there are several good other options, for me, it’s better if you try it more in-depth rather than jumping on advanced frameworks you might not even have the chance to configure or touch most of the core functionalities that Java SDK offers.

Advancing

Starting with small projects is a good jumpstart on improving your programming skills, but then again, the industry is in need of a more skilled and knowledgeable programmer who knows the hows and whys in a scalable project.

This is where you consider yourself to be more expert on the technical side of what you know. You may need to start reading topics regarding software tests, threading, software architectural patterns, asynchronous functions or maybe dig deeper on how JVM actually run.

From this point, you can now confidently justify what’s happening under the hood whenever you run and compile your code. It’s also makes reading someone else’s easier for you (well, depending really on how it is written or maintained).

Contribute

Last thing you need to consider doing is to contribute. Either start with GitHub’s open source projects, read someone else project’s documentation and code base, find a bug and submit a patch or start becoming a tech evangelistwhere you can do tutorials, write blogs or even teach in workshops especially for the young and aspiring programmers.

What is difference between Java, core Java and JavaScript?

Java and JavaScript might look like one was a direct descendant of the other, but in reality they are far from that.

Java is an object oriented programming language developed by Sun Microsystems that is capable of running on multiple operating systems with the use of an interpreter.

JavaScript, on the other hand, was created by Netscape as a scripting language much like a client side version PHP. It cannot create stand alone applications, but instead resides on an internet browser.

Java uses its own code then executes it on a virtual machine that interprets the Java code into its counterpart native code.

JavaScript is a scripting language, and as such it isn’t compiled. A JavaScript enabled browser takes the script and process it, it would then execute the instructions on the script. The main use of JavaScript is to provide a level of interactivity to web pages that are not achievable with simple HTML.

It can be used along with other technologies like AJAX to give an even more interactive experience. JavaScript can also interact with elements that are not from within its code which Java doesn’t do. Java applications can only be embedded into html pages and from that point on, the Java application works on its own.

Java and JavaScript are two very different languages, because of that they also have different requirements in order to function properly. Installing Java support in your browser does not mean that it would also be able to support JavaScript applications and vice versa.

Where can I get Java certification?

Java certifications are offered by Oracle (product owner of Java).

Importance of Oracle Certification

  • Valid proof on your profile to show at Job Interviews
  • Chance of promotion or designation change in your Organization
  • More respect from your team and management
  • More respect from your clients
  • You will become smarter to choose best design/development changes
  • You are updated in latest technology changes

The certification program offered by Oracle syllabus cover major topics required for a Job role. For example, OCAJP 8 as entry level certification for Java Freshers. OCMJEA 6 is an advanced certification for Java Architects. You can also find certifications for Server administration, Oracle Database and other Oracle products.

Ganesh P’s answer to How do I register and buy voucher for OCAJP, OCPJP, Java certifications?

All Oracle exams are either proctored or non-proctored:

Proctored exams are considered high-stakes exams and are therefore only delivered with a proctor. All exams, except Oracle Database OCM exams, are offered at Pearson VUE testing centers and some are offered at Oracle University training locations in some regions. In addition to a regular, proctored certification exams, there are two specialized types of proctored exams.

  • Beta exams are preproduction exams used by Oracle to evaluate new exam questions with the participation of a live audience.
  • Oracle Certified Master (OCM) exams are conducted at designated Oracle University facilities in each global region.

These exams are not available at Pearson VUE test centers.

Non-proctored exams are available online without a proctor. There are currently three types of non-proctored exams: online exams, master assignments and free practice questions. These exams are thus a more accessible way to get started on a certification path. Non-proctored exams do not require preregistration or an appointment and are available on-demand 24 hours a day, seven days a week.

Online Exams – Oracle also offers several exams online without a proctor, which provides a more accessible way to get started on a certification path. Online exams, also referred to as non-proctored exams do not require preregistration or an appointment, and are available on-demand 24 hours a day, seven days a week. Only select exams are available online, and certification is never awarded based solely on passing an online exam. To achieve certification, an online exam must always be paired with a proctored exam. The Oracle Certification exam listings detail whether each exam is proctored or non-proctored (online).

Master Assignments – Another form of a non-proctored exam is the Master Assignment. These assignments are a part of some Oracle Certified Master paths. Candidates download these assignments from Pearson VUE. They have 6 months from assignment purchase date to complete the assignment, upload the files for grading, and submit the essay.

Free Practice Questions – For a limited time, Oracle is offering sets of practice questions for some Java and Oracle Solaris exams free when qualifying candidates register for a Java, Oracle Solaris (Cluster), MySQL, or NetBeans exam before a specified date. Candidates can find more information on this promotion on Oracle’s Certification website. NOTE: You must create a web account with Pearson VUE before you can schedule your exam.

How important is Java Spring Framework currently?

If you are a java developer and are looking for a good paying job, then answer is – Spring framework is very important. I have interviewed a lot of java developers (1000+) across India and USA for a consultancy and most of the clients need the candidate to be good in some modules of Spring Framework. It seems most projects have Spring Framework as their backbone and are definitely using at least a few modules of Spring – Spring MVC, Spring boot, Spring Data, Spring Core. In the last 2 years spring boot has taken a leap as that is being widely used to develop micro-services. I used Spring boot to develop many micro services in my last two projects and I loved it for the flexibility that it offers and the quick development time that it brings.

Good news is – If you are new to Spring, you can quickly learn it. There is plethora of material available on internet as well as very good YouTube videos that you can watch and code along. If you have your basics on Core Java clear, it wouldn’t be a hard work. Many times, the job positions seek Spring Framework as one of the skill set, but even if you are not very good at it, but are a good Java developer otherwise, they will hire you assuming you will learn it on the Job.

Having said that, your resume’s weight will definitely increase in the market manifolds if you have already added a few of Spring Modules into it.

I am also really happy to announce some very exciting news: to celebrate the imminent release of Spring 5 and Java 9 we launched our simulators SALE CAMPAIGN. We halved the price of our simulators at www.springmockexams.com and www.javamockexams.com for limited time only.

If the audience is interested in accessing our price offer, they can take a look here bit.ly/SMEBP and here bit.ly/JMEBP

If you are interested in collaborating with us, you can join our partner program at bit.ly/SMEPART  and here bit.ly/JMEPART