I hope you can take a few minutes to read this article, it will be very rewarding

Question: How to engage in programmer-related work for a long time

gydorah:

I am a 29-year-old programmer.

One thing I noticed over time is that I am no longer as vigorous, energetic and energetic as when I first started working. As I grow older, my job requirements are getting higher and higher, and I need to learn new things every day. As time goes by, my brain starts to become worse than before, but most importantly, I am more than ever Both need more sleep. Working as a developer becomes more difficult. Although I can still solve this problem, I still have some doubts about my career prospects.

For me, more suggestions are to start looking for humane (not so technical) jobs, such as management or coaching. A big problem in this regard is that I do not have the social skills required for these positions, which means I cannot handle a wide range of social activities. Even if I have this ability, I still feel that management is very boring, and worse, politics. In fact, my introverted personality is the main reason why I started to write code. The love of technology, solving problems and facing challenges are also important, but only ranked second.

There are also people who often suggest that I should switch to less popular projects and don’t need to be on the front line, but the problem is that I really don’t want to end up in a dead end. If I get fired or just want to change jobs, it will be on my resume. There is a big resume defect. I don't want to lose my professional competitiveness.

  • Am I too stubborn, idealistic or too immature in my career choices? Do I have to let go?

  • In the next period of time, can I continue to use programming as my main source of income?

  • What are some ways for programmers over 30 to stay active in technical positions without turning to a humanitarian (management) direction?

Reply

Answer 1

Justosaurus :

  • Learn those basic things that have long-term value and do not change often-stop learning the framework. If a company has its own products, it must acquire relevant domain knowledge and business insights in order to have a broader prospect. Soft skills are still important, even if you want to continue as a developer.

  • Don't forget to take a good vacation (travel) to recharge and stay away from the stereotyped life.

  • Switch to daily activities temporarily and take time out of work every day-go for a walk or exercise.

  • Develop habits and rules to check blogs and understand technology trends.

  • StackOverflow can be used to find questions while you are studying or studying, but-answers help to better remember and gain deeper understanding-this is the gamification of knowledge.

  • You will ask "my main source of income in the near and future" and "maintain stability in the technology industry". In the current market, it is easy if you just want to maintain it, but if you are a little ambitious, the requirements are even higher.

Answer 2

Mike Robinson:

"Foy! Keep going!"  However, we must be fully aware of changes in the environment.

In the 80s, 90s, and "uh-ohs" periods of our industry, "we almost depended on ourselves" because "the computers we had to use at the time could hardly solve problems by ourselves!"

