2020 fresh graduates, what level of java back-end development is qualified?

Recently, I saw many students at school learning java, and in a live event I held recently, many students at school asked questions about how to learn java.

For those who have already worked, even if they have only recently worked, after all, they can summarize and explore the learning methods and related methods of java from the project practice. However, due to the lack of access to actual projects, students and students in the school are slurred in terms of learning content, advanced pathways, and learning standards. The content in the university may be more theoretical, and the technology described is often similar to that of the software company. The commonly used techniques do not match.

This has led to a lot of school students who work hard, but when they graduate, they realize that the skills they learned from the dark can not help them find jobs. In this article, I will combine my criteria for interviewing interns and graduates to give some advice on learning Java for the current group.

1. Clear goals, let’s talk about the company’s criteria for interviewing fresh graduates.

I may have been working in a large company recently. In the graduation season, I will go to some schools to recruit. The standard for school recruitment is very simple: I can work in Java, or I can work with short-term help. The specific standards are as follows.

1. In terms of web framework, you need to understand the basic syntax of SSM, or Spring Boot or Spring Cloud from front-end to back-end in the form of a full stack, and at least be able to write code according to others' examples with the short-term help of the project manager. Fresh graduate candidates only need to be able to clarify the grammatical points and processes of the relevant framework, and at most, explain the usage of components such as mybatis. As for redis and dubbo, there is no requirement at all.

2. In terms of database, you can add, delete, modify and check basics, with some basic concepts, such as how to deal with transactions, how to deal with batches in JDBC.

3. Java grammar (that is, the core aspect). In fact, if you can clearly explain the Web framework skills such as SSM, this can be passed by just brushing the questions, such as asking about the difference between ArrayList and LinkedList, and the concept of multithreading.

4. People seem to be obedient, have few ideas, strong learning ability, strong sense of responsibility, not stingy. In fact, most people can meet the standard.

The above does not require business project experience, of course, if there is, it is definitely a bonus item, and this is still the standard for interviewing fresh graduates of large companies. As for some small companies, or some outsourcing companies, sometimes it is Amitabha that can recruit people (as for some students with a relatively strong ability, it is difficult to say whether they are willing to go). When recruiting fresh graduates, many small companies don’t even ask for “project experience”. It doesn’t matter if they don’t have project experience. They only ask some interview questions on the Internet, which can be said.

2. The actual performance of most freshmen in the interview

From the interviewer's point of view, the standard for recruiting fresh graduates is actually very low. Correspondingly, when recruiting junior developers, you need to have experience in commercial projects to some extent. From this point of view, it’s best for fresh graduates to find a job while in school. The problem of not being able to find a job two or three months after graduation is not too big, but if you can’t find a job after six months, then the criteria for being interviewed will be It is higher than the standard of "fresh graduates".

I have no intention to belittle the level of the freshmen. After all, we all came from this stage, but from the interview situation, at least nearly half of the freshmen are not up to the standard. Here are some specific performances.

1. There is no experience in framework development. The minimum requirement here is to be able to build an SSM project by yourself, but many students do not have it at all.

2. In terms of database, I know the theoretical additions, deletions, and changes, and I won't even run SQL statements on MySQL, Oracle and SQL Server platforms.

3. In terms of Java core, I have mastered a lot of projects that will definitely not be used, such as interface programming techniques such as Swing, but some commonly used concepts such as multi-threaded collections to master are not clear.

In terms of hands-on ability, some students don’t even run Java code on IDEs such as Eclipse, or have basic syntax errors and don’t know how to solve them by themselves. As for those without debugging experience, it’s not surprising that they need to be in the code. Add the necessary try...catch exception handling statement, which is even rarer.

In some universities, although there are not many students with poor theoretical and practical skills, there are some, let alone other universities and colleges. I have also dealt with some university teachers, and have seen some programming textbooks such as Java and databases used in universities, and combined with the performance of many recent students in interviews. My feeling is that perhaps the university level will train students even more. The theoretical literacy of the college students, but when they are in college, they must improve their actual programming skills, including but not limited to the programming ability of the (SSM) framework, the actual database operation ability and the development and debugging ability of the core part of Java code.

