I am 29-year-old programmer.

One thing I noticed with passage of time is that I'm not as ambitious, sharp and energetic as I was at the start of career. My job becomes more demanding as I age and requires learning new stuff everyday, something my brain started to suck at with time, but most importantly I need more sleep than ever. Working as developer became harder. While I still can tackle it, there are some doubts about my career future.

Common advice for my case is to start searching for more humanitarian job like management or leadership. A big problem with this is that I don't have social aptitude for these positions and can't handle extensive social interactions in general. Even if it was not like that I would still find management extremely boring and what's worse, political. In fact my introverted nature was main reason to start writing code, love of technology, problem solving and challenge being important but second.

It is also often suggested, that I should move to less heated projects that don't require being on bleeding edge, but problem is I really do not want to end up in dead end, and make large employment gaps on my CV if I get laid off or just want to change jobs. I don't want to lose career flexibility.

  • Am I too needy, idealistic and/or immature in career choices? Is having to let go inevitable?
  • Can I keep programming as my main source of income in near and far future?
  • What are some tips that programmer over 30 could use to stay afloat in tech industry without moving to humanitarian side of technology career?
  • 1
    Comments are not for extended discussion; this conversation has been moved to chat.
    – Lilienthal
    Commented Sep 8, 2020 at 8:56

15 Answers 15


I’ll be 70 in a few months, and I still write some code. Not a lot, but some.

My experience is that the latest tech is usually ephemeral, and it’s generally not all that difficult, intellectually. The basics of computer science and mathematics are deeper, but they don’t change very quickly.

Experience gives you things that newbies don’t have: deep knowledge of your company’s software systems, and insight into it’s business objectives, familiarity with your customers and competitors, understanding of the industry, perspective, balance. Those are arguably more valuable than facility with the latest tech.

In some ways, your ability to learn will decline with age (though probably not until you’re 40 or 50). On the other hand, learning gets easier because you have a large base of prior knowledge that forms a good foundation for understanding new stuff.

And, as someone else said, a guy who has seen a problem (or one like it) two or three times previously will solve it much faster than someone who’s never seen it before.

So, if you like coding, keep coding, keep learning, and stop worrying.

  • 1
    Comments are not for extended discussion; this conversation has been moved to chat.
    – Neo
    Commented Sep 8, 2020 at 15:22
  • 1
    I would add that it's worth refreshing basics, design (patterns) etc., all of the things that transcend language. Simply "coding" without any deeper understanding can (and does, I've seen this) run its course and may mean your post ends up untrue for those.
    – bytepusher
    Commented Jul 11, 2022 at 11:48

Your experience will make up for slowing down.

As a fellow software developer over 30, I too noticed the slowdown you've talked about in my early 30s. It occurred in all aspects of life, not just developing. Home renovations that used to take a few days took weeks. Partying all night got harder and harder. Coding till sunrise got less productive.

I was strongly aware I was getting slower, and afraid of every performance review. I even started buying Modafinal in order to help boost my productivity, but within a few months its effects became less and less noticable.

However my performance reviews remained glowing the whole time. My best guess as to what is going on is that many things I've seen before and I'm able to do some things orders of magnitudes faster from experience.

The first time I saw a class of bug, it took days to solve, the second time it took hours. Now the same bug, if I'm lucky, I can fix it in a few minutes. That productivity gain makes up for other tasks taking longer.

I'd also suggest:

  • Do some non-work coding, or do some unofficial R&D for your employer. Helps break out of the monotony, and when input is needed on some new project, you can look like a genius if you've done a little bit of exploration in the area and have experience to contribute
  • Do something non-coding but still creative in your spare time. I got into 3D printing a few years ago, and a few years before that I was making juggling gear. Help keep the engineering part of your brain on its toes.

