Yesterday, a reader sent me a personal message saying, “My teacher is teaching Swing. Do you still need to learn this knowledge?”

To tell you the truth, when I first saw this problem, I wanted to scold niang! Not the readers, you know, the school, the teachers. But I managed to pinch my thighs and politely replied, “Yes, I don’t even have to.”

It’s a little bit of a touch.

The reason WHY I am so euphemistic is to hope that the reader will not be biased towards the school teachers, which will affect the later learning progress. But MY heart is actually very angry, all when, Swing in Java early eliminated, which project will use this thing to write client interface!

Learning about graphical components like Swing and AWT is a waste of time!

Perhaps some teachers have not really been in the actual practice in the company, so they teach students with a book, which leads to a lot of time wasted on knowledge points that do not need to learn, so that when they graduate and find a job, their ability cannot meet the requirements of recruitment.

Some schools are very install force, the teacher is to take his book to lecture, anyway my university that will be, feel the teacher is very cow force of ah, oneself published a book! Later, I waited for myself to publish a book, only to find that the original book is not difficult (well, I was installing force)!

Some schools are not bad, they will choose some classic works of computer science, such as various black books as textbooks. I can only say that the students who can stay in such a school are lucky.

Fear is fear, some teachers just take the textbooks to do not filter. Whether Java Programming Ideas or Java Core Technologies Volume 1, there is a lot of space in Swing, AWT and so on, but those who have work experience know that these are completely unnecessary things in the work.

When I recommend these two books, I make it clear that you should not learn these things, skip them, or even tear them off.

I hope that the editors at the publishing house will remove all these unnecessary things when they reprint these books, so as not to affect the new Java readers. Of course, I know, this is difficult to do, delete equals to the book thinner, computer professional field each book is thicker than the last, each more expensive! I don’t think I’ll be able to sell it at that price. Blood loss.

So what’s a beginner to do?

Of course, it is to pay more attention to the real strength of the programming masters, such as my good friend JavaGuide, Jiangnan a little rain and so on, and the second brother I (bold, exclamation point) !!!!!!!!!!

If you have a question, just come and ask, and then you will know the point of study! It’s better than learning from some teacher.

This is not, just a programming novice to ask questions, the second brother is particularly enthusiastic, but also by the way to do a psychological massage, to help readers relieve pressure, clear the vein.

Next, LET me focus on how to find an internship.

A large proportion of my readers are college students, so if you read this article today and made it to this point, OK, congratulations, straight, no, no, it’s worth it!

Find Java back-end internship work, must first clear, the school recruit, recruit different club will not require too much project experience, this seemingly simple, but many students often entangled with junior easy at this point, I lack of project experience, to hard, the results on the basis of the computer learning to behind, lead to pick the sesame lost watermelon, the loss outweighs the gain

When graduation season comes, many companies will go to school to recruit, the standard is actually very simple, Java can do some simple additions, amendments and checks on the line, but learning ability must be strong, the foundation must be solid, convenient training behind. Because the new recruits, reliable companies will arrange master to take, but also arrange a certain amount of training, the company is not afraid of your project experience is insufficient, afraid of your learning pace can not keep up.

When I was in foreign enterprise internship, be, come up, give two months time directly, do a small project, what I was arranged at that time is to make a copy Win7 calculator (source code and finished product still put in CSDN resource library), well, the interface that Swing does with at that time, but that already was 12 years ago! After the dismissal stage, the company arranged a lot of training, training code specification, development process and so on.

After working for about a year and a half, WHEN I was a team Leader, I also trained new people many times about how to use Flex. Well, that’s gone, too!

(From time to time, I reveal the strong smell of an old code farmer)

All right, enough nonsense. Let’s talk about the most basic requirements for a Java backend intern.

First, you must be skilled in the tools you use frequently.

For example, Intellij IDEA must be skillfully used. If you want to write quality Java code, but also want to be more efficient, use Intellij IDEA! You can go to GitHub to see the Intellij IDEA Chinese tutorial, shortcut key Settings, code templates, commonly used plug-ins, these are detailed instructions.

Github.com/judasn/Inte…

As a simple example, three plugins like **CheckStyle, Alibaba Java Code Specification, and SonarLint are required to ensure code quality to the greatest extent possible. ** In addition to these three, there are still:

These can greatly improve the efficiency of writing code.

For example, Git must be used proficiently. As you all know, a version control system is very important !!!!!!

Even if you’re coding alone, it can help you take snapshots of your project, record every change, create different branches, and so on. This is especially valuable if you are working with multiple people, as you can not only see what others are doing to the code, but also resolve conflicts caused by parallel development. There are many version control systems, one of the most prominent is Git.

If you want to learn Git well, you can check out Pro Git Chinese version PDF, which can be said to be the best tutorial to learn Git, because the author is a major Git implementation contributor.

Second, Java foundation must be solid.

Like the data type of Java, Java operators, Java flow control, Java object-oriented, Java exception handling, these are the most basic things, is a beginner to learn Java when the knowledge must be mastered.

Then Java set framework, Java IO, Java network programming, Java multi-threaded concurrent, Java virtual machine, these are Java more core knowledge points, but also must master.

To get started, check out the 115K + Java tutorial I compiled on GitHub. It covers all the basics of Java, including Java syntax, Java Collections framework, Java IO, Java concurrent programming, and the Java Virtual Machine.

GitHub star standard 115K + Java tutorial, super hardcore!

