Javascript developer prepping for Java Interview!

Hey everybody!

I have a bit of an interesting story. I started studying FCC back in May, and in the last 6 months I’ve been spending most all of my free time programming, managing to code some full-stack applications that I’m proud of to boost my confidence and my portfolio. I’ve been applying for jobs the last few months but haven’t gotten past the phone screen stage.

About a month ago I applied for a “entry level application developer” job which listed many technologies. They called for people with any experience in “COBOL, VIsual Basic, C++, SAS, Java/Javascript, JSON, SQL…etc etc…” so I applied. I got a phone interview with them and they explained they use a Java/SQL stack. I was honest in explaining that all my experience was with the MEAN stack, I have basically zero Java experience, save some college courses I took many years ago. I figured they would pass on me as an applicant, but I just got an email that they’d like to see me for an in-person interview!

So, my question: I have about a week to prepare for my first ever in-person software engineering interview, in a programming language I have basically zero experience with! Any advice on the best way to go about preparing for this? I was going to spend lots of time studying algorithm/data structures, since those can apply to any language. Any tips or advice on Java that I should know going into this?

Thank you for any help you might have. Reading through these forms has provided invaluable help and support over the last few months, and I’m excited to see where my journey leads in the near future.

Just because they run a java/sql stack doesn’t necessarily mean that’s what you have to interview in. In general, companies will let you interview using whatever language you are most comfortable (unless they are looking for something specific, like a Java Tech Lead or something).

Since you already mentioned to them that you’re primary experience is in the MEAN stack, I would continue practicing with Javascript as your main language. It might be helpful to take a look at the differences between Javascript and Java so you can explain them, but I think it would be tough to try to cram enough knowledge of Java in one week to interview with it.

Good luck!

I second @protonimitate. Here’s a reddit topic that popped up in my mailbox this morning that might be helpful to you:

Best of luck! :metal:

Did they tell you the stack exactly?

The good news is that there is no need to panic. Your experience in the MEAN stack means you have experience in full stack development. Instead of using a non-relational database, they use a relational database, Postgre, MySQL or Oracle, and instead of Express, they use some version of servlet served from a servlet engine like Tomcat or Jetty. It is still data saved in a database, a web server connects to that database and provide routes to access those data, and serving that information in a static or dynamic form. Any complex front-end relies on JavaScript, so no need to be worried there. Lean on these experiences in your interview.

The important Java basics are

  • Object-oriented concepts: The so-called 4 pillars, abstraction, Encapsulation, Inheritance, Polymorphism and how Java implements and uses them

  • Collections framework and Collection interface: Sets, List, and Queues, various different forms of implementation of these useful data structures and their sister interface Map.

  • Strongly Typed Language, Runs on a Virtual Machine, Built-in memory management

There are more, obviously, but these are probably the most basic and common things you should know about Java.

Know that a lot of things you’ve done in JavaScript has their counterparts in Java. Instead of managing dependencies with NPM, it’s done with Maven. Instead of accessing MongoDB with Mongoose, you access an SQL database with Hibernate or Spring Data. Spring Framework encapsulates a lot of use-cases, but Spring MVC is basically Java’s version of Express.

Don’t need to know the details yet, just be aware of these technologies and leverage what you know and sell them that you can apply the design and programming concepts of what you learned in JS.

btw just because their stack is in Java, does not mean you have to code in Java in a coding test. It is equally likely that they won’t interview you in depth in Java if you’ve made it clear that it is not your forte.

There is a lot that goes into Java and one week is not a lot of time, but you can do it

Most of the important stuff is here :

Pay close attention to the OOP In Java part where they talk about Polymorphism, Encapsulation, Interfaces, Overriding vs Overloading etc…

Know what the JVM is and why it’s important.

I’d go over type casting in Java as well.

Compile-time vs run-time errors

And touch on abstract classes and generics

Try to go over all of the keywords js doesn’t have like final, protected, private etc…

To top it all off, I’d try some basic to intermediate algorithms in Java just to get more comfortable with the language

All of this is amazing - thanks everybody for the tips. I’ll keep reading over things the next couple days and let you all know how it goes!

Do tell! How did it go?!!!

Hey, thanks for the interest!

The interview went much better than I expected since they didn’t ask any coding questions! They were purely situational - “what would you do if you ran into this problem; if you had questions but your teammates couldn’t help or were busy; etc”. I felt confident with my responses to these questions. But, I think they were a little concerned with my background; I’ve been getting code experience freelancing with a local non-profit, which means I’m coding alone, part-time, at home (not in an office environment). Ultimately they did not extend an offer, and while they didn’t state any reason, I’m guessing some other applicant knew Java better than me or had more experience coding in an office setting.

It’s been a bit of a bummer and I’m working up the energy to start applying to jobs again, but I’m trying to remind myself this was good experience and a great learning opportunity. Didn’t work out this time but I’m getting closer to the goal.

1 Like

Thats really great that you are keeping a positive attitude…honestly, its already awesome that you made it to an interview… I suggest responding to thank them for the opportunity, and asking them if they have any feedback for you. Im finding its not uncommon to ask, worst thing that can happen is they dont respond, but if they do, you’ll be able to learn exactly what it was instead of trying to guess, and use that to improve on future interviews.

In a wild turn of events: While I didn’t get this job, I did get ANOTHER job where I’ll be working with Java! Haha. My first day on the job was today! Apparently my team works on an application with an Angular front-end that interacts with a full-stack Java application. I’m still not totally sure how this works, but it looks like I’ve got some time to figure it out. It’ll take me a few weeks to get used to their ecosystem in general, and then initially they’ll have me working on the GUI stuff while I learn the Java, which is great. Looks like these links will come in handy after all! Thanks again for everybody’s help!

That’s not an uncommon stack for enterprises. Compare to JS, Java has a lot of convention and handholding built in, there is a reason schools tend to use Java in entry level courses, so you’ll pick it up in no time. Good luck on the rest of your endeavors