If you're afraid your skills won't be relevant, consider the maintence work needed on the systems you're building today, for example Covid19 resulted in an increased demand for COBOL programmers.

  • 3
    @Justin having been in industry for 10 years now I'm sick of learning a new stack for every single job. The STEM industry has this grotesque fascination with the new and exciting which makes achieving mastery almost impossible through work alone. Once you realizes that every job you have in STEM will force you to learn a new set of stupid throw away tools in whatever flavor-of-the-month language is hip you really become jaded at the entire experience. If it didn't pay so well I'd probably switch fields. I love programming (been doing it since I was a kid) but the industry is very bad.
    – CL40
    Commented Sep 6, 2020 at 19:50
  • 7
    @CL40 Maybe rate at which tech changes is reasonable and it's just that we are getting old ?
    – gydorah
    Commented Sep 6, 2020 at 22:19
  • 3
    Will experience really make up for slow down ? I am close to ops age, and even though I amassed more knowledge than ever, my ability to apply it diminished, I get confused and distracted too easily, that clear and precise focus I had in my late teens and early 20s is simply gone, I need more time for tasks i did effortlessly in my earlier days. At this point I am aging and scared, and simply do not believe this "experience has your back" type of stories anymore. What are your thoughts on this ? @Ash Commented Sep 6, 2020 at 22:35
  • 2
    ... And I do not even want to get started about problems that age brings in teamplay-centric situations, older you are than teammates more they avoid you. Aging really does bring you down from multiple frontlines. Commented Sep 6, 2020 at 22:40
  • 4
    "older you are than teammates more they avoid you" Can relate to this, unfortunately. Author of question is setting himself up for rude awakening, age above which you are considered old is moving down. I'm in 40s and it aint pretty. @Terry Commented Sep 7, 2020 at 10:35

My advice (and I didn't even START programming until I was in my mid-30s) is to focus less on keeping up with the latest fads in languages and development methodologies, and more on actually solving problems. You may have to learn new things to cope with some new problem domain, but that's different.

  • 8
    I honestly envy people who start something major after 30, be it career, hobby, sport, workout or whatever. You don't get to experience insecurity and fear which comes after that fast and cruel mid-late 20s decline. Commented Sep 5, 2020 at 22:39
  • Definitely agree. Languages/libraries change constantly. The fundamentals don't. Learn those, and be able to apply them. If you do that, you'll be able to roll with whatever changes come. Commented Sep 6, 2020 at 5:13
  • 11
    @ImmortanJoe: On the bright side, though, starting in your early 20s means you probably miss out on a decade or two of agricultural & construction work, interspersed with periods of homelessness :-)
    – jamesqf
    Commented Sep 6, 2020 at 5:37
  • 1
    @Gabe Sechan: Actually, what I meant is just the opposite. Sure, language fads come and go. Trying to keep up with them is a waste of time, (Unless someone is paying you significant money to do so :-)) In my experience, anyway, most of the time I can code something faster & better in C than in the fad language du jour.
    – jamesqf
    Commented Sep 6, 2020 at 5:40
  • 5
    @jamesqf The truth people hate to admit is that languages matter less than language familiarity in 99% of cases. You'll always be faster in a language you know well than in the new hot language, no matter what features it adds. The remaining 1% is when you can find an application that does 90% of what you need written in some other language and you can just hack it to do what you need :) (Although there are some nice features in the newest gen of languages- I wish my preferred languages of Java and C could pick up explicit nullability and get compile time null checking.) Commented Sep 6, 2020 at 5:46

You stay relevant with 30 the same way you stayed relevant with 25:

  • Be interested in your field
  • Read books, watch tutorials, visit conferences
  • Never be content with doing it as you have always done it

I guess I could say the same thing about lawyers, chefs or farmers. It's really not specific to software engineering.

Experience will give you a huge boost in acquiring new knowledge. The fundamental concepts do not change. Learning a new language just means you have to understand how that language deals with the same concepts. And ideally, every time you learn something new, you save time, because the new thing makes it easier.

As far as employability goes, that is very dependent on your country. If employers are looking for the best person for the job, then you can absolutely stay in business and thrive. If employers in your country only need warm bodies with a minimum of programming knowledge to churn out low quality software over and over and over, then yes, you will have a problem.

