Technical Interview in Java with 1 week to Prepare and No Experience
Tags: java, oop
Published: 2020-03-06 22:50:18

Have you ever applied to a job that fit most of your skills only for the screening interview to reveal that the position operates solely in language unfamiliar to you? This happened to me last week. I applied to a Web Developer position only to find that the position they were trying to fill used almost entirely Java(and to a lesser degree JavaScript and React.js that I am comfortable with). Whats more is they wanted to schedule a technical interview with Java as the required language. After passing the screening interview when this was dropped on me, I could have withdrawn my interest as arguably I was not going to be a good fit. However, I remember a bit of wisdom from one of my instructors John at Flatiron School told me: "In the professional world, the expectation to pick up, and be able to functionally use, a new language is generally expected at about a week". Having this in mind, I figured I would give it my best. After all, the worst thing that can happen is I bomb the technical interview and receive a rejection.

How similar are Java and Javascript? Car is to carpet and Java is to Javascript. They both fall under the umbrella of 'C-style' languages and share quite a bit of syntax, but from a technical standpoint are quite different.

Java is my first introduction to a hard-typed language and there were certainly some hurdles in picking up the new concepts. For starters, even the tools to run Java are not consistent with the other languages I was familiar with. I could not use VS code, because the language needs a compiler to run so I downloaded IntelliJ and began diving into 12 hrs of youtube videos. I found very quickly that object oriented programming practices that I had been exposed to at Flatiron school would much more utilized in Java by necessity then they were for Javascript(much more flexible). The four big ones: abstraction, encapsulation, inheritance, and polymorphism are absolute necessities to writing good, readable Java code.   Also, the primitive and reference types operate in fundamentally different ways than JS and being used to the JS operation of variables took a while to get the hang of. These variables further have to be defined by their type to compile correctly, so the result is a very 'bullet-proof' runtime of your application. There are many other differences, but you get the idea.

When it came time to take the technical interview, I had put at least 48 hours into studying the language and felt I could actually code something when I sat down to complete a Java algorithm. My technical interviewer gave his background and then put a problem in front of me. What luck! I had programmed in Java not 2 hours before in front of me: Build a hashMap to correctly store and retrieve the values presented. I was able to successfully complete the problem and pass the interview with an 85% and the algorithm worked at worst case on a complexity of O(n).

I was eventually offered a position, but unfortunately the ability to relocate was required and I turned the offer down. In any case, I can take confidence away and believe this was useful experience in learning a new language will serve me well in the future. On to the next challenge!