JavaRush /Java Blog /Random EN /What do you need to know to become a Java Junior, and wha...

What do you need to know to become a Java Junior, and what to do with it all?

Published in the Random EN group
The requirements for potential Java developers are constantly changing and difficult to keep up with. Is it enough to know just Java Core to become a Trainee? How well do you need to understand Spring and Hibernate to get a Java Junior position? Is it worth learning databases and understanding sorting and search algorithms? And since JavaRush students are very often concerned about these questions, we decided to ask them to our graduates who are already working as Java Juniors or interning in companies as Java Trainees. Note that 13% of respondents were lucky enough to get a Java Middle position on their first attempt, bypassing the Junior stage. What do you need to know to become a Java Junior, and what to do with it all?  - 1Respondents shared information about which technologies they needed to pass the interview and which they used in the first year of their first Java job.

Everyone needs Java Core

The term Java Core is quite broad. This name refers to both the elementary syntax of the language and such a complex topic as multithreading. Actually, the JavaRush course is mainly devoted to Core. What do you need to know to become a Java Junior, and what to do with it all?  - 2Java Syntax. Language Basics. All these data types, operators, loops and branches. Naturally, 92.4% of those who got the job rated their knowledge of syntax as “good or excellent.” However, 7.6% of respondents managed to become Java Trainees with average syntax knowledge. However, this should be assessed more as luck (or boasting of respondents :)). Of course, everyone who applies for a job as a programmer should know the syntax of the language. Object-oriented programming (OOP). Everything in Java is made up of objects, so OOP can be considered one of the most important themes of the language. The object-oriented approach may seem unfamiliar at first, especially if you've only studied procedural languages ​​before, but it's not difficult to switch to objects. The biggest difficulties for beginners are the levels of abstraction and their independent distribution - a novice programmer must be able to correctly create a hierarchy of objects, understand what the interface will be responsible for and what can be put into an abstract class, create an inheritance ladder, and so on. As usual, this difficulty is solved by practice. The majority of respondents, 80.3% of those who got their first job, knew OOP principles well and used them constantly. In the first year of work as Java Juniors and interns, 78.8% of respondents used OOP principles very often, 12.1% - from time to time. 7.6% of listeners rarely used them - these guys were mainly busy with unit testing and various small tasks. That is, of course, they also used classes or objects (you can’t do without this in Java), but rarely created class hierarchies. Collections Framework. A collection is a collection of individual objects presented as a whole. Java has a very smart Collections Framework for representing collections. Collections are based on popular data structures - lists, ordinary and connected, sets, hash tables. So when exploring collections, it's a good idea to become more familiar with data structures. The main difficulty in studying collections is understanding and remembering how they work. If you understand how they access an element, extract it from a collection and add it to it, then you begin to understand where to apply this or that structure. It comes with practice. But, fortunately, not all of the huge number of collections are actively used in real work. 80.3% of respondents indicated that they had good or even excellent knowledge of collections before receiving their first job offer, and almost all 96.9% of Juniors and trainees use collections in their first job. What do you need to know to become a Java Junior, and what to do with it all?  - 3Exception Handling.An exception is an out-of-the-ordinary situation that may occur while executing your program. All exception classes are subtypes of the java.lang.Exception class. The exception handling mechanism greatly simplifies the process of finding errors in programs. Usually, students start using exceptions quite early, say, in JavaRush. In JavaRush, this topic is raised in the first Java Syntax quest. Almost all JavaRush graduates who got their first jobs knew how to handle exceptions, and, naturally, used them while working. I/O Streams Java. The very first programs written in Java usually contained something like System.out.println(“Hello world”). Often, newbies understand that the println method prints a line to the console, but have no idea why System and out are there and how they work. A little later it turns out that Java performs input and output operations using streams, a continuous stream of data. Threads aren't the easiest topic to understand, and it's not used very often in newbie jobs: only 22.7% of people who got their first Java Junior/Trainee job said they use I/O threads a lot, 31.8% - from time to time, 25.8% - rarely. So just under 20% didn't use them at all during their first year as a Java developer. During their studies, 18.2% did not experience any particular difficulties with flows and knew them well, 36.4% rated their knowledge as good, but 10.6% ignored this topic. Multithreading (Java Multithreading/Concurrency). Perhaps this is the topic that causes the greatest misunderstanding among novice developers. Even though multithreading in Java is very well implemented, it is difficult to understand, and problems can arise even when writing simple programs (for example, multithreaded “Hello, world”). Many employers understand this and do not require a deep understanding of multithreading from beginners, expecting that it will come with experience. Only 12% of respondents noted that they knew the topic at a good level before receiving the first offer, while almost 32% of respondents admitted that they knew nothing about the topic at all. The majority, 56.2%, said they “had some understanding” of multithreading. So if the difficulties of working with threads seem insurmountable to you now, these numbers may reassure you. However, if you want to gain a competitive advantage in an interview, this topic could be your strong point. On real projects, beginners are also rarely allowed to work with threads. Thus, 15.1% of novice programmers have not encountered Java Multithreading at all in their work, and 39.4% have encountered it, but rarely. Often in the first year of work only 9.1% of respondents had to work with multithreading. Lambda expressions.Lambda expressions and hints of functional programming appeared in Java 8, but newbies don't use this handy tool very often. A lambda expression is a function that can be created without belonging to any class, and you can pass it as an object or execute it on demand. Only 22.7% of graduates surveyed knew Lambda expressions well before receiving their first job offer, and 48.5% rated their knowledge of the topic as “close to zero.” At the same time, more than 85% of new programmers said they used lambda expressions in their first year. To be fair, we point out that the low percentage of those who know this topic may be due to the fact that in JavaRush, lambda expressions are so far presented only in the new Java Syntax Pro quest and articles . Thus, we can safely say that knowledge of Core Java for any potential Java Junior and even Trainee is simply necessary. Of course, some topics, for example, multithreading, are acceptable to know a little less, but Java syntax, OOP and collections should be firmly ingrained in your consciousness.

