If you just rely only on your experience alone, it can take a long time to get a good handle on the core concepts and the 16 key areas. The best way to fast track your career is to proactively learn and apply them.
- Language Fundamentals (LF)
- Specification Fundamentals (SF)
- Platform Fundamentals (PF)
- Design Considerations (DC)
- Design Patterns (DP)
- Concurrency Management (CM)
- Performance Considerations (PC)
- Memory/Resource Considerations (MC)
- Transaction Management (TM)
- Security (SE)
- Scalability (SC)
- Best Practices (BP)
- Coding (CO)
- Exception Handling (EH)
- Software Development Processes (SDP)
- Quality of Service (QoS)
How would you go about preparing for the job interviews?
1. Firstly, reflect back on your past experiences and achievements by going through your resume to sell yourself more effectively. Think of situations where you
- fixed performance issues, security holes, memory leaks and/or thread-safety issues.
- took a project through full Software Development Life Cycle (SDLC).
- worked well in an agile environment.
- earned the reputation as a "go to person".
- worked on "QuickWins" projects.
- took initiatives and collaborated well with the business.
2. Secondly, understand your prospective employers' requirements and correlate the requirements to your experiences & achievements so that you can convince your prospective employer as to how you can add value.
3. Thirdly, research the organization you will be interviewing with. Employers like to hire those who show real interest in them.
4. You have no control over what questions get asked, and also not expected to know everything. Interviews are not memory contests to see who gets the most questions right. The quality and clarity of the answers you give to some of the key questions will not only make you standout from your competition, but also make your interviewers overlook other shortcomings like not having enough experience with a particular framework/technology or not knowing answers to some other less important questions.
5. Open ended questions don't have right or wrong answers, and give you the greatest opportunity to sell yourself with quality answers with good practical examples. Focus on the 16 key areas to answer open ended questions.
6. Most of the interviewers start with your resume, and then get into more technical questions. Brush up on the fundamental technical questions. If you are confused about what to prepare, I have put together some books and 350+ blog posts to brush up prior to job interviews.
- The book entitled Java/J2EE job interview companion covers a wide range of core Java and enterprise Java technologies shown in the above diagram.
- The book entitled Core Java Career Essentials focuses in more detail with regards to some of the core Java must know topics like data types, language fundamentals, OO concepts and data structures.
- This blog compliments the books with more coverage on multi-threading, sought after frameworks like JSF, Spring, Hibernate, etc, and handy tools like Selenium, JMeter, and lots more.
7. Answer the following question -- Q. Why are you better than the other developers? [Hint: Sell yourself as a well rounded professional and not just as a techie, e.g. ability to look at the big picture, ability see things from both technical and business perspective, SAR based answers to technical key areas, etc.]
8. Steps 4 and 5 can give you the much needed confidence in the interviews. It is natural to be nervous, but think of each interview as a free training session where you get to assess your strengths and weaknesses.
9. Interviews are not just technical contests, and it is an opportunity for both parties to assess each other. With some preparation and know-how, you can stand-out from the pack. Right "Attitude" is equally important. No body knows everything. If anyone things he/she does, others would not want to work with a such person. So, if you don't know, say you don't know. Your soft skills like communication skills, interpersonal skills, ability to work as a team and personal traits like positive attitude, honesty, passion, etc will be under scrutiny in your job interviews as you will need to work as a team to get things done at your next job. It can be easier to work with your computer than working with people with different personalities. So, don't feel too discouraged by not performing too well in the technical questions, and maintain your composure throughout the interview. Your soft skills and right attitude could win you the next job.
10. Books and blog posts can only guide and help you learn from others' experience. But for real success, you need to pro-actively apply what you learn by experiencing it yourself. There is not substitute for hands-on experience.
11. Hope this site helps you open more doors as it has helped many others. I will endeavor to add more resources to this blog. Stay tuned by subscribing to this blog.