JavaRush /Java Blog /Random EN /Java developer's checklist. What a developer should know

Java developer's checklist. What a developer should know

Published in the Random EN group
Hello! Today we’ll talk about the development path of a Java developer and what he must know in order to be in demand. Java developer's checklist.  What a developer should know - 1Any developer at an interview can “fail” a candidate for a position. For example, he will start asking questions about specific topics that he encountered in the current project. But it's okay not to know everything. The fact that you do not answer some questions is also normal. Generally, every Java programmer should have a basic knowledge of development. So, let's look at what technologies are considered “basic”.

1. Basic algorithms

The first thing you should take on when you start learning programming (this applies not only to Java) is an analysis of the basics. For example, algorithms. There are an infinite number of them, and you shouldn't spend entire years trying to learn as many algorithms as possible: most of them won't be useful to you. The required minimum knowledge can be obtained from the book “ Grocking Algorithms ”. This will be enough to start the journey, but if you wish, you can learn with the help of the book “ Structures and Algorithms ” or “Algorithms in Java” by Robert Sedgwick and Kevin Wayne. I also advise you to improve your knowledge of the basics of computer science. This can be done in JavaRush using the CS50 course .

2. Java Syntax

After learning the basics of algorithms, we must learn Java syntax. After all, we are all learning to be Java programmers here, aren’t we? The JavaRush course is perfect for this. In the process of performing numerous tasks, you will become fluent in Java syntax and will write/read Java code without much thought, as if it were your native language. JavaRush is practice, and in addition to it, you also need to look at the theory to understand what exactly you are doing. To do this, you can read books, for example one of the following:
  • Head First Java ”;
  • “Java for Dummies” by Barry Bird;
  • “Java. A Guide for Beginners” Herbert Schildt.
After reading these books, you can take on more difficult books:
  • “The Philosophy of Java”, Bruce Eckel;
  • “Effective Programming”, Joshua Bloch;
  • “Java. The Complete Guide”, Herbert Schildt.
The last three books are not easy reading for beginners, but they can provide a solid grounding in Java theory. Also, don’t forget about the articles on JavaRush, because they can find explanations on most topics that interest you. You can find the article you need by typing in the topic you are interested in: Java developer's checklist.  What a developer should know - 2I also highly recommend looking for Java interview questions, such as in this collection of questions on abstract classes and interfaces . This will help you understand what exactly you need to study and what questions to be prepared for.Java developer's checklist.  What a developer should know - 3

3. Programming Patterns

Programming patterns are some repeatable patterns that represent a solution to a problem within a frequently occurring context. Among them there are basic, simple templates that every self-respecting programmer should know. To understand this topic, use the book “ Head First. Design Patterns .” She will clearly explain basic programming patterns. But the book talks a lot about Java , so at the time of studying the book you need to master this programming language. For a deeper dive into patterns, you can also read “Object-Oriented Design Techniques. Design Patterns” from the Gang of Four ( Gang of Four: a team of authors that includes Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - editor's note) . After studying this topic, you will begin to see patterns virtually everywhere in your code. Pay attention to this, especially the patterns used in Spring , as this is a popular question in interviews.

4. Programming paradigms. Code cleanliness

Besides standard programming patterns, there are various principles and paradigms that you need to know ( SOLID , GRASP ). It is also necessary to ensure that the code is clean and readable. Everything you need to know on this topic is in the book “ Clean Code ” by Robert Martin or try the book “Perfect Code” by Steve McConnell.

5.SQL

Our next step is to study the language of relational databases - SQL . Databases are where the information (data) of a web application is stored. A database consists of many tables (the address book on your phone is the simplest example of such tables). You can read more about databases in this article . For Java developers, the area of ​​responsibility is not only the Java application, but also the database with which it interacts and where it stores data. In relational (the most common) databases, all interaction occurs through a special language - Structured Query Language, or SQL. To understand this topic, it will be enough to read one of the books:
  • “Learning SQL”, Alan Bewley;
  • “SQL”, Chris Fiaily;
  • “Head First SQL” by Lynn Bailey.
But practice without theory doesn’t work, does it? And at interviews to test knowledge of SQL, they often (almost always) give one or two problems on writing an SQL query. Therefore, it is very important to sharpen your practical SQL skills to show yourself in a good light. An excellent resource for gaining SQL practice can be the resource sql-ex.ru .

6. MySQL/PostgreSQL

After learning the SQL language, you need to become familiar with the specific database implementation. Depending on the database, some commands may vary dramatically. And the difference in database capabilities is quite noticeable. The most common relational databases are MySQL and PostgreSQL . Java developer's checklist.  What a developer should know - 4MySQL is much simpler, but PostgreSQL has more capabilities. To begin with, it is enough to be familiar with at least one of them. You can study database implementations if you use Googling skills - find the necessary articles and tutorials on Youtube. You have to get good at correctly searching for questions that interest you, because a programmer is a person “with a black belt” in Google searches.

7. Maven/Gradle

You need to study one of the frameworks Gradle or Maven , which are designed for assembling projects, since now for you Java is not only tasks from a couple of classes, but also a language for writing full-fledged applications. You must understand how to assemble a project, what the assembly stages are, how to load the necessary external libraries with ready-made code, and much more. Even though Gradle is newer and more concise, Maven is used in most cases. Therefore, pay special attention to its assembly life cycle.

8. Git

Git is a distributed version control system. This technology allows developers to jointly create one application without interfering with each other. Of course, there are analogues to this version control system. For example, Subversion . But it is Git that is mainly used , and you need to be able to work with it. Java developer's checklist.  What a developer should know - 5In addition to educational articles on it, there are enough videos on Youtube that will help you master this technology step by step. At first, it is better to use console Git, and not some kind of interface implementation, because in it you will need to do everything through commands. During interviews people often ask for some Git commands , so I recommend that you write them down and keep them somewhere handy. I also advise you to keep a note in which you will mark the most important points, so that before the interview you can go through it and refresh your memory.

9. JDBC

This technology is designed to provide connectivity between your Java application and a relational database. To get acquainted with the basics, I recommend reading the article JDBC or Where It All Begins. There are plenty of articles explaining JDBC technology and providing elementary examples, despite the fact that no one uses naked JDBC directly anymore.

10.JPA. Hibernate

JPA is a way of establishing a connection between a Java application and a database, just like JDBC. But at the same time, JPA is a higher-level technology and, accordingly, easier to use. But JPA is only a specification (a concept) that is not implemented and requires a specific implementation. There are many such implementations, but the closest to the ideals of JPA, popular and developed, is considered Hibernate . In your development career, you will encounter this technology more than once. Therefore, in addition to getting acquainted with this technology through articles, it may be worth considering reading a book about it, for example, “ Java Persistence API ”.

11.Spring

When you become a Java developer, Spring is no longer just a word to you. Java developer's checklist.  What a developer should know - 6Now this framework shares first place in importance with the need to know the syntax of the Java language. You can say that Spring has its counterpart, i.e. Java EE technologies. But Java EE is outdated and is no longer used in new projects. The vast majority of Java developers now are Java Spring developers, so knowledge of some basic Spring technologies is mandatory. Spring is not just a framework, but a whole platform of frameworks: Java developer's checklist.  What a developer should know - 7And this is only a part of the frameworks that Spring provides. It is enough for a beginner to know only a few of them:

  • Spring Core

It should be in your first place to understand what Spring is: what a Spring container, beans, DI, IoC and so on are. So to speak, understand the very philosophy of using Spring. Further study of Spring frameworks will take place based on this base. It may be worth creating your own small application, to which you will gradually add new technologies you have learned.

  • Spring JDBC

Earlier we talked about JDBC technology as a technology for creating a connection to a database. In general, the “naked” use of the technology may not be found in projects now, so it may seem that learning JDBC is not necessary. But it is not so. By looking at the bare bones of JDBC, you can see the technology at a lower level and understand its problems and shortcomings. Once you start learning Spring JDBC, you will understand what exactly this framework improves, optimizes and hides from our eyes.

  • Spring Hibernate

As with bare-bones JDBC, this framework improves the use of an existing technology, in this case Hibernate. If you consider using Hibernate without Spring, you will understand exactly what the benefit of using Spring Hibernate is.

  • Spring JPA

Earlier we talked about JPA and how it is only a specification for which there are various implementations. Among these implementations, Hibernate is the closest to the ideal. Spring has its own ideal implementation of JPA, which uses Hibernate “under the hood” and is as close as possible to the ideal of the JPA specifications. This technology is called Spring JPA. By the way, it greatly simplifies accessing the database. You can learn JPA only without learning JDBC, Hibernate, Spring JDBC, Spring Hibernate. But in this case, your knowledge of connecting to a database will be very superficial.

  • Spring MVC

With this technology, we can display the web interface of our application to users and allow the interface to communicate with the rest of the application. The technology can also work without display, when there is some application responsible for display, and you interact with this application using requests and responses using RESTful technology. To better understand information about Spring, in addition to articles and lectures on YouTube, you can read several books. I really liked the book “Spring in Action” by Walls Craig. Unfortunately, in Russian there is now only the third version, which is considered outdated. I advise you to read version 6 if you know English well. Another great book on Spring is “Spring 5 for Professionals.” It's harder to learn and more like a Spring bible that's better to keep handy than to read from cover to cover.Java developer's checklist.  What a developer should know - 8

  • Spring Boot

This technology greatly simplifies the use of Spring. I put it at the end of the list for a reason, because it hides a lot under the “hood” and for a person unfamiliar with regular Spring, many points may not be obvious and incomprehensible. First, for a better understanding of how the Spring frameworks work, you should use regular Spring, and then all the higher benefits of using Spring Boot. I also advise you to familiarize yourself with Spring Security and Spring AOP. But unlike the technologies above, deep knowledge of these two is not needed now. This technology is not for beginners. During interviews, juniors are not asked about them (except perhaps for one superficial question). Read in general what these technologies are and how they work. Throughout this article I have repeatedly mentioned reading books. On the one hand, this is not necessary. You can become a programmer without reading a single book, having studied everything you need from articles and training videos. On the other hand, at the moment the competition in the market for novice developers is high, which raises the bar for the required initial knowledge for a beginner. Therefore, the more you know, the faster you can find your first job, impressing the interviewer with your level of knowledge. Thank you all, and may Java be with you .Java developer's checklist.  What a developer should know - 9
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION