What did older programmers over 35 years old do?

Abstract: For most programmers, earning someone else’s 60-year-old money before the age of 40 is a common goal, but the advancement of career also confirms the advancement of life, so it is not too early when you start thinking about future career plans .

There is a topic on Zhihu called "What is the programmer's sorrow?", a high praise reply hits the life of most programmers: "The biggest sorrow is thinking that I have made a lot of money, but I don't know how to make it. Money, with age, there are more and more bottlenecks in work, and more and more vulnerable to discrimination, but I don’t know how to go on!

Programmers are honest and love to learn, and they are also one of the most crisis-conscious groups. They eagerly learn the most helpful technical knowledge on GitHub and major technical forums every day, and are afraid that their time and energy will not be able to keep up with the high-intensity programs. Staff work.

To this end, based on years of work experience and experience of technical experts in each product line of Huawei Cloud, we have put out this must-read list for programmers to advance through layers of screening and sorting.

Whether you are a 1-year novice, 5-year-old or 10-year technical expert, or a higher-level CTO, you can find a book that suits you at the current stage in the book list, clarify the direction you want to take in the future, and let your way Going wider and wider, wealth accumulation/skill accumulation/experience accumulation will be smoother.

The first stage of programmers: Junior programmers (0-3 years)

Junior programmers have less than 3 years of work experience and are in the stage of laying a foundation and setting direction. At this time, it is recommended that the main energy be used to consolidate the foundation and standardize programming, which will benefit for life.

1. Know your own field and have a clear understanding of the tools for eating

"Code: The Language Hidden Behind Computer Software and Hardware"  Douban score: 9.2 points

This book is ranked in the TOP5 must-read list for programmers all year round. The author uses rich imagination to explain the seemingly complicated computer working principle in an easy-to-understand manner.

For example, when reading, you will be surprised to find that you can build an electronic computer by splicing common parts such as wires, light bulbs, and triggers. In this process, you also learn mathematical logic, Boolean algebra, and combination. Mathematics, collections, physics, chemistry and electronics.

2. Code is the soul of a programmer, and every excellent programmer should take seriously the code written by himself

"Code Cleanliness"  Douban score: 8.6 points

There are two reasons for reading this book: first, you are a programmer; second, you want to be a better programmer.

The author Uncle Bob gave a series of clean code operation practices, and used positive and negative cases of actual projects to show that as long as these rules are followed, clean code can be written, thereby effectively improving code quality.

The clean code is easy to understand and reliable in quality. It also makes the project easier to start and continue. It also lays a good foundation for later maintenance and upgrades.

Three: Starting from practical problems, let your programming language and thinking go to the next level

"Programming Pearls"  Douban score: 9.1

The author Jon Bentley can be said to be a professional training professional for computer science, and James Gosling, the father of Java, is his student.

He selected typical complex programming and algorithm problems, vividly described the anecdotes, detours and continuous improvement of the masters in exploring solutions, and summarized many unique and subtle design principles, thinking and problem solving. Methods and practical program design skills. For example, discuss with Bob Martin how much water flows out of the Mississippi River in a day, and use such a small question to elicit a rough estimation technique.

4. Learn more algorithms and data structures to improve programming

"Data structure and algorithm analysis (set of books)"  Douban average score: 8.7 points

 

Many universities at home and abroad use it as a textbook. This book is very systematic, comprehensive, and rigorous. It is suitable for programmers who have a basic understanding of data structures and algorithms and have mastered at least one programming language. Moreover, the author wrote three versions in three languages: C\C++\Java.

Chosen by many programmers as the best introductory book on algorithms, after reading this book and reading other algorithm books, you will be very confident.

5. The necessary soft skills for junior programmers, learn to make career planning and self-marketing

"Soft Skills-A Survival Guide Beyond Code"  Douban score: 8.0 points