Java collections frameworks, like ArrayList and LinkedList, The data structure of HashMap, how HashMap works, hash conflicts, expansion process, why not use binary lookup tree instead of red black tree when the list is too deep due to the zip method, what happens to HashMap in Java 8, the difference between HashMap and ConcurrentHashMap, etc. Is the focus of the interview.

Multithreading concurrency is one of the difficulties in the Java foundation, I need to master the knowledge points with mind maps.

There is also the Java virtual machine, the knowledge points to learn are: Java virtual machine memory structure, garbage collection strategy and algorithm, memory allocation and reclamation strategy, Java virtual machine performance tuning, class file structure, class loading mechanism and so on.

How do you learn? I recommend you a book, just a book, Zhou Zhiming teacher “In-depth Understanding of the Java Virtual Machine”, at the beginning of the chew up may be more painful, but I have to be responsible to tell you, chew more, when the interview is easy to impress the interviewer.

Third, master the MySQL database.

Let’s take a look at MySQL’s body of knowledge, again in the form of mind maps.

For basic SQL statements, I recommend the book “SQL Must Know must Know”, which is very thin and can be learned quickly. Then is “MySQL must know must be”, very full, but very concise, very suitable for zero basis of younger students. If you want to learn more about MySQL, I recommend two books, High-performance MySQL and MySQL Technology Insider: InnoDB Storage Engine.

If you have a solid English foundation, I recommend you to see MySQL Tutorial. If you encounter obstacles, you can use Google Translate.

www.mysqltutorial.org/

If you have your own server (which is cheaper for students to buy), you can go to Ali Cloud University to study, which has 18 free courses, from SQL to NoSQL, from self-built to cloud database, one-stop learning + self-test.

Fourth, master the Spring series framework.

Want to become a qualified Java backend development engineer, Spring series framework is must master, YYDS. From SSM (Spring+Spring MVC+MyBatis) to Spring Boot, and then to Spring Cloud, have to be able to use.

In fact, Spring has long been the industry standard for Java back-end development, and how to use Spring well is one of the required courses for Java programmers. Due to the rapid development of the Spring, it gradually from the development of a lightweight framework has become a “monster”, more and more heavy, lead to build an application’s cost is higher and higher, so the Spring Boot arises at the historic moment, it can help developers to quickly build a separate application, minimal configuration. It’s no exaggeration to say that Spring Boot is awesome!

Spring Cloud makes use of the development convenience of Spring Boot, and ingeniously simplifies the development of distributed system infrastructure, such as service discovery and registration, configuration center, message bus, load balancing, circuit breaker, data monitoring, etc. It can be said that the birth of Spring Cloud, Once again, the productivity of Java programmers is liberated.

For learning SSM, you can watch the video of jiangnan a little rain on B station, which can lay a solid foundation for learning Spring Boot in the future.

www.bilibili.com/video/BV1NX…

Let me tell you a little bit about what SSM is.

1) Spring is a lightweight Inversion of Control (IoC) and Aspect Oriented (AOP) container framework. It can load beans, which are Java classes, including services and daOs. With inversion of Control, we don’t have to declare and initialize a class with the new keyword every time we use it. In addition, Spring transaction management is often used in development.

2) Look at how SpringMVC works:

  • The client sends a request to the DispacherServlet (dispatcher).
  • DispacherServlet Controller query HanderMapping and find the Controller that handles the request
  • After the Controller calls the business logic processing, it returns ModelAndView
  • DispacherSerclet queries the view parser and finds the view specified by ModelAndView
  • The view is responsible for displaying the results to the client

3) MyBatis is a persistence layer framework that supports common SQL query, stored procedure and advanced mapping. It encapsulates JDBC and makes the underlying operations of the database more transparent. MyBatis operation is around an instance called sqlSessionFactory expanded, through the configuration file associated with each entity class Mapper file, and then by Mapper file mapping each class to the database needs to execute SQL statements.

For the learning of Spring Boot and Spring Cloud, you can read the pure smiling blog, which has more than ten million page views. It has influenced countless beginners, and I am one of them.

  • Spring-boot – Pure smile blog
  • Spring-cloud – Pure smile blog

I can’t stress enough about Redis, Dubbo, etc., but these four basic requirements are enough for a pitcher. There are also general aspects such as algorithms and data structures, operating systems, principles of compilation, computer networks, principles of computer composition, etc., which I will not emphasize any more. At the university stage, if there is time to engage in these courses, if the school has arranged these courses, it will be better, learn, must learn!

College time is not short, say long is not long, as someone who has experienced, it really feels like a blink of an eye over; For college students, it’s a good time to be young. There are many things to do, such as socializing, expanding, exercising, studying, falling in love, and so on. How to study hard in the midst of so many things?

Must learn to do subtraction, should not learn the content of the time. Things like Swing and AWT mentioned earlier have already been phased out, as well as things like applets and JSPS. If universities are still teaching these things, it is really a misfortune for students.

Instead of spending time on these useless topics, why not:

1) Obsessed with data structures and algorithms

The algorithm question is like the eight-part essay memorized in the imperial examination times, which is a representative example of knowledge changing destiny. If you do not brush, you will pass the algorithm problem, because it will not only test, but also improve your programming skills. The Java version of LeetCode, which I always recommend, should be downloaded and swiped (click the link below to download it).

After eating 300 LeetCode problems, I was about to explode!

2) Keen on ACM

3) Try programming in Unix and Linux environment

4) Fascinated by network programming and multi-threaded programming, have a deep understanding of TCP/IP, HTTP and other network protocols

Well, that’s all for today’s share.

I am the second elder brother. I hope I can give you some help and inspiration. Remember to click “like” ~