I would say if you live in a western society, where companies hire developers to develop the company's own product, you can absolutely see software development as a job that will give you a nice life until you retire, assuming you are interested in it. If you live in a country that sees software development as an opportunity to rent out young, cheap, underpaid and unquestioning labor to another, preferably more western and richer corporation for quick money, then yes, you have a half-life. Because they do not need older, more experienced, more expensive personnel in their business model.


Shift Your Focus

The things I expect fresh college grads to focus on include basic necessities like formatting, clean style, correctness of functions, unit testing, and understanding code thoroughly at the function and class level. They are still learning more than producing, so helping them focus on things that will improve their quality is generally good. It also means they typically need a lot more guidance when it comes to implementing projects. I am generous with suggestions for design and often senior engineers will be creating designs anyway.

For the next level, I expect an engineer to be able to write solid units of code that are well-encapsulated and interface nicely with other parts of the system. Their focus should be how to ensure that multiple units within an application interact well without leading to spaghetti. The scope of their designs should thus expand to match these expectations. They mostly write application code, but can safely update shared libraries with some oversight.

I expect "senior" engineers to be able to grasp the essential details of an entire service (not necessarily an entire application like an OS or a major standalone desktop app). They should understand how the code works from the function level up to the service startup and dependency level. They should be able to design and build a service competently from scratch, given only a set of requirements (of course, I'm speaking from a primarily SOA/microservice context).

Someone with nearly 10 years in the industry should be an expert. You should be at least a "senior" engineer by most common standards. So what is left? Well, everything.

Those Who Can, Do. Those Who Can't, Teach

Of course, this saying is usually applied to sports and coaching, but there is a grain of truth here for you. If you feel you are burning out on the coding, then spend some time mentoring. If all your coworkers know more than you, including the fresh new junior engineers, then you are clearly not learning as much as you should be. At that point, you should think hard about switching into Project / Program / Product Management. It will be difficult to stay relevant if there is nothing you are more expert in than most of your peers.

If your org hires interns, volunteer to take one under your wing. Do some pair programming. Do code reviews. Don't just critique...explain. Don't just explain...teach. Start out with the areas of code you know the best, where you are most confident and have the most value to share. Then branch out to areas you know less well but still have more experience than most of the team. Even if your org doesn't have interns, there are always junior programmers looking for a mentor. Ask your manager to connect you with one.

There are more important things than just knowing the latest programming language paradigm or faddish framework. There's principles. Design principles. Code quality. Testing. Documentation. Things you do that others on your team don't. Spend some time educating the whole team on why you think those things are important. Preach. Evangelize. These aren't things you can learn by reading a book or participating in a hackathon. They are lessons learned by years of experience and trial and error. Share that knowledge, and it will also grow in your own mind. Don't just tell them the principles. Share your stories, your experiences. That is the value you have built up all this time.

Go Big or Go Home

Returning to the original thread, engineers who are more ambitious will not be satisfied to master a service or two. They will think about the big picture. The architecture of their system. Which services should exist, whether the dependencies are clean or should be refactored. Whether functionality is distributed rationally or has become a Rube Goldberg machine due to poor code maintenance and an unhealthy acceptance of tech debt. Some people call this stage "Architect". I don't like that title, because I personally think that every engineer should put on an architect hat some of the time. I think that whoever designs the top-level architecture of your system should also be actively participating in the building and implementation of said system.

Regardless, this level does not require a focus on the nitty-gritty details of coding. In fact, such a focus can be counter-productive. Engineers hate it when architects tell them how to implement the details of some high-level design like they are fresh college grads. If you are slowing down, then move up. Your brain is getting full (which is why it is hard to stuff more knowledge into it), but that is an asset, not a liability. It means you need to put all the knowledge you have acquired to work. Hopefully, you have been paying attention to and absorbed the high-level architecture of your system. Hopefully, you can identify its strengths and weaknesses, and guide the team on refactorings or future improvements which can produce the most value. If you can leverage your accumulated knowledge to operate at this higher level, you will find that you have learned things which are not easily acquired by reading StackOverflow or the latest programming language manifesto.

When you begin your career, you must focus on the tactics of software engineering. Once you have mastered the tactics, it is time to move to the strategy of it. Of course, many engineers plateau at some senior position and simply choose a work/life balance which lets them focus on the things they really care about, while continuing to sling code to pay the bills. There is nothing wrong with this strategy, either, if it makes you happy.

That being said, architect-like positions are political, and do involve more human interaction than hiding in the corner pumping out pull requests. But often, you can control to what degree this is true, and shape your own destiny by figuring out how to provide value while avoiding confrontation. Sometimes that might mean giving up on an idea that a rival is willing to fight you on. If you back down instead of standing your ground, you can avoid uncomfortable interactions, but you will also lose some standing, unless you can make it up by producing really good work in an uncontroversial area. Also, architects can't just ignore new technology trends. You still need to keep your eyes open and make yourself aware of the latest frameworks, libraries, languages and trends. You just don't need to obsess over the details of them. You need to learn enough to see their strengths and weaknesses: to see what trade-offs they have made. Eventually, you learn that there is nothing new under the sun, and that everything in engineering simply boils down to a different set of trade-offs. Some bring better value than others as the technology landscape shifts, and you need to see and recognize that. But there is no absolute "better" and "worse". It's all relative to what you have now and what is on the horizon.


At the end of the day, your career is what you make of it. No more and no less. Sprinkle in as much or as little coding as you like, depending on how else you can and want to bring value to the team and the company. Figure out where your personal strengths and passions are, and focus on leveraging those, instead of trying to fit yourself into the cookie cutter that HR and management like to apply to the cogs of the machine. Write the ideal job description for where you want to be. One that maximizes the value you can bring to an effort. Then work towards turning your position into that job, by spending more time on the things that matter, and less on the things that don't. You don't need permission to do this. You just need to make it work.


[EDIT #1. Added reference to hard data: the Stack Overflow Developer Survey results on age.]

Don't confuse your career with your job.

Your job is a (relatively) short term state; your career is the long game. I assure you, as a programmer who's over 30, that many software professionals have successful, rewarding, careers for the entirety of their working years.

TL;DR: The team you're on sometimes makes all the difference. Consider finding a more rewarding programming job with a company/team that's a better fit for your current needs.

I am 29-year-old programmer.

To help you calibrate: you are barely mid-career. 29 is not old, even in software development. (According to the Stack Overflow Developer Survey, 53% of software professionals are 30 or older.) Even if you're already awesome, you still have a lot to learn, a lot of room to grow, and, most importantly, a lot of experience to gain--and subsequently to leverage, for the benefit of your peers and employers.

If you find a team that's solving hard software problems (e.g., some problem at very large scale), then you might find that you automatically begin to enjoy your job again, just as you did when you were new to programming.

I'm not as ambitious, sharp and energetic as I was at the start of career.

You might be in the wrong job, not the wrong career. I've had a wide variety of experiences over my career, and my satisfaction with any particular job was highly dependent on the particulars: my boss; my teammates; how interesting the work was; etc.

Common advice for my case is to start searching for more humanitarian job like management or leadership.

That advice is much less common (and useful) today than it was a decade or two ago. Software powerhouses like Google have fundamentally changed the career path options of a software engineer. You can now advance to very high levels (in certain, "enlightened," organizations--not all) without moving to a management track.

It is also often suggested, that I should move to less heated projects that don't require being on bleeding edge

That sounds like a poor recommendation for you. You clearly want to be excited by your work; you just aren't currently. Perhaps there's a team out there who's doing work that would excite you, and who is composed of like-minded geeks (in the best sense of the word) who you'd work well with?

  • 3
    This is what I would like to hear. No offense but this answer is unreasonably optimistic. Wishes and capabilities rarely allign, especially when age creeps up on you. 29 is old, or at least I do feel old.
    – gydorah
    Commented Sep 6, 2020 at 22:09
  • 1
    @gydorah you may feel old, but in reality age discrimination becomes an issue around age 40, and even then it's usually people who have not kept learning that are at risk.
    – mcknz
    Commented Sep 7, 2020 at 0:25
  • @gydorah No offense taken. :-) Your feelings of being old are just that: feelings. They're important, but please don't confuse them with reality. If you want facts, look at the data I just linked to in my edit: SO Dev Survey results--which indicate that you are currently younger than 53% of software professionals. Your feelings are real are objectively, demonstrably false. That's not an insult; it's my way of trying to get you to see the world from a different (arguably more useful) perspective. Commented Sep 7, 2020 at 2:11
  • 1
    The number of people working as programmers doubles every 5 years or so. Nearly all new programmers are young, so most programmers are young but that doesn't mean that you should change career as you get older. Some managers will want junior programmers because they're cheaper, but your experience should make you more productive Commented Sep 7, 2020 at 11:24

Not to be overly cliche, but you work smarter, not harder.

The question as written gives me the impression that you approach programming as being mostly about breadth of knowledge and the fanatical investment of countless hours to constantly expand that breadth. I can almost hear you saying "Gotta stay up all night to learn the latest hot new tool!"

But here's the thing: In the end, it's depth of knowledge that matters far more than breadth. I'm pushing 50 and I couldn't tell you how many decades it's been since I last cared about "the new hotness" or being "on the bleeding edge", but that doesn't hurt my career in the least because I understand the deeper fundamentals well enough that, when I need to use a new tool, I can be "good enough" with it in no time flat. I won't be a master of the tool, but I will be able to do what I need to with it.

Now, that said, I'm not programming full-time any more. I've transitioned into something like 75% sysadmin, 25% development, because I prefer handling a variety of small, usually unexpected, tasks instead of long-term focus on a single large project. Even so, despite programming no longer being my primary focus, that depth of knowledge and experience is enough that, when a co-worker needs help with a programming issue or a debugging task, I'm usually the first one they turn to, because, even if I don't know the specific tool or language they're using, they know I'll immediately see either the solution, or at least the path to the solution.


You can harden your position by refactoring significant amount of your code to obscure and less popular language. When I was abroad in 2017, on paid intership (employee exchange and training program), team I worked with made extensive use of Haskell, Elixir and Rust. It was noticeable and strange because rest of the company used almost exclusively C++, Python for servers and rarely C# for company-internal desktop programs. It was small team of experienced and senior programmers who wished to extend their career. I am considering to employ same technique sooner or later.


About keeping going as you get older, one thing I would suggest is getting off all sugar (which is contained in most processed food). My dad got off all sugar and now has more energy at 50+ than when he was 20.

Sugar also negatively affects your sleep, keeping you from getting the good refreshing nights sleep that you need, by preventing you from entering deep sleep.

You can check out the sugar science division at the University of California for more information about this.

I hope this helps!

  • 1
    While this might be some useful information for the OP I think if you are going to provide nutritional advice you'd be advised to back this up with some relevant hard sources. As it stands it's essentially an anecdote.
    – motosubatsu
    Commented Sep 8, 2020 at 15:02
  • Learn conceptual things which have long term value and don't change so often - Stop learning frameworks . If a company has its own product, acquire domain knowledge and business insight to see the bigger picture. Soft skills are still important even if you want to remain as developer.
  • Don't forget to take decent holidays (travel) to recharge and get away from typical routines
  • Temporarily switch activities, disconnect from work on a daily basis - go for a walk or sport
  • Build habits and discipline to check blogs, tech trends
  • StackOverflow can be used to hunt questions when you learnt or learning something - answering helps to memorize better and get more in-depth understanding - it's a gamification for knowledge.
  • You ask "my main source of income in near and far future" and "to stay afloat in tech industry" - with current market it's easy if you just want to stay afloat but it's more demanding if you have ambitions.
  • Change jobs or roles within company - don't get stuck in one place for too long if it doesn't work out. The most common one was people staying too long at their jobs and not switching sooner.
  • Drunk Post: Things I've learned as a Sr Engineer

You're not alone!

As you can probably see, many of us are (or have been) in the same situation. I'm 35, and sometimes I feel the same way. However, I also feel confident, because many, many problems certainly look familiar to older ones. You're experience will pay back, I promise.

Focus on the fundamentals

As others have said, it's always more important to make sure you understand the fundamentals. For instance, frameworks like Angular (or libraries like React) might be less than 10 years old, while OO design is over 50 years old (anyones' entire career!). Try to make sure you keep improving your programming abilities, instead of learning the latest cool stuff.