Summarizes the "soft skills" required by practitioners in the software industry, from revealing the interview process to creating a killer resume, from creating a popular blog to creating a personal IP, from improving their work efficiency to how to interact with "Procrastination" to fight, even including how to invest in real estate, how to pay attention to their own health, can be called the programmer's life encyclopedia.

At this stage, some programmers want to learn a mainstream development language in depth, such as Java, they can learn and practice from shallow to deep, and they can use Java for object-oriented design ( see JAVA learning route ).

If you want to make a preliminary application of what you have learned, you can try to start from the basic website construction ( see the learning route ), start from 0, start from HTML, CSS basic courses, to page scripts, page frames, etc., you can easily get started Website construction.

The second stage of programmers: intermediate and senior programmers (3-5 years)

After changing from a newcomer to an elderly person in the department, you need to have a clear direction for your career planning. If you choose to specialize in technology, you must learn more, further improve your business and technical capabilities, and accumulate high-quality project experience.

For example, if you are interested in the construction of the underlying infrastructure, you can conduct a systematic learning of the database ( see the learning route ). One-stop database learning platform, covering database theory foundation, high-quality courses, and case practice.

If you are interested in mobile development, you can try the mobile development learning route ( click to start free learning ). Mobile development one-stop learning platform, covering Android basic core, high-quality courses, case practice. From entry to master, precise learning.

1. "Code has many bad smells, repetition is the worst kind", first make your code more elegant

"Refactoring: Improving the Design of Existing Code"  Douban score: 9.0 points

Refactoring means to improve the code methodically without changing the external behavior. This book condenses many years of practical experience from experts in the software development community, explains the principles and best practices of refactoring, and points out when and where you should start mining your code for improvement.

The third chapter of the book, "Bad Code", is very useful. What are the bad smells of code and how to eliminate these bad smells? This is a book about code aesthetics, the best choice to cultivate the noble code taste of coders.

2. There are always unreasonable software projects, how to avoid making some classic mistakes

"Rapid Software Development"  Douban score: 8.4 points

There are pitfalls everywhere in software development, and the author tells you which pits the predecessors stepped on. This book summarizes the practical experience of projects in the US software industry represented by Microsoft, and lists methods and techniques that can increase the speed of project development.

For example, an overly tight or unreasonable schedule may be the single most destructive killer of software development, so developers must improve their negotiation skills and plan the project schedule reasonably.

3. In addition to technical capabilities, improving work efficiency is very important

"45 Habits of Effective Programmers"  Douban score: 8.2 points

Summarizing 45 personal habits, ideas and methods of efficient programmers in the development process will help developers to actively practice in the development process, coding work, developer attitudes, project and team management, and continuous learning.

Develop these good habits, you can greatly enhance your programming skills, deliver higher-quality software faster and more reliably, and become a truly efficient programmer.

4. Programmers have reached a certain stage in their careers and think systematically about career development

"Soft Skills 2: Career Guide for Software Developers"  Douban score: 9.0 points

Understand the various "soft skills" that software development practitioners need to possess, including how to choose a job position, how to choose a technical direction, how to expand technical skills, how to get along well with teams and leaders, etc.

5. Cultivate professional software development literacy and have good programming practices

"Programmer's Practice: Towards the Highest Realm of Pragmatism (Second Edition)"  Douban score: 9.2 points

To understand what it means to be a programmer, this book comprehensively explains the best practices and major pitfalls of software development through many entertaining anecdotes, thoughtful examples, and interesting analogies.

There is a chapter in the book titled "My source code was eaten by a cat". In fact, when you find a problem, it is important to solve it, not to push the error to the "cat".

Mr. Dong, a senior architect of Huawei Cloud, had read this book in the "Cloud Sharing Reading Club" , disassembled the essence of the book, combined learning with practice, and refused to talk on paper.

