The median age of the American labor force is 42 years old. A Stack Overflow survey on age shows that developers after 40 years old only account for 13% of the total number of developers. Where are the others? Have they been fired or promoted to management positions? Does software development mean the end for people over 40?
This paper lists the stories of 10 old programmers over 40 years old. They are all top software developers, refusing to engage in management positions, still active in the development front line, and taking programming as the main source of income.
Rob Fletcher is a 45-year-old senior software engineer at Netflix (Los Gatos, California).
Expertise: Web development, test-driven development, agile software development, Grails, Groovy, Spock and AngularJS.
I wrote the code of 16 years. After working as an independent contractor for several years, I joined Netflix at the age of 42 and became a senior engineer.
I write code every day. At present, my favorite language is Kote Linyu. I want to learn the language of Go. Commonly used are Java, Scala and Groovy. I have been learning new things, even small things. I know I will be a bad manager, so I don't want to develop into a manager at all.
Many things depend on your attitude. Don't be an old technical person who hates new technology, and don't laugh at those who are using new technology. When choosing technology, your experience should be the basis of decision-making. If you choose old technologies, it is because they just meet the current needs, not because you want to protect your professional knowledge that has been accumulated for many years but is about to become obsolete, nor because you are afraid that those laggards will take your job with Node.js and Go languages.
Ebbe Kristensen is a 62-year-old senior software designer in Prevas A/S (Denmark).
Expertise: developing real-time embedded software, software configuration management, and building test cases (system test and unit test). In the real-time embedded system, Linux and Windows (including. NET), and is good at C, C++, Python, C# and Pascal.
1980 obtained a bachelor's degree in power system electronic engineering. I have been developing software for a living since my first job. It took me nearly a year to find my first job because of my professional degree. But since then, I have been a software engineer.
I write code almost every day and don't deal with any management-related tasks. In fact, I realized a long time ago that I was not competitive in management.
As a programmer, I like this role very much, and I am qualified for this job. If I were a manager, I would be in big trouble, and I don't like management at all.
Only two of my colleagues are older than me, and the others (including bosses) are younger than me. My line manager is under 40 years old. He is one of the best managers I have ever met. I got this job at the age of 58, but I'm not the oldest employee. There are two colleagues older than me. Nevertheless, they were hired by the company.
Sometimes, you can't learn anything for days or even weeks, and sometimes what you learn in a few hours can make up for the "lost" time. The important thing is that you always try your best to study and always be ready to wait for the opportunity to appear.
Brother John, senior software architect of Jean & ampBuild (Atlanta, Georgia), 47 years old.
Expertise: enterprise architecture and development, scrum master, data visualization software. Credit card processing, it services and mobile application development.
I like to solve problems, and I like to find new ways to solve problems. Because of this, I seem to have the skills to keep pace with the times.
Recently, I am developing a project with Node.js I have used Hadoop and NoSQL before, developed Android applications, written Go language codes, and am familiar with various features of jQuery and Bootstrap.
I also pay attention to the latest developments of Java, as well as related technologies such as Spring, JMS, REST, JSON and JPA.
I have also paid due attention to other parts of the technology ecosystem. I have used IntelliJ, Eclipse, Sublime, Emacs and Vi in recent years, and I like to use these tools to solve various problems. At first, I used CVS, then I learned Subversion, and recently I am learning Git. I also have AWS related experience. I am also a certified Scrum master, product manager and developer. I have written many articles about automated unit testing (test-driven development is one of my favorite challenges when building a system).
I'm not afraid to learn new things. I use Ruby on Rails/Grails to develop Web applications, and Perl, PHP and Python to develop applications to solve business problems. I also have experience in SOAP and AOP.
I strive to be a full-stack developer. I am familiar with Unix and often write shell scripts. I like deploying applications, servers and tools, whether in development or production. I am familiar with SQL and NoSQL, and I know their respective advantages and disadvantages. I know TCP/IP, and know the basic knowledge of routing, DHCP and various agents. I built MVC applications, message-driven applications, EJBs and Spring-based services. I have also done front-end JavaScript and CSS development. I don't want to be an award-winning UX developer, but at least I can complete the basic functions.
I plan to work for another 2 1 year. If I switch from Web development to development based on D-ware server, I may fall behind; If functional programming finally rules the world, I may fall behind. But at that time, I still had hope.
Roger Whitcomb is a 60-year-old software architect and software engineer at Actian Company (Palo Alto, California).
Expertise: C, C++, Java
When I was going to be a lawyer, I began to study computer science (if you can imagine what it was like) ... Now, I make a living by writing a lot of well-documented functional Java code (at least at this stage).
In the era of Windows 3.0 (around 1986, I can't remember clearly), I began to develop on Windows. About 10 years ago, I changed my Mac and never returned to Windows. I feel like a geek working with MacBook Pro ... developed with c, C++, Java and Swift. ...
In my last job, I needed to design a whole system from scratch. This is the first time I have done such a thing. It's a little difficult for me to keep up with the development of the Web and mobile, but I'm still far from Twilight, even though I'm 60 years old. I also got some jobs related to "manager" before, but I turned them down. I prefer programming. ...
However, I also know that it is difficult for some laid-off colleagues who are similar to me (or older) to find jobs ("Is it because they are too experienced?" ), so I know what people think of those who have passed a certain age and think they have no future. However, I think the most important thing is that you should continue to create value for your employer.
I am now the PMC Chairman of Pivot Project of Apache Software Foundation. As a Java developer (the submitter of Java-related projects), I hope that Java will last forever. At the very least, there is no better language, and I am required to transplant all the code. ...
Scott Gartner is a senior software engineer in Silver Back Learning Solutions (Boise, ID), and he is in his fifties this year.
Expertise: framework, parser, modeling, graphics, design and implementation of database subsystem, database design (SQL, DML, DDL and LINQ), xml design, single sign-on scheme (SSO), Internet application, Windows application and animation.
I have been a programmer for 34 years, and a piece of paper can hold my resume. All skills over 5 years are just a scratch on your resume. I also have a second resume, which lists all the programming languages and development tools, databases, animation systems and so on I have used. In this way, people can understand me more easily. I only took out my second resume when asked.
In big companies (at least for me), it is also common for old programmers to want to transfer to management. I have faced similar choices, but I am not good at management. I just like being a programmer or an architect.
I found that my memory is not as good as before, and I can't remember the models of large-scale systems. However, I found that my rich experience became more and more valuable.
We have to admit that our whole career must be constantly trained and grown. Things change so fast that if we stop, we will eventually be eliminated.
Every two years, I learn a new programming language, some of which I want to learn, but most of them are due to the needs of technological development (and some are due to the requirements of new jobs). This is very interesting. At present, I am studying data warehouse (OLAP), ETL processing, star schema and cube.
Brian Bowman, chief software engineer of SAS (Cary, North Carolina), aged 56.
Expertise: internal components of patent file system or database, persistent data structure, directory and index search technology, server management, DASD IO driver, machine code generation or cross-architecture code conversion, object persistence, client-server interface, multi-tenant, distributed cache, large-scale authorization system (implementation, management and logging). At present, the research, design and programming of cloud analysis services are all completed on the SAS Viya platform.
The average age of my current team members is 50 years old, and each member has more than 20 years of experience in system software development.
My colleagues and I spent a lot of time coding, debugging, testing and answering system architecture questions. Some colleagues also participate in hardware technology evaluation, give speeches at conferences, contribute to the open source community, and so on.
In the past two years, I have been a member of the elite team of a software company, which has many excellent engineers, many of whom have advanced degrees in computer and applied mathematics. Before that, I worked in a small team for 10 years, and we designed and developed a multi-threaded metadata object cluster server from scratch.
My closest colleagues in the team are all five to six years older than me. During this period, I obtained four American national patents ... all of which were obtained after I was 40 years old.
As long as I can make meaningful contributions, I will continue to work. From the earliest study and research to the need of later work, I have recharged my career many times. This is my nature, and it is also the driving force that inspires me to make continuous progress.
I don't think today's technology can only make me work until I am 70 years old. My career started with 1983, and I survived through four main computer skills:
Mainframe system programming at assembly language level.
Portable programming of multi-host platform based on C language, including desktop, medium-sized Unix network, minicomputer (such as VAX) and subsequent products of mainframe.
Multi-tier cluster server environment, which is composed of multi-threaded C in the back end and Java in the middle layer, is mainly oriented to Windows server and Unix environments, including Linux, to meet the requirements of high availability.
Large-scale parallel grid computing based on multithreading C meets virtual infinite scalability.
Although I had these skills until I retired, I will expand my professional knowledge to machine learning in the next few years.
Maybe 10 years later, the demand for ordinary programmers will drop sharply. If a person really likes computer technology, but can't reach a higher level in programming, then he can consider becoming an experienced system administrator. They always have a lot of work to do, such as configuring, deploying and maintaining the system.
Alec Cowley, the chief software researcher of DisplayLink (Palo Alto, California), is over 60 years old.
Expertise: embedded, multithreading, multi-process, driver, communication stack, C/C++, Java, Python, hardware. Software architects/engineers, especially in software systems that are in close contact with hardware, work together with hardware engineers to maximize the effectiveness of software and hardware.
At the age of 62, I was the oldest developer in the company, and most of the others were in their forties or early fifties.
My youngest colleague should be in his twenties. There is a 35-year-old age gap between me and them, but this is not a problem.
We should embrace technology. Today's world is very different from the beginning of my career (Fortran in the period of punched paper tape), and the changes are still going on. But on the other hand, the problems to be solved are always very similar, that is, how to turn human needs into things that computers can do, how to avoid mistakes, and how to find out the inevitable mistakes. Programming languages, development environments, toolkits, APIs and other things are just means to solve problems, and we only learn how to use them when we need them.
I started with punched paper tape. Even in the era of disk files, I was still the first person to read programs from line printers. Later, there was a universal text editor. Now I'm using an IDE with syntax highlighting.
I think 10 will still need software developers in 20 years. In my opinion, the job of a software developer is to translate the customer's requirements into instructions for computer execution, which is indispensable. The world always needs some experts, who know computers better than ordinary people and have mastered a lot of knowledge related to tools (software packages, APIs, interfaces, etc.). ).
I was lucky to choose a company. Most of my time is spent on software development, and I can always do something I have never done before. There is always some repetitive work in software development, and I can imagine how boring it is to do that kind of work. However, if you are always making new things, you won't feel bored.
My embedded field seems to be more able to withstand the trend than applications. Every few years, new things will appear in the application, some are almost short-lived, some will last for a while, reach the peak and then die. Embedded system has always been very strong, based on C language, with a little C++. On the other hand, the hardware is constantly changing, making things more interesting.
Victor Volkman, a senior software engineer in Proquest (Ann Arbor, Michigan), is 54 years old.
Expertise: Good at Python, Linux, C/C++,. NET, MS Access, MySQL and all SQL-based environments in database, as well as experience in TCP/IP, enterprise system automation and distributed computing.
Architecture and management are two parallel lines. In companies with more than 250 employees, technicians usually have these two ways to go.
Do you like what you are doing? If so, then stick to it. Giving up what you like for a little salary and fiddling with meetings and emails all day will not pay off.
Every two years, the rules of the game change. But don't worry. Spend 3-4 days learning new programming environments, and then use them to support the business. In the past 30 years, I have to learn new things almost every four years. There are six people in my team, ranging in age from 48 to 56. We have gone through three to eight technical updates.
The following is an overview of my career:
Start with writing MS-DOS code in C and assembly language.
Learn to use C++ and MFC to develop Windows applications.
Learn to develop CGI-BIN-based Web applications using Unix Perl.
Learning C#
Learn Java and JSP
Learn smart phone development: iOS/Android/ Blackberry
Go back to Unix and start using Python.
Automatic weather station development (EC2, RDS, SQS, etc. )
Kurt GunSoras, a software engineer, is in his fifties.
Expertise: Windows, Linux/Unix, embedded; Algorithm design, C++, C, multithreading and distribution, telecommunications, security, socket programming, standards committee members, product planning and concept landing; TQM, ISO 9000, agile development and traditional development methodology.
Software development is still a young field, and tools and technologies are still changing rapidly. Software developers will be out of date in less than 20 years if they can't constantly update their skills. Therefore, a 40-year-old programmer will soon find himself incompetent and worry about his future.
Good developers will study until retirement, such as Ken Thompsons's and Bjarne Stroustrups. However, most of us (especially those around 40 years old) will eventually realize that we can't be an industry god.
C++ changed a lot. Every few years, there will be a new version, which contains brand-new functions. I never stop studying. In other words, I have become a very experienced C++ developer with more than 20 years of full-time system programming experience. If someone asks me to rate my experience from 1 to 10, then there is no doubt that I will give myself 9 points, because the only people who know C++ better than me are the people who write books. Later, I wrote a book about C++ optimization.
Programming is a very easy thing. They do what you ask them to do. They are trustworthy and reliable. There is no good day or bad day for code, but the meaning of their existence is when you interact with them. Codes can be a tough nut to crack. They require great attention to detail and considerable mental work.
Humans and code are completely different. Human beings are cunning and changeable, and cannot be used as tools. You can't tell them what to do directly, you must influence them to do what you need them to do. They will not directly respond to your input, but indirectly respond to your encouragement or some reward items you provide. Although human beings are sensitive to rewards and punishments, it will not be effective to manage human beings only in this way. Management should be like interacting with family, friends and peers. If you like dealing with people, then you will like management. If you don't like dealing with people, then you won't be a successful manager.
High-paid managers earn much more than high-paid programmers, but they need a lot of prestigious academic background, good interpersonal network and political alliance, and a certain degree of ruthlessness to shock most people. Programming does not need this ruthlessness, which is the good side of programming. Programming is about innovation, not manipulation.
So, you have to ask yourself, which kind of interaction do you prefer, the certainty and elegance of code, or the friendship and leadership of human beings? It's okay to like code, and those senior architects and CTO can also make a lot of money.
James Glinning, a software consultant in his 60s.
Expertise: object-oriented software design, test-driven development (C, C++, Java, C#), embedded software, refactoring, extreme programming, Scrum, agile development, release planning and incremental planning. One of the main contributors to the C and C++ unit testing framework CppUTest. Speaker of Embedded System Conference and Agile Conference. One of the original authors of the Agile Manifesto.
Keep learning. I am 62 years old and still programming. I like programming.
I will spend some time on management, which is very important to me. However, I decided to make programming and software design my favorite. After I learned something from management, I decided to go back to my favorite software development.
In order to ensure your value, you should ensure that 40 years of experience will not be repeated. We live in a rapidly changing world, not only in technology, but also in how we build software.
Making things is a good thing, but it's not enough. You also need to make products and code more useful and lasting. You need to know how to be a member of a team. If you want to achieve long-term success in your career and make money at the same time, it is not enough to just make things.
Bian Xiao also want to say two words:
In fact, when you are alive, you are faced with many choices. Don't be disturbed by outside comments, just be yourself. Everything will come naturally, and everything will be fine. We just need to do well-when I am old and pale, lying in a hospital bed, looking back on the past, my mouth is raised, my heart has no regrets and my life is complete!
If the sword is not properly matched, it is already a river and lake to go out; The wine is still warm, and I don't know how to dry it at the entrance. May you cross Qian Fan and return to your youth; Years go by, but my heart is still young!