And practice!

I try to practice some algorithmic problems (like HackerRank/Codility) from time to time. They are fun, you always learn something new, and they keep you in a position where you can crack some challenging recruiting processes.

Challenge yourself

I'm mostly a Java backend engineer, and as a consequence, I don't like learning any more Java, or Spring, or Hibernate. It's the obvious and smart choice (and don't get me wrong, I do have a lot to learn), however, I'd rather learn something that I usually don't do in my office hours: maybe mobile development, or frontend, or even UX. This might make you feel that progressing is even harder, but it feels so much better when you figure out things out of blue.

Developers are needed

So, I think we're safe. Of course, you still need to be professional, work on some additional abilities (maybe learning another human language can help you get a relocation, if that's what you're looking for), and keep growing your professional experience.

But beware: sometimes, job posts are crap

I'll just leave an example here. It's a Python one, but I bet it fully applies to JS. Don't feel frustrated if you don't know the latest tool. As others had said, it might be replaced anyway.

Enjoy the journey

Maybe you love what you do, but you're at a wrong place. But my previous point should be your safe net —if something goes wrong, you can still look for a new place.

Work/study life balance

Probably, the most important piece of advice, remember to have other hobbies or interests. Most of us are ~50% of our days' time staring at a screen, and doing exercise, going out, etc, will certainly help you not to burn out.

  • 1
    "maybe learning another language can help you get a relocation" are you talking about a programming- or human language?
    – Haem
    Commented Sep 8, 2020 at 10:37
  • Human language, I should have clarified
    – jmm
    Commented Sep 8, 2020 at 12:21

