Live data from Hacker News

Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

news.ycombinator.com

91–100 of 275 posts

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#91
It's not clear from your post (and you don't have to make it clear, of course) whether you're getting fired from your current company or not.

Merely failing one task won't get you fired and if you have the self-awareness demonstrated above to realize that you haven't yet learned what you need to become senior, gives you a clear path (and one that won't even be that hard if you've been selling and making software for 10 years).

Making software in a team is a somewhat different skill and you just need to learn it.

I contrast your case (understanding the issues) with a code review I did around 20 years ago where someone had hardcoded the value 17 in a bunch of places in a mixed c / c++ codebase. I suggested he use a #define for the magic/hardcoded values.

I kid you not, his resubmission contained:

  #define SEVENTEEN 17
and the points of use all now said SEVENTEEN. (At least the instances of 34 were replaced with SEVENTEEN * 2.)

That programmer wasn't going to make senior. You will. If you're getting code reviews that are pointing out these issues at your current place, stay there and learn. 6 months from now, you'll look back at your thread here and realize just how much you've progressed with the live mentoring in a team and the spaced-repetition of go away and code, get review, improve it, get review, etc.

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#92
One word: Epistemology

Having been at this for over twenty years. The one distinguishing factor I've found between the great and the good, is their personal epistemological process; How they seek out, evaluate, and incorporate new knowledge, then transfer that knowledge into skills. The good ones have a great process for this, and they do it constantly.

Mad props for recognizing your problem, there is a solution, and it is the thing to which other posters have mentioned. I was in your same position about 7 years into my career. I went from a small town, in jobs with 1 or 2 engineers, to a major city with thousands of very talented engineers. I nearly drowned at first, but I rose to the challenge and adapted and you can to. Every day will be like drinking from the firehose for a while.

You should be learning. Constantly.

Being in small shops, you likely suffered from the fact that your work was not being challenged, and therefor you were not being challenged. It is easy to get comfortable and to stop learning and growing in this state.

When you are frequently challenged, you have to seek out new ideas, algorithms, techniques, languages. This all adds to your knowledge base and skill set.

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#93
Don't become a project manager.

If anything become a product manager. It is a desperate need to have product managers that have some inkling of what it's like to develop software. In some places this might be a semantic difference, but project managers seem more about people and scheduling than understanding a software product. Your background will be more useful a bit closer to the code.

If you are interested in continuing to build software: everybody sucks.

Difference is: some realize it and some don't. You are a rare person that made the jump over the chasm.

We all take shortcuts. We all compromise. And none of us knows enough to have the perfect solution pouring from our fingertips at any given time.

Guess what? Those things you've identified? Yeah. Bad. But even after you fix all of those, there are hundreds, maybe thousands more waiting for you to identify them and fix them.

And when you fix enough of them you'll realize that striving to code perfectly is, itself, a code smell.

And you'll start doing some things 'wrong' on purpose. Why? Because it's all a trade off. And you're not coding to code, you're coding to solve a problem. And sometimes that problem doesn't need perfect code to be solved.

All of that 'bad' code you've created? It solved a problem. It's probably not as bad as you think, given the parameters of the problems you were solving.

By all means, fix the problems you see. Try to do better. Learn from others. Rinse and repeat.

You have to enjoy that journey because it should last a lifetime.

And if you don't, there's always product management.

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#94
Honestly, in most of my experience the higher the title of the developer, the worse the code is. Developers aren't promoted for writing nice code, they are promoted for getting projects out the door, on time. This usually requires sacrifices in terms of engineering.

I'm in a pretty similar situation: I'm reasonably adept at coding challenges, but fall down when it comes to developing more complicated applications. I've found that I'm most useful on teams with good tech leadership. Every medium+ size team has unglamorous, easy work that just needs to be done by someone. So I'd suggest keep moving jobs until you find such a team, then stick it out.

Also -- and this is going to sound terrible -- but at a large enough company, you can be incompetent and still collect a paycheck. You'll probably be given busy work or tasks that the managers understand aren't going anywhere. And realize that 50% of profits from companies are generated by sqrt(total_employees), meaning, that, in general almost nobody is a big money maker.

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#95
> A third option would be to take a break from work and try to learn to write good code

I would say that learing to write good code takes practice and feedback, so if you want to stay in software engineering stay in your job.

Maybe switching to a field where basic coding skills come in handy, e.g. data science, would be an option.

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#96
I'm not sure even "Senior" software developers will be able to understand badly written code at first glance. However what experienced developers will most likely do is make a copy of the code, open it up in a good IDE add a breakpoint and run it. Add your own comments to the code as you go along and figure things out. And don't forget to take some notes separately too.

As others have mentioned in the comments, you might be suffering from "imposter syndrome" but don't let it get you down. Some of the best out there have been through what you're experiencing [0].

[0] https://www.hanselman.com/blog/how-do-you-even-know-this-cra...

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#97
I don't think you are a bad software engineer, most probably you are just not used to work in a big team. You are new in this middle size company and you are given the very badly written code which you are not familiar with at all. Most probably this code is big and exists for the long time and was modified chaotically to satisfy the urgent needs of customers. It is almost impossible to become efficient with this code immediately. May be I am wrong, but it seems you tried to work on your task without getting enough help from another people how know that code much better. The fact that your role is senior doesn't mean that you need to know everything and need to solve your problems alone. I work in a big company as a software developer and the interaction with people is the most important thing here.

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#98
>I'm afraid it'll look weird for the company interviewing me to hire a semi senior with +10 years of experience.

Weird? Not really. They may ask you about your career aspirations (they may think you will leave a month into a new role) and you should have some sort of solid answer ready. If they straight up ask "Why aren't you going for a senior role" you can say that you're not comfortable with the coaching element that most senior roles will involve. Or anything really - the specifics of the answer doesn't usually matter.

>I'm not sure if I can be a PM if I'm not able to code things the right way myself.

A Project Manager (I assume that's what you mean) does not need to know how to code things the right way. It's a very different set of skills and even if you're a terrible programmer than you will likely be in the top 1% of PM's in terms of programming ability.

Re: Ask HN: I've realized I'm a bad software engineer and I'm over 30, what's next?

#99
Your real problem is that you've had no mentors and that's not your fault. Software people need good mentors. Always being at a place with few or none programmers never gave you the opportunity to learn by example and that 10 years wasn't very valuable. You have probably grown some bad habits and lack the understanding to recognize them.

If the people you are working with now are nice then you should take this as an opportunity to become the senior engineer you thought you were. Hiring people is annoying and if you are personable, humble, and eager to learn more often than not they would rather train you up than get rid of you. You did the fake it part, now do the make it part.

Post reply on HN