3. Which knowledge points learned in the university are most likely not to be asked in the interview (what are the technologies that don’t have to spend too much time looking at)

A few days ago I saw an article written by a college student friend. Perhaps many college student friends also know that they are motivated. They also constantly read various materials, but they may suffer from improper methods. Maybe some college teachers have not actually worked in the company. Unable to give appropriate study advice, so when I finally graduated and looked for a job, my ability did not meet the basic expectations.

In other words, there is a gap between university education and company interview needs, which brings business opportunities to some training institutions. However, the money collected by training institutions is not cheap, and training classes do not necessarily guarantee that students can find jobs. The key is to rely on themselves. From here on, practical learning suggestions will be given.

I recently met with many college students and found that they are trying to learn the knowledge they are trying to learn, but they may not ask during the interview, that is to say, these points are learned for nothing. The interview criteria have been mentioned before, and I will combine specific knowledge points to list the minimum skill standards that need to be mastered during the interview. Other than that, there is a high probability that you will not ask.

1. Java core aspects, collection, multi-threading, exception handling, IO, JDBC, object-oriented skills, most likely to ask, other things not mentioned, such as graphical interface, NIO, Socket network programming, and even Applet Yes, I will not ask.

2. On the database side, I can write SQL statements for adding, deleting, modifying and checking, knowing the concepts of stored procedures, and optimizing query conditions through indexes, building tables, and basic SQL such as subqueries, group by, having, and table related queries. Skills, please note here that at least one commercial database has to be used.

3. In terms of framework, you need the actual operation ability of Spring+Spring MVC+mybatis framework (not commercial project development ability). As for Spring Boot or Spring Cloud, that is better.

4. In terms of comprehensive skills, you can know basic data structure knowledge (linear table with sorting and some tree skills), basic operating system knowledge (generally limited to the concept of thread process), basic network communication knowledge (generally limited to network Communication model and tcp udp protocol), but this is just "need to know".

You can actually look at various job descriptions and recruitment requirements to see which skills you don’t actually ask. For these knowledge, you don’t need to learn, so you can use your energy to learn actual Java-related skills.

It needs to be explained here that a lot of knowledge learned at the university level cannot be said to be useless. For example, the tcp underlying communication details in network communication. These skills may not be used until they are upgraded to a senior developer or architect after 5 years of work, and the detailed knowledge of the communication protocol that needs to be mastered from the perspective of advanced development is definitely better than The university stage is complicated.

In other words, many skills "need to know about this" at the university level. With the experience at the university level, no matter how much time you spend studying, it is estimated that you will not be able to meet the "requirements of actual projects" and wait until you have actual project experience. , And learning this kind of skills is a week or two. By comparing the two parties, the conclusion is very clear: you should accumulate more practical development capabilities at the school stage, because you have to rely on this to find a job.

Four, spend a month to understand the content of the core part of Java

Through the above, you can roughly understand the goal of finding a job when you graduate. If you don’t understand anymore, you can actually look at the recruitment requirements, or even go directly to more job fairs and interviews. In short, the actual development capabilities are prioritized, specifically in the core part of Java , How to learn efficiently?

1. Install jdk, eclipse on your computer, don't use tools like editplus, it is best to use eclipse's automatic compilation function. In this regard, it is actually to exercise one's own ability to build the environment by hand. After work, development is one aspect, and the ability to build the environment is also important.

2. At the beginning, you must find two or three Java introductory books, and first understand the meaning of the code by running the existing code. Don't just read the book and don't run it. At the beginning, run other people's code and don't type the code yourself. It is recommended to find the book directly, because compared to some video teaching materials, after all, the knowledge in the book is very systematic, and the books that can be officially published generally have no code problems and can run directly. It is not recommended to type the code by yourself, because when you type the code by yourself, you will encounter problems more or less. After encountering the problems, the delay in learning progress is small, because it has not been resolved, which affects the learning confidence, or even stops learning, the matter is big.

