Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do?

294 points by Tmp1234 ↗ HN
I recently graduated and have been grinding for interview prep (leetcode and CTCI mostly), but I’m getting no where. Easy problems take me 2-5 hours. I experience PTSD like symptoms from the constant barrage of negative thoughts the difficulty and stress of doing these problems are causing me. I don’t have time to do anything else and no objectively measurable progress is being made. Even if I get a problem right, I gain little to no satisfaction at this point. I completely hate what I’ve gotten myself into. I put all my eggs in the “being a programmer” basket and it’s clearly not for me. I do have a computer science undergraduate degree which I’m hoping I can use for something. Are there any career paths I can pivot to that are less cognitively demanding than software engineering where this degree would be an asset?

322 comments

[ 2.8 ms ] story [ 294 ms ] thread
Getting in Google et al would be too stressful, but lots of small businesses hire programmers for relatively simple apps. They usually don't have hard technical interview questions. I'd look into a variety of job listings. Downside is salary will be definitely under 100k (probably closer to 50k), but it's still higher than starting from scratch in another field.
I will start by assuming you didn’t cheat your way through school. Most hiring managers like CS majors because creating an OS or Compiler is hard. So let’s assume you got good enough grades to show that you learned the material.

One possibility is you just aren’t wired for the interview process, but could make a competent programmer given the chance. The other is you got the degree. It just aren’t wired for programming in general.

In either case there are a lot of near-programming jobs where your CS degree can be valuable. Thing Sales engineering if you are outgoing, QA if not, and technical support if you are in the middle. All 3 allow you to be technical, and can lead to programming jobs if you are so inclined. And all 3 positions are filled with people who wish they had a CS degree.

It's been 3 years since I graduated and started working as a full-time software engineer, but I still struggle with leetcode problems. Even easy ones. My day to day work involves gluing together API's and not writing algorithmic code to solve tricky puzzles. Don't think that just because you can't solve leetcode problems you're not meant to be an engineer. And trust me, I feel your pain. I haven't written a binary search tree from scratch in years, so reading through my algorithms book right now is a struggle. I'm also actively interviewing for jobs and it's really frustrating to work 40-50 hours at work then come home and put in another 20-30 hours of leetcoding for interviews. It's really really tough.

I'm ready to be downvoted for this, but if you can't solve a problem in 15-20 minutes, just look at the solution, understand it, and memorize it. The more problems you work on the better your pattern recognition will get, and it'll be easier to solve related problems. Unless you're a genius programmer, I seriously doubt most normal people can easily and flawlessly answer these stupid questions within 15 minutes in an interview setting.

Also keep in mind that the vast majority of interviewers will tell you that they're looking for a good thought process as opposed to the correct solution, but they're 100% full of shit so don't believe what they say. There are hundreds of engineers who have already memorized 300+ leetcode problems and WILL write correct and bug-free code in an interview setting, and they will get the job no matter how good your "thought process" is. However, there are SOME companies that care about thought process, and those are the ones you have to look for. Unfortunately I haven't found out how to determine which companies actually do that, but typically they're start-ups. This only applies if you're in the Bay Area, however. I can't comment on what it's like outside of California.

I feel like nobody in the thread truly read your original post. You asked for alternative career options because you can't solve leetcode problems and that's absolutely ridiculous. You can absolutely get hired as a software engineer, you just have to play the game. Keep leetcoding and you'll eventually crack an interview. It's just a numbers game. Good luck!

Your post came at a good time for me. I've been working as a programmer / engineer for the better part of two decades now. I'm self-taught, have plenty of code in production at several (small/medium) companies doing millions a year in business. I have recently started interviewing again, and it's exactly as you state it: 40-50 hours a week working, and another 20 or so on Leetcode. It's exhausting to put in all this work knowing that much of it is unlikely to be needed outside of the interview setting. A couple of the recruiters have even said as much (Literally that the interview prep material is unrelated to the day to day work for the position). Glad to see I'm not alone in this.
Strongly agree with most of your points. It's a MASSIVE pain in the posterior to be job-hunting. You effectively take on a second part-time job doing interview-prep and everything else in your life gets put on hold - vacations, weekends, quiet evenings with your SO. Woe betide those who have a kid during the process - you might as well stop job-hunting until you're able to get more than 5 hours of sleep every night.

I don't advocate memorizing solutions because I don't think it sticks. I prefer to look at the solution and implement the algorithm myself. Pattern recognition is key though. And I too believe that most interviewers who say they're looking for "thought process" are full of shit. Partly because the question always seems easier to the interviewer and than the interviewee. But mostly because all the candidates who did grind through hundreds or thousands of leetcode, hackerrank, careercup and/or topcoder problems have skewed what normal interview performance looks like.

My view has been they are looking for people with high IQs exclusively. Whiteboard interviews cut out people who are not even intelligent enough to memorize solutions and algorithms while also accepting people smart enough to come up with solutions to tough problems they haven't seen before. It seems given how much I struggle I may not even fit in the memorize 300+ leetcode category.

I'm very interested in this divide between people who are for white board interviews and against it and how it correlates with job performance and content. I may make a separate post about it because I'd like to get to the bottom of it.

>> high IQs exclusively

I agree and I think its illegal to do so. Its a form of discrimination so they have disguised it as a "coding challenge".

>> vast majority of interviewers will tell you that they're looking for a good thought process as opposed to the correct solution, but they're 100% full of shit so don't believe what they say.

I am actively interviewing right now. Also interviewed at FANG companies. This is absolutely 100% correct. Those people don't give shit about thought process as much as they do about correct bug free solution under 15 minutes. If you take even JUST 2 MINUTES to think they start looking at you suspiciously and reject you in their mind. This is really a fucked up situation.

Software project management?
Lots of companies don't do stupid programming puzzles. Here's a list: https://github.com/poteto/hiring-without-whiteboards

Don't listen to people telling you that you shouldn't be a programmer. Doing these sort of puzzles has very little to do with 90% of what programmers do. There are jobs that need these algorithm skills, sure, but they're not the default jobs.

>Doing these sort of puzzles has very little to do with 90% of what programmers do.

On the other hand, it's not a waste of time for a young person to just go through a few of these a week as they are job hunting. And you really do get better at them as you do more and more. Certain patterns repeat, and the tricky ones usually have nice explanations that you can certainly learn from. They are also FUN if you do them in a stress-free situation outside an interview.

Thank you for this resource!
At work you will normally have an internet connection, so what are effectively useless "elite code" algorithm puzzles are A) easily looked up, and B) not most of what the work is. Those are not realistic problems, business have better things to do than waste time on those sort of things. Here is a realistic problem that might be encountered at work: "We need output X under these circumstances, but instead got output Y. Track down the problem and estimate time to correct". Another might be, "We have a new business requirement, how long will it take to design and code it - think about it and let me know tomorrow." Businesses are not arcane IQ test puzzles like the sites you are looking at.
That is true, but in order to get the jobs you described that pay reasonably well you still need to solve algorithmic problems on Leetcode or CTCI. And sometimes knowing different data structures and algorithms do come in handy, so some problems on Leetcode can be considered realistic.
No, you can get there by finding jobs where the interviewers/hiring managers aren't using Leetcode as their filter. (They do exist, even if they're not as common as they should be.)
That's why I said "pay reasonably well". It seems to me that most places that don't interview and filter candidates by asking algorithmic problems don't pay as well as those that do. That's just been my experience as a student that's interviewed for internships and is going to start interviewing for new grad positions in the fall.

Also