Algorithms and data structures

There is constant debate about the study of sorting and search algorithms. On the one hand, the best algorithms have long been written and included in the libraries of all popular programming languages, including Java. And they can be legally used without the hassle of writing your own code. However, experts who train programmers still recommend that every novice developer train his brain by writing all these bubble algorithms, merging, binary search and the like. Firstly, these algorithms are a kind of litmus test of a programmer’s skills (namely, not knowledge, but skills) and a person’s understanding of what programming is in principle. If your brain is already well tuned to this kind of work, you will write algorithms relatively easily. And yet, you should remember: you need algorithms precisely to train your brain... and in order to pass an interview: the corrosive Senior developers who conduct them are very fond of tormenting applicants with requests to write this or that algorithm. But in their work, the majority (48.5%) use standard library algorithms, effective and proven, while 16% of respondents did not use sorting at all in the first year of working as a programmer. What do you need to know to become a Java Junior, and what to do with it all?  - 469.6% of graduates claim that before receiving their first job offer, they had a good understanding of sorting and search algorithms and could write them themselves. What do you need to know to become a Java Junior, and what to do with it all?  - 5We already touched on the topic of data structures when we talked about Java collections. Yes, it’s better to understand them in order to know where and what structure to apply. Creating your own data structures in the image of library ones is a great exercise that will help you understand them better. You can, for example, try to write your own version of ArrayList or propose your own singly linked list (the usual LinkedList in Java is doubly linked). What do you need to know to become a Java Junior, and what to do with it all?  - 6While working, novice programmers used mainly standard data structures.What do you need to know to become a Java Junior, and what to do with it all?  - 7

Unit testing

The JUnit library is responsible for unit testing in Java. In fact, you can start unit testing almost at the very beginning of training. At the very least, when you take on your first independent project, even a very small one, you better already be proficient in this tool. Writing unit tests is not that difficult, although there are some nuances. Learning JUnit will not take much time, but the benefits of knowing it are enormous. You will be able to cover your own and other people's code with tests. Very often, newbies are tasked with writing unit tests for colleagues, so this can be useful directly in their new job. 57.5% of respondents said they used JUnit before their first successful Java interview, and over 83% had already used unit testing in their first year.

Utility libraries, GUI and useful components

