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

Java developer checklist. What a developer should know

Published in the Random EN group
Hello! Today we will talk about the development path of a Java developer and what he must know in order to be in demand. Java developer checklist.  What a developer should know - 1Any developer at the interview can “fill up” a candidate for a position. For example, he will start asking questions about specific topics that he has encountered in the current project. But not knowing everything is fine. It's okay if you don't answer some questions. As a general rule, every Java programmer should have a basic knowledge of development. So, let's take a look at what technologies are considered “basic”.

1. Basic algorithms

The first thing you should do when you start learning programming (and not just Java) is to understand the basics. For example, algorithms. There are an infinite number of them, and it is not worth killing for years trying to learn as many algorithms as possible: most of them will not be useful to you. The necessary minimum of knowledge can be obtained from the book “ Groking Algorithms ”. This is enough to start the journey, but if you wish, you can learn a little 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 CodeGym using the CS50 course .

2 Java Syntax

After learning the basics of algorithms, we must learn Java syntax. After all, we are all studying here to be Java programmers, right? The CodeGym course is perfect for this. In the process of performing numerous tasks, you will “fill” your hand in Java syntax and will write / read Java code without much thought, as if it were your native language. CodeGym is a practice, and in addition to it, you also need to look at the theory in order 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 Beginner's Guide” by Herbert Schildt.
After reading these books, you can take on more difficult books:
  • “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 give you a solid foundation in Java theory. Also, do not forget about the articles on CodeGym, because in them you can find explanations on most topics that interest you. You can find the article you need by typing in the search for the topic you are interested in: I Java developer checklist.  What a developer should know - 2also strongly recommend that you search for questions from Java interviews, 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 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 are basic, simple patterns that every self-respecting programmer should know. To understand this topic, use the book “ Head First. Design Patterns ”. It will explain basic programming patterns in an accessible way. But the book talks a lot about Java , so at the time of studying the book, it is necessary to master this programming language. For more insight into patterns, you can also read “Object Oriented Design Techniques. Design Patterns” from Gang of Four ( Gang of Four: a team of authors, which includes Erich Gamma, Richard Helm, Ralph Johnson, John Vlissides - approx. ed.). After studying this topic, you will begin to see patterns virtually everywhere in the code. Pay attention to this, especially the patterns used in Spring , as it's a popular interview question.

4. Programming paradigms. Code purity

In addition to standard programming patterns, there are various principles and paradigms to be aware of ( SOLID , GRASP ). It is also necessary to monitor the cleanliness of the code and its readability. Everything you need to know on this topic can be found in Clean Code by Robert Martin or take advantage of Steve McConnell's Perfect Code.

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. The 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 Fiailly;
  • “Head First SQL”, Lynn Bailey.
But practice without theory does not work, right? And at interviews to test knowledge of SQL, they often (almost always) give one or two tasks for writing an SQL query. Therefore, it is very important to hone your practical SQL skills in order to show yourself in a good light. An excellent resource for stuffing SQL practice can be the sql-ex.ru resource .

6. MySQL/PostgreSQL

After learning the SQL language, you need to become familiar with the specific implementation of the database. Depending on the database, some commands may be very different. Yes, and the difference in the capabilities of databases is very noticeable. The most common relational databases are MySQL and PostgreSQL . Java developer checklist.  What a developer should know - 4MySQL is much simpler, but PostgreSQL has more features. To begin with, it is enough to be familiar with at least one of them. You can study database implementations if you use your Google skills - find the necessary articles and training lessons on Youtube. You have to get your hands on the right search for the questions you are interested in, because a programmer is a person with a “black belt” in Google search.

7. Maven/Gradle

You need to learn one of the Gradle or Maven frameworks that are designed to build projects, because now Java is not only tasks from a couple of classes for you, but also a language for writing full-fledged applications. You must understand how to build a project, what are the build steps, 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 build life cycle.

8.Git

Git is a distributed version control system. This technology allows developers to jointly create one application, while not interfering with each other. Of course, there are analogues of 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 checklist.  What a developer should know - 5In addition to tutorial articles on it, there are enough videos on Youtube to help you master this technology step by step. At first, it is better to use the console Git, and not some interface implementation, because everything will need to be done in it through commands. Interviews often like to ask some Git commands, so I recommend that you write them out and keep them somewhere at hand. I also advise you to keep a note in which you will mark the most important points in order to go through it before the interview and refresh your memory.

9. JDBC

This technology is designed to provide a connection between your Java application and a relational database. To get familiar with the basics, I recommend reading the article JDBC or where it all starts. There are plenty of articles explaining JDBC technology and providing elementary examples, despite the fact that no one directly uses JDBC directly.

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 (concept) that has not been implemented, and for which its specific implementation is needed. There are many such implementations, but Hibernate is considered the closest to JPA ideals, popular and developed . In your development career, you will come across this technology more than once. Therefore, in addition to getting acquainted with this technology by 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 checklist.  What a developer should know - 6Now this framework shares the first place in importance with the need to know the syntax of the Java language. You can say that Spring has a counterpart i.e. Java EE technologies. But Java EE is outdated, and new projects are no longer used. The vast majority of Java developers now are Java Spring developers, so knowledge of some basic Spring technologies is a must. Spring is not just a framework, but a whole platform of frameworks: Java developer 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 in order to understand what Spring is: what is a Spring container, beans, DI, IoC, and so on. So to speak, to understand the very philosophy of using Spring. Further study of Spring frameworks will take place starting from this base. Perhaps you should create your own small application, to which you will gradually screw the new technologies you have learned.

  • Spring JDBC

Earlier we talked about JDBC technology as a technology for creating a database connection. In general, the “naked” use of technology can 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 naked use of JDBC, you can see the technology at a lower level, deal with its problems and shortcomings. Starting to learn Spring JDBC, you will understand what exactly this framework improves, optimizes and hides from our eyes.

  • Spring Hibernate

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

  • Spring JPA

Earlier we talked about JPA and how it is only a specification for which there are different implementations. Among these implementations, Hibernate is 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 JPA specifications. This technology is called Spring JPA. By the way, it greatly simplifies database access. It is possible to learn only JPA without learning JDBC, Hibernate, Spring JDBC, Spring Hibernate. But in this case, your knowledge of connecting to the database will be very superficial.

  • Spring MVC

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

  • spring boot

This technology greatly simplifies the use of Spring. I didn’t just put it at the end of the list, because it hides a lot under the “hood” and for a person unfamiliar with the usual Spring, many points may not be obvious and incomprehensible. First, for a better understanding of how 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. At interviews, juniors are not asked about them (except for one superficial question). Read in general what kind of technology and principles of work it is. In this article, I constantly 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, competition is high in the market for beginner developers, which raises the bar for the necessary initial knowledge for a beginner. Therefore, the more you know, the faster you can find your first job, impressing the interviewer with the level of your knowledge. Thank you all and may it be with youjava .Java developer checklist.  What a developer should know - 9Java developer checklist.  What a developer should know - 10
Comments
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION