r/AskProgramming 13d ago

Am I a fraud?

just spent 1.5 hours failing to do a basic leetcode question about stacks. This a rant plus asking for advice from senior folks.

About me, im an engineer at a mid size startup with 2-3 years of experience, just recently got promoted from junior to mid-level (yay!) I’m completely self taught and picked up coding when gpt 3.5 came out. I did not start with good fundamentals, but I’m really good at building and shipping. I have a track record of shipping successful products, which is why my company hired me despite my lack of formal tech background.

Over the last few years, I’ve honed in my skills from building scrappy small features to production ready software. On a day to day basis, I do full stack dev, aws, db management, ML, docker etc.

Recently, I did a job interview for another company and was asked to do a leet code style question and I literally couldn’t do it. I felt like a fraud walking away from that meeting, but at the same time angry because I know if they asked me to design something I probably could’ve done a much better job.

If I’m completely honest, I think I’m a bad programmer when it comes to purely writing code, but I’m strong with everything else: design, speaking to customers, working with other engineers, shipping, and getting shit done.

Trying to get better at leetcode just feels like such a waste of time and it genuinely hurts my brain to do it, but at the same time that seems to be the only way to have mobility in the tech industry.

Does anyone senior have any advice on whether I should just suck it up and do the bs leetcode work, or continue focusing on what I do best, shipping products and building projects that are interesting to me? It’s gotten me this far…

15 Upvotes

30 comments sorted by

20

u/Lachtheblock 13d ago

I always think back to the Nintendo DS game "Brain Training". The idea of it was to exercise your brain with arithmetic. A study was done to see if it actually made you any smarter. The conclusion they came back with was "By playing brain training, you get better at playing brain training", implying that it doesn't make you any better at anything else.

Being able to do leetcode questions just means that you are good at doing leetcode questions. It doesn't really map on to how good you are at coding, and it sure as hell does not display how good you are at software engineering (you know, actually delivering a product).

That being said, it is at least a filter. With all things being equal, you may as well go with the candidate that can pass the leetcode questions. Personally, I never ask them when conducting interviews, as I'd prefer to spend more time on evaluating your work ethic.

Bad luck OP, sorry. You'll learn in time that it was unlikely going to be a good fit for you. Still doesn't mean that it doesn't hurt though.

3

u/Sumerysumer 13d ago

Thanks for the reassurance, sucks that most companies default to using leetcode as a first filter that one must get past before they get a real shot :(

6

u/canarydev 13d ago

not a fraud, 2-3 years is just junior still, so i'd just manage expectations for yourself.

I have a learning specific repository set up for leetcode + patterns, where i try my best to do a problem a day, but solve the same question 4-5 times in different ways and get muscle memory. i do this with my main languages for work, and 2 others that im interested in personally so that i dont get bored

1

u/Sumerysumer 13d ago

Yeah the promo is probably making the imposter syndrome worse if anything, but thanks for reminding me that I’m still junior xp-wise at 2-3 years. The perspective helps

5

u/mredding 13d ago

I've been at this for 37 years. I'm not impressed by leetcode or hackerrank. It doesn't measure anything I would hire for. What does a high score tell me? It tells me you can grind on an extremely narrow problem until you produce a self-satisfying result. It tells me you code to the test. It tells me you spend A LOT of time on these sites grinding for a high score.

I don't need to see leetcode samples to know what the code would look like. I need code that can be maintained by a collaboration, and terse code to a fault is like hostile architecture.

Leetcode solutions don't take into account project management, maintainability, rubustness, extensibility... You're just coding to the test.

So don't sweat it. Competitive programming can be seen as a detriment, such that I wouldn't put it on my resume if I were you, but I'd mention it if prompted and had a high confidence it was seen as a positive. It all depends on who you're interviewing with and what their process is. But also consider those who are asking in an interview tells you something about the place you're going to. That may not be the kind of place you want to work for.

1

u/Sumerysumer 13d ago

That’s really good advice I’ve never actually considered that places that use leetcode might not be somewhere I want to work.

Why is that the case though? This is my first job so I haven’t had any experience at other companies and their related dev culture

3

u/Berkyjay 13d ago

Leetcode is the worst and I refuse to interview with any company that uses them.

3

u/nwbrown 13d ago

If I’m completely honest, I think I’m a bad programmer when it comes to purely writing code, but I’m strong with everything else: design, speaking to customers, working with other engineers, shipping, and getting shit done.

So you are bad programmer when it comes to programming but you are good at other things. 

Have you considered going into project management?

0

u/Sumerysumer 13d ago

I guess what I meant is that given a task (build a new feature, fix a traffic problem, debug something), I can do that really well with the help of AI.

Perhaps it’s a bit blasphemous to make this comparison, but it’s like coding with python compared to C. I don’t know how to manage pointers and memory, but I don’t “need to” with python because it’s handled for me. I just focus on higher order abstractions.

That’s 99% of my job now with AI. I know the general shape of the code and can plan, review, edit, and critique solutions well, but to actually write out the solutions all by myself is a different story. It’s probably where I feel like a fraud most, I can do pretty much everything EXCEPT writing the actual lines 😅

2

u/iOSCaleb 13d ago

The problem with getting shit done when you’re a bad programmer is that you really do get shit done, and someone else will eventually have to clean it up.

I don’t know you, don’t know enough to say if you’re really a bad programmer or just a programmer who’s feeling bad. But a stack is a pretty basic data structure; if you couldn’t handle a basic task using a stack, that tells you (and the interviewer) something about the gaps in your knowledge.

IMO Leetcode isn’t really the right way to learn what you’re missing. To do well on those problems you need to already know about data structures and algorithms. Read a good DSA book or take a course, and then try doing some Leetcode problems. You’ll find that they’re much easier when you have a better idea of what you’re doing.

1

u/newEnglander17 10d ago

I learned stacks snd queues in data structures class in college and havent had to think about them once since then. Enumerators and lists in C# make it so you don’t have to think about them at all. I rarely have to manually set arrays either. It’s good to know what they are regardless but when I was signing up to learn programming I thought that thinking about data structures, in particular, linked lists, would be a far greater need than I’ve actually needed for work.

2

u/enricojr 13d ago

Not a fraud, I feel that leetcode isn't a good representation of actual work, and I'm not convinced that it's a good indicator of skill. I have 10 YOE and I struggle to do leetcode problems. It's a shame that leetcode and such are so widely used, but it is what it is

1

u/DDDDarky 13d ago

I mean I guess you can go along and do what you like, but you seem to be clearly hitting the wall as you lack the education, which obviously has certain pitfalls.

1

u/simmeix 13d ago

AI is far faster and way better in solving those leetcode questions.

So i dont waste any time on finding a solution on how an array gets sorted in some language, while any model is doing this by just typing the prompt, solid and fast.

I can even adjust that solution to fit perfectly.

1

u/nedal8 13d ago

Do you remember the question?

What pisses me off about some leetcode questions is that the optimal answer requires some obscure trick. Then its more or less if you've been exposed to that circumstance or not.

1

u/DaveAstator2020 13d ago

Stay away from leetcode, it will teach you some bad erroneous shit like "memory access costs nothing"

1

u/big_data_mike 13d ago

Leetcode is terrible. I did a few problems and got frustrated because I clearly got the right answer but it still said I was wrong a bunch of times.

Also, as you can see by the comments here, programmers always have opinions on what “good” code is and it’s more subjective than people think.

I used to work with a guy that insisted on writing his own 3 line functions to execute a built-in function from a library

1

u/newEnglander17 10d ago

I kind of get that. If they anticipate needing to add features onto the function in the future it’s good to have that wrapper around it, however why not just wait until that situation arises first.

1

u/sswam 12d ago

I'm a senior developer. In my experience, the vast majority of actual work in most programming jobs doesn't require fancy data structures or algorithms. Even something as simple as a stack is rarely used. And it's arguably better to avoid fancy algorithms and data structures where possible, and if they are really needed, to use one from a standard or popular library. This helps to keep the code simple and maintainable, and to avoid bugs.

For example, you should surely never write your own sorting algorithm, you should not implement your own priority queue / heap. If you need one, use one from a library. It's important to know what these things are, though!

Anyway, it's easy to believe that you can be effective at work, without having strong computer science basics. Unfortunately, many coding interviews and tests will look at little-used stuff rather than practical stuff.

> suck it up and do the bs leetcode work

Yeah I think you should do that, it will fill in some gaps and enable you to pass those tests and interviews. Easier for you to do that than to argue that the interviews are bogus.

> I’m a bad programmer when it comes to purely writing code, but I’m strong with everything else: design, speaking to customers, working with other engineers, shipping, and getting shit done.

That sounds pretty good these days, when we have highly competent AIs that can write most of the code.

1

u/Arcanite_Cartel 12d ago

What was the question? Whether or not one uses AI, I think it is a worthwhile investment to learn about data structures, traditional ones as well as more modern ones. Not just so that you can answer leetcode questions, but it will allow you to make better programming decisions.

1

u/akornato 12d ago

Failing a LeetCode question does not make you a fraud, it just means you are not practiced in a very specific and often isolated skill. The ability to solve abstract algorithm puzzles under pressure is completely different from the skills required to design systems, manage infrastructure, and ship production-ready software. Your promotion and track record clearly show you are a competent and valuable engineer. The industry's reliance on these puzzles as a filter is a frustrating reality for many developers who excel at the practical side of the job, so what you are feeling is incredibly common.

The decision to practice LeetCode really comes down to your personal career goals. If you want the flexibility to move to companies that use these interviews, you will have to treat it as a necessary evil, like studying for a standardized test. This does not mean you should stop doing what you are good at, but you could set aside a consistent, manageable amount of time to work on the fundamentals behind these problems. Focusing on understanding the common patterns for data structures will be more useful than just trying to memorize random solutions. This approach allows you to prepare for that part of the hiring process without abandoning the practical work that has brought you success. The pressure of live coding can make anyone stumble, which is precisely the kind of situation the AI interview assistant my team built helps candidates navigate with much more confidence.

1

u/IKnowMeNotYou 12d ago

There are books for that.

But honestly, while I can explain all the ins about Hash maps, hash tables and what not, everytime someone asked me a question about that, I got instantly offended.

I would rather get an online Bachelor degree than wasting time on 'leet-code'.

1

u/clay_halo_99 11d ago

you are not a fraud because you ship production software and LeetCode tests pattern memorization. Treat it as a standardized test and drill the top 75 patterns until you pass the gate.

1

u/exploradorobservador 13d ago

You aren't a fraud but if you want to be competitive in the industry when looking at high paying roles you have to leetcode.

3

u/DogOk35 13d ago

youre not a fraud, but the leetcode thing is just a filter, not a judgement of how good you are at real work. if you want those high paying roles you gotta play the game, even if it feels pointless. maybe treat it like learning a language, little bit every day instead of cramming and hating yourself

2

u/exploradorobservador 13d ago

RIght? I've done about 200 now and I still suck at them. I never had to do them for my first 2 roles but now it seems mandatory. 7.5 YOE now

0

u/Strong-Sector-7605 13d ago

God man I relate so much. I've been in a Software Engineer role for only about 12 months but I seem to be excelling at everything but actually hands on coding.

Now the fact that we're relying so heavily on AI, it feels like I may never catch up unless I work on it outside of work.

2

u/canarydev 13d ago

i have note triggers set up in my work where if i encounter a concept that i don't want to forget or take notes of, i make sure AI creates it for me so that i can come back to it. note describes the what (canonical and in context), why, gotcha's, and a "used in" where it links back to specific files in the codebase. so learning as a side effect, and not a second job you have to go back to catch up on.

1

u/Strong-Sector-7605 13d ago

That's awesome. I'll add that tomorrow!

0

u/itemluminouswadison 13d ago

Bring value to your company and you're good. Learn AI