We asked how familiar JavaRush graduates were with a number of tools, some of which were covered in our course.
  • Servlets are Java software components that extend the capabilities of a server.
  • JDBC is a platform-independent standard for interoperability between Java applications and databases. JDBC is implemented as a java package. sql is included with Java SE (Standard Edition).
  • log4j is the most famous message logging library. It allows you to write library calls in java code, and then flexibly customize it without changing the already written code.
  • Jackson/JSON. JSON (JavaScript Object Notation) is an extremely popular open standard file and data interchange format, and Jackson is a high-performance JSON processor for Java.
All these tools are very useful and are often used in work, and most students did not neglect them when preparing for the interview. This is especially true for Jackson, which 72.7% of applicants for the position of Java programmer encountered, JDBC - this library was tried by more than 78% of respondents. Almost everyone used these technologies in their work. Java developers don't come across GUIs very often. We asked a question about JavaFX: only 18% of respondents encountered this technology at work. What do you need to know to become a Java Junior, and what to do with it all?  - 8Two-thirds of respondents worked with servlets; a slightly smaller number of respondents tried them during their studies. It also turns out that some new Java programmers have encountered projects such as Apache Commons (a set of libraries focused on all aspects of reusable Java components) and Guava (a set of open source common libraries for Java, primarily developed by Google engineers ).What do you need to know to become a Java Junior, and what to do with it all?  - 9

Frameworks

Previously, no one expected Java Junior to know Spring or Hibernate. But times change, and today this is sometimes expected even from Trainee. Learning these technologies on your own is not easy. Even if everything seems clear, students often forget what's what very quickly. Sometimes even applications written independently in Spring are not a panacea. Only active work will help. However, before a successful interview, a third of respondents were familiar with Spring at a good level, and 45.5% had an average understanding of it. The situation with Spring boot is somewhat worse (36.4% did not know it at all), and almost 44% of JavaRush graduates surveyed said they had good knowledge of Hibernate. What do you need to know to become a Java Junior, and what to do with it all?  - 10At the same time, while working, the main Java framework was used by almost 88% of new programmers, Spring Boot - 83%, Hibernate - 81%.What do you need to know to become a Java Junior, and what to do with it all?  - eleven

Build Automation tools and application servers

Most of the JavaRush graduates interviewed have tried working with project builders. Most often it was Maven (40.9% tried it in practice, another 30.3% used it from time to time, and 12.1% used it constantly during their studies). When working with Maven, I encountered 72.7% (often), 7.6% (sometimes) and 3% (rarely). As for Gradle, the situation is somewhat worse. Only 22.7% have practiced with this collector, and most of them have just tried out the technology. Almost half of the respondents used Gradle in their work. What do you need to know to become a Java Junior, and what to do with it all?  - 12Ant has long lost its position, and this is reflected in its popularity among our graduates: only 3% of respondents have tinkered with it. And 12% of those who answered the questions had to work with him. Tomcat is the leader among application servers; more than 77% of respondents figured it out during their studies, 11% tried GlassFish, 12% tried JBoss. The popularity of servers among those who are already working looks similar. Only 31.8% of those who got the job had no experience with Tomcat. Also, JavaRush graduates, during their first year of working as a programmer, tried such servers as WebSphere, Jetty, Netty, Wildfly, Weblogic.What do you need to know to become a Java Junior, and what to do with it all?  - 13

What else?

The vast majority of respondents, even before getting their first job:
  • had an understanding of HTML, CSS and JavaScript;
  • worked with databases, knew SQL;
  • almost everyone used Git and GitHub;
  • tried working with pure XML.
All these technologies were useful to them in their further work. A Java programmer, or anyone else for that matter, is expected by default to be familiar with all of the above. It is acquaintance, not deep knowledge. So we recommend taking a break from Java sometimes and broadening your horizons by studying these technologies. Also, some of those who answered the questions noted that at the interview they were expected to have knowledge, at least theoretical, of design patterns, architectural patterns, as well as good manners in programming (all these KISS, DRY, SOLID). However, most often at the interview, only definitions were enough: those who conducted the interviews were well aware that a real understanding of such things comes only with constant practice. Were they useful in your work? Of course they were useful.

conclusions

We hope we haven't scared you too much with the number of technologies you have to learn. Not all of this needs to be known thoroughly, and besides, figuring it all out is quite interesting. It’s not for nothing that you decided to become a programmer, right? So keep learning Java and stay motivated. Good luck! PS If you have already found a job and want to talk about your experience, welcome to the comments!
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION