There have been a lot of articles about daily problems, cutting-edge technologies, and architectural thinking. Why do you suddenly talk about Swing, an old technology?
Because I saw such an article on CSDN:
You can see that the author is still very angry about learning Swing, but it is true that Swing is rarely used now. But my view is not so absolute, because from the perspective of personal growth, Swing learning has indeed given a lot of gains. I didn't plan to write an article specifically to talk about my views at the beginning, and then I went to the Nuggets, and I saw this article again (a powerful recommendation mechanism):
When I read the title format, I thought it was the same article. I looked carefully and realized that it was a refutation of the previous article. I still agree with many of the views in the latter article.
At the same time, because of the author's point of view, I think that readers often talk to me about the problem of encountering professional bottlenecks, and they have a lot of coincidence with the suggestions I gave, so I still want to write an article to talk about it.
First of all, I respect everyone's views on technological learning. I will not comment on who is right and who is wrong. I will talk about this issue in light of my own learning and growth path. If you are a student in front of the screen or an incumbent who encounters a bottleneck, it is highly recommended to finish this article!
Swing's biggest gain for me
Swing, this is considered to be a very old technology point in the Java field, mainly used as the interface of the client program.
I remember that when I was in college, the big homework of Java class, summer practice and later practical projects during graduate school were all involved. I clearly remember that what I did with my dormitory partner at that time was to imitate a client-side game that supported the Internet, which was implemented in the minesweeper game of MSN at that time. The interface part was implemented with Swing.
In this period, I think the biggest gain is that after learning Java, Swing can realize a visible and fulfilling work. Such learning feedback is actually very good for learners. , Is also an important beginning to experience the fun of programming. In fact, there will be some pride at this time, because in the process of implementation, many problems have been encountered, and many problems have been constantly tried to solve. The thinking mode of programming is a great exercise.
After being proud, as the follow-up courses follow up, there will be a class of face-slashing and progress immediately, which is the design mode! At this time, you will find how bad the previous implementation is. Remember that the most common problem encountered at the beginning is the operation linkage between each Panel. Since I did not learn the design pattern at the beginning, I did not know the advanced design such as the observer pattern, and I did a lot of brainstorming. Static variables in order to achieve various linkages, the final result is that the program coupling is very high.
After that, I also used Swing to do a lot of things, such as drawing boards with vector graphics and chat rooms without services. Further learned the application of state mode, network-related programming and so on.
Some readers may say, then you won't learn Spring Boot + Vue directly to do many things, can you realize it? I think the biggest conflict between the two in terms of learning is not whether it will be used in the future, but the technology of Swing application is very pure, as long as you learn Java, you can get started right away. For frameworks such as Spring Boot that have encapsulated several layers, plus front-end frameworks such as Vue, they have been built on too much basic content. You may follow the tutorial to complete some fixed things, but you need to understand deeply. The nature of these technologies and the more important programming thinking are not so helpful, and from the perspective of programming enlightenment, advancement, and in-depth cognitive process, I do not recommend making the technology stack too complicated at the beginning. It is easy to feel confused, which is not conducive to learning and cultivating interest.
We learned Swing in college, although in the end, it didn't give me any direct help. But in the process of learning, it is very useful for training basic programming thinking, especially for the application of design patterns, 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 mode is easier to learn, and after mastering it, it will be very fast to learn other analogies.
The biggest gain for me from university professional courses
In fact, not only Swing, but many professional courses in universities will not be directly used in our future careers.
such as:
- We have learned the principles of operating systems, should we build an operating system?
- After we learn about computer networks, should we make network equipment?
- We have learned the principles of database systems, should we make database products?
Since we are not going to do these infrastructure work in the future, why do we still learn Don't learn it at all? Forget the book? During the university, although I successfully completed these courses, I had these extreme ideas before. We will all do business applications in the future. These things have a ghost effect!
However, in constant practice and challenges, I found that the extent to which the mastery of framework knowledge can help us is very limited, and it is precisely these courses that were not so important that I was able to break through the rising bottleneck. understanding. Because the design ideas and thinking modes contained in these contents are important sources for guiding me to think about problems and find solutions in the future! For example, in the operating system, many of the concurrency scenario solutions , cache acceleration design and other important ideas are designed to correspond to the high concurrency and distributed that we often encounter today. Various problems in the scene. Because of the blessings (methodology) of these basic understandings, 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, it is a feature of the development of children's shoes when solving difficult problems. Some people who have a solid grasp of these basic courses in the university often only need to directly explain the design ideas to them, and basically get the main points immediately, because he has the basis of these design ideas, and it will be understood by analogy. very easy. As for these children's shoes with classic content or lack of basic knowledge, you often have to talk more carefully, and give him a step-by-step introduction to why this is necessary so that he can understand the reason for doing so.
Therefore, if you are a student in a professional class, then I strongly recommend that you take these basic courses well, don't think that you won't need it in the future, don't bother to learn, or even not learn! If you were born in a training class, it is also strongly recommended to make up the three basic courses I mentioned above, because the training class will basically not teach you these, they only teach you some things that the company is using, so that you can quickly Get started and become a CRUD developer .
postscript
I think to a certain extent, the basic knowledge of 160c2e6da906df determines your upper limit of on your technical career.
"Knowing the reason, but also knowing the reason." Only by understanding the essential principles, we can flexibly solve the problem no matter how it changes. As I have suggested to many readers who want to build architecture, the essence of architecture must be understood, and some basic principles must be well-known. These basic methodologies are the core internal methods that will guide you to practice in the future.
Do not sink a certain past successful experience to guide all your future work. Architecture work is most afraid of rigid methods. If you learn microservices, you will push microservices everywhere. If you learn the middle stage, you can work on the middle stage regardless of the size of the team. In the end, not only did I fail, but it also brought huge losses to the team and the company! There have been too many such examples in the past few years. I believe everyone has encountered them. I have written some bad cases before. The reason is that the designer's inadequate understanding of the basics and essence, blindly seeking the surface, catching up with the trendy framework, and the hot framework.
So in the end, do you think the outdated basic knowledge in the university that will not be used in the future is important? Is it necessary to study hard? Leave a comment about your opinion!
I have been thinking about making friends with some students in school, but those who have been in contact for a long time are all working friends. Perhaps readers of this article will be more students, easily built a school Java beginners group , direction of Java technology for everyone to learn or have any questions about the future can be put on in here career awareness and planning, work fast 10 In the new year, I can give you some useful suggestions, to avoid detours and start with the group ( click to join the Chong Chong Chong )!
Welcome to pay attention to my public account: Program Ape DD, share knowledge and thoughts that can’t be seen elsewhere
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。