Programmers at this stage can broaden their boundaries, learn new technologies and knowledge, and plan for the next step of their career advancement. At this time, it is important to find hot areas. In the 5G era, both AI and the Internet of Things have great potential for development: AI one-stop learning platform ( click to view the AI ​​learning route ) , covering AI theoretical foundation, programming technology, and case practice. The one-stop learning platform for the Internet of Things ( click to view the learning route of the Internet of Things ) covers the theoretical basis of the Internet of Things, embedded development, application development, and big data analysis. Starting from zero, quickly improve development skills.

The third stage of the programmer: full stack engineer/software designer (5-10 years)

Programmers in this period should more or less start thinking about career turning points: whether to continue to be a low-level code farmer, or to take two steps forward to become an excellent full-stack engineer or software designer.

Whether it is a full-stack engineer with front-end and back-end technology, or a software designer with programming capabilities, they must be proficient in multiple programming languages ​​and have systematic technical capabilities. After laying the technical foundation in the past few years, at this time, we should pay more attention to the details of software development outside of technology to make our work better.

1. The necessary skills for full-stack engineers to coordinate customers and manage projects

"Man Moon Mythology"  Douban score: 8.4 points

The Bible in the software field, the content comes from the author's project management experience in the IBM System/360 family and OS/360. The "person month" in the title of the book refers to the work that a person completes in one month, and the "myth" refers to the myth of shortening the project practice by human hands.

Although many concepts, examples, and techniques in the book belong to the relics of ancient times, the difficulties of software development and management ideas introduced in the book can still be found in today's software development.

2. Full-stack engineers cultivate usability thinking

"Stones into Gold: Visitors First Web and Mobile Usability Design Secrets"  Douban score: 8.2 points

A book about web design principles rather than web design techniques. The author uses humorous language to reveal important but easily overlooked issues in web design. In just a few hours, he can find the website design against the design principles taught in the book The crux of the problem is always new.

3. Milestones in the field of software design patterns

"Design Patterns"  Douban score: 9.1 points

Design patterns are not grammatical regulations, but a set of solutions to improve code reusability, maintainability, readability, and security. Generally, large-scale project development or framework design will use design patterns to organize code.

This book selects 23 design patterns from object-oriented design. It is a must-read for object-oriented development. Although with the development of dynamic languages, many patterns have been integrated into the language, but as a good developer, this book It is not the model itself, but the trajectory of the model.

Fourth, change the thinking of programmers and recognize the importance of interaction design

"Road to Interaction Design"  Douban score: 7.9 points

Although there is no lack of "black" programmers in the book, it is a good interactive design enlightenment book for programmers. By enumerating real cases, the author discusses the "difficult to use" problems caused by "cognitive friction" in product design, and tells how to create better software products with high customer loyalty and software-based high-tech products.

5. Facing a long career, calm down and pursue "good quality"

"Zen and the Art of Motorcycle Repair"  Douban score: 8.3 points

An atypical philosophy book suitable for programmers to read, Hawking and Jobs have both recommended. The book tells about the "Zen" that the author and his son have learned by riding a motorcycle on the road. The most important thing is "good quality".

For example, writing a program is the same as repairing a motorcycle. Sometimes it can be boring, mechanical and tedious, but if you treat this matter with the realm of "good quality" and find an inner balance, it is best to achieve the "things and me". In the state of forgetting, the final result is another situation.

From a junior programmer to an all-rounder, you need to persevere in learning and absorbing various technical knowledge. A full-stack engineer is a good choice. Children who are interested can learn about it: JAVA development full-stack growth plan , WEB front-end full-stack growth plan , IoT IoT full-stack growth plan , AI artificial intelligence full-stack growth plan , to help you get through Become an excellent full-stack engineer during the transition period of technology transformation.

The fourth stage of programmers: architect, CTO (more than 10 years)

Congratulations, you have advanced to the top of the programmer's pyramid! You who have more than 10 years of experience in the industry, have project development experience, are proficient in multiple programming languages ​​and are familiar with databases, have a deep understanding of the industry, technology, and products, and lead your team to become a more critical business capability.

