I realized I am a bad programmer
32 points
13 days ago
| 14 comments
| HN
These days I realized I am a bad programmer. I'm sure this is not imposter syndrome.

I graduated in CS at 26, working since age of 24 only in web development, mostly front-end, but more recently full stack.

I sort of coasted through various jobs in the last 13 years.

Managed to became tech lead 5 years ago, but went back to just development due to burnout.

I have never applied any algorithm or particular data structure and I have never worked really really hard, beyond "just" coding.

Now I feel I have wasted all my best years and left with some coding skills that will become obsolete in a few years (if I 'm lucky).

I don't have any satisfaction from my job and I did not develop other soft skills that might help me...

I'm not exactly sure on what to do now... Study DSA? Transition to management? Construction?

al_borland
13 days ago
[-]
You got a job, did the job, got recognized and promoted for doing a good job… and did it all without adding needless complications to the project just to stroke your own ego and say you implemented it with feature X.

How is this bad?

I had a guy on my team who we all thought was amazing. He always knew the newest tech and tools, he’d spend his nights and weekends learning all the stuff. Once he left it was complete hell to maintain. He used all these unnecessary integrations, which meant more points of failure, more language hopping, and multiple learning curves for seemingly simple things. He also re-implemented custom version of systems supplied and maintained by other teams in the company… which meant more learning curves and less support… again, with no real benefit other than it helped him learn. His code was also hard to read, with horrible variable names (var1 - var14) or needless abbreviations that required an Enigma to make sense of.

We have completely rewritten some of the things that need to stick around, and others are being subset. What we have left is much less complex and easier to maintain. Nothing is hidden away in systems no one really knows about.

It’s never good with your technical ambitions come at the expense of your team and what you’re building. It sounds like you were able to do it the right way, even if you didn’t mean to.

reply
JonKern
5 days ago
[-]
You make a good point.

BTW: For all this "damage" to the code to have happened and only being spotted after the dev left... How was this able to occur?

(I assume no code reviews? Lots of solo programming?)

reply
eternityforest
13 days ago
[-]
You're probably a better programmer than the ones who find ways to stuff algorithms and data structures where they're not needed, and reinvent things that common trusted libraries already do.

Programming isn't a sport or a game of chess.

Unless you're working in a cutting edge field, people shouldn't see your code and think "Wow, what a genius", they should think "Yep, that is definitely code, I know what it does and it has unit tests".

Any other random programmer should be able to pick up where you left off.

Unfortunately, that is highly unsatisfying to many programmers, and there's the looming threat of being replaced by robots, and I don't have answers to either of those.... If I did, I would probably know what to do about my own job search issues.

reply
giantg2
12 days ago
[-]
"Any other random programmer should be able to pick up where you left off."

I'd love a code base that I could just pick up where others left off.

reply
eternityforest
12 days ago
[-]
Wouldn't we all!
reply
_benj
13 days ago
[-]
Echoing the sentiment of others here, a “good programmer” is not one that is able to implement some weird algorithm or complex data structure from memory.

If that where the metric I prefer working with “bad programmers”, say, that that actually get stuff done vs endless pedantic discussion about performance, optimization, and yes, nonsensical algorithms that are already implemented and tested in most languages standard libraries!

With that said, I hear you. It sounds like you might be feeling burned out?

Something that brought a lot of joy back to my programming career was learning C, low level and embedded programming.

There are a lot naysayers that will point how C is an insecure language and whatnot, but what C gives you, or makes you do, is understand how a computer actually works. Where is stuff placed in memory, what is your OS API (syscalls) or what are registers and how a CPU runs something (embedded programming).

YMMV of course, but getting the those insights has been invaluable for me and very fun! One feels back in control building stuff, as opposed to doing the work of a plumber just plugging stuff together (nothing bad with that, is mostly that kind of work that pays the bills after all!)

Anyways, just my two cents. Hope you can figure something out!

reply
jebarker
13 days ago
[-]
Did you transition so that you were programming in c in your day job or was it enough to do that on the side?
reply
_benj
13 days ago
[-]
I mostly did it on the side. A job on C might be quite interesting but seems to be limited nowadays to system level stuff, which is kinda rate to find.
reply
gscott
13 days ago
[-]
One option is to be a project manger.

However, I make between 15k to 20k a month doing my own scripting, using Asp Classic. Largely because I have difficulty learning new things and after 20+ years I am now good at this one thing. All I do is put data into a database, display it, update and delete it. The result is the same across all languages. You have to run your own business doing so. It took me a long time to figure out getting into business on my own successfully. I have tried multiple times without success but I am good now.

reply
ipaddr
13 days ago
[-]
I would love to hear your story. After so much trial and error what finally clicked for you?
reply
gscott
13 days ago
[-]
I tend to cocoon myself in making more features rather than marketing and finding product market fit. I'd spend too much time scripting instead of getting real customers and listening to them.

I built a basecamp style CRM before basecamp existed and tried to educate people on why they should use it but they never heard of such a thing. The new user entry effort cost was too high.

Getting into something too early is bad because trying to teach people what it is too much work you need something that has plenty of competition and you can just differentiate from that competition and say mine is better because of x.

Eventually I worked for a company that had a very simple but profitable online service and I basically just got into the same space. People are mandated to take an online course they go to the government website to find out the providers and they just come and sign up. I spend zero on marketing and don't do any SEO. There are all sorts of courses and tests mandated by the state and if you could provide one of those and get on list people just come and do it at all times today and it's fairly reliable.

reply
clark-kent
12 days ago
[-]
Very interesting. Do you mind sharing a link to the government website you refer to?
reply
gscott
11 days ago
[-]
Every state has different possibilities. Real estate course required by the state, traffic school, driver ed, etc. Look at each state DMV licensing website and look for "course providers" and you can make a course and get onto the State list. All you have to do is get it approved and do any sort of yearly re-approval and you good. People go to the list, pick a course, you provide some sort of certificate (I make a PDF) or submit back to the state with an api. Once your approved it is easy from then on out.
reply
gregjor
13 days ago
[-]
No one "is a bad programmer." Programmers have a wide range of skills, talent, and experience. You can only think of yourself as "bad" by comparing yourself to other programmers, or honestly assessing that you repeatedly fail to deliver.

I suggest reframing how you think of yourself and your career so far.

From what you wrote I gather you have a few years of work experience mostly limited to front-end web development, a large cohort of programmers (well, it was for a while) but a narrow niche in terms of skills and exposure to solving actual business problems. Try focusing on some more transferable and durable skills: relational databases and SQL, system administration (cloud infrastructure and Linux), security, and back-end architecture. And start thinking of the business value you offer rather than what languages or frameworks you have used. Companies and customers don't pay for more lines of code, they pay people who can solve business problems. So concentrate on business domain expertise.

Programming and code usually don't have much value unless they serve to solve business problems. Almost every post about the bad job market and difficulty getting a job starts with "I have worked with X language and Y framework" (the "stack") when employers really want to know how you will add value to their business, how you can solve a business problem. By analogy, when I hire a plumber I assume they have learned their trade and tools, but I hire them to fix a problem like a broken drain or low water pressure, not because they have a specific brand of wrench. When looking for a plumber I will first ask people I know and go by their recommendations. You should cultivate your professional network for the same reason, so you get in the door from referrals rather than by filling out hundreds of applications online.

reply
yousuke86
13 days ago
[-]
Thank you for the well thought answer. I can certain pivot my image to highlight what business problems I can solve. This could also be beneficial since sooner or later some AI tool will replace most of what I do day to day. I think it will make most "bad programmers" obsolete.
reply
nasmorn
13 days ago
[-]
Bad programmers are already pretty obsolete. My team had a very motivated but also pretty bad programmer that I always wished I could fire. When he finally left our velocity went up a lot. He was delivering negative value to the project but management liked him because he was like a model obedient student, doing allergen agile shit to the T. He unfortunately had zero feel for code and didn’t learn anything from code reviews. I always likened it to a cook with no sense of taste. You can follow a recipe but if you need to improvise anything by yourself you would be pretty lost with no value function to apply
reply
dartos
13 days ago
[-]
Nah you’re good.

Imo the problem with programming as a job is that the job is never “done.”

There’s always a new bug, another feature, a new acquisition to integrate.

You rarely get the chance to step back and appreciate the thing you’ve built.

Start baking bread. That helped me a lot.

Also also, don’t buy into the hype. Coding skills (especially at the point where you can lead a team) are not going to become obsolete in a few years.

reply
stainlu
9 days ago
[-]
"I did not develop other soft skills that might help me..." change this phrase to "I did not develop other soft skills that might help me YET"

I have totally 0 marketing or operation or sales skill before I really do this startup, so I ask everyone I know to recommend some experts in this domain and managed to get a #1 on PH by myself.

26 is not that different from 16, as long as you keep the momentum

reply
codemusings
10 days ago
[-]
Being able to apply algorightms and implemnent data structures isn't what makes you a good programmer. Writing maintainable code for yourself and your team members, documenting important bits and helping out others is what produces actual value.
reply
infinitezest
13 days ago
[-]
I feel this. I don't think I'm bad at the job but I feel like most jobs I would want to do are being rapidly targeted by AI efforts. It seems like the safest jobs are ones I don't want to do (I.e. manual labor, etc.)
reply
clark-kent
12 days ago
[-]
reply
giantg2
12 days ago
[-]
Sounds like me, only my time as a tech lead was unofficial. My plan is to just coast on.
reply
yousuke86
12 days ago
[-]
I was planning on doing that. Problem is I need some satisfaction in life. My brain doesn't accept anymore the fact that I am "just" coasting....
reply
giantg2
12 days ago
[-]
I've just accepted that my life is garbage. My job has slowly turned to shit. My wife has turned into an unempathetic and irresponsible person. Several family health issues are a drag. But that's more or less how life goes for most people.
reply
brudgers
13 days ago
[-]
So what?

Half of all programmers are below median (for whatever that means).

Just do your best.

Same as if you were a good programmer.

Good luck.

reply
aristofun
13 days ago
[-]
So what?

There are just so many great programmers in the world.

If you’re confident it’s not just your mental issues talking (like narcissism, self hate etc) - identity your weaknesses and work on them.

This is a huge step towards a great programmers category.

reply
yousuke86
12 days ago
[-]
I've started working on them. I struggle to see how I will find the time...
reply
yawpitch
13 days ago
[-]
Ahh… welcome to the middle of Dunning-Kruger, pull up a chair and grab a coffee. Time to start climbing back up the curve.
reply
bn-l
13 days ago
[-]
For those who don’t know it’s like climbing very far up a mountain and then looking up and realising how high the peak actually is, way higher than it looked at ground level.
reply
yawpitch
13 days ago
[-]
To be slightly pedantic, it’s more like climbing down from a foothill into a very wide valley and then looking up at the mountain you thought you were climbing when you were actually just climbing the foothill.
reply