I love @bubba's answer, but I thought there were some other practicalities to add.

Can I keep programming as my main source of income in near and far future?

Yes. I know quite a few people whose main job (by choice) was to write code up until they wanted to retire. Move into a less-coding/non-coding role only when it inspires you.

Am I too needy, idealistic and/or immature in career choices? Is having to let go inevitable?

Keep in mind, that at a certain level of seniority, you are expected to make an impact that is so big, that you will need some level of communication skills. It doesn't have to be management, but you may need to be able to communicate via design documents that are readable by people beyond other software engineers (for example, architects, techical managers/directors/VPs, etc.), or to be enough of a mentor to other engineers, that they draw upon your wisdeom. This is still soft-skill development and at some point, not having at lease a few of this skills you can draw on WILL become a career limiting factor - even if your biggest contribution is still writing code. Many times this is branded as a form of "leadership" that isn't management.

I say that, because I see many folks in their 30's get frustrated when they don't move up to other higher titles. That's usually because the expectations have shifted from rewarding the competency gained in solo tech work, to the value provided to a team/group/department by using superior tech prowess to advance the group of people. If you are hoping to get promoted without developing soft skills - then this is a point of view that may need more maturity. I can't necessarily tell if it's your POV.

And also - there are people who hit a certain level of seniority and don't aim to be higher than that. Not everyone becomes the super principal engineer - but they can keep working! Their salary is still pretty good, and if you enjoy the work... do you care what your title is? I do see people who stay at a certain role and don't take on more work and responsibility, because they are happy where they are.