> (They do exist, even if they're not as common as they should be.)

I'm curious why you think interviews _should_ be non-algorithmic. How do you propose interviews be done? How else are you supposed to find if someone can employ critical thinking + has the necessary programming skills? And yes, most interview questions _are_ original and not straight from Leetcode so they do demonstrate critical thinking + programming skills.

You’re thinking rather short sided here. There are a lot of ways to find out if someone can think critically and also has the appropriate level of skill at programming. I prefer to give them a set of much more real world type scenarios to see how they will handle things. Often I do this in a paired programming scenario. We both sit down. I drive they navigate and we spend 20 - 30 minutes trying to build something. The something is never anything that is going to go into production. Just code that is real and useful and can show me how they think through a problem and whether they can catch mistakes in code as they happen in real time. Lately I’ve been a fan of making a shopping cart (since the software I build doesn’t have a shopping cart).

I keep it very short. I try to make it low stress. I try to make it fun and funny. Why? I really want to know if the candidate can work with me and how they will work. I don’t care one bit whether they can remember the big O notation of a red-black tree search or whether they know how to reimplement a complex datatype. I care how they will work with me in my environment.

You might say “you’re method is just too simplistic. People can game it and get through.” It’s been accused of that before. And frankly, I can memorize algorithms and game that interview. Try gaming me while we pair on some code and I try to toss in a few roadblocks. Try to game me as I try to see how you will react as we work together. It’s hard, and my methods have been quite successful for me.

As for the pay, I don’t pay people what Amazon, Google, and Facebook pay. But I pay very well and people stick with me so it seems to work out.

The other good test is to toss some intentionally cleverly buggy or incomplete piece of code to analyze and debug, since a third of the job is debugging.

And by bug I do not mean super hidden tricky language feature you get to look up on language standard to not misuse.

Just my own little anecdote, but I was able to get into upper middle class after 4 years and no degree. I've never completely passed an algorithms interview either - most of my jobs haven't had algorithm filters. I'm now doing functional programming in a cool language for a living.

Most people I meet haven't had my path to success, but it is possible. My gut feeling is that I'm a small statistic because people give up quite easily when they think their goals are unattainable. My first programming position took me 15 interviews to land a job!

At one of my companies we pay SF/BayArea market salaries and the way we hire (pretty much everyone, not just programmers) is: 1) short (10-20 min) phone interview, 2) if it seems like a good candidate we invite them for a paid test run, usually 2 weeks of actual real work, either remotely or in person, 3) if it works out, they get hired.

Pretty much nothing will accurately predict how well someone is going to do on the job. The best approximation is for them actually doing the job.

Also, the two most important things that we look/test for throughout the process are: 1) how good of a fit the candidate is for the team/company (do they get along with their team?) and 2) how enthusiastic they are about working with us (did they do some research on us ahead of time? are they excited about the opportunity?)

I'm sure this is effective, but are folks really willing to agree to this? Do you pay for the 2 weeks of work? Do candidates ever say no to this arrangement?
"Pretty much nothing will accurately predict how well someone is going to do on the job."

^ this is a doggone well-phrased and accurate summation of the challenge of team-building. Raw capability is by no means a predictor of how well someone'll work with the organization.

I am actually game for this 2-week trial. How do I contact you?
Is the 2 week paid work done only for candidates that aren't currently employed or how does it work?
Does this not reduce your pool to people who are actively looking? That excludes most people, especially the top candidates who are never out of work.
There are drawbacks and advantages to every hiring process, it's possible they've determined this set of advantages/drawbacks works best for them.

Besides, it's possible to take 2 weeks off of your current job.

You can’t use this process to hire someone who already has a job. So you’re limited to college grads and the otherwise unemployed. That is a pool not everyone can be content with.
Employees ready to move on often have substantial time off built up and also have the ability to negotiate additional time flexibly.
Take home assignments, discussions about work history, problem solving at an architectural level, the list goes on. Programming to algorithms in a live interview setting is about the least realistic way to gauge real job aptitude. Tons of thought leaders write about this, and tons of places implement more rational hiring practices.

On the “pay reasonably well” line, the average new college grad salary is 50K. I’d wager that the vast majority of salaries in the field exceed that. The googles of the world pay way in excess, and they may make you do some stupid dances to get in the door, but that’s not the real world, that’s just one weird part of the world.

> problem solving at an architectural level

That's a problem for people who haven't done internships and have just graduated. Architecture skills and knowing how things are/should be designed come from experience, which a lot of people don't have.

On the other hand, algorithms + data structure knowledge and how they're applied do not really require experience, just knowing fundamentals well.

So your method is definitely good for experienced people but not for new grads/interns. And these are methods the industry employs anyway — big companies do stress more on system design for industry hires, less so for new grads + interns.

>original and not straight from Leetcode so they do demonstrate critical thinking + programming skills.

Leetcode style questions almost never require anything resembling critical thinking. The only thing they demonstrate is problem solving under pressure.

First, I never said that people shouldn't ask algorithmic problems. I said they shouldn't ask Leetcode-style questions. To me, that stood for a whole class of problems where you have to know the area in order to be able to solve the problem. When you have people talking about studying for interviews, I'm arguing that those are bad interviews.

Background: I've been a programmer for 33 years. I have never (directly) used a tree of any kind. (I've used STL and Java maps, which I think are trees under the hood.) Asking me to do something with a tree in an interview question is therefore probably a sub-optimal way of determining whether I'm a good fit. Yes, I know what a tree is. No, I don't know it like the back of my hand, and I don't know the algorithms in detail. Yes, I could probably figure it out during an interview. But expecting me to know that background when I come into an interview, when I have never used it so far in a pretty long career, and so I'm probably not going to actually use it at the new place either... that's asking me to memorize a bunch of stuff that isn't actually going to be useful on the job. That's a bogus interview approach.

