How to fast-track and standout?
Relying only on your experience can take a long time to get a good handle on the full stack Java concepts and the 16 key areas. The best way to fast track your career is to proactively learn and apply them. This will certainly help you present yourself in a better light than people who are more qualified & experienced than you are. Preparation breeds confidence, and confidence with right know hows & attitude will open more doors. During the early stages of my career, I used to go through 15+ books and 50+ websites to prepare for my Java job interviews.
Full stack Java/JEE technologies are very vast
One of the key decisions you need to make is whether to get a depth of knowledge in a few technologies with certifications, etc or to have a breadth of knowledge and market yourself as a full stack developer with sought-after know hows & skills, and improve on the depth with experience & ongoing learning? I chose the latter approach and has paid off for me. Most employers are after full stack developers with a wider range of skills.
What are these 16 technical key areas?
Most interviewers like to quiz you on design, performance, SDLC, concurrency, memory management, and security.
Learn more about these 16 key areas at What are the 16 technical key areas of Java programming and how will they help you fast-track your career?
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.
- applied design patterns to loosely couple classes
Note: The technical key areas are vital to sell yourself or set you apart from your competition. I am yet to work for an organization that did not face challenges relating to performance, scalability, security, concurrency, etc.
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.
1) Writing robust and quality code with proper unit tests. While coding, ask the right questions like is it thread safe? should this be executed in a transactional context? is this code easy for the humans to read? Is it easy to unit test? Can this cause potential memory leak? Can this cause potential performance issues? Is there any potential for security holes?, etc.
2) Kaizen (i.e. continuous improvement) Continuously improve code, design, architecture, and development/business processes. Can this code be further re factored? Can this SDLC or business process be automated to make it less error prone? Should we improve the security with 2-way SSL and two factor authentication?, etc.
3) Looking at things from both business and technical perspective . Looking at both the big picture to see how the business operates and pros/cons of the current architecture and then digging deeper into details to get things done.
4) Learning new things in terms of tools, frameworks, paradigms and technologies. Acquiring domain knowledge in finance or improving the much needed soft skills like communication and leadership.
Another good question is, when you are reviewing others’ code, what do you look for? Get a good handle on unit testing, mocking, TDD, BDD, profiling, quality checking tools, etc. Writing quality code in Java Interview Q&As.
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 lots of Java/JEE interview questions and answers and career making resources.
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 (Situation-Action-Result) 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.
How to manage interview nervousness?
It is natural to be nervous before job interviews. Two tips are:
1. Prepare to succeed.
2. Treat each interview as a free training session to create a win-win mindset. If get the offer you win, if you don’t, you still win as you can learn from your failures to do better next time. Didn’t get the job offers or raise you deserve as a Java developer?