What are some tips that programmer over 30 could use to stay afloat in tech industry without moving to humanitarian side of technology career?

  • As @bubba and @ash said - make sure you learn from your experience. There are patterns in this industry and learning experiences that you have had, and will continue to have that are good data sources for how to do this work in a more efficient, risk preventative fashion. As both said - a more seasoned engineer is hired because they bring experience from (painful) lessons learned. Make sure you keep looking at the results of your work and do retrospectives to keep finding ways to improve.
  • Along side that - with anything, the learning curve is a curve. Not a straight line. In those first 5-8 years, there's a LOT to learn, everything is new. So every day has some cool new thing to learn in it... After a while, the patterns get obvious, and that can make it feel like you're going slower. It means that you are on the part of the curve that starts to get flatter, and each piece of knowledge that gets you to mastery is harder to come by. Keep looking, but realize that you may not have as much to learn, so the pace may feel slower.
  • Don't sweat the specific tech - follow and learn tech you find interesting and meaningful. Pursue jobs and projects you find interesting, meaningful and motivating. I find that as we age, we can tend to be a bit more cynical. Keep finding work that makes you eager and excited to learn about it. And look for teams that fit your style and that are productive people to work with. Motivation comes from within, so nurture it. That's what gives the energy for putting extra work here and there.
  • Do pace yourself. I find that companies will be happy to ask and expect you to work crazy hours. It's OK to say no and set limits. Make sure you are performing as expected... but it's not unreasonable to have a life, find a life partner, make commitments outside of work, etc. Most people your age do this. IMO - it's not about what lifestyle you have outside of work - but it's important that you HAVE a life outside of work. I think a lot of people in their 20s don't realize that.
  • If you are absolutely exhausted and your mind is totally not willing to learn -- you are a little young at 30 for the standard "yeah we all get slower as we get older" - not to mother you, but (in my best Mom Voice...) - are you getting enough sleep? Are you eating right? Have you seen a doctor? Maybe mix up your routine a little.... I won't say we NEVER slow down, but I don't think there's an upper limit on how long you can keep your mind able to learn and adapt. There is certainly a mind/body connection that means that having a healthy mind is helped by having a body that is in good working order, and the older we get, the more that matters. So treat your mind right by treating your body right.