1. Open up ideas for solving the "difficulties" in the architecture design pattern

"Enterprise Application Architecture Mode"  Douban score: 8.3 points

Transform more than 40 common solutions into patterns, each of which provides usage and implementation information, and is accompanied by detailed Java code or C# code examples.

Although some of the content in the book is a bit outdated now, as netizens said, in today's development thinking environment, perhaps such a heavyweight enterprise architecture model book will never come out, and even many of the models will be I think it is too heavy, too Java/.NET, but this is the architectural pattern that a real large-scale software project should have, and it is worthy of every programmer's taste.

2. Learn team management from foreign technology leaders

"Geeks and Teams" Douban score: 8.3 points

Programmer’s Office Political Guide, Google’s technical tycoon, based on his own experience, clarified the importance of teamwork, proposed specific methods to strengthen cooperation, and conducted in-depth analysis with examples. The full text mainly introduces the methods of teamwork from three perspectives: how to deal with the people in the team; how to work in a good or bad company; and how to work with users to create more outstanding products.

Third, lead the team to complete agile transformation

"Agile Transformation: Building a High-Performance Organization in the VUCA Era"  Douban score: 9.2 points

In order to help more companies looking forward to transformation or in the process of transformation to get out of misunderstandings and break through obstacles, this book focuses on the steps, methods and strategies of agile transformation, using a large number of real cases to vividly restore the misunderstandings that agile transformation is easy to enter, and Common doubts in the transformation process of enterprises.

4. Transform from a technician to a leader and systematically improve technical leadership

"Becoming a Technology Leader"  Douban score: 8.3 points

The inherent thinking of many technicians will hinder real communication, or even ignore the real problems. This book can clearly point out these things.

As a successful leader, you must master the leadership methods and skills-innovation, motivation and organization (MOI model). This book proposes some methods for technicians to analyze their own leadership skills in these three areas, and provides practical steps to develop these skills.

5. Whether it is an architect or a CTO, the management team is sometimes more important than technical ability

" Peopleware Douban score: 8.2 points

From the perspectives of managing human resources, creating a healthy office environment, hiring and retaining the right people, forming an efficient team, transforming corporate culture, and happy work, it explains how to think about and manage the biggest problem in software development—people (instead of Technology) to get efficient projects and teams.

A basic starting point of this book is that managers should not regard employees as cold machines or replaceable parts at any time, but should respect their biological and social attributes, and manage them as flesh and blood "human pieces".

Conclusion:

Whether programmers eat youth meals has always been a hot topic of discussion. No matter which line, think more and summarize, "broaden the comfort zone" will be easier to achieve than "out of the comfort zone".

For most programmers, earning someone else's 60-year-old money before the age of 40 is a common goal, but the advancement of a career also confirms the advancement of life, so it is not too early when to start thinking about future career plans.

Although the 20 books listed above cannot be comprehensive, they can be used from the "technical" level to guide programmers who want to get rid of anxiety and embark on the road of advanced technology, and delve into the "dao" of professional advancement. .

Welcome everyone to collect the book list and arrange the reading plan!

Note: Some of the book introductions and reviews involved in this article are from online platforms such as Douban and Jingdong.

 

[Heavy benefits for developers] The HUAWEI CLOUD Developer Learning Channel is now open, with HUAWEI CLOUD experts explaining, free to take you to learn technology and enjoy the latest and hottest fields (artificial intelligence, Internet of Things, big data...). The course recording lecturer team is composed of Huawei Cloud experts and major IT education teams. All courses are free to learn, and the courses are displayed in the form of recordings, and learning is free. It is free and open, and places are limited. Click to open the first stop of learning !

 

Welcome to join the group for technical discussions, group number: 954314851
Insert picture description here

Guess you like

Origin blog.csdn.net/ZiChen_Jiang/article/details/108540929