So how long does it take to learn Java? Ten years, ten weeks, or one day? Maybe your whole life? You may find very peculiar answers to this question on some online forums. Let’s make it clear from the very beginning. In this article “to know Java” doesn’t mean you can write “Hello world program”. It is about knowing Java well enough to find your first job. Buzz Lightyear’s motto here in the title is not exactly a joke. You really may continue to learn Java or any other language for the rest of your life. The reason is that the language is constantly evolving, its scope is changing and… Good news, friends! There is no reason for panicking! The learning of Java mission is definitely possible to complete in 3 to 12 months, however, there are many nuances that we will discuss in this article. Here we’ll try to answer the question “how to learn Java fast” as well.
Yuliya Deinega, Self-taught software developer. Yulia works for LinkedIn as REACH Apprentice Engineer
Also, she created YouTube channel, to share her experience of learning computer programming and finding a job in Silicon Valley
We can divide those who begin to learn Java into three main categories:
How do we look for the answerThe question “how long does it take to learn Java” is kind of tricky. We split it into more specific sub-questions and answer them here. To be more precise, we used interviews with CodeGym students, open sources, and the statistics from the Survey that happened at the end of 2019. That Survey was about Java learning processes and searching for that first job. It was conducted by one of the local CodeGym units. Survey participants were CodeGym students of level 30 and above, who’ve found that first Java-related job or took part in a Java Internship.
What does “To know Java” mean?The most accurate, albeit very general answer to this question would be “be able to solve the problem using Java.” Such a problem may be the goal of “passing an exam” or “getting a job”. Or it can be a technical task, either a big one “to create my own project good enough for Play Market”, for example, or a small one such as “understand how to write code that does what you need.” Of course, your problems will change over time. After getting your first job, you will need to grow into positions (for example, from Java Junior Developer to Java Middle/Senior Developer). The first coding task is followed by the second one. Further, when you do it, some new goals will appear. Let’s turn back to our question. What themes should you know to write “I know Java” down in your CV? Java students usually learn the next topics:
- Core Java or
- Core Java + JUnit or
- Core Java + DataBases or
- Core Java + Tools or
- Core Java + Libraries or
- Core Java + Spring + SpringBoot + Hibernate or
- Core Java + Android SDK or
- …and all of the above combinations.
- Basic types and objects
- Basic constructions (Special Operators, Loops, Branches)
- OOPs Concepts
- Wrapper Classes
- I/O Streams
- Exception Handling
Your personal way. What do you learn Java for?In this article we don’t consider options like “I learn Java just for fun” or “I want to teach Java in the Future”. Here we are talking about professional usage of Java in IT. Currently, most often Java is taught in order to go in one of three ways:
- Java Developer, from trainee/Junior Developer to Senior Developer
- Android Developer, indie or in a company (Junior to Senior)
- QA Automation (with Java)
Java DeveloperJava Developer’s pool is very broad and the requirements for Java knowledge are to get your very first job which can vary greatly. According to CodeGym Survey, there are some people who got their first Java Junior job knowing Java Core only and nothing more. The companies were ready to train them during work processes. However, this is a pretty rare event. More often such a person can join an internship or becomes a Java trainee after passing some exams. Usually Java Junior applicants should know more than just Java Core to get their first job. Here is a list of relevant technologies that Java Developers should know.
- Core Java
- JDK API
- Java 8 (lambdas)
- Testing Libraries (JUnit)
- Spring Framework
- Spring Boot and Spring MVC
Android DeveloperAndroid developers could work for a company or have their own projects. They should know Java Core for sure and some other technologies. Here we have one infographic that demonstrates a way of Android Developer. Well, there are a lot of points in the list, but not many of them are about Java directly (only test tools, and actually Core Java). Usually developers agree that learning Android programming on your own is somewhat easier and faster than Enterprise development. Nevertheless, even for those who aspire to the position of Java Junior, it will be useful to create Android projects to train your programming skills.
QA AutomationA good QA Automation should know the programming language pretty well, it is one of the most important skills for this profession. Connected to Java
- Core Java (especially OOP, Collection, FileOperations)
- Testing Libraries (JUnit)
- IntelliJ IDEA
- Selenium RC/WebDriver framework
- Page Object Model
Who is asking? Portraits of potential Java students“I think it depends on your background and the amount of time you can spend studying. When I started my journey as a software developer I would spend at least 40 hours a week studying. After 6 month of studying full-time I felt confident enough that I can master any new technology by myself. In order to land your first job as a software engineer you will not only need to learn Java, but also to understand the basics of computer science, object oriented programming and write a few projects that can showcase your work. I think this can take somewhere between nine and twelve months. I know this sounds like a lot of work, but don’t feel discouraged! This journey can be real fun if you discover what aspect of coding is bringing you joy and allow yourself to play.”
- “Rookies”. Zero experience. Well, here are people who know nothing about programming.
- “Middles”. Students with minimal or chaotic programming experience. Those people learn programming at school, university or courses, but it wasn’t serious learning.
- “Pros”. Software developers who know other programming languages (1 or more).
- 33.3% were absolutely newbies
- 17.6% knew at least one programming language