I'm about to turn 40. And I have this feeling all the time - a sludge in my brain, where I can feel that I'm slower than I used to be. I used to be so quick, so agile... and now it seems like I'm running in a deep mud.

Want to know why I don't feel bad about it? Not all work is created equal.

The easiest way to illustrate this for yourself is to just watch one of the fast-and-quick newbie developers work on something - without helping them out.

They might produce oodles of output... except it's not all equal. They might spend 10 hours coming up with a really cool way of displaying the data to a user... that you'd spend 10 seconds saying, "Oh, yeah, there's a JQuery thing that'll take care of that for us." They might spend 10 hours working on a project only to have to redo most of the work because they didn't architect it well. They might spend 10 hours writing something that runs too slow because it didn't interact well with the database... you get the idea.

There are whole swaths of things that I can do that a new developer takes ages on, or they can't do effectively at all. Doesn't matter if my mind is a bit slower - the 'slower' work I'm doing is worth a lot more than the rapid lower-value work a fast-but-naive coworker is churning out.

  • That experience is available readily on sites like this, I doubt something can replace quick thinking and agility. Idea that one should manually compensate for what was natural reflex worries me on some different level tbh.
    – gydorah
    Commented Sep 8, 2020 at 21:39
  • @gydorah - I can understand the fear, but read the rest of the answer. I've watched as Juniors are able to, in terms of actual business accomplishment, get about a tenth of what I get done. Why? Because while they're extremely busy in a fast manner... they're not actually accomplishing stuff for the business. They need to rewrite, they need to rearchitect, they're doing something that doesn't need to be done, or they're working hard to figure out a problem that I've already run into before and already know the answer to.
    – Kevin
    Commented Sep 8, 2020 at 22:06
  • @gydorah - Also, I wouldn't worry too much about stackoverflow/stackexchange eliminating the gap between juniors/mid-level/seniors. In my experience, those resources actually widen the difference - because learning how to use them well is a skill you have that a junior likely doesn't. There have been a number of times a programmer has called me over to help out with something, and I find copy/pasta from the web that has little-to-nothing to do with the problem they're trying to solve. You probably have a sense when you could find a code snippet online. The junior won't.
    – Kevin
    Commented Sep 8, 2020 at 22:11
  • C'mon ... c'mon ... "I've got eighteen laps on you." Can you possibly stumble upon someone who's running a business that has nothing to do with computers other than (s)he needs you? Cool. Sign up. Get busy. Fix their problems and move right on to the next one. Easy peasy. Commented Sep 8, 2020 at 23:40

