I’ve been writing about everyday issues, cutting-edge technologies and architectural thinking for a long time. Why Swing?
Because I saw this article on CSDN:
You can see that the author was angry about learning Swing, but it’s true that Swing is rarely used these days. But my point of view is not so absolute, because from the personal growth, Swing learning did give a lot of harvest. I didn’t plan to write an article about it at first, but then I went to the Nuggets and found this article (great recommendation mechanism) :
Began to look at the title format thought it was the same, look carefully to know that the original is refuted in front of the article, for the back of many views, personal or quite agree with.
At the same time, because of the author’s point of view, I think that there are often readers talking to me about the problem of career bottlenecks, and many of my suggestions coincide with my understanding, so I still want to write an article about it.
First of all, I respect everyone’s point of view on technical learning, and here I will not comment on who is right or wrong. I will talk about my views on this issue based on my own learning and growth path. If you’re a student in school or stuck in a job, I highly recommend you finish this article!
Swing is the biggest gain for me. Swing, which is a very old technology point in the Java field, is mainly used to do the interface of the client program.
I remember that when I was in college, I was involved in big assignments of Java class, summer practice and later practice projects of graduate school. I still remember clearly that at that time, I worked with my dorm buddies to create a small client game that supported the Internet by imitating the MSN minesweeper battle game, and the interface part was realized by Swing.
In this period, I think the biggest gain is that after learning Java, Swing can realize a visible work that gives me a sense of achievement. Such learning feedback is actually very good for learners, and it is also an important start to feel the fun of programming. At this time, there will be some pride, because in the process of implementation, encountered a lot of problems, but also constantly try to solve a lot of problems. It’s a great exercise in programming mindsets.
After the pride, with the follow-up course, will soon usher in a face and progress of the lesson, is the design pattern! Before this time you will find how bad the implementation, remember to most problems is the operating linkage between each Panel, because had not learned to design pattern, don’t know the observer pattern such as advanced design, all have a lot of static variables, in order to realize all kinds of linkage, finally lead to the process coupling is very high.
After that, Swing is also used to do a lot of things, such as: vector graphics sketchboards, no service chat rooms. Further learned the application of state mode, network related programming and so on.
Some readers may say, well, you can’t just learn Spring Boot + Vue to do it. I think the biggest conflict between the two in terms of learning is not so much whether you’ll be able to use it in the future, but the technology that Swing uses is very pure, and once you learn Java, you’ll be able to use it right away. For frameworks like Spring Boot, which have been packaged several layers, plus front-end frameworks like Vue, which are already built on too much foundation, you can probably follow the tutorial and do some fixed things, but it’s not as helpful to understand the nature of these technologies and the more important programming thinking. In addition, from the perspective of enlightenment, advancement and in-depth cognitive process of programming, I do not recommend making the technology stack too complicated in the early stage. On the contrary, it is easy to feel confused, which is not conducive to learning and developing interest.
We learned Swing in college, although it did not give me any direct help in my work at last. However, in the process of learning, it plays a very important role in training basic programming thinking, especially for the application of design mode. Whether it is to learn Spring MVC or Vue, many design ideas are common. Through a simple enough technical content, the understanding of the thinking pattern is easier to grasp, and after mastering it, it will be very fast to learn other analogies.
In fact, not only Swing, but also many professional courses in universities will not be directly used in our future career.
Such as:
We learn operating system principle, should we do operating system? We learn computer network, should we do network equipment? We have learned the principle of database system, should we do database products? If we’re not going to do all that infrastructure work in the future, why the hell are we learning? Why don’t you just stop studying? Throw the book away? In ** university, ALTHOUGH I successfully completed these courses, I also had these extreme ideas in the past. We are going to do business applications in the future, and these things have no use!
However, in constant practice and challenges, I found that the scope of framework knowledge was very limited, and what really enabled me to break through the bottleneck was the knowledge brought by these courses that I thought were not so important at the beginning. Because the design thought and thinking mode contained in these contents will be an important source to guide me to think about problems and find solutions in the future! For example, many of the important ideas designed in the course of operating system, such as solutions to various concurrent scenarios and cache acceleration design, can correspond to various problems we often encounter in today’s highly concurrent and distributed scenarios. Because of this basic knowledge (methodology), you will have more ideas when thinking about problems and designing solutions, and it will be easier to find good solutions!
In the actual work process, for the development of children’s shoes in solving a problem when a feature. Those who have a solid grasp of these basic courses in university often just need to tell them the design ideas directly and can get the main points immediately, because they have the basis of these design ideas and it is very easy to understand them through analogy. And for these classic content or basic knowledge of the lack of children’s shoes, often you have to speak more detailed, step by step to introduce him why so that he can understand the reason for doing so.
Therefore, if you are a professional class students, then I strongly suggest that you must take these basic courses, do not think that the future is not needed, do not need to learn, or even do not learn! If you were born in a training class, it is also highly recommended that you take the three basic courses I mentioned above, because the training class will not teach you this, they will teach you the things that the enterprise uses, so that you can quickly get started as a CRUD developer.
Postscript I think to some extent, the mastery of the basics determines the limit of your technical career.
“Know why, but also know why.” Only by understanding the essential principle, can we solve the problem flexibly no matter how it changes. As I recommend to many readers who want to do architecture, it is important to understand the essence of architecture and to have some basic principles in mind. These basic methodologies are the core internal work that will guide your practice in the future.
Don’t obsess over one of your past successes to guide all your future endeavors. Architecture work is most afraid of rote copy, learned micro services, where to push micro services, learned the medium, how much he did the team in the medium. In the end, not only their own failure, but also bring huge losses to the team and the enterprise! There are too many such examples in recent years. I believe you have all encountered them. I have written about some bad cases before. Investigate its reason, is the designer to the foundation, to the essence understanding is not in place, blindly seek the surface, catch up with the trendy frame, hot architecture caused by.
So in the end, do you think it’s important to learn outdated, unusable basics from college? Is it necessary to study hard? Leave a comment and say what you think!