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

231–240 of 275 posts

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

#231

Earlier quoted context omitted.

Well, actually... it could be a good practice, if the values are used in multiple places.

What next? `ZERO = 0`, `ONE = 1`, ...?

Church encoding is mind-bending.

    ZERO  = (f, x) => x
    ONE   = (f, x) => f(x)
    TWO   = (f, x) => f(f(x))
    THREE = (f, x) => f(f(f(x)))
    TRUE  = (a, b) => a
    FALSE = (a, b) => b
    IF    = (p, a, b) => p(a, b)
    NOT   = (p, a, b) => p(b, a)
    AND   = (p, q) => p(q, p)
    OR    = (p, q) => p(p, q)

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

#233
It's kind of a fork on the road yeah? I went through a similar process...

It turns out I had real issues with CPTSD and other things going on that interfered with my ability to perform at work. What's worse, I didn't even know I was this bad.

Your reasons may be different. I actually really like doing my job even though I know I'm not the best.

for my case I had to stand back and realize what was actually really important to me and what would it take for me to just really throw myself into a job, to really just get good at something. It's kind of hard to say with your situation cuz it could be different you know?

For me, it was figuring out what exactly high-performing meant, what it took to achieve excellence and what the path looks like. There were also drugs involved.

I'm reading some anxiety in your message, like looking weird etc. does it really look weird or is it something that you're just sort of afraid of?

All I have is shitty advice, but I went through what you went through. :-( I don't know what you're specific situation is but your story reads a lot like mine

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

#234
post #85
post #22

I'd argue differently. Congrats for having the courage to recognize your problem. The analogy that comes to mind is I've been playing basketball in my local town, and now I've gotten promoted to play in the big city. I now feel like a small fish in a big pond. If you enjoy software engineering, I'd say, double down. Now that you're at the medium software company, seek mentorship and coaching from others. In addition,…

I really appreciate your (and everyone) help. I've always knew I was behind some things but this real world experience slapped me in the face and now I'm trying to readjust. My manager has already been aware of my lack of knowledge but I'll talk to him to know if they still want me there. If I keep my job I for sure will be asking for more help at the start of a new project.

Make sure to really listen to what your manager says is the real problem. Sometimes in these situations we get flustered and jump to solving the wrong thing.

Maybe the real issue here isn't engineering ability but communication, that you didn't let anyone know you were having challenges, didn't set expectations about how the project was going.

There could be more or less going on here than just code quality, so like I said, really listen and ask questions and keep an open mind.

Also to reiterate what others are saying, don't go asking about being fired because it can come off like you want to leave or have given up. You've been humbled but it doesn't take away the good parts of what you do, you're a pragmatic, independent, get stuff out the door type adjusting to a larger team. This is normal growing pains.

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

#235
I think I've seen people I'd describe similar to the way you describe yourself.

Disclaimer: I think you sound to be quite a bit better than the 2 people I'm about to describe. Just to be clear.

Both people, lots of experience: 30+ years (while me and peers are not even 30 years old) and yet we look at their code (when asked to make changes, or we find a bug, etc) and it's like... We couldn't even write code like that if we tried for, e.g., an April Fool's joke. There's just way too much commitment to doing things dreadfully for it to be possible to be a joke. 1-3 character variable names, huge blocks of code copy/pasted, redundant hard-coded constants, bizarre abuse of scope, resistance to using functions and classes to split up code, god-classes and 5000-line functions when they do get used, etc etc.

And I never felt like their main issue was that they're "bad engineers" or "too old" or anything. It was that they were:

1. completely unapologetic 2. showed absolutely no interest in changing 3. extremely resistant to any process changes that would hold them accountable for code quality (like doing code reviews or using a linter or CI build process)

I think they'd mainly gotten away with just writing crap code for so long that they didn't want to have to change, or had internalized it as "I just write the code plainly, without using tons of layers of functions and classes and stuff". And don't mistake this as someone being woke in a herd of people building big towering oop abstraction factories. That job never got anywhere close to having too much abstraction in the code. People were always way over at the "low abstraction" side of the spectrum. There was no ORM use, no dependency injection frameworks, no unit testing and nothing was testable (because making code testable requires encapsulating and abstracting things into units, yknow), etc.

So I'd say the fact that you understand, have the humility to admit it, and want to do something to change are the biggest issues out of the way.

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

#236
The first step is acknowledging your current limitations, and you’ve done that admirably. Next, I encourage you to give yourself grace. Know that many of us have been in your position, and have been able to build on the experience and develop our talents and careers anyway.

If you do want to improve your software skills (and it’s okay if you don’t, but don’t be discouraged just yet!), my main advice is to surround yourself with people more talented than yourself, whose work you admire, and who have the patience and social skills to mentor you. This is how I went from basically you’re at now... to being one of those mentors for others. I learned to drop my ego, to embrace rigor I’d previously considered onerous, and to be transparent when I had room for improvement.

I’d also recommend spending some time learning something far outside your comfort zone. For me, this was learning functional programming (Clojure) and working on distributed systems in that environment (previously I’d been primarily a frontend dev).

Getting involved with an open source project is also a great way to get exposure to both the talent and learning opportunities I discussed.

Lastly, I’d recommend pushing yourself to embrace some rigor yourself and see how it improves your work experience. If you don’t do TDD (as in real Red->Green->Refactor), try it out. If you’re not comfortable with a debugger, find one that works well with your toolchain (or try new tools that provide a good debugging experience). If you’re not accustomed to a consistent peer review process, ask a friend/colleague to review your work whenever possible.

Some or all of that may sound daunting. And again if you’re more interested in changing track, that’s okay too. But if you do want to become a better developer, these things are not as tough as they sound, and future you will thank present you for the effort.

Oh, actually one more thing:

> I'm thinking about looking for semi senior roles but I'm afraid it'll look weird for the company interviewing me to hire a semi senior with +10 years of experience.

I recently left a job, and asked some friends/former coworkers for recommendations. One that came up was for a less senior role than my previous roles over the last several years. At first I was hesitant, and had similar thoughts to those you expressed here. But I did consider the role anyway, because it would also leave more room for compensation advancement without moving into management. If you’re concerned about this sort of judgment (and if you’re concerned about ageism), feel free to just leave some older experience off your resume. I personally tend to only list my last 3-4 positions unless there’s something especially impressive further back.

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

#237
For me, this sounds like a developer with a lot of potential. You realized your weaknesses and want to improve. That's a big step forward.

To improve, you need to work on projects with more senior developers.

Few things that work for me well:

1. Talk with a senior person about everything you are going to do. How are you going to architect and implement stuff. You will learn a lot just by talking with smart people.

2. Have all your code reviewed by a senior person. It's good practice to do code reviews anyway.

3. Iterate quickly. Preferably, submit your code for review every day. This way you will get immediate feedback and can improve rapidly. I'm even often submitting empty classes and methods just to outline data flow and overall design.

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

#238

Earlier quoted context omitted.

> Now that you're at the medium software company, seek mentorship and coaching from others. Agreed. My abilities as a developer increased tremendously at one of my jobs, and I can attribute 90% of that to a single person at that company who mentored me and helped me grow. (Hi, René, you probably don't read this.) You can read all the articles and books you want, but actively pairing with someone on tasks and getting…

Do you have tips or things you did to get more effective mentor ship? My company has assigned me a mentor but I always thing I am not using it to the fullest extent. The `only` time I speak with my mentor is when I get stuck with a bug and need help getting started. I have asked frequently on how to do better code reviews or how did she get so good at programming - she always said it takes time. To get better with th…

It is true that it takes time. And to some extent just observing others’ work is a lot of the benefit of time. But if you’re looking for your mentor to be more involved and she’s not engaging that, try asking more specific questions. Like “oh this bit of code is interesting and it wouldn’t occur to me to do it that way, what was your reasoning/thought process? Where can I learn more about this approach?”

You can also find others on your team whose work you admire and ask them similar questions. Lots of people are happy to talk about their work when asked.

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

#239
I've coded by myself for my own business, for the last 10 years. The best tool I found to give me objective feedback on my code is Code Climate. You can upload your code there and get a grade and feedback, which helped me improve immensely. I also focused on learning how to write good tests and used a web app called "codecov" to understand my gaps. It's not an easy hill to climb so don't be so tough on yourself, just make some changes and improve.

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

#240
Just commenting to encourage you to keep at it!

I was in sort of the same position, and I found that my prior experience gave me a decent framework to hang new information on. I only realized this after 9 months of solid panic.

> I've always managed to solve the problems in front of me but in a "hacky way" and now the issue was totally revealed to me.

You solved the problem in a way that makes sense for solo development. Hardcoded values suck for other people. What's been revealed to you is that you don't know what interfacing with other people looks like.

Once you get a handle on communication I think you'll find that a lot of your experience is directly transferrable. What makes you a senior developer is your understanding of the process you're operating within.

Good luck and go get em, tiger!

Post reply on HN