"Phooey! Just keep going!" But – fully realize how the environment has evolved.

During the '80s and '90s and 'uh-ohs periods of our industry, "all of us were pretty much on our own," because "the computers that we then had to work with were barely capable of getting out of their own way!"

Then ... more-and-more folks began to come on board, but, even as they did, a whole bunch of "wonderful new and unexpected things" began to appear – such as, "practical(!) open-source!" (Suddenly, "the number of source-code lines in play, in any application," multiplied ... (ick) ..."

However: "stay on your surfboard!" There are still plenty of customers/employers out there, all of whom still need us more than ever. Just keep your eye on the ball, and you will never run out of work until you di!#%Q@%@?* ...


Life Long Learning

Keep spending time each month

  • Reading books
  • Learning new languages
  • Learning more about languages you already use
  • Learning new tools
  • Learning new approaches
  • Attending physical or virtual meetups
  • Working on personal projects

While at the same time having a life, a family, hobbies and social networks - hey no-one said it was easy !

The main 'trap' with experience is that once you become 'senior' initially it is because you have become expert at that tech. Problem is - that tech doesn't last forever (despite the funny COBOL stories). Learn the new tech and you'll be ok. For reference: I once used to be a BASIC programmer, got pretty good but had to start again when learning COBOL but eventually I got good but then I had to learn Oracle and it was hard and i was junior again but i got better and become senior. Right now this is going on for me with Javascript (ES6) and React.

If you love the craft keep learning it and you'll be in demand.

don't worry about the speed thing. Modern approaches don't require that sort of speed the way it used to help. Now, knowing the right way is more important than cranking out tons of code. Not sure about the sleep thing. I do get sleepy when studying a lot but that just means brain is overloaded for new input and a break is needed (is actually overdue). Once that short term has been chemically inscribed to long term memory the short term buffer clears and I can continue learning. Up to a point then real sleep needed.

  • 1
    Always learning is important, but you don't need to spend every second of your life on your job, as this list would lead you to believe. Learn new languages, tools, etc when you need to for work. That's frequent enough to be good enough. Instead concentrate on architecture and how things work, rather than just learning to do the same things in new ways. And do NOT work on personal projects more than occassionally- that's the number one cause of burn out and people dropping out of our profession. Spend the time on other passions instead, and get some balance in your life. Commented Sep 6, 2020 at 5:16
  • 1
    I don't understand why this (currently) has score -2. This is very good advice, and moreover, it's all stuff you can do on the clock. Nowhere in the answer did it say you need to learn in your spare time (although that is occasionally a good idea). Commented Sep 6, 2020 at 8:37
  • 1
    @GabeSechan working on personal project has been constant source of IT education for me for 30 years. I didn't do comp-sci and this is what got me all my jobs. Along with all of this I ski (a lot), have a family, go to the beach, restore old cars, travel around the US for fun, etc. All while still doing the tech and the learning. So not 'every second of my life' by any means. Learn "when you need to" (instead of before) is the primary cause for becoming outdated in my experience and from observing others. Competition does not allow a lot of time for learning new stuff in the moment. Commented Sep 6, 2020 at 9:23
  • 4
    @MichaelDurrant It may have worked for you, in which case keep doing it. But its bad advice in general, and one of the major reasons why people stop programming. Once in the field it's bad to do more than once in a long while for a short time. (Before getting in the field, particularly if you don't have a degree it can work as a portfolio. But that's about the only major exception I'd give it). This is from seeing dozens of people go from coding all day to leaving the industry within 5 years of college, burning out because all they did was tech. Commented Sep 6, 2020 at 15:24
  • 9
    Answer is downvoted because it implies that one should dedicate huge chunk of free time to work stuff, this is suitable for career beginners, but when you add factors like age, health and family it becomes unrealistic. Yes one should keep learning within reason but sinking your free time into your pet projects won't do you any good in long term @Pål GD Commented Sep 7, 2020 at 10:52

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .