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!