Can I realistically learn Java in 3 months?

I have a job interview with a major company in 3 months time and hope to become an Apprentice/Junior Software Engineer with them. I’ve spent the last few months trying to learn the basics of Java using websites such as Codecademy, Codegym, Codewars, SoloLearn, Udacity, and most recently, Exercism.io.

It’s all so overwhelming and not all of the information is sticking in my head. I’m not looking to master the programming language, but if I can at least get to a level where they’ll take me on as an apprentice. I had the same interview last year and was rejected because I failed to implement the pieces of code needed for a game of blackjack. They wanted me to show my working out process and I’m not sure how to show that either, so advice for that would also be appreciated.

Is there anything I should be doing differently, so that I’m able to land this job?

I personally don’t know Java, but in my opinion, how quickly you can learn it (or any new language) will depend a lot on how familiar you are with other programming languages and concepts, especially if the languages are somewhat similar to Java.

Regardless, three months of intense dedicated study will get you closer to your goal of getting a job, even if you don’t land this one.

Good luck!

1 Like

I very briefly learnt C# whilst developing a game at school a few years ago but I don’t remember much of it. Java is my first real experience of any coding language.

Do you have any ideas of how I can showcase my working out? The technical interview involves me sitting with a current employee and showing them how to insert the missing pieces of blackjack code. I’m not sure if that involves my code being perfect or if its just discussing my thought process with them.

Thank you for replying!

I would suggest you to start with thinking out loud and tell them how you plan to reach a solution to the problem presented to you. What exactly is missing and needed to be patched in? For example, if it’s a part of a method is missing, a reasonable place to start is to find out first what this method does, what it has for parameters, and finally, if it’s expected to return anything, if so, what exactly? And where is this method called? Stuff like that, to let them know what you’re thinking when reading through the code and where you are in the problem solving process.

1 Like

You really need to answer two questions for yourself so you know what to expect, do.

  • Do you know the level of Java knowledge do they expect?
  • Do you know how the hiring process for this company works?

Without answering these two questions moving forward your just taking a shot in the dark with your chances.


Do you know the level of Java knowledge do they expect?
Lets say you just need to know the syntax, and some base level programming concepts. You can totally make it in 3 months.

Now let’s say you need to understand the syntax and know how to program complex situations using OOP + Spring Boot to build enterprise level applications using an SQL database. I’d say that would be a massive task that is not easily learned in just 3 months.

I assume their actual expected requirements are in between. Obviously if you already know some crazy high level applications development you’d be secure, but that sort of knowledge isn’t really attainable in 3 months beyond the core concepts and ideas. It also might not even be relevant, as Java is used in a lot of use-cases.

Focus on being able to wield Java for any given problem, and being able to architect your code so its easy to read, runs well, testable, well documented and follows best practices. For example, go back and do the blackjack problem as a test for yourself.


Do you know how the hiring process for this company works?

Most larger, and even some smaller companies have documented hiring processes. You can find them on randomly on the internet sometimes from sites like geeksforgeeks, or people just blogging about the process. You could also do some digging into what is expected of you while applying.

The idea behind doing any of this is doing anything but what is expected of you is almost a waste of time. 3 months isn’t much time, so you should focus your time on the most relevant tasks at hand if your goal is to give your best shot at getting this job.


You can learn from 50 sites, 5 sites or 1 site. If your learning approach doesn’t seem to be working you need to change your approach. I personally believe the best way to learn is to fail. If your goal is to learn Java, you should focus on building multiple things from scratch using Java in the next 3 months. The goal of this is 2 fold, one you get experience actually building something from scratch, and second you get to show it off.

Obviously building something from scratch is not easy, its actually really freaken hard when starting out because you have no idea what your doing, but you end up facing what you don’t know more often, and quicker then if you follow some tutorial online that holds your hand. You automatically learn more this way as you will end up having to find your way out of difficult situations, finding solutions, and debugging problems. All of this gives you the “experience” people don’t find in tutorials.

3 months isn’t much time, think of it as more like 60 days, and split up those days into chunks of goals of what you must have done in that period. Build stuff to show off, fail often and fail fast and you will learn a lot. You don’t have much time, but how you use that time is important.

Goodluck!