then. . . More and more people started to join in, but even so, a whole lot of "wonderful new things and unexpected things" began to appear-for example, "practical (!) open source!" (suddenly, "in any In the application, the number of open source code lines being used has increased exponentially)

But: " ride the wind and waves, Sao Nian! " There are still many customers/bosses who need us more than ever. Just keep an eye on the ball, you will never be without work until your ball! #%Q@%@? * ...



Answer 3

Kevin:

I'm almost 40 years old. I always have this feeling-there is mud in my head, where I feel slower than before. I used to be so fast, so agile... now it looks like I am running in deep water.

Want to know why I am not sad about it? Not all jobs and outputs are equal.

The easiest way to illustrate this is to look at what a fast and agile novice developer is doing—not to help them.

They may generate a lot of output. . . But this is not all equal. They might spend 10 hours figuring out a very cool way to display data to users. . . You will spend 10 seconds and say, "Oh, yes, JQuery will help us solve this problem." They may spend 10 hours working on a project and have to redo most of the work because they are not very good. Design it. They may spend 10 hours writing something that is too slow because it does not interact well with the database. . . you understood.

There are many things I can do. It takes a long time for a new developer or it can’t be done effectively at all. So it’s okay for my brain to be slow-the "slow" work I'm doing is more valuable than the fast and low-value work of a fast but naive colleague.

Answer 4

bethlakshmi :

I like @bubba's answer, but I think there are some practical things that can be added.

In the next period of time, can I continue to use programming as my main source of income?

Correct. I know many people whose main job (of their own choice) is to write code until they want to retire. Only take on less-coded/non-coded roles when inspired.

Am I too stubborn, idealistic or too immature in my career choices? Do I have to let go?

Remember, with a certain level of qualifications, you will have a great impact on the team, so you need a certain level of communication skills. It is not necessarily management, but you may need to be able to communicate through design documents, and these documents are read by people other than other software engineers (eg, architects, technical managers/supervisors/VPs, etc.), or by other engineers Senior mentors, they can use your wisdom. This is still the development of soft skills. At some point, at least some of the skills you can contribute to will become a career limiting factor-even if your biggest contribution is still writing code. In many cases, this will be branded as "leadership" rather than management.

I say this because I see many people under 30 feel frustrated when they are not promoted to other higher-level positions. This is usually because the expectation has shifted from rewarding the ability gained in individual technical work to the value provided to the team/team/department through the use of superior technical ability to improve the level of personnel. If you want to get promoted without developing soft skills, then this may require a more mature perspective. I am not sure whether this is your opinion.

Moreover, some people have certain qualifications and do not want to be higher. Not everyone becomes a chief engineer-but they can continue to work! Their salary is still high, if you like work...do you care about your title? I do see people continue to assume specific roles and do not take on more work and responsibilities because they are happy in their place.

What are some ways for programmers over 30 to stay active in technical positions without turning to a humanitarian (management) direction?

  • Like @bubba and @ash said-you must learn from your experience. You already have and will continue to acquire some models and learning experiences in the industry. These models are a good reference for how to do this work in a more effective and low-risk manner. As the two big bosses said-hire more experienced engineers, because they learn from (painful) experience. Make sure you continue to pay attention to the results of your work and review them to keep looking for ways to improve.

  • Don't stick to a specific technique-follow and learn the interesting and meaningful techniques you find. Pursue interesting and meaningful work and projects. I find that as we grow older, we become a little bit cynical. Keep looking for jobs that make you eager and excited. And look for a team that suits your style and is full of cooperation spirit. Motivation comes from within, so we must develop motivation. This is the reason for providing energy for additional work now and in the future.

  • There must be a rhythm. I find that the company would like to ask you to work overtime. You can say no and limit it. Make sure your performance meets expectations. . . But it is not unreasonable to have a life, find a life partner, make promises outside of work, etc. Most people of the same age will do this. In my opinion, this is not about your lifestyle outside of work, but the important thing is that you have a life outside of work. I think many people in their 20s don't realize this.

  • If you are really exhausted and your mind is totally unwilling to learn-your standard age is 30, that is the standard of "we will get slower and slower as we age"-not to be your mother, but ( In the voice of my kind mother...)-Are you sleeping enough? Have you eaten well? Have you seen the doctor? Maybe your daily work is a bit messy. . . I will not say that we will never slow down, but I think there is no upper limit for the duration of the learning and adaptability of the mind. The body and mind are related, which means that having a healthy body can make your mind healthy, and the older you get, the more important it is. Therefore, treat your own mind correctly by treating your body correctly.

Answer 5

Hiroshi AKIYAMA:

You can consolidate your position by refactoring a lot of code into obscure language. When I went abroad in 2017 for paid internships (employee communication and training programs), the team I worked with used Haskell, Elixir and Rust extensively. This is obvious and very strange, because the rest of the company's servers are almost entirely in C++, Python, and C# is rarely used in the company's internal desktop programs. The reason is a small team of experienced senior programmers who want to extend their careers. I am considering that sooner or later I will have to use the same move.

Answer 6

user13436576:

Regarding persistence with age, one thing I recommend is to remove sugar (the sugar contained in most processed foods). My father got rid of all sugar and now he has more energy when he is over 50 years old than when he was 20 years old.

Sugar also has a negative effect on your sleep, preventing you from entering deep sleep, so that you can not get the good night refreshing sleep you need.

You can check the Department of Glycoscience at the University of California to learn more about this.

I hope this helps!

Answer 7

jmm :

you're not alone!

As you may see, many of us are (or have been) in the same situation. I am 35 years old, and sometimes I feel the same way. However, I am also confident, because many, many old problems seem familiar. Your experience will be rewarded, I promise.

Focus on the basics

As others have said, understanding the basic principles is always more important. For example, frameworks like Angular (or libraries like React) may be less than 10 years old, and OO design has been more than 50 years old (anyone's entire career is the same). Try to make sure you keep improving your programming skills instead of learning the latest and cool stuff.

Exercise!

I try to practice some algorithm problems from time to time (such as HackerRank/Codility). They are fun, you can always learn new things, they keep you level, and you can deal with some challenging recruitments.

Challenge yourself

I am mainly a Java back-end engineer, so I don't like to learn Java, Spring or Hibernate anymore. This is an obvious and wise choice (don’t get me wrong, I do have a lot to learn), but I’m more willing to learn something I don’t do during working hours: maybe it’s mobile development, or front-end, or even users Experience. This may make you find it harder to progress, but it feels great when you suddenly figure out a way.

Developer needs (a Google search for "programmer job growth")

So, I think we are safe. Of course, you still need to be professional, work on some extra abilities (maybe learning another human language can help you relocate, if this is what you want), and keep growing your professional experience.

Note: Sometimes, there are vacancies

Here is just one example. Such as Python, but I bet it is fully applicable to JS. If you know the latest tools, please don't be frustrated. As others have said, it may still be replaced.

Enjoyment process

Maybe you like what you do, but you are in the wrong place. But my last point should be your safe zone-if something goes wrong, you can still find new places.

Work, study, and life balance

Probably the most important advice, remember to have other hobbies or interests. Most of us stare at the screen about 50% of the time every day, exercising, going out, etc. will definitely help you not be so tired.

Answer 8

bubba:

I will be 70 years old in a few months, but I still write some code. Although not many, there are some.

My experience is that the latest technology is usually only temporary, and intellectually speaking, it is usually not that difficult. The basic knowledge of computer science and mathematics will not change anytime soon.

Experience provides you with things that novices don't have: in-depth understanding of the company's software system, insight into the company's business goals, familiarity with customers and competitors, understanding of the industry, perspectives, and balance. It can be said that they are more valuable than the ability to master the latest technology.

In some ways, your ability to learn will decline with age (although it may be until the age of 40 or 50). On the other hand, learning becomes easier, because you have a large amount of prior knowledge and you have laid a good foundation for understanding new knowledge.

And, as others have said, a person who has encountered two (or similar problems) solves the problem much faster than someone who has never seen it before.

Therefore, if you like to write code, please continue to write code, continue to learn and do not worry.

Answer 9

Michael Durrant:

life-long learning

Spend time on these things every month

  • Reading

  • Learn a new language

  • Learn more about the languages ​​you already use

  • Learn new tools

  • Learn new ways

  • Attend physical or virtual meetings

  • Work on personal projects

Having life, family, hobbies and social interaction at the same time, hey, no one says it's easy!

The main "trap" of experience is that you first become "advanced" because you have become an expert in the technology. The problem is-technology will not last forever (despite the interesting COBOL story). Understand the new technology, you will be OK. For reference: I used to be a BASIC programmer. Although I performed well, I had to start over when I was learning COBOL, but in the end I became good, but then I had to learn Oracle. It was very difficult. I was a junior high school student. , But I got better and advanced. Now, learning to use Javascript (ES6) and React is continuing.

If you like this craft, please continue to learn it, you will be needed.

Don’t worry about speed. Modern methods don't need the speed at which it once helped. Now, knowing the correct method is more important than writing a lot of code. Don't care about sleeping. I do get sleepy when doing a lot of study, but this just means that the brain is overloaded with new input and needs to rest (actually it is overdue). Once the short-term chemical reaction is carved into the long-term memory, the short-term temporary storage will be cleared and I can continue to study. Until a certain point, then no real sleep is needed.

Answer 10

Dave Sherohman :

Don't talk about these clichés, you should be smarter, not harder.

The question you wrote gave me the feeling that you see programming as primarily about breadth of knowledge and hours of fanatical investment. I can almost hear you saying, "Learn the latest hot new tools all night!"

But this is the problem: in the end, the depth of knowledge goes far beyond breadth. I’m approaching 50 years old. I can’t tell you that it’s been decades since I last cared about “new hotspots” or “being at the forefront”, but at least it won’t hinder my career because I know the basics deep enough. So that when I need to use a new tool, I can quickly treat it "very well". I will not be a master of this tool, but I can use it to accomplish what I need to do.

Now, I don’t program full-time anymore. I have transitioned to 75% system management and 25% development because I prefer to deal with various small, unconventional tasks instead of focusing on a single large project for a long time. Even so, even though programming is no longer my main focus, I have enough knowledge and experience to make colleagues need help with programming problems or debugging tasks. The first thing that comes to mind is me, because even if I don’t know what they use For specific tools or languages, they also know that I will find the solution immediately, or at least the way to the solution.

Answer 11

ron rothman:

Don't confuse career with work.

Your job is (relatively) short-term; your career is long. As a programmer in his 30s, I assure you that many software professionals have successful and meaningful careers at this age.

TL; DR: Your team sometimes makes a difference. Consider working with the company/team to find a more valuable programming job to make it more suitable for your current needs.

I am a 29 year old programmer



To help you calibrate: you have just entered mid-career. 29 Not too old even in software development. (According to the Stack Overflow Developer Survey, 53% of software professionals are 30 years old or older.) Even if you are already great, you still need to learn a lot, there is still a lot of room for development, and most importantly, also There are many experiences that are accumulated for the benefit of colleagues and employers and then used.

If you find a team that solves a software problem (for example, a large-scale problem), then you may find yourself starting to enjoy your work again as you did when you first started programming.

I am not as energetic, energetic and energetic as I was at the beginning.



You may be in the wrong job, not the wrong profession. In my career, I have various experiences, and my satisfaction with any particular job depends to a large extent on the specific situation: my boss; my teammates; how interesting the job is; etc. Wait

In my case, the usual advice is to start looking for more people related jobs, such as management or leadership.



Compared with ten or two years ago, today's recommendations are not so common (applicable). Software giants like Google have fundamentally changed the career path of software engineers. Now, you can rise to a very high level (in some "enlightened" organizations-not all) without turning to management.

It is often suggested that I should switch to projects that are not too hot, and these projects do not need to be at the forefront



To you, this sounds like a bad suggestion. You obviously want to be excited about your work; you are not yet. Maybe there is something that a team is doing that excites you, and a team of like-minded geeks (in the best sense) works well with you?

Answer 12

Lawnmower Man:

Shift your focus

I hope that fresh graduates will pay attention to basic and necessary aspects such as format, concise style, functional correctness, unit testing, and a comprehensive understanding of the code at the functional and class level. They still have to learn knowledge outside of work, because things that help them pay attention to improving quality are good. This also means that they usually need more guidance when implementing projects. I made a lot of suggestions for design, and in any case, senior engineers usually design.

For the next level, I hope that engineers can write robust code units that are reliably encapsulated and interact well with the rest of the system. Their focus should be on how to ensure that multiple units in the application interact well without causing hip pull. Therefore, its design scope should be expanded to meet these expectations. They mainly write application code, but can safely update shared libraries under supervision.

I hope that "senior" engineers can master the necessary details of the entire service (not necessarily the entire application, such as the OS or the main standalone desktop application). They should understand how the code works from the functional level to the service startup and dependency level. Given only a set of requirements (of course, I am mainly in an SOA/microservice environment), they should be able to design and build services from scratch.

People with nearly 10 years of industry experience should be experts. According to the most common standards, you should be at least a "senior" engineer. So what is left? Well, everything.

Can do it, do it. Can't do, teach

Of course, this sentence is usually used in sports and coaching, but there is a truth here. If you feel exhausted, you can spend some time coaching. If all your colleagues, including new junior engineers, know more than you, then obviously you don’t learn much. At that point, you should seriously consider switching to project/program/product management. If you are not a more professional expert than most of your peers, it will be difficult to stay relevant.

If your organization hires an intern, please take the initiative to bring him. Instructive programming. Do a code review. Don't just criticize...explain. Don't just explain...teaching. Start with the areas of code you know best, where you have the most confidence and can share the most value. Then expand to areas that you don't know but still have more experience than most teams. Even if your organization does not have interns, there will always be junior programmers looking for mentors. Ask your leader to let you bring one

In addition to understanding the latest programming language paradigms or popular frameworks, there are more important things. That is the rule. Design principles, code quality, testing, documentation. What you do is something that no one else on the team does. Take some time to explain to the whole team why you think these things are important. These are not things you can learn by reading a book or participating in a hackathon. They are lessons learned through years of experience and trial and error. Share this knowledge and it will grow in your own mind. Don't just tell them the truth. Share your stories and experiences. This is the value you have been accumulating.

Get stronger or go home

Back to the original topic, stronger engineers will not be satisfied with satisfying one or two services. They will consider the big picture. The architecture of their system. Which services should exist, and should the dependencies be clean or should be refactored. Due to poorly functioning code maintenance and unhealthy acceptance of technical debt, whether the function is allocated reasonably or becomes a Rube Goldberg machine. Some people call this stage the "architect". I don't like this title, because I personally think that every engineer should wear the hat of an architect sometimes. I believe that whoever designs the top-level architecture of the system should actively participate in the construction and implementation of the system.

In any case, this level does not need to focus on the details of coding. In fact, such attention may be counterproductive. When the architect tells them how to implement some advanced design details, for example, they are fresh graduates, don't laugh at them. If your pace slows down, please keep going up. Your brain is saturated (which is why it is difficult to fill it with more knowledge), but this is an asset, not a responsibility. This means you need to put all the knowledge you have gained into work. I hope you have been paying attention to and absorbing the advanced architecture of the system. I hope you can determine its strengths and weaknesses and guide the team to refactor or improve in the future to generate the greatest value. If you can use the accumulated knowledge to work at a higher level, then you will find that by reading StackOverflow or the latest programming language manifesto, you have learned some knowledge that is not easy to master.

When you start your career, you must focus on software engineering strategies. Once you have mastered the strategy, you should adopt it. Of course, many engineers are in senior positions and just choose work/life balance so that they can focus on what they really care about while continuing to use code to pay bills. If you are satisfied, there is nothing wrong with this strategy.

That being said, a position like an architect is political and does involve more human interaction than the processing needs hidden in the corner. But usually, you can control how much this is necessary and shape your own destiny by figuring out how to provide value while avoiding conflict. Sometimes this can mean giving up the idea that competitors are willing to compete with you. You can avoid unpleasant interactions if you back down instead of gaining a foothold, but you will also lose some upright positions unless you can make up for this by doing really good work in uncontroversial areas. In addition, architects cannot just ignore new technology trends. You still need to keep your eyes open and keep yourself informed of the latest frameworks, libraries, languages ​​and trends. You just don't need to indulge in their details. You need to learn enough to understand their advantages and disadvantages: see the trade-offs they make. In the end, you learn that there is nothing new in the sun, and everything in engineering comes down to a series of different trade-offs. As the field of technology changes, certain products have better value than others, and you need to see and recognize this. However, there is no absolute "better" and "worse". This has to do with what you have now and everything that is about to appear.

to sum up

After all, your profession is your profession. No more and no less. More or less coding, depending on how you can and hope to bring value to the team and company. Identify your personal strengths and interests, and focus on using these advantages instead of trying to adapt yourself to the small screws that human resources and management like to apply to machine gears. Write an ideal job description for the place you want to go and participate in a product that can maximize your value. Then, by spending more time on important things and less time on unimportant things, try to turn your position into this job. You do not need permission to perform this operation. You just need to make it work.



Answer 13

jamesqf:

My advice (I didn't start programming until I was in my 30s) don't focus on keeping up with new trends in languages ​​and development methods, but on actually solving problems. You may have to learn new knowledge to deal with some new problem areas, but this is not the same.

Answer 14

please :

The way to treat 30-year-olds and 25-year-olds should be the same:

Interested in your field

Read books, watch tutorials, attend meetings

* Never be satisfied with what you have been doing

I think I can say the same to lawyers, chefs or farmers. It is not specifically for software engineering.

Experience will greatly facilitate your acquisition of new knowledge. The basic concept remains unchanged. Learning a new language only means that you must understand how the language handles the same concepts. Ideally, you can save time every time you learn new things, because new things make things easier.

As far as employability is concerned, it largely depends on your country. If the employer is looking for the most suitable candidate, then you can definitely continue your career and flourish. If employers in your country/region only need living people with minimal programming knowledge to produce low-quality software over and over again, then you will get into trouble.

What I want to say is that if you live in a Western society and your company hires developers to develop its own products, then you can definitely treat software development as a job that can bring you a better life until you retire (assuming You are interested). If you live in a country that sees software development as an opportunity to rent young, cheap, low-paid and submissive labor to another (preferably Western, affluent company) to make quick money, then you will definitely have a half-life. Because their business model does not require older, more experienced, and more expensive personnel.

Answer 15

Ash:

Your experience will compensate for the drop in speed.

As a software developer in his 30s, I have also noticed the slowdown you mentioned in the 30s. It happens in all aspects of life, not just development. A house renovation project that used to take a few days took several weeks. It is getting harder and harder to party all night. Overnight programming is also not very effective.

I am very aware that my speed is getting slower and slower and I am afraid of every performance evaluation. I even started buying Modafinal to help increase productivity, but after a few months, the impact became less and less obvious.

However, my watch performance review has been very good. Regarding this situation, my guess is that I have seen many things before, and based on experience, I can accomplish some things faster.

The first time I see a type of error, it will take a few days to resolve, and the second time it will take several hours. Now, the same error, if lucky, I can fix it in a few minutes. The increase in productivity makes up for other tasks that take longer.

I also recommend:

  • Do some non-work programming, or do some informal R&D for your employer. Help break the monotony of work. When you need to input on a new project, if you have explored the field and have experience to contribute, then you can look very talented.

  • Do some non-coding but still creative things in your spare time. A few years ago, I entered the field of 3D printing, and in the years before that, I had been playing acrobatics. Help maintain the vitality of the brain.

If you are worried that your skills are irrelevant, consider the maintenance work required for the systems being built today, such as Covid19 leading to increased demand for COBOL programmers.

Public number: Java Architects Alliance, daily updated technical good articles

 

Guess you like

Origin blog.csdn.net/weixin_42864905/article/details/108673087