There are many benefits to writing, in addition to earning some pocket money, but also often harvest readers’ appreciation, full of sense of value. Of course, the most meaningful thing is that I have made many friends from all over the world through sharing veteran brother. Occasionally, some friends ask me for advice on career development. It feels good to be trusted, especially by cute girls. I am happy to share my personal experience and views whenever time permits.

A few days ago, a friend who added wechat came to me for advice on how to improve my technical ability. When I remembered that I was also confused in this aspect, I always felt that I had tried very hard, but after a while, I found that I was still in the same place. This is a common problem for those who have worked for 3 to 5 years. Therefore, BASED on this consultation, I will do a little processing, remove the privacy, share out for the big guy reference.

Dear girl: veteran brother, can you recommend some technical books?

Veteran brother: Is there any specific purpose of learning?

Cute girl: Upgrade your skill level.

Veteran brother: Oh, to put it another way, what direction do you plan to go in the medium and long term, or what specific problem do you want to solve right now?

Lovely girl: I feel that my current technical ability is still a little weak, want to improve the technology, the next step ready to high-level development sprint.

Veteran: Well, you can start by studying programming languages, design patterns, domain-driven design, etc.

Lovely girl: Ok! Are there any recommended books on the Java language?

Veteran brother: Programming language, Thinking in Java, Effective Java and other classic series; Design Patterns, GOF’s “Design Patterns: The Foundation of Reusable Object-oriented Software” is the most classic; Domain-driven Design, Eric Evans’ classic, is Domain-Driven Design: Solutions to Software Core Complexity.

Lovely girl: The book Thinking in Java, which I saw in a friend’s place, has been mutilated. I flipped through a few pages and spoke in great detail.

Veteran brother: Yes, these works are from the hands of the gods in this field, the reputation is guaranteed, belongs to the classic.

Lovely girl: I just bought several books on the anatomy of development framework principles two days ago. These two days they arrived and I have time to read them.

Veteran brother: Well, in the field of Java language, the Spring development framework is the de facto standard, it is very necessary to study. If time permits, I suggest reading official documents, which will be very fruitful.

Lovely girl: Well, I think design mode is the best way to show the quality of the programmer’s code. For example, I have been using policy mode for a while now, instead of if else nesting, and I feel the code is much more beautiful.

Veteran Brother: Yes, from the beginning to the middle to the advanced development, we must consolidate the programming language and design pattern, and then we need to break through the bottom up (vertical) and end to end (horizontal) dimensions of the technology stack.



Vertical stack



Horizontal stack

Lovely girl: Yes. Have you published any new articles recently?

Veteran brother: I’ve been busy lately, and I’ve been catching up on GitChat in my spare time. Technical articles are all published on GitChat. Personally, I think the official account is not suitable for pure technical articles, so I mainly share soft skills here.

Lovely girl: OK, I’ll look for it later. In fact, I am still stuck in the client, application, framework, DB level, the Web container level is not very understanding.

Veteran: Well, now that applications are deployed in the container cloud, the level of standardization is increasing. The Layer of the Web container (like Tomcat) has been weakened, just like Tomcat is embedded in Spring Boot. Previously, we had to be familiar with the principles and parameters of Tomcat to do application performance tuning.

Cute girl: Uh-huh.

Veteran: In addition, Web applications follow the Servlet standard, and the Web container is the implementation of this standard, and Spring grafts on it, so we still need to understand it.

Lovely girl: Yes, it manages the life cycle of the Web application.

. After a while……

Lovely girl: veteran brother, the design pattern you recommend is written in C++ demo case ah?

Veteran brother: ha ha, right, forget I used C++ at first, then switched to Java. If you don’t know anything about C++, look for a Java design pattern book. I don’t know which one is the best. However, the design pattern itself is not language sensitive, it is more a design idea.

Lovely girl: ha ha, I read a book review on douban, high praise, reference value must be some.

Veteran: yes, C++ and Java are both object-oriented programming languages. There are minor differences in design patterns and implementation. If you learn design patterns in C++ and end up using them in Java, you’ve really learned the ropes.

Lovely girl: uh-huh, that’s really, got it, thank you!

We all know that career development is inseparable from learning, but there is so much knowledge and skills to master that we don’t know where to start. Veteran brother also experienced a similar stage, daily work is arranged by the team, it is impossible to choose according to their own preferences, it is a passive learning. Although I continued to read a lot of books every year, I felt that I was not improving. Then I found the key to solve this problem: put what I have learned into practice.

We must study with a clear purpose, not just aimlessly. Over the years, I have developed a reading program (see link at the end of this article) to improve the soft skills needed by architects, specializing in public speaking, technical writing, product management, etc. The results have been evident with consistency, such as: In public speeches, I have been on the stage of several technology summits to share, and served as the host of a technology forum with thousands of people across the industry. I have completed dozens of part-time training courses on career development and won the gold medal lecturer of enterprise university for many times.

This can be for medium – to long-term career goals or to solve an immediate problem. If learning is for medium – and long-term career development goals, we must be clear about the role we want to play in the future, for example: Technical specialist, architecture specialist, project manager, product manager, team manager, etc., and then we have to figure out the skill tree that we need to be able to perform the role in the future. If it’s to solve the immediate problem, then we need to go for the short and the quick. If you are not sure about your future career plan, it is recommended to look for career planning books, such as “What is Possible with Your Life” by classical teachers. You should start with interest, then develop ability and finally realize value.

Never “see the thief eat meat, see the thief be beaten”! Between interest and goal, there is still a lack of ability, clear goal is the first step, then we need to comb the new skill tree, and then put in time and energy to water the sapling grow up, finally is the time to blossom and harvest the goal. It is easy for us to fall into the trap of “using tactical diligence to cover up strategic laziness”. We are tired of using our brains and guilty of thinking. We let ourselves repeat ourselves in low-level work, working for five years with one year’s experience and staying in place.

Today first share here, if you think the content is valuable, please move your finger to forward to other partners in need. If you are interested in this topic, or if you are confused by the above questions, please talk to me. In addition, I will share my experience in career planning, job interview, skill improvement and influence building in the future. Please pay attention to this blog or the public account “IT Veteran brother”!