You are applying for a role "Java Developer" and you are called for an interview. What are the general knowledge you should/must learn before you sit in front of the panel?
views:
592answers:
7Well first and foremost you need to be proficient in Java and be comfortable talking about coding problems which may be presented to you during the interview. Knowledge of (the curent state of) some frameworks is also a nice plus. Usually java is used on server side stuff, so try to look into some Spring, Wicket, Tapestry, Struts, JSP, JSF, Ibatis, Hibernate, or other interesting stuff.
Also, having a fallback plan to go into "presentation mode" if the interviewers do not seem to have interesting questions for you is a good plan. You want to show your stuff. Wow them, without lying.
Be careful with wat you say, some interviewers might actually have more experience than you, but do not show it, until it is verdict time.
Good luck with your interviews.
I would read the Sun Certified Java Programmer study guide. Many employers don't expect you to have the actual certification, but they do expect you to know the material (whether they explicitly say so or not).
Prepare to talk about something you've actually done, and know intimately. A competent interviewer will ask for details.
Design patterns are good, but only talk about the ones that you've actually used, and be prepared to explain why you chose that pattern. All patterns have tradeoffs; if you pick Singleton as a favorite pattern, be prepared to explain why you chose it over alternatives, and how you dealt with the coupling that it introduced.
Don't lie. Don't try to turn a simple web form into a "distributed application with thousands of clients."
I've interviewed a couple of developers in the past, as well as joined a couple of interviews. What I've seen so far:
- Design Patterns - Which ones have you used, and why.
- Collection classes
- Threading
- Memory usage
For some places that want to dig a little further:
- Soft and weak pointers
- Java I/O classes
- Profiling
- Debugging
Depending on the position, then come specifics like usage of frameworks in case of a web developer, or Eclipse RCP, or Swing, whatever is the required technology for the job. In that case it is relatively difficult to generalize. My bet is that a little Swing never hurts.