One of the most popular questions among those who start learning Java is “How long does it take to learn programming?” It is difficult to give a definite answer to this question. The duration of training depends on many factors: previous work experience and education, intensity of classes, learning goals, etc. But we decided to get closer to determining the optimal period of time for training. To do this, in March we conducted a survey among our students with at least level 30 in JavaRush and asked how they learned Java programming and how long it took.
1. Portrait of a student: starting level of knowledge, field of activity
You can come to Java programming from almost any field: this is confirmed by the survey results. To begin with, we decided to find out what our graduates did before learning Java. Almost 40% of users who started learning on JavaRush studied programming at a university. Half as many knew at least one programming language (not Java), and even fewer were familiar with the basics of Java. Of course, this is a good basis to start with. But not required. About a third of students learned Java from scratch. Among students with a technical background, the majority are system administrators, 1C programmers, web developers, and engineers. There is a wide range of “switchers” - from teachers to sales and marketing specialists, economists, and athletes. Let's now see how much time on average it may take a Java engineer to learn and find a job.2. Time for training and job search
The minimum is 3 months, the maximum is several years to study programming in Java. Interestingly, even those who spent more than 2 years in total (2.5, 3 or 4 years) noted that they would have completed it twice as fast if they had not “stretched out” the training. On average, it takes from one to three months to find a job. Minimum - a week. Maximum - one year.3. Training planning
A simple dependence always works in learning: the higher the intensity of the classes and the fewer the number of breaks and “misses,” the faster you can master the subject. This is especially true for programming, where practice plays a greater role than theoretical studies. We asked JavaRush graduates how much time they devoted to studying, and found out that on average they studied 1-3 hours a day, often combining training with their main job. At the same time, almost a third of graduates studied without interruptions, while the rest took one or more breaks for a significant period of time. Of course, the more time you devote to studying and the fewer “halts” you take, the greater the chances of mastering Java programming and finding a job within 6-12 months. And if you try really hard, then within 3-6 months. As one survey participant responded: “ From the very beginning I had some kind of plan, and I didn’t stick to it .” Do you need to plan your studies or not? Most people think so. The plan usually includes a list of topics and tools that need to be mastered, approximate training periods, and a list of resources (online courses, books, etc.) that are needed for these purposes. 73% responded that they had a preliminary plan. Of those who planned to study, two-thirds of graduates studied on several resources, almost a third - only on JavaRush.4. Sources of learning
What to teach, how to teach, and also where to teach? Ideally, you need to combine several sources. Below is a list of educational sources in order of mention by our graduates. Learning programming only from books is pointless. But it won’t work without them at all :) They will complement programming practice well. Among the best books for beginners, JavaRush students and graduates named:- Head First Java
- Effective Java
- Java Philosophy
- Data Structures and Algorithms in Java
- Clean code
- Java 8 Beginner's Guide
- Design Patterns
- Java. Professional's library
Mini-summary on training planning
To make training effective, graduates and experienced programmers recommend:- pass JavaRush
- watch video courses (Golovach and others)
- read tutorials (Tutorialspoint, Baeldung, Oracle)
- pass Oracle certification (Associate, Professional - OCA, OCP)
- practice on Github
- read Stackoverflow, Habr and other resources
- undergo an internship at JavaRush, local IT companies
5. Recommendations for those looking for work in the field of Java programming
Perhaps the most popular phrase in advice from those who have already completed their studies and found a job is “don’t give up.” Is it easy to learn? Not always. But it's definitely worth the effort :)Top recommendations from experienced programmers
There are several skills that you will definitely need when you get a job. Therefore, if you are approaching this moment, we recommend:- look carefully at the warnings and tips InteliJ IDEA: Google errors, problems and tasks
- pay attention to databases, algorithms and data structures
- explore design patterns
- try to write a complex program from scratch: for example, an email client, a chat bot or a game