Sometimes I wonder if I made the wrong choice with software development. Even after getting to a senior role, according to this article, you're still expected to get more education and work on side projects outside of work. Am I supposed to want to code all the time? When can I pursue hobbies, a social life, etc.
To put it very directly - if you are OK with being good but not exceptional at your job, this is totally fine. If you want to be exceptional you will probably need to put in the extra work. Not everyone is OK with this tradeoff and it's totally fine to "just" be good and care more about having outside hobbies and a social life and etc.
I had a period of time where I really wanted to be exceptional. I spent many hours studying and working on side projects but it just never really clicked. I think I'm decent at what I do for work but more complicated topics (graphics programming, low level memory management, etc.) just seem to not stick, no matter how many hours I put into studying. Sometimes it feels like I'm forcing this career but after this many years it's hard to give it up. I do still enjoy it but I don't think I'll ever really get it.
Your story sounds similar to mine. There are some parts of programming at which I know I will never excel. I also don't have time in my life to spends lots of hours outside of work developing my skills. I think it's important to realize that the median software engineer is probably not doing these things either. Maybe the top 10% are? Something like that would be my guess. It's okay to not be in the top 10%!
This is refreshing to read. Sometimes when I come here and look at the posts and comments it seems like lots of people are doing lots of things that are confusing to me. I'm recently coming to terms with being okay about not being able to learn everything that I don't understand and outside of work I've started pursuing non-programming related hobbies which led me to make the comment I did.
Since you're getting into a senior role, learn the mantra, it depends :D
The usual trade-off of a well paid software development job is lack of job security and always learning - the skill set is always changing in contrast with other jobs.
My suggestion, stop chase trends and start to hear from mature software developers to get better perspective on what's best to invest on.
And why the mantra is always true?
You can find stable job (slow moving company) doing basic software development and just learn something new every 4 years and then change companies.
Or never change company and be the default expert, because everyone else is changing jobs, get job security, work less hours and have time within your job to uplift your skills.
Keep chasing latest high paid jobs/trends by sacrificing off time.
What's the best option for you? Only you know, it's depends on your own goals.
>I made the wrong choice with software development.
If you didn't like working with computers, then you (and another gazillion people who choose it for the $$$) probably made the wrong choice.
But totally depends on what you wanted to get out of it. If you wanted to make $$$ and you are making it, what is the problem? That is assuming you have fun outside of work.
But if you wanted to be the best at what you do, then you gotta love what you are doing. May be there are people who have super human discipline. But for normal people, loving what they goes a long way towards that end.
> If you didn't like working with computers, then you probably made the wrong choice.
This doesn't match what I have seen in other industries. Many auto mechanics I know drive old Buicks or Ford's with the 4.6l v8 because the cars are reliable and the last thing they want to do on a day off is have to work on their own car. I know a few people in other trades like plumbers, electricians, and chefs and the pattern holds pretty well for them as well.
You can enjoy working with computers and also enjoy not working in your personal time.
Exactly this. I love writing code and solving problems. In my 20s and very early 30s I worked a lot of long hours and tried my best to always be learning new things and upskilling but it's never ending. It's hard sometimes to not look back and think about the hours I spent on code instead of building stronger friendships and relationships.
Every career path presents you with some version of this opportunity cost dilemma. The good news is you are not stuck - you can recalibrate to allow more of what you now know you want, while still maintaining a grip on the part of the job/career/enterprise that you actually excel at, and jettisoning the rest.
> If you didn't like working with computers, then you (and another gazillion people who choose it for the $$$) probably made the wrong choice.
The problem is the field is changing, fast. I love writing code... I'm not so sure I love prompting Claude, coordinating agents and reviewing +30k vibe-coded PRs.
> If you didn't like working with <insert anything>, then you ...
This type of argument can hold for any profession and yet we aren't seeing this pattern much in other white-collar professions. Professors, doctors, economists, mechanical engineers, ... it seems like pretty much everybody made the wrong choice then?
I think this is a wrong way to look at it. OP says that he invested a lot of time into becoming proficient in something that today appears to be very close to part extinction.
I think that the question is legit, and he's likely not the only person asking oneself this question.
My take on the question is ability to adapt and learn new skills. Some will succeed some will fail but staying in status-quo position will certainly more likely lead to a failure rather than the success.
Your first point hits the nail on the head. We are expected to have side projects and to keep up with new things (outside of work) but most other jobs don't have that. I would be okay with my work sending me off for additional training, on company time, but I don't want it to consume the time I have left after work.
I don't know why but our profession for some reason is different than the others in this respect and people often like to think that this is a norm and if you're not doing it you're not worthwhile. I think it has to do with some interesting psychological effects of people who are generally attracted to this profession but also due to the companies who implemented those mental hacks as a means to attract people who are 100% for it. Leetcode style interviews where you virtually have to spend months to prepare oneself for the interview, even as a senior, is one example of that but I also do remember the age, which was not too long ago, where your resume wouldn't even get a look if you didn't have several open-source repositories/contributions to show. This is in some part even valid as of today.
There are plenty of such examples but both of these imply that you're ready to devote a lot of your extra time, before or after the job, only that you can show you're relevant in the eyes of those who are the decision makers. This normally means that you're single, that you have no kids, family, no other hobbies but programming etc. This works when you're in your 20's and only up to the certain point unless you become a weirdo in your 30's and 40's etc. without any of these.
However, in the age where we are met with the uncertainty, it may become a new normal to devote extra effort in order to be able to remain not competitive but a mere candidate for the job. Some will find the incentive for this extra pain, some will not but I think it won't be easy. Perhaps in 5 years time we will only have "AI applied" engineers developing or specializing their own models for given domains. Writing code as we have it today I think it's already a thing of a past.
I think the reason is quite simple. Software is endlessly configurable. And thus a lot higher chance to get the configuration wrong.
This is what makes it attractive, and makes it hard to get right.
You cannot get good at it without making a ton of mistakes. When companies look for people with a lot of side projects, they are looking at people who already have made such mistakes and learned from them, preferably on their own time and not on paid, companies time.
You're making some strong assumptions about other industries which are incorrect. All of that exists elsewhere and is not so unique to software as you may think. Things are never that simple. Your argument reads more as a justification to the status quo and gatekeeping rather than being objective. I'm sure the doctors would have said something similar for their profession too but it doesn't necessarily mean it is true. Software engineering is a demanding profession but it is not that special as we like to think it is.
>doctors would have said something similar for their profession
Actually that applies to doctors. A doctor who is not curious and is not willing to do learn/research on their own initiative is only a marketing hand of pharma.
But it is quite hard for doctors to do any real research independently. They can't really do experiments on real people...
So a software engineer who is not curious enough to invest 15+ hours daily over the course of years is just a marketing hand of ... what ... programming language of their choice or company they work for?
Don't get me wrong. I am that guy, who probably over-invested into the development of his skills but I don't think it's a normal thing to expect.
>So a software engineer who is not curious enough to invest 15+ hours daily over the course of years is just a marketing hand of ..
That does not apply here. Because more often than not, we don't prescribe products/services that our clients must go out and buy, without exception.
>it's a normal thing to expect.
It is not a normal thing to expect because in other fields there are few people who can afford to do that. So an employer cannot really pick someone from that pool.
But in software, it is possible if one choose to do it. So the pool is a lot bigger, so it becomes feasible for an employer to pick someone from there, instead of picking from I-am-only-as-good-as-I-am-paid-to-be pool..
> That does not apply here. Because more often than not, we don't prescribe products/services that our clients must go out and buy, without exception.
You know that treating patients is not only about picking the right medicament and writing prescriptions? It's about diagnosing, testing the hypotheses, optimizing for the particular patient case, learning about all the specific factors of their environment including the genetics, then we have surgeons, etc.
And yet I don't quite see doctors being on a time spending spree to become exquisite in all of those things. Nor do I see hospitals or clinics doing such knowledge and ability harness tests over their potential employees. Stakes are much higher in medicine than they are in software so it makes no sense at all to make an argument that doctors cannot "afford" it. They can, they have books and practice the same way we do. I don't get to modify the production system every day but yet I am learning constantly of how not to make those same production system go down when I do.
> It is not a normal thing to expect because in other fields there are few people who can afford to do that.
It's not a normal thing in software too, you know? Let's please stop normalizing things which are not normal. If there is one thing that makes me happy in this new era of AI-assisted development is that all this bs is coming to its end.
I don't know where you take the idea that it's dead or dying as a discipline. The need for software solutions is clearly bigger than ever and growing. And what I see, even as and especially with LLM coding becoming more prevalent, is a breakneck rapid decline in the quality of delivered software and a downright explosion of security issues and incidents.
AI is making it so that”working with computers” is no longer a viable career path. At least that’s the goal.
As AI allows more and more people to accomplish tasks without a deep understanding of computers, “working with computers“ will be as much of a marketable job skill as “working with pencils” 50 or 100 years ago.
Given how quickly models, tools and frameworks rise and fall, betting your career on a single technology stack is risky.
This was something I dealt with a lot when JS frameworks became the newest shiny thing and suddenly the entire industry shifted in a few years from being a front-end developer to being a full stack developer.
This happened to a lot of my friends who went all in on Angular. Then everybody switched to React.
The issue then became, "What should I learn?" because at my company (a large fortune 200 company) they were all in on Angular, and weren't looking for React developers, but I knew companies were moving away from Angular. So do I work to get better and more indispensable with Angular, and risk not knowing React? Or do I learn the new shiny framework betting at some point my company will adopt it or I will be laid off and need to know it?
It feels like half my life as a dev was spent being a degenerate gambler, always trying to hedge my bets in one way or another, constantly thinking about where everything was going. It was the same thing with dozens of other tools as well. It just became so exhausting trying to figure out where to put your effort into to make sure you always knew enough to get that next job.
frameworks are irrelevant. if someone can work in angular they can pick up react as they go and vice versa, especially if assisted by AI. the problem is hiring practices where resumes are discarded if the keywords don't much...
No. As junior you feel the pressure to make senior. You can't be junior for too long.
As senior, if you choose, you can coast. By coast I mean you do justice to your job and the salary you are paid. Its a perfectly acceptable choice for someone to be senior for as long as they want.
The biggest bottleneck is going to be what other seniors and higher think of you.
Neither teachers nor nurses only work 40 hours and no overtime. :')
Definitely something that requires social/interpersonal skills though will be the thing that winds up being AI immune. Humans are social creatures so I assume there will always be some need for it.
I wasn't thinking AI immune in my comment but it's fair to include it. I wouldn't even mind overtime because that implies pay (in my mind). I'm more so talking about the unpaid time we are expected to put into further education or into side projects.
SWE job always required education. Few made a career knowing one thing (e.g. COBOL) but those days are long gone. I have been SWE for 3 decades and have always had to further my education (including now)
> Am I supposed to want to code all the time? When can I pursue hobbies, a social life, etc.
I feel you. It's a societal question you're posing. Your employer (most employers) deal in dollars. A business is evaluated by its ability to generate revenue. That is the purpose of a business and the fiduciary duty of the CEO's in charge.
Not my experience at all. The very notable engineers I know didn't do their most notable work because of engineering or coding skills. Instead it was finding interesting problems and making a start or thinking a bit differently about something and doing something about it and being approachable and available all along that made a difference.
If all they did was code all the time, write code for fun and interacted mostly with other similar people, they probably wouldn't be the first choice for these projects.
The ones who ace their careers are for the most people that are fun, driven, or psychos, all social traits that make you good in a political game.
Spending lots of time with other socially awkward types talking about hard math problems or whatever will get you nowhere outside of some SF fantasy startup movie.
I'd say it's especially important for the more nerdy (myself included) to be more outgoing, and do other stuff like sales or presentations, design/marketing og workshops - that will make you exceptional because you then got the "whole package" and undestand the process and other people.
> And the most successful people I know basically did exactly that.
Well that depends heavily on how you define successful.
Successful in life? I would tend to disagree, unless you believe that career is the only thing that counts.
But even when career is concerned: the most successful people I know went on from being developer to some high end management role. The skills that brought them there definitely did not come from hanging out with other engineers talking about engineering things.
> You social life should be hanging out with other engineers talking about engineering things.
Fuck. That.
I worked at a faang, successful people weren't people that did engineering, it was people who did politics.
The most successful people were the ones that joined at the same time as the current VP.
Your hobbies need to be fun, to you. Not support your career. If its just there to support your career, its unpaid career development, not a hobby. Should people not code in their free time? thats not for me to decide. If they enjoy it, and its not hurting anyone, then be my guest.
Engineers are generally useless at understanding whats going on in the real world, they are also quite bad at communicating.
I love your last point. I asked this question because I used to be the person that would spend 4+ hours after work every day trying to keep up with new tech and working on side projects. But now, I've gotten into art and it's really changed my perspective on things like this. I've spent many hours doing, as you call it, unpaid career development instead of pursuing hobbies, building up my friendships, and in general just having fun. It feels like I've taken life so seriously and I don't have much to show for it.
I never worked “for fun”. My job for 30 years is just a means to support my addiction to food and shelter. I don’t hate my job especially my last 3 since 2020 when I started working remotely. But it is just something I do.
I did not do side projects. I really enjoyed most of my 20s as a single person. I was a part time fitness instructor, I dated, hung out with friends, did some traveling.
The other developers at my job also had plenty of outside hobbies.