Algorithmic questions should be something that the interviewee hasn't memorized the answer to, but also that they don't need to have memorized a bunch of background or know the "trick" to be able to answer.

Now, I'm in kind of a different world. I've worked mostly in embedded systems. If you're interviewing for a job where they use a lot of trees in their data structures, you probably ought to know them. If you are interviewing at one of the big boys (Google, Facebook, et al), where an improvement in the structure you use to represent the data can mean that you need several thousand fewer machines, they are going to really care about your grasp of the nuances of data structures. But, despite Google's size, most jobs are not at Google, or at that type of place.

If you're going to classify only Google, Facebook, Amazon, and their ilk as "paying reasonably well", then I do not agree with your definition, but I will agree that you'd better be able to pass Leetcode-type questions in their interviews.

Estimate time to correct?? Most of the time that's very low, the hard part is figuring out why you get Y instead of X.
How are you with "homework problem" stuff? Some companies will use "you have 24-48 hours to put together a demo matching these criteria" instead of doing technical problems at an interview, with the interview instead talking about the "why" and "how" decisions you made while putting the whatever together.

See https://github.com/icopp/tech-demo-1 and https://icopp.github.io/tech-demo-1 for an example of one I've done before.

Some of the best Product Managers I’ve worked with people with Engineering or Comp Sci degrees who had been mediocre devs for one reason or another.

That said, is there any type of programming are you good at? What actual work have you done? Have you shipped an iPhone app or launched a basic website? Were your comp sci courses brutally hard and you spent hours working at them and barely eked out a degree?

I’m asking because you just may be failing because of anxiety, not “stupidity”.

How does one train to be a Product Manager?
PMP cert seems to be a defacto certificate I see thrown around in the field. (besides all the scrum stuff)
At the time of this reply you've been downvoted a bit, and that is ridiculous.

No, not everyone requires certification to be a PM, but many places do, and in many cases it helps get past the resume filtering process.

So get a PMP cert if you want, or don't and find a company that isn't going to discriminate on the lack of a certification. It costs a bit of sanity and $500 some to pad PMI's coffers, but its basically paying $500 for your resume going to the top of the stack. Sucks, but it is how it is for a large enough number of companies to matter.

"Defacto" may be the wrong word, perhaps "ubiquitous" would be more correct, but your point is valid.

Gotcha and agreed. My lexicon seems to be regressing rapidly with age :(
PMP is for project management, relevant to product management, but perhaps a particular set of tools within the broader domain of product management.
I recommend materials or coursework by Pragmatic Marketing (https://www.pragmaticmarketing.com/), if you can take their class. It was kind of accepted as one of the standard training courses for this role in industry at several companies I either worked for or interviewed with.

This particular PDF [1] really helped me understand the roles better.

I also read the book "The Product Manager's Survival Guide" (ISBN-10: 007180546X) and found it to be a pretty good basic introduction, when I needed it.

Lastly, nothing beats having cross-disciplinary experience by chance in any job. What lead me into product management was always "getting stuck in the middle" because I was equally capable of being technical as well as talking with a user and understanding their needs. I was more of a Technical Product Manager, however, than a pure Product Manager (an important distinction).

[1] This is a legit download - "The Strategic Role of Product Management" it's a link to a PDF on the Pragmatic Marketing website - https://cdn.agilitycms.com/pragmatic-marketing-v2/SRPM_PM180...

I took that course and recommend it highly. It’s how I was going to answer this question but yours is VERY complete :-)
I feel like the fact that you earned that degree should encourage you to think about what actual factors are limiting your progress.

I don't think "being too stupid" is that factor. I mean... you're smart enough to graduate with a CS degree!

Are you doing these interview prep just because you enjoy the training, or are you in "cram mode" trying to force yourself to get better?

> Even if I get a problem right, I gain little to no satisfaction at this point.

In order to make "deliberate practice" like this less stressful, you should establish a baseline of doing some task in a way that makes you enjoy it.

Step aside from interview prep, take a few days and focus on anything other than programming, then casually think about what YOU want to create -- for your own personal use/enjoyment -- to satisfy your creativity. Not to "grind" and get better at it -- but simply to tinker and fiddle and read and discover.

Once you're programming (or maybe reading, or writing, or painting, or making music etc...) just "for the kicks," you might try to dive deeper into a part that you don't understand well -- if you're not going anywhere, take a step back into the comfort zone, and do what you enjoy for a while, then try something harder again.

I've been working in tech / IT for over 10 years now. After graduating with a CS degree I found myself questioning whether or not I wanted a job coding. Instead of applying for those types of jobs, I looked for software / application support roles. That could mean you work for a software company providing (customer facing) support to the products they sell or working within the IT Dept of a company supporting a number of users applications (I've done both). I did this for about 4-5 years and gained plenty experience with various technologies. The nature of the jobs will have you talking to people that have various roles in a company, which may give you insight on different jobs / industries outside of tech. During one of my application support jobs I was able to transition into a developer position since the work called for me writing some code anyways. It was interesting to me so I figured why not give it a shot. If you heart is not quite settled on being a software engineer, look into application support. You will learn plenty, still have a good challenge without coding, and might just find yourself coding here and there anyways as part of the job. Hope this helps.
I may be able to help you connect with others who may be hiring without silly code puzzles. If you are intersted, shoot me an email at my username at gmail. No bs or strings attached.
I agree with the other posts here. Just because you can't solve leet code problems does not mean you can't still be an awesome programmer. But you asked for other jobs. If you have a CS degree at some point you studied systems. I suggest looking for a DevOps/SRE position. These are always in high demand. Your coding skills will come in handy. I hope you don't give up on a dream, but there are other options. I wish you the best of luck.
I'd guess that implementing Fizz Buzz or describing a basic database schema is enough to get hired to 50% of programming jobs. That includes quite a few senior positions. Not exaggerating, Fizz Buzz or a similarly trivial problem is the only tech screen more often than you'd expect. Not only that, but the algorithm challenges are less common now. It's been a long time since I interviewed with a company that didn't give you a "take-home" problem. Personally, I disagree with this practice as it selects for people with extra free time, but there's no reason for you to be experiencing PTSD (is the P "Pre"?) about this. There's no shame in talking to a counselor, might help you sort out why you're really so worried.
I'd say Fizz Buzz + knowing when to use a map vs an array and you up your chances to 80%
> the algorithm challenges are less common now

That may be more a result of how your work history rather than shift in the industry norms.

Doubtful, I've observed the trend in how we screen junior candidates too. I hope you're not reading too much into my username, it's not serious.
There are plenty of opportunities outside of coding. Consider technical sales, consulting, software support, technical writing, UX/design, project management, just to name a few. A CS degree is now a foundational degree that can serve as the starting point for many career paths. Don't stress.
I agree. There are lots of tangent careers you can do with a CS degree. Also consider: IT operations, Quality Assurance, technical PM, network infrastructure. Some of these might require a bit more training, but your CS degree is a solid foundation to build from.
I'll second this suggestion. It's exactly what came to mind when I read OP's post. I would also add to this list: testing/quality assurance, and information technology. Since you successfully completed a CS degree, you obviously have the capacity to exercise skills in this field. Ask yourself if there are parts of CS (or a related field) that you enjoy more than software development -- and pursue those interests.
If you have passable people skills and enjoy a bit of travel, you may consider sales engineering.

You basically handle all of the technical things that are over the heads of the normal sales team, both pre and post sales. This will often look like integration type work -- trying to figure out how to make your companies product work in the prospect/customer's environment.

This. I know a ton of sales engineers who love the combination of technical discussion (even if theoretical) and human interaction. And it tends to be a profitable career path too!
This! Sales and solutions englineering is a ton of fun, applies both halves of your brain every day, and builds a great foundation wherever you want to go in your career. I actually went from 5 years as an engineer, to a sales engineer, in order to understand customers better. Couldnt be happier.
Yep, it's invaluable if your sales guy actually knows a little bit about the technology, even if they can't implement much themselves.
I came here to say this. Or even vanilla Account Management for a software company (you probably don't want to be an Account Executive given anxiety).

It's a very different role, but also valuable, and having any kind or CS background may put you ahead in many companies.

Happy to chat with you just email me Steve dot Morin @ Tripping dot com. Am a CTO at a Bay Area company happy to give advice.
Project manager, Business Analyst, Sales engineer, devops, high level support role, a role in system integrations, technical writer.. etc etc. I believe CS degree is a good base now and days and doesnt mean you have to go straight into development. Best people I know in the above roles have a programming background. Good luck, don't stress and dont give up. First job was the hardest for me :)

Get out there and interview if its important to you. The more interviews you fail the better you will get at them! If you wish to master the silly technical interviews IMO the best way is to throw yourself into the fire.

I would hope that a "Devops Engineer" or similar would be able to breeze through Easy leetcode problems (i.e., string manipulation) without issue.
True, I guess I didn’t group together string manipulation as a lee7code problem. Devops people I know are mostly chef and powershell scripts.
Do you actually enjoy making things with code? Leaving aside the mostly BS algorithmic interview fodder (you're never going to use any of that until the next job search at 99% of places), when was the last time you just wrote some code to do something you wanted to do, or screwed around with a library or a framework for the hell of it? Have you done any real software development work in the past?

Most of what I do as a software engineer is not particularly complicated; it's playing with Legos or akin to construction tradework. I've got to have attention to detail, and a mental map of how the piece fits into the whole, but it's not super clever or complicated. And I try my damndest to avoid things that are clever or complex, because they're usually far too easy to get wrong, and create too much work for future-me down the road. A startling percentage of my time is just doing variations on database crud operations and munging data from one source through some transformations and pushing it at some destination.

how many leetcode problems have you done? are you really not picking up any of the tricks? which language are you writing in?
Lots of great advice on this thread, but here's a different way of looking at things:

If you like programming itself, don't pull the parachute cord on it just yet. There are plenty of companies that aren't tech companies that need programmers -- maybe that's less pressure mentally and from actual demands from the job? Something to think about, at least.

Also, consider a secondary skill or interest and mull over what kind of company could benefit from the intersection of that and your programming skills. (That's somewhat inspired by this: https://medium.com/the-mission/make-the-pursuit-of-curiosity...)

This. I couldn't/can't pass a programmer interview at BigCo but I'm capable at LoB software that loads of business need. It's mostly script languages, moving data, integration of existing systems. Loads of "un-sexy" problems to solve, decent pay, lower stress, get to be a polyglot, big-fish, small pond.
First, congratulations, you have accomplished a lot by getting a CS degree and should feel very proud of that.

Now before presuming you can't handle a workload at a company that isn't all testing-mensa-crazy, you might want to look into how you respond to this stress before evaluating the best course of action.

As other commenters have said, there are many options, but at the root of it you should understand what/why you feel this stress and it would be best to get professional advice on that.

I'm the last person who wants to advocate pharma-everywhere solutions, but I've worked with some extremely talented people who otherwise struggled through life and managed to find the right formula that worked for them.

Somethings wrong when someone is trying to game the interview system by trying to do programming puzzles rather than thinking that the best way to get a job is to try and write some software.

I got into programming because I like creating things, having ideas and making them happen. Algorithms like you find in programming puzzles rarely stand in your way to create things. GoogleFu / BingJitsu tends to solve most problems pretty quick.

Now your search skills often depend on what you are aware of to look for

I enjoy programming puzzles from time to time, usually advent of code, but I also don't get a huge level of satisfaction from solving those problems so I don't do them all and often just cherry pick the most interesting ones after the event is over. Often the most interesting thing is to see what techniques other people used to solve it. Which is really the key point for a professional software developer :- be aware of techniques and know what kind of problems they can be used for. Often techniques can be applied to problems in ways that are just not obvious.

So, first piece of advice, look for jobs that don't do puzzle based interviewing. Smaller companies are good targets, they don't need to do formula based recruiting ( however many do try to copy big players approaches to interviewing )

Ok, so maybe you really don't want to be a dev...but there are other specialist areas, like testing, devops, UI (Ux). But that would greatly depend on what you enjoy.

If none of it is of interest, then there is all kinds of tangential roles, recruiters, product management, HR. But may require further study.

Just work out what you really like doing

Its not clear if you've actually tried applying for jobs and doing interviews, or just doing interview prep. If you haven't applied for jobs just start doing it. Grad programs would be a first start. I think you'll find its easier than you think. Sure, the big name companies will have a high bar but less well known tech companies and esp corporates really don't expect grads to know that much.

If you are getting interviews then bombing them all - then you can start to worry. If you really don't get anywhere you can try looking for QA/test jobs where you usually have to know a bit about software and end up writing scripts and maybe move into dev later with some more practice.

Happy to chat if you want to talk with a relatively recent grad who has done plenty of interviewing on both sides of the table. My email should be in my profile.