3. If you find two or three Java introductory books, most of the knowledge systems covered in them are very similar. You can run all the codes first, so that you can roughly grasp the code structure and basic knowledge points, and because the codes in the books are generally not problematic , And the quality will not be low, at least not too much obstructive problems.

4. After running, focus on the collection, object-oriented, multi-threading, IO processing, JDBC, exception handling related chapters. At this stage, it is mainly to master the API usage, and basically look at the interfaces, abstract classes. , Exception handling process, advanced knowledge points such as garbage collection.

On the basis of the above, if you can use Java to implement data structures such as stacks, linked lists, queues, hash tables, trees, etc., with the help of data, while practicing various sorting algorithms, this is also helpful for finding a job. By the way, I am currently working as a Java developer. If you encounter any questions about learning methods, learning routes, learning efficiency, etc. during the introductory learning of Java, you can apply to join my Java novice learning exchange group : 537864251 , there are a lot of beginners who are learning Java technology. You can also come to me directly if you lack the basic video tutorials. I have the latest Java basics and detailed video tutorials. The group file also contains me doing Java technology. Some study manuals, interview questions, development tools, PDF documents, books and tutorials compiled during this time.

5. In half a month, take MySQL as an example to understand the general operation of the database

In terms of databases, it is best to find this book and practice on MYSQL. Why choose MYSQL? Because it is lighter, it is easier to install than Oracle. Of course, it would be better if you have the conditions to install SQL Server.

1. On the MySQL database, practice various SQL statements for addition, deletion, modification, and query, practice table building and indexing skills, and practice complex SQL statements such as subqueries, with as, and so on.

2. Use JDBC together with MYSQL to do various addition, deletion, and modification operations in the Java code.

3. On this basis, understand concepts such as indexes, paradigms and locks. Although the understanding will be superficial at this time, at least it will not be confused.

In this way, in terms of databases, at any rate, I have practical experience, which can lay a good foundation for future project practice.

6. In a month, learn about the Spring-based web framework

The most important thing in the interview is the framework experience. The suggestions for this study are as follows.

1. First, understand the IOC and AOP in Spring by running the code. At this time, you should pay attention to various configurations.

2. After you are familiar with the basic concepts of Spring, you can try to run a small example of SSM. This example can be very simple, just a page, but it should contain many elements of Spring MVC and Mybatis, so that everyone can know the composition of the framework. On this basis, you can continue to expand and add some necessary services to further understand this framework.

At this stage, it is best to read the examples in the book, because the examples in the book will definitely work, and there will be steps to deploy and run. It is not recommended to write the code by yourself, because the SSM framework is relatively complicated. , It is likely to give up because of too many problems.

3. After running through the SSM framework case on your own machine, you can find a system with business online, such as a library management system, and see some front-end and back-end interactive data processes. At the same time, look at the ORM in Mybatis in combination with business Process, and common annotations in Spring.

7. Misunderstandings that can be avoided in the learning process

In terms of Java, I have taught many students in school according to the above steps. As long as they are willing to practice, the effect will not be too bad. However, many students will make detours in the process of practice. Here are some common problems. Try to avoid it during the drill.

1. Don't be horny, face and then click. For example, if a classmate does not understand a knowledge point, or there is a problem with a piece of code, it will spend a lot of time on this point and will not continue unless it is solved. In fact, in this process, you first need to master the SSM framework, Java technology and database in an all-round way. If there is a problem, you can skip it, or if a case does not work, you can run other similar ones. In short, don’t spend too much on one point. time.

2. Let's talk about it again. It is best to run according to the code in the book. The learning method at the beginning is "copy and paste to run understanding". After you have a certain foundation, try to write the code yourself.

3. When practicing the SSM project, some students will follow the steps mentioned in the video. If some video steps are wrong, there will be problems, so it is recommended to follow the book.

4. Choose the right tool, eclipse or Idea at the beginning, don't use editplus or command line.

The above is a misunderstanding in the method. In fact, the biggest problem lies in attitude. The above-mentioned learning process will not last for a short period of time. It will last two or three months, and half a year. If you give up halfway because the effect is not obvious, it will be a pity .

8. After having experience in learning projects, try to find practical opportunities for commercial projects

After following the above steps, let yourself have the most basic SSM and other Java and database related skills, what you have to do is not to continue to accumulate learning project experience, but to find internship opportunities as much as possible to accumulate experience in commercial projects. When looking for internship experience, you can refer to the following suggestions.

1. In my previous blog post, I also mentioned that in my junior year, I asked which teachers in the School of Computer Science have cooperation with outside companies. Generally, master tutors have such projects, and then go directly to the teachers. At the beginning, no money, just experience Perhaps for all the students and classmates, this method is more feasible. I also got my first commercial project experience from this.

2. In general schools will arrange internships. During the internship, we must pay attention to it. This is a real business project experience.

3. In winter and summer vacations, it may be more difficult to find a software company, because it is very difficult for me to find relevant internship opportunities at school, but I have to find it.

4. Everyone considers this according to their actual situation: If you register for the training class, you can accumulate some project experience, but this is only learning project experience, but in the training class, you can find relevant teachers to recommend internship opportunities.

5. If you really can't find an internship opportunity, then try to find examples of commercial project experience through various channels. I know that some websites have them, but do not advertise. Although the quality of commercial project experience accumulated in this way is compromised, it is better than nothing, and after all, many graduates have no experience in learning projects.

Many students in school have found that even if they only have three months of experience in commercial projects, their skills will be greatly improved, and the actual experience in commercial projects will make everyone master the books and not mention it at all. Skills that will be used in the project, such as JVM memory tuning or multi-threaded concurrency. In this sense, as long as the conditions are available, college student friends should squeeze their heads to find experience in commercial projects, instead of sitting leisurely in the computer room typing codes. As long as you have experience in commercial projects, even if it is only three months, you will have a generational advantage when looking for a job.

Nine, the key points of graduates preparing resumes

According to the above steps, when you graduate, you will have some experience in commercial projects, and you can also have experience in learning projects. Please remember that when recruiting graduates, first look at project experience and second look at the skills contained in the project. Third, we will ask about algorithms and theoretical questions. As for logic questions and emotional intelligence questions, they are for reference only.

In this regard, graduates must highlight the project experience they have done in their resumes, and give priority to mining business project experience, even if there is no learning project. If you don't have any project experience, it will be a lot harder to find a job. The focus of this article is on learning methods, and the skills of preparing resumes are just mentioned.

10. Summary: If you persist in at most for half a year, your skills will change drastically

I remember that two years ago, my Python ability was limited to writing hello world. I ran the code and looked at the documentation. I worked hard for half a year. I thought that I had reached the point of publishing a book. After another half a year, I really received one from the publishing house. This book uses a stock case to describe the topic of Python technology, and thinks that the content written will not mislead others.

Not only this classmate, but also many other college students trained by me, as long as they are willing to go to school, at most half a year, at least three months, they can advance from Xiaobai to the level of practical work, and they can really work in a software company. .

Although this article is long, but it also does my best to give some practical learning suggestions for college students. In fact, for other beginners, the suggestions given in this article are also applicable. I hope this article can help you, and finally thank you all for reading this article.

Finally, let me talk about it here. If you are also learning Java now, and you have encountered any questions about learning methods, learning routes, learning efficiency, etc. during the introductory learning of Java, you can come to share and discuss at any time: Java novice communication There are a lot of beginners who are learning Java technology. If you don't understand, you can share and discuss it at any time.

Guess you like

Origin blog.csdn.net/weixin_46898270/article/details/108507223