
Ask HN: Got a CS degree, but I’m unable to be programmer. What can I do? - Tmp1234
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?
======
whack
> _I experience PTSD like symptoms from the constant barrage of negative
> thoughts the difficulty and stress of doing these problems are causing me._

A lot of the other posters have given some great advice from a technical
perspective. I'd suggest taking some time to evaluate and improve your mental
health as well. If you're putting yourself under so much pressure, that
pressure alone will hold you back to a great extent.

First off, just _relax_. Take a little time off to reset your psyche, overcome
your burnout, and rediscover your confidence/interest. It's amazing what
taking a week off can do.

Take up some activities that have been shown to help with stress relief.
Meditation. Exercise. Long walks. Digital disconnects. Healthy sleep cycle.

Read this book: The Inner Game of Tennis. It's a short read, but it will
transform the way you approach high-pressure situations.

You mentioned PTSD - do you actually have PTSD, anxiety, or other similar
mental health problems? If so, talk to a counselor or find some way to address
those underlying issues.

You have a long career window ahead of you, so don't burn yourself out at this
point. Job prospects are great for CS majors, and you seem like a guy who's
very motivated and hard working. Spend a bit of time taking care of yourself,
and I'm sure you'll be fine in the long haul.

~~~
thomasfedb
As a medical student who also happens to have a CS degree, might I suggest
that a councillor is an excellent idea, and a psychologist or psychiatrist
might also be worthwhile.

~~~
chris_wot
As someone with dreadful experiences of the metal health system, I think the
very last thing you want to do is see a psychiatrist. Psychiatrists are
expensive and look at brain chemistry, more than likely you’ll end up on some
sort of medication which you likely don’t need.

By all means see a counsellor or a psychologist, but unless you have deep
psychological issues where you are getting to an unbelievably unbearable point
where medication might help you, see a psychologist first and leave the
psychiatrist out of it.

And, in case anyone thinks I hate psychiatrists - I don’t. I just feel they
aren’t that helpful in the sort of situations you describe here.

~~~
azthec
I don't know where you live, but generally that is applied to people who have
all the other things and are still unhappy. Psychiatrists will generally try
to steer you towards healthy fulfilling social lifestyles, and only then if
you are still unhappy then usually you have some chemical imbalance that can
be fixed, why be too proud rather than just fix it.

~~~
thomasfedb
Antidepressants are a first-line therapy. They're often very helpful in
enabling people to make the changes that will help them improve their long-
term health. They're excessively stigmatized however, which is incredibly
unfortunate.

~~~
meko
With good reason, the last medication my psych gave me left me with liver
damage.

~~~
relaunched
The side effects you experienced are unfortunate; if it happened to me, I
would be very angry. However, the stigma around mental health is real and
prevents many people from getting the help that they need. You can be angry
without contributing to the stigma.

~~~
chris_wot
Actually, I found that the psychiatrists I saw universally did not listen to
me, and one even told me to live with injustice (!!). I feel that the stigma
is caused by the medical profession.

------
godot
I don't know if this helps, but I personally find coding interview practice
sites/problems to be extremely boring, difficult, not fun, and frustrating to
work on. I'm saying this as a 13-years-of-experience software engineer; I've
been called a rock star or ninja or something similar in almost every company
and team I've worked in (big and small), and throughout my entire career and
the numerous times I've job-hunted, I have never passed a single interview
that involved those types of questions. (I've interviewed at both Google and
Facebook, both more than once, at different points of my career, with no
success) I pretty much always end up at a company where I had a really easy
interview and we just talked about my experience and projects. I am (I'd like
to think; and I think my coworkers mostly agree) good at everything involved
in a software engineering job (building things, architecting things,
communication, working well with others), but I absolutely cannot solve those
whiteboard interview problems, especially during the interview.

I saw that itamarst posted a link for a list of companies who don't do
"whiteboard interviews" type of questions. If you believe you're a good dev
and can build stuff and just hate those interviews, I would encourage you to
start there and try interviewing at those companies and land your first
professional job, and see if you're really cut out for a software engineer
role.

~~~
simonbarker87
> “really easy interview and we just talked about my experience and projects“

This is what interviewing is like in 99% of other sectors, even engineering.
You might be asked some competency based questions at a larger organisation
but the whole “dance like a monkey in a high pressure environment while we
watch” whiteboard/coding test feels like cruel and unusual punishment to me
that is nothing like the job of actually programming.

~~~
IshKebab
That's not true. I've interviewed for many engineering jobs and lots of them
involved solving puzzle-like problems on a whiteboard.

~~~
simonbarker87
Are you US based? It may be a cultural thing as I have nevered heard of any
engineers (and I know a good few dozen) who have had to do anything like that.

~~~
freehunter
It's not even a culturally US-based thing. If anything, it might be the
culture of some specific _places_ in the US, likely places where programmers
are dime-a-dozen and you can afford to exclude good people because great
people are applying too. In the Midwest or Appalachia or most places in the
South and most places in the prairie, companies are just glad someone is
applying.

I have absolutely no hard evidence to back this up other than anecdotes from
my network of colleagues, but the only places I've ever heard of doing
programming challenges during an interview is the kind of places where
programmers collect en masse. SV, Seattle, Austin, NYC, Boston, the places
where when you post a CS job, you expect thousands of qualified candidates to
apply.

------
flocial
"Easy problems take me 2-5 hours."

Are you sure you're not reinventing established theories and algorithms? Those
problems are supposed to be hard because they're based on ideas discovered by
the most brilliant minds. If you can do them in 2-5 hours with no background
you might actually be real good.

Depending on what level of familiarity you have with the material, you might
be selling yourself really short. Deliberate thinkers (often misunderstood
even by themselves as "slow") are often the most reliable because they take
the time to understand and think things through.

Please take a deep breath and start with a reasonable supposition. If "easy"
problems are taking too long for you, maybe there's an easy way to "solve" it
(memorizing the patterns and knowing the most likely to be tested algorithms).

Like others say in this thread, not only are those problems unrealistic, it's
much like test prep for standardized tests that you may have taken getting
into college.

~~~
throwaway613834
>> "Easy problems take me 2-5 hours."

> Those problems are supposed to be hard because they're based on ideas
> discovered by the most brilliant minds. If you can do them in 2-5 hours with
> no background you might actually be real good.

Putting myself in the OP's shoes, this would be really frustrating advice to
hear. The OP literally said they already got a CS degree and that these are
"easy problems" taking them 2-5 hours. Baselessly calling into question their
own assessment of problem difficulty (as if it's likely that they're _that_
clueless about how difficult interview problems are supposed to be after
having received a CS degree) while simultaneously suggesting they might
actually be brilliant and simply not realizing it is, honestly, just unhelpful
advice, if not potentially actively harmful. If you're going to do this, at
least ask them to post a question or two so you can independently gauge their
assessment first.

~~~
godelski
I think you underestimate how common imposter syndrome is. It may be that the
OP just isn't good at programming. But it may also be imposter syndrome.
Having the degree suggests that they did something and gained some skills. So
it isn't unlikely that the OP is selling themselves short. Plus it is better
to encourage people than put them down. Most people can learn most skills, but
some people require less time to learn some skills. That's really the only
difference. And there's no clear evidence into which camp OP is in, but it's
unlikely that they can't learn the skills.

~~~
throwaway613834
You call out impostor syndrome when you actually _have_ evidence to suggest it
is the case, not completely baselessly. Like when you give someone a role
because you believe in their ability (whether through prior interviews with
them, or seeing their prior work, etc.), but they don't feel up to the task.
In other words, we know they actually _can_ do tasks that we believe to be of
similar or greater difficulty, but they somehow don't believe that that's the
case. But we have no single shred of evidence that this is the case here... or
if you think we do, well, I don't see it, and neither did the parent comment
point to any.

In particular, having a CS degree and finding that you're having trouble with
what you believe to be easy interview problems (to emphasize: actually
_having_ trouble, not merely _thinking_ that you _might_ have trouble if you
were to try) is not in any way evidence that you're experiencing impostor
syndrome, of all things. It might be evidence that you don't have enough
practice, or you didn't learn the material well, or that you lack motivation,
or that you just don't find the topic interesting, etc... but the one thing it
does _not_ mean (in the absence of extra evidence) is that you're actually
brilliant and yet also incapable of assessing the difficulty of interview
problems accurately.

~~~
afarrell
Impostor syndrome gets talked about so much in conference talks that I think
we as an industry have started to classify all confidence problems as impostor
syndrome and thats just inaccurate and unhelpful. Instead, there are a
_variety_ of things in work that can cause problems.

------
mikeomoto
You don't have a job yet, so you don't actually know what being a programmer
is like. You're stressing out about what you _think_ being a programmer is
like, and worse, you're stressing out about what you _think_ how a programmer
is _hired_.

Sit back, relax, go talk to someone who actually does the job, and re-evaluate
once you're better contextualized.

~~~
abledon
Yeah like I said in another thread, CTCI is for more of a software
__engineering__ role. There are lots of really easy software developement jobs
where you ain’t doing algorithmic/dataatructures, just chilling with other
code monkeys , humming Katy perry tunes and stackoverflow searching 4 hrs a
day, the rest is breaks and hn reading

~~~
codeisawesome
A candidate displaying the attitude shown in this post would not pass the
culture fit round if the company needs team players.

~~~
cryoshon
the joke is (probably) on you: most people know not to mention these things in
a job interview, but expect to enter a team with like-minded individuals upon
hiring.

employers can't screen for it because there's no paper trail.

------
zunzun
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.

~~~
jokh
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.

~~~
AnimalMuppet
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.)

~~~
jokh
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.

~~~
ta1234567890
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?)

~~~
robjan
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.

~~~
diminoten
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.

------
itamarst
Lots of companies don't do stupid programming puzzles. Here's a list:
[https://github.com/poteto/hiring-without-
whiteboards](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.

~~~
macspoofing
>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.

------
csnewb
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!

~~~
Tmp1234
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.

~~~
byebyetech
>> 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".

------
lastofus
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.

~~~
vinnieman232
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.

------
keithnz
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

------
Maro
Are you sure that the problem is programming itself, and not stress itself?
Ie. if you were a biology major or whatever, and you were stressing out over
interviews for pharma companies, would it be the same? If yes, then you're
kindof in luck, because it's not about CS, you're just stressing out. In this
case, get help on that.

As other people here have asked, do you enjoy programming as a past time? Do
you write stupid little things for youself? Have you made N websites for
yourself? Have you compiled the Linux kernel just for fun? If the answer is
"yes, I like doing things like this in my past time", then you're on the right
track to be a programmer. If no, then maybe not. In that case, you can still
be a good programmer, google "cal newport follow your passion is bad advice".

In any case, if you decide you don't want to be a programmer, a good parallel
path you could go into (which friends of mine who aren't really interested in
programming have gone into) is Data/Analytics/DataScience. Essentially you can
make roughly equivalent money by helping companies make decisions based on
their data. There is a stack of roles here, from infra, to data engineer, all
sorts of analyists, data scientists, and so on (the division is not clear). If
you want, you can have a very rewarding and successful career here and just do
SQL if you go into the Analytics/Data Science region of the stack, you don't
even have to write Python on an everyday basis.

------
rb808
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.

------
fdr
It sounds to me like you might have more of a stress issue than anything else.
It is hard for me to imagine someone getting a CS degree but also failing to
be able to practice and get better at interview problems on basis of
intellect.

Don't make any rash decisions. Practice with an answer key and fix mistakes in
solving mundane problems rapidly. Repeat. Struggle is overrated compared to
repetition and quick correction.

~~~
dragon96
> Struggle is overrated compared to repetition and quick correction.

Just to offer a differing view, I would posit the exact opposite: struggle is
underrated compared to repetition and quick correction. The latter is prone to
blind memorization, and in my experience, many CS interview questions have a
core idea or central motif that aren't apparent until after a long thought.

I don't think that either of struggle or rapid repetition are "wrong", but
rather, everyone should experiment with both styles and find some middle
ground between the two.

~~~
y4mi
> central motif that aren't apparent until after a long thought.

and yet its impossible to figure out a central / repeating motif if you
haven't actually done a lot of the same kind of questions.

sitting down and thinking things through is generally the final phase, in
which you're improving the most. In order to get there, a varying degree of
repetition is necessary.

------
mjfern
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.

~~~
rmoxley
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.

------
mkozlows
Don't get hung up on the problems. 98% of the people I've worked with
couldn't, e.g., reverse a linked list to save their life. Many of them were
perfectly fine professional programmers all the same.

If you have a CS degree, it is almost 100% certain that you are qualified to
do programming at a bank or insurance company or whatever at the very least.
If you're scared of the intimidating tech companies, then just skip them and
go work somewhere that'll be less stressful.

------
fusiongyro
There are a lot of public sector jobs that require any degree. My mother had a
long and fulfilling career in the food stamp program, starting out helping
people sign up and moving into training, supervision, and eventually became a
county director. This is with a degree in anthropology. You’d be surprised how
many jobs there are whose qualifications are like “be able to type and spell
and generally help make things get done” which are impossible to staff because
nobody who can do the work would do it for the pay on offer. These jobs tend
to be lower stress anyway, better confined to 8-5 too.

People will joke that you should go into management. Maybe, but I’ve never
heard of anyone going from a CS degree to managing programmers directly.

If I were talking to someone who was one year into a degree and hating it, I
would really push the idea of getting a technical vocational training in
something like HVAC, plumbing, or electrical. Those careers require a lot more
from you physically, but not as much mentally and the pay is really good.
Better than you’re likely to get as some kind of administrative person. But
there are other trade offs.

I think a lot of people here are calling your bluff, because if you really
didn’t like it, why are you reading HN? But you should know that you can have
a good and fulfilling life not programming. But understand that you will
probably make less money, often a lot less. You are the only person who can
decide if it will be a better life for you to do something else with less
money or to do something you dislike for more.

There are lots of people who cannot program or dislike it who nevertheless
manage to eek a career out of it. I can’t in good conscience tell you to do
that, because they cause the rest of us a lot of stress and what kind of life
is that, where you spend every night sleeping fitfully trying to convince
yourself that you fooled us yesterday (you didn’t) and just need to fake it a
little longer. So don’t. Find something that you enjoy and do that instead.

You 100% have time to do something else. Just stop and do something else.
Don’t torture yourself. You are what, 23? Go get some more loans and get a
degree or certificate in something you want to do, and live your life for
yourself.

~~~
kungtotte
I think a large hidden factor when comparing pay is the length (and cost) of
the education required as well as hours worked. I make 45% more than the
median income here (Sweden) with zero education and averaging 35 or so hours
per week, working as a septic tank truck driver.

It's not as much as I'd make as a software developer; but I never had any
student loans to worry about and what software devs are working 35 hour weeks
and still make bank?

------
denkmoon
An undergraduate degree is an indication you can sit down and do complex work
without needing someone holding your hand. It is not a life sentence to a
particular career (that would be a PhD).

There are plenty of jobs you can do with a CS degree that don't involve being
a programmer, as others have mentioned. Don't feel you need to work in that
field either. A friend I did my BSc Biology with is now a financial advisor
with one of the big four banks in Australia. Having any degree is good, having
a STEM degree is even better.

Also, it sounds like a lot of this is in your head. You should talk about it
to a close friend or someone you trust :)

------
mathattack
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.

------
ct520
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.

~~~
wuunderbar
I would hope that a "Devops Engineer" or similar would be able to breeze
through Easy leetcode problems (i.e., string manipulation) without issue.

~~~
ct520
True, I guess I didn’t group together string manipulation as a lee7code
problem. Devops people I know are mostly chef and powershell scripts.

------
chickenfries
I don't know if this will be helpful, but when I was in college, I failed a
very basic CS math class because I was very anxious, comparing myself to
others, feeling inadequate, feeling like I had wasted my college tuition (I
took on a lot of debt, and my family isn't rich. The whole reason I got into
this was for some semblance of financial security.) I thought I had ADD and
that maybe if I got diagnosed I would be able to get some of those magic
amphetamines that everyone else seemed to be using. Instead the psychiatrist I
saw recommended I seek therapy for anxiety and depression. I was putting so
much pressure on myself to succeed and take care of my family that it was
impossible for me to succeed in school or even really live my life to the
fullest without addressing my thought patterns and emotional state.

I don't know your situation, but there are plenty of respectable jobs you can
get with a CS degree without being a master of CTCI. It won't be Amazon or
Netflix but it's okay, most people don't work at a
Facebook/Amazon/Apple/Netflix/Google.

------
Ensorceled
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”.

~~~
toomuchtodo
How does one train to be a Product Manager?

~~~
ct520
PMP cert seems to be a defacto certificate I see thrown around in the field.
(besides all the scrum stuff)

~~~
fein
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.

~~~
ct520
Gotcha and agreed. My lexicon seems to be regressing rapidly with age :(

------
oh-kumudo
Firstly, how much do you code when you are doing your undergraduate? No
offense, but 2-5 hours seems too long. If so, you should first brush up your
basics, and let go of the thought 'I am from a CS major'. Programming is
almost always self-taught, or can't really be learnt effectively through
classes, only through, you know practices. Assuming your college did an OK
job, you should pick up and relearn everything relatively fast, in 2-3 months
or so. Algorithmic questions can be pretty intimidating for sure, so again,
practice a lot, ask your friends to do mock interviews, and go interview
around with less famous companies on the market, to understand the process
will also help.

Anyway, self-taught is the only way here. I have an imposer syndrome when I
graduated. It does make feel better knowing that one of the best guys in our
class, who we assume is already a CS guru at the very beginning, actually
knows nothing about programming at that beginning. He was faking it to project
confidence to us, but after getting positive feedback from the environment, he
actually gained the momentum to learn and understand CS as the guru we thought
he was. So it is not too late to do it all over again.

Hope this helps. :)

------
cm2012
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.

------
georgeecollins
I think many engineers would love to have a scrum master or project manager
who at least understands what they are trying to do. Your challenges position
you to appreciate the difficulty of engineering at the highest level. Use your
demonstrated (in this post) communications skills to help them cut through the
bureaucracy and be effective!

You have more to offer than you realize!

------
q845712
Like many on this thread I think it's entirely possible you're not giving
yourself enough credit.

I've been working as a software engineer at companies that don't ask riddles
for about 8 years, and I've been on both sides of the technical interview many
times. As the interview-ee, there's exactly one interview I actually left
feeling like I'd nailed it, but several others from which I received offers,
some of which turned into perfectly fine jobs. As the interview-er, I've
learned that I'm looking for a multitude of factors, of which technical
proficiency isn't even the most important. In other words, while there is a
technical bar to pass, it's usually lower than the interviewee thinks it is.

I doubt we live in the same metro area, and even if we do my current employer
is not hiring. I'd be happy to run a fake, no pressure ~20-30 minute phone-
screen with you, and then offer feedback. jmkimmel at gmail

------
tastyham
Some thoughts:

1\. Talk to a therapist about your stress/anxiety issues. This can totally
kill an interview even if you're qualified, and is probably a bigger issue
than your perceived lack of skill. Xanax or other anxiety drugs can help a ton
for interview days, but talk to a therapist first.

2\. Keep trying. It can take a surprisingly long time to land your first job.

~~~
DoofusOfDeath
I'll second this. I'm not a counselor, but my guess it that your anxiety is
coloring your perception and performance of programming tasks.

I strongly suggest you make some time with a counselor, and let him/her help
you understand the real causes of your anxiety, and find a path towards
managing it. This is what they do for a living, and AFAICT most of them are
pretty decent at it.

My guess is that you'll have a better chance of enjoying programming, and
perhaps performing better at it, once you get a handle on the anxiety.

------
konschubert
It may be that the problem isn't you, maybe it's just that you and CS don't
fit.

The others in this thread are right of course. Make sure your mental health is
good. Make sure you try other approaches to finding a job in CS. And so on.

I would just like to add another thing you can try: Give yourself a break, go
for holidays for the first week of thr break and then afterwards _do something
else that 's hard_. Study a science. Study electronic circuit design and build
something. Read about architecture and design a building. Or something else.
Just something else than CS and challenge yourself.

(I mean, don't sign up for a university course, better just read some
textbooks or online resources.)

Do this for a couple of days or weeks. And try to figure out if you are good
at it.

If you hate everything, then please, seriously, talk to somebody about your
mental health. Maybe you are burned out or have a depression. It can happen to
everyone and it can be fixed.

Maybe you also just need more holidays or don't like work in general. I'm not
excluding that possibility, I think that's a totally okay feeling to have but
I also don't see a reason to assume that this applies to you.

However, if you find something that keeps you interested for hours every day
and where you feel like you're good at it, congratulations. Maybe CS just
isn't for you. I'm not saying that you should then become an Architect or
Electronics Engineer or whatever it was that captured you. (You can, of
course, but that's a long term thing I'd say.)

What I'm saying is that after having determined CS as the source of the
problem for you, you can now look for alterations that are fun for you. Maybe
you could be a product manager? You don't need to code, but it really helps if
you know the language that developers speak. There are many other options as
well I'm sure.

------
karmelapple
Systems Engineering.

Work in the world of avionics and help figure out what is needed for airplane
manufacturers, pilots, or the manufacturers of the hardware and software for
the many boxes that make modern air travel safe and reliable.

It involves writing English and logic and attention to detail, but it does not
require coding. It helps to know the broad ideas behind coding, but isn’t
necessary to write algorithms or otherwise solve problems in code.

I would strongly encourage this career path. Look to companies like Boeing,
Garmin, United Technologies, and many more.

I will avoid asking other questions about your current predicament since many
other people are asking you insightful questions. But if you truly don’t want
to code, seriously consider systems engineering.

------
hfdgiutdryg
Real world software development work has almost nothing to do with the types
of exercises you're likely doing. Focus on solving practical problems and
making software that provides value to people, not brain-teaser, CS-heavy
exercises.

------
rikkus
When I graduated I had already decided that software development was too
painful and not rewarding enough - in my experience up to that point. I chose
to pursue system admin - networking, scripting, installing, configuring.

This was a good way to learn how to work with infrastructure 'hands on' and
much less stressful than writing code, compared to my experience up to that
point.

I ended up finding a route into development where I wasn't banging my head
against so many walls, and was enjoying it, then stuck with it for about 12
years.

If you got a CS degree, you're capable of writing code, but you don't have to
do it _now_.

------
ojhughes
A lot of experienced programmers would struggle with those interview
questions. They tend to be pretty far detached from the what most programmers
actually do in the wild.

Thankfully, a number of good companies don’t use silly brain teasers to select
candidates, opting for pair programming exercises instead.

I would advise spending time learning about TDD, agile etc

------
ninedays
Been there. Have a CS degree and did programming for most of my `student
years`. Noticed only the last year that I didn't want to be a developer and
had no idea what to do if you're not a developer. I am now working as a QA and
I find it great. My developer background really helps me talk with the devs
and understand what goes through their mind.

Do not hesitate to talk to a head hunter and explain the situation to him, he
may have some jobs you might be interested in even though you never thought of
it.

Warm vibes, I hope you'll love what you'll do someday.

------
lxe
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.

------
catchmeifyoucan
Leetcode problems are a mess. They're good to practice, not to learn. I
graduated with a degree in CS, fairly recent. I was afraid of recursion. Never
intuitively had a recursive solution. Then it hit me, the matter of fact is
that I truly don't understand it on a fundamental level. I watched beginner
videos, in particular, college lectures. Marty Stepp from Stanford. His CS2
videos were super helpful. Then I jumped to doing recursion problems, only
homework problems (Like fibonacci). Eventually, I began doing more problems
like backtracking. Then I went to Leetcode, and I only did the backtracking
problems. Success! I did them like a champ.

My advice is, don't try to solve all the leetcode problems, you won't succeed.
Focus on one area, one area only: strings, backtracking, recursion, etc. and
master it. Live and breathe those problems. Watch videos. You learn
programming by doing, not watching or reading and assuring yourself you'll
know when the time comes. No copy paste ever!

Pramp is also a good peer interview platform, use that as a test.

I have faith in you. Don't give up on CS.

Also you can checkout the PM route - as "PMs who can code are gold"

------
madrox
There are always project management and product/program management roles.
Having a CS background can be really advantageous without all the coding.

However, it sounds like you may be dealing with some mental health issues if
you’re dealing with PTSD-like stress trying to do programming challenges.
Please consider finding counseling at some point on your journey as this could
be affecting more than just your enjoyment of programming

------
dangerface
Degrees are worthless. A degree courses is designed to be easy to grade, not
to teach you anything useful. The point is to show you are capable of
learning, not to make you capable of doing a job. This makes them fairly
portable, while jobs may ask for a degree with a specific subject they will
generally consider anyone with a degree, unless its marine biology or some
shit.

Code camps and uni are a good start, but if you want to actually know what you
are doing, it takes years of experience, there is no way around this.

> Easy problems take me 2-5 hours

This is fairly typical of someone learning programming for the first time, it
is also typical of someone coming out of uni with a degree. I wouldn't worry
about it and just keep at it.

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

Then quit this is the only reason people actually like programming.

~~~
zaat
>Degrees are worthless. A degree courses is designed to be easy to grade, not
to teach you anything useful.

My experience is very far from what you describe. I learned ton of stuff from
teachers who were mostly enthusiastic about the field they were teaching. Do
you write from your own experience? do you have a degree?

~~~
zamalek
It depends strongly on where you go. I dropped out in my 20's because I was
learning bugger all from completely disinterested lecturers. I'm picking it up
again at 31 (new university) and I'm not only mostly enjoying it but I'm even
enjoying "bullshit" subjects that have nothing to do with CS.

Some universities (I would assume most) are businesses that print degrees and
answer to shareholders, others are learning institutions that answer to
students.

------
crispyambulance
"Being a programmer" on the job actually doing useful work for someone and
knocking out contrived coding puzzles are two _very_ different things.

Just keep interviewing and realize that although some places will use these
tests as secret handshakes to cull candidates, many more will try to evaluate
YOU in a bigger picture: other aspects of your background and attributes, how
they think you'll get along with the others, your grit, communication ability,
and like-ability.

There is so much more to work than technical prowess (especially as measured
by unrealistic quizzes). If your passion is software development, you are
doing yourself a disservice to give up so early just because you are not
performing the way you think you should be performing on puzzles.

------
generallyfalse
I should like to see some of the problems that take you 2-5 hours to solve.
Show your solution, and text about the way you tackle the problem.

Perhaps you need a mentor, someone that can give you some tips about your
coding abilities and what you should do to improve.

If you need more than 10 minutes to sum the cubes of numbers from 1 to n in
python, then I think you have a problem as a programmer.

Can you point to a leetcode problem that takes you 2-5 hours to solve?

Edited: Two weeks ago you submitted a similar post and in the comments you
give this example:

>> To give a concrete example of some of the above, just this morning I tried
to code the brute force solution following problem: Give two sorted arrays
return the median. I spent over an hour trying to implement the brute force
solution involving linearly going through each array and couldn’t code it in
Python.

As a hobby programmer, my ten minutes approach:

    
    
      def median(a,b):
        ...:     ab = len(a)+len(b)
        ...:     pos = ab/2
        ...:     ia = 0
        ...:     ib = 0
        ...:     for ic in range(pos):
        ...:         if a[ia] <= b[ib]:
        ...:             x = a[ia]
        ...:             ia = ia + 1
        ...:         else:
        ...:             x = b[ib]
        ...:             ib = ib + 1
        ...:     if ab % 2 == 1 :
        ...:        return x
        ...:     else:
        ...:        return (x + max(a[ia],b[ib]))/2
        ...:
    
     But it is not correct

~~~
Tmp1234
For the median question, I did not allow myself to combine the array. My idea
was to increment in each array based on which value would come next in a
sequence (as if they were on array), stop when I've incremented n times where
n = length of both arrays / 2 (the median position) and then return. Here's
the code:

class Solution: def findMedianSortedArrays(self, nums1, nums2): """ :type
nums1: List[int] :type nums2: List[int] :rtype: float """

    
    
            length = len(nums1) + len(nums2)
            medianIndex = length // 2
            ptr1 = 0
            ptr2 = 0
            curr = 0
            flag = 0
            
            if nums1[ptr1] < nums2[ptr2]:
                val = nums1[ptr1]
            else:
                val = nums2[ptr2]
            
            while curr < medianIndex:
                if nums1[ptr1] == val:
                    if nums2[ptr2] < val:  
                        curr += 1
                        ptr1 +=1
                        val = nums1[ptr1]
                        flag = 0
                    else:
                        if ptr1+1 < len(nums1) and abs(nums1[ptr1+1]) - abs(val) < abs(nums2[ptr2]) - abs(val):
                            curr+=1
                            ptr1+=1
                            val = nums1[ptr1]
                            flag = 0
                        else:
                            curr+=1
                            val = nums2[ptr2]
                            flag = 1
                else:
                    if nums1[ptr1] < val:  
                        curr += 1
                        ptr2 +=1
                        val = nums2[ptr2]
                        flag = 1
                    else:
                        if ptr2+1 < len(nums2) and abs(nums2[ptr2+1]) - abs(val) < abs(nums1[ptr1]) - abs(val):
                            curr+=1
                            ptr2+=1
                            val = nums2[ptr2]
                            flag = 1
                        else:
                            curr+=1
                            val = nums1[ptr1]
                            flag = 0
            
            if flag == 1:
                med = nums2[ptr2]
            else:
                med = nums1[ptr2]
                
            if length % 2 == 0:
                if med - nums1[ptr1 + 1] < med - nums2[ptr2 +1]:
                    return (med + nums1[ptr1+1])/2
                else:
                    return (med + nums2[ptr2+1])/2
            else:
                return med
    

Here's what I wrote for your sum the cubes. Took me 1 minute. I hope I didn't
misunderstand the question.

def sumCubes(n): sumC = 0 for i in range(n+1): sumC += i __3 return sumC

I'll give you 2 more leetcode examples. Neither passed all test cases. The
first is 2-3 hours. The latter 3. I didn't post the last submission for the
latter one because I believe the one I posted is more telling of my thought
process and coding ability imo so that solution is between 1 and 2 hours of
work, but I wasn't able to get it in the end.

I honestly don't recall my idea here. I think it was to see if the start and
end of the array had the same letter and if it didn't cut off the first and
last letter and continue analyzing the array until the center is reached.

[https://leetcode.com/problems/longest-palindromic-
substring/...](https://leetcode.com/problems/longest-palindromic-
substring/description/)

class Solution: def longestPalindrome(self, s): """ :type s: str :rtype: str
""" curr = "" big = ""

    
    
            for c in s:
                curr += c
                if curr != curr[::-1]:
                    if len(curr[:len(curr)-1]) >= len(big):
                        big = curr[:len(curr)-1]
                        print(big)
                    while curr != curr[::-1]:
                        curr = curr[1:]
            
            if len(curr) > len(big):
                return curr
            else:
                return big
    

I thought there were 3 cases in this problem. You hit a character, you hit a ?
or you hit _. The first one meant an exact match had to be made. The second
that there only had to be some character in the string to take a position (the
string couldn 't end if there was a ?). The last could mean 0 to n matches so
there had to be a lot of checks in my mind. I also thought about what happens
if there's "_?" which I wrote as a case inside the " _" if case. When test
cases didn't work I would try and code for that test case and it kept going
wrong so I eventually gave up and looked at the solution. My main flaw is that
it didn't occur to me that backtracking was the way to go or a way to check
all the _ potential combinations. I thought you just had to keep moving
forward.

[https://leetcode.com/problems/wildcard-
matching/description/](https://leetcode.com/problems/wildcard-
matching/description/)

class Solution: def isMatch(self, s, p): """ :type s: str :type p: str :rtype:
bool """ if len(p) == 0 and len(s) == 0: return True if len(p) == 0: return
False

    
    
            i = 0
            j = 0
            while i < len(s):
                if j >= len(p) and p[len(p) - 1] != '*':
                    return False
                
                if p[j] == '*':
                    while j < len(p) and p[j] == '*':
                        j+=1
                    if j == len(p):
                        break
                    elif p[j] == '?':
                        x = len(p)- j
                        while len(s) - i > x:
                            i+=1
                        while j < len(p) and p[j] == '?':
                            i+=1
                            j+=1
                        if i > len(s) or j >= len(p) and i < len(s):
                            print(i)
                            return False
                        if i == len(s) and j == len(p):
                            break
                    else:
                        while i < len(s) and p[j] != s[i]:
                            i+=1
                        
    
                        if i == len(s):
                            return False
                elif p[j] == '?':
                    i+=1
                    j+=1
                else:
                    if p[j] != s[i]:
                        print(i, s[i])
                        print(j, p[j])
                        return False
                    i+=1
                    j+=1
            
            if j < len(p):
                while j < len(p) and p[j] =='*':
                    j+=1
                    
                
                if j == len(p) and p[j-1] == '*':
                    return True
                else:
                    return False
            return True

~~~
generallyfalse
This is what I tried, recursion taking care of puting the simplest cases
first. I haven't checked the solution. I think this kind of problem is like a
state machine. In each call of the recursion the length of the pattern or the
lengh of the string should decrease, so finally one get to the easy cases of
length in (0,1,2).

This kind of problems are designed to test you can define a grammar and apply
recursion. Another problem with the same flavor could be to evaluate string
expressions like "3+2 _5 " using a grammar. My one-hour solution (not
checked). But I think I have done similar problems.

    
    
             def pat(s,p):
        ...:     if s == "":
        ...:         if len(p)>1 and p[1] in "?*":
        ...:             return pat(s,p[2:])
        ...:     if p == "": return s == p
        ...:     if len(p) == 1:
        ...:         if p == "*": return True
        ...:         return s == p
        ...:     if len(p) == 2:
        ...:         if p[1] == "?":
        ...:             return s == p[0] or s==""
        ...:         if p[1] == "*":
        ...:             if s[0] != p[0]: return False
        ...:             if s == p[0]: return True
        ...:             return pat(s[1:],p)
        ...:     if p[1] != "?" and p[1] != "*":
        ...:         return s[0] == p[0] and pat(s[1:],p[1:])
        ...:     if p[1] == "?":
        ...:         if (s[0] != p[0]):
        ...:              return pat(s,p[2:]))
        ...:         if (s[0] == p[0]):
        ...:             return pat(s[1:],p[2:]) or pat(s,p[2:])
        ...:     if p[1] =="*":
        ...:         if (s[0] != p[0]): return pat(s,p[2:])
        ...:         return pat(s[1:],p) or pat(s,p[2:])
        ...:
        ...:

~~~
Tmp1234
Your solution looks better than mine. Is there anything you've gleaned from
the leetcode examples I posted?

~~~
generallyfalse
I see that you prefer not to use recurrency in Python. That decision is
correct since python is not optimized for recurrency but it also can make the
code more complex. See [https://realpython.com/python-thinking-
recursively/](https://realpython.com/python-thinking-recursively/)

On the other hand, using iterators in python is nice. You didn't use iterators
to compute the sum of cubes, many problems can be solved in one line using
iterators. [https://www.datacamp.com/community/tutorials/python-
iterator...](https://www.datacamp.com/community/tutorials/python-iterator-
tutorial)

Perhaps your code should try to go from the easy cases to the complex cases in
pattern matching.

As a hobby programmer I program without stress, if I was to make a living by
programming I think I shouldn't enjoy so much.

I think you should read norvig post:
[http://norvig.com/21-days.html](http://norvig.com/21-days.html), also to
learn to program in python:
[https://github.com/norvig/pytudes](https://github.com/norvig/pytudes)

I believe that in a year or two you could be prepared to judge your progress

------
oliwarner
I am continually surprised by HN and its reluctance to call out mental health
issues.

It is not normal to feel like your world is ending when you're under pressure.
Forget the rest of this stuff. You don't need more tests. Talk to a councillor
with the aim they can fix or refer you onto CBT, or a psychiatrist to mediate.

There is no shame in this. Not dealing with it is only going to cause
unnecessary suffering. Address it and your interviews and life at a whole will
all go a lot better.

~~~
Tmp1234
You're not wrong that there's a mental health issue at hand. There's also a
lot riding on my ability to do these leetcode questions. I've been talking to
councilors for the past decade, but I'm at a point where I need to be
financially independent. I wrote more about it in this comment:

[https://news.ycombinator.com/item?id=17594084](https://news.ycombinator.com/item?id=17594084)

~~~
oliwarner
But why do you _want_ to work somewhere where you have this grotesquely
irrelevant gauntlet? A silly interview process doesn't mean it's a good job or
a good company, it just means they've got more applicants than they know what
to do with.

I know there's a lot of pressure here to work a 80h week but you can be
financially independent without pressure. Just pick your battle.

You've got a skill. Believe it or not, programmers are needed all around the
world. The pay is _dramatically_ variable but so are living costs. Move. Find
a nice town with a small software company that's hiring and start a life. Get
your head straight. Read. Get a hobby. It's all much easier when you're not
blowing $3k/month on a 1 bed studio.

You can also work shunt jobs directly for companies. Build websites, build
apps. Lots of project management and quoting for things that never come to
fruition but it's a job and very little overhead.

I'm not trying to put you down. I'm sure you can jump start you happiness the
way you're desperately trying to... But stepping into a low pressure job
somewhere where it's dirt cheap to live is a much healthier approach to the
problem you have.

------
bendbro
> I experience PTSD like symptoms from the constant barrage of negative
> thoughts the difficulty and stress of doing these problems are causing me

This happens to me too, especially when it comes to programming soft skills.
Making code work per requirements is easy. Making it future proof is hard.

So make the thing work per the requirements and only then worry about debating
best practices, OOP design, and the various other soft skills. For most of
these soft skills debates, there will be no objective truth.

And when it comes time to deal with a hiring, promotion, or firing decision,
do you think your manager cares whether your code is functional or object
oriented? No, and he probably wouldn't recognize the difference, even if he
had the time to evaluate your code. He's only looking at two things: 1) Are
your projects delivered on time and in a working manner? 2) Do your peers
complain about you?

All the hard stuff is only indirectly related, and is usually the realm of a
senior engineer. Senior engineers aren't respected because they are familiar
with some secret objective truth, they just have experience collected artistry
that builds whatever seems to be good code. As a junior, you just need to do
your best to internalize what they say, and paint a better picture next time.

------
anuragojha
Decide what you want. Make a plan. Take baby steps. Climb that hill and go get
it.

If you are thinking about dropping this whole line, my advice to you is (1) do
what you need to do to get a job as a software engineer; (2) walk away from it
after two months.

Do anything else after this, but make sure you nail this sucker that is making
you feel this way. Make sure you beat this challenge before walking away. I am
from India, until a few years ago, every fresh graduate and I mean civil
engineer, arts, mechanical engineer, electronic engineer, you name it, got a
job at an Indian IT firm. 8 years hence, they are coding away, carrying on.
People who don't even have the basics in CS are making it in the IT industry.
You have a CS degree, get some use out of it. Don't listen to bullshit from
others and yourself about doing something else. The most celebrated victories
are comes from the individuals in the more dire situations.

But before anything else, start exercising a full hour every single day, eat
and sleep well. Dress well throughout the day. Do this for a full week and
start fresh next day if you fail. It will work like magic and help you pull
your head out of wherever you have it parked. Oh and before you sleep, dream
of making it through.

------
1001101
#1: have you talked to an occupational therapist?

Software is going to be stressful, there are going to be time pressures. You
might find an organization/industry where these are minimized. Medical,
aerospace move at a very slow pace. I can think of a few companies in the
industrial space where things move at a pretty slow pace as well.

Otherwise, software test, product management, documentation off the top of my
head.

Asking for help is a good trait for a programmer to have. Good luck to you!

~~~
faitswulff
I think you're on the right track with therapy, just probably not occupational
therapy unless you need rehabilitation for problems with fine motor movements
(holding a spoon, writing, etc.)

~~~
1001101
> I think you're on the right track with therapy, just probably not
> occupational therapy unless you need rehabilitation for problems with fine
> motor movements (holding a spoon, writing, etc.)

OT's can help with PTSD as well. [1]

[1, PDF]
[https://www.aota.org/-/media/corporate/files/aboutot/profess...](https://www.aota.org/-/media/corporate/files/aboutot/professionals/whatisot/mh/facts/ptsd%20fact%20sheet.pdf)

------
tccloud
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.

------
mikeru
Did you NOT enjoy programming before graduating and interview prepping?

Then I suggest you look at interviewing for positions tangential to 'software
engineer'. Look for entry-level positions in software quality assurance (QA),
systems engineer, etc. Read the job descriptions and see if anything appeals
to you. Often these jobs will pay less than a position as a software engineer,
but they don't require programming but will value your CS degree.

------
sam0x17
If you go into government / research (like I did at the start of my career),
they only judge you based on your interview and education (NO whiteboard
questions, easiest interview you've ever had), though the salary will be 30%
less than industry. The U.S. National Labs are a superb work environment. If
you manage to get an entry-level job somewhere like that, they will often pay
for you to then get a PhD/MS/etc.

------
taormina
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.

------
krob
Op is currently stressed and also possibly burned out. I suspect he lost his
enthusiasm for the field, if he's anything like myself it's only temporary and
he just needs a break. If he's given assessments and he thinks their simple
and he completes them, the fact is he stated himself he completed them. I
suspect his enthusiasm is missing from this choice right now because he needs
to explorer his industry more.

------
sav_chris
I'm not sure I have all the answers you need, but I do have some suggestions.
I've worked as a programmer for 6 years now in a number of different roles and
found that the experience can be quite different in different places. Not all
programming roles are the same. Some roles will be quite gast paced and
stressful while others will not.

Also don't necessarily get discouraged if you have a bad experience in one
place. My first programming job didn't work out and the manager told me I
wasn't suitable for programming. However my next employer was very happy with
my work (and the pay was better too).

If you are going to stick with development find a niche that suits you. For
example, don't ignore legacy technology. Many companies still have legacy code
bases written in Delphi and cobol.

There aren't as many developers on the market for these roles and it can be
less competitive.

Also consider suplimenting your CS degree with other skills. Or consider roles
that are not purely programming roles.

On the other hand if you want to leave programming there are still options for
you. There's more to computer science than programing.

There are tech support roles, QA testing, penetration testing, DBA for
example.

------
dsnuh
The sales engineer and other suggestions are all good ones. You could also
pivot to law school and become an attorney specializing in technology related
cases.

------
RickJWagner
Become a writer, UX expert (hot ticket), tech writer, project manager, QE
tech, etc.

Lots of other trails to take, maybe one of them will be a better fit. Good
luck.

------
isodude
In my experience, the negative thoughts and stress is associated with pressure
to complete the task. This is relateable with most larger tasks (i.e. essay
writing). I think it's two fold, first off, in engineering, nobody wants you
to complete a problem 100%, rather solve it 25% but that solution is quite
clear. Then you solve 25% again which was way easier after you solved the
first 25%. This way it's easier for people around you to chime in with hints
or to get an overview of the task / gain insight that the problem is not
defined correctly. It's an iterative process! Second, the negative thoughts
you face is not that uncommon, doing something you have no clue how to solve
is difficult. Instead of trying to solve the problem, think about what
strategy you should have solving the problem, in your CS degree you have lot's
of tools for that if you look back. Avoiding the fear of not completing is a
good way to actually complete, that's my motto anyway.

A good way to get on your feet(motivation wise) is to do easier things for a
while, also something that really motivate. Maybe there's someone you know
that have a problem that you can solve. If you feel that problems are too
tough to do, pick something easier to get the flow going again.

The most important thing is to feel good! Like the most upvoted answer said,
chill out. Increasing the pressure is not the answer. If it's anywhere near
what my SO had, Yoga/structured days(doing something 1h, taking a walk, doing
something 1h...)/dark rooms. The stress is real and should not be ignored.
Getting a job that's completely off the field is not a bad thing either, you
got yourself a CS degree, which you always will have in your back pocket.
Doing something else will make you able to combine that degree with other work
experience. And everyone else will think about you as a super human that
actually get's computers ;)

------
unrealchild
A lot of great advice in these responses, advice applicable to anyone feeling
stressed at performing the duties (perceived or otherwise) of their
role/vocation.

I echo those who emphasize taking steps to avoid stressing out, and also those
who advise considering other roles where your degree could come in handy.

Also, roles that have nothing to do with tech. Something excites you; take a
swing at it.

------
spyckie2
My friend graduated from CS in Berkeley, but it was apparent when working with
him that he was not really cut out for being a programmer. I suggested him to
go for a PM interview with a large SV company and he got it, and now is doing
really well. His other skills - communication, organization, strategy,
research, and persistence, just work really well in the role he is in
currently.

CS is a particular kind of smart that not everyone is. And you don't have to
be smart in that way in order to be successful.

The CS degree is really valuable regardless of how difficult or frustrating
you feel about doing CS. It's objectively one of the most valuable and
versatile degrees out there. Non tech roles in the space (PM, design, BD, tech
sales are all strong industries) are all very good roles that would love to
see a CS degree.

I personally think of CS as "paying your dues". You suffer a bit and feel bad
about yourself, but you've become an objectively more valuable person because
of it, simply because you can program.

------
gojomo
I'd echo the other answers that anxiety may be the real factor here –
specifically some sort of performance/evaluation anxiety.

So if you face that head-on – talking to a therapist, reading about anti-
anxiety strategies, etc – you may find that you are able to perform as a
programmer. And even if programming itself isn't your best role – either
because it triggers performance anxiety, or just doesn't match what you enjoy
doing – addressing the sort of anxious-thoughts-under-pressure you're having
will help in any other challenging interview/job role you find.

There are lots of roles in software that aren't constant intense programming,
but require some familiarity with software lingo, tradeoffs, processes, etc
and may involve small sessions of less-challenging programming. (These can
involve various kinds of integration or demo work, project-management, "sales
engineering", marketing, and so forth.) And you wouldn't need to "knock-it-
out-of-the-park" on interview-style questions to qualify for such jobs – just
show some ability to engage and improve.

But you may also have built things up in your mind as being worse than they
are, leading to a self-reinforcing cycle of imagined doom.

Do some anti-anxiety research/coping practices. Maybe try to go into some low-
value interviews even if you're scared – places you're not keenly interested
in – as practice. You might find it's not as bad as you think, or that after a
few it's no longer as scary. Consider other entry-level roles at software-type
companies that let you learn about the industry and profession without needing
to feel fully competent on day one. After you've interacted in a real
environment you may find it easy to slide over into some useful closer-to-
programming role, without the stressed-out ("PTSD") brain freezes you're
facing now.

------
nickelcitymario
As someone who has never (and likely will never) pass these kinds of tests, am
I in a minority in thinking maybe they're a good way of filtering the non-
geniuses? I.e. Maybe the reason I can't pass these tests is I really am not
sufficiently skilled/talented to work at Google?

At some point, I think we need to accept that sometimes other people are not
the problem.

~~~
cloverich
Everyone has limits. However, people vastly overestimate the impact of
intelligence and underestimate knowledge, experience, interest, and work
ethic. If you like programming and expose yourself to a sufficient variety of
problems and architectures, over time you'll slowly run out of situations
where you're running into truly novel problems. At that point your
intelligence will matter very little, high or low.

------
Ancalagon
Dont worry about the puzzles, a lot of companies dont use them for interviews.
Interviewing is (mostly) a numbers game, so while you might not get a Big 4
position (which frankly might be over rated anyways), just keep going, keep
interviewing. I'd make notes on what I missed after an interview, studied
them, and pushed to do better on the next one.

------
gyc
If you enjoy writing, your CS degree would be an asset if you want a career in
patent law as a patent agent or a patent attorney.

------
searene
Me too, algorithms are extremely hard for me at first. It took me a really
long time to solve easy problems, and I could only solve 1~2 middle-level
problems in one day. But finally, I managed to handle them by getting to know
some effective learning strategies, e.g.

1\. Explain to yourself how algorithms work, like a teacher teaching his/her
students. 2\. It's even impossible to explain to yourself when facing some
middle-level/hard problems. Then I got another good idea: write everything
down on papers. Finally, I found out that it was not that hard to solve these
problems.

There are a lot of other learning strategies. In retrospect, I think it's
lucky to be an engineer. Although it's hard, tough, brain-racking, I get to
know a lot of learning strategies along the road. Sometimes you wonder if
others are way smarter than you, but maybe they just know some learning
strategies that you don't know, and they never give up.

------
horofox
The problem is smaller than you think. You need time.

Dunno if that helps, but I've been programming since 8 years old. When I did
college there was definitely a considerable amount of people that I might
consider that... they didn't know how to code or to properly solve problems,
but that's because they didn't improve their problem solving skills.

If you have no monetary or legal obligations, just stay at your parents place,
sit down, create a SPOJ account and go problem by problem until you are
confident. If I had quit 2 years off my career to study problem solving now
that I am 30, it would rarely make me lose anything, much less in a 30 years
of work timeframe.

Go get rid of that anxiety I think you can only solve it by being more
confident, and to be confident you need time. It is much easier to be a good
guitar player if you start as a kid, but I bet that anybody that dedicate a
few years will be able to perform well, peogramming is the same.

------
a-dub
Buy some algorithms books. Brush up. In the beginning, if you're stuck on a
problem, peek the solution. After a number of them you'll be able to start
doing them yourself. You're learning a new skill, it's called the bullshit-
google-algo-interview-problem-solving skill. It has little to do with most
real problems, and when you do encounter the real problems, you'll talk to
people and look up reference material anyway.

Just like how the SAT has little to do with predicting academic performance,
this silly little game has little to do with predicting real world programming
performance.

It can be a valuable exercise to be exposed to the material, but by no means
is it a pre-req for being able to succeed at sw eng. Plenty of people garner
the correct resources, study for this and get fancy jobs where they go on to
spew out absolute garbage in code form. It is meaningless.

Some companies recognize the folly of this, ask the recruiters.

------
ebcode
I checked out some of your previous posts and see that you are really,
earnestly struggling with your decision to get into programming.

I feel for you, and I'll try to give you some advice with my "professional
programmer"(TM) hat on.

Um, first, I think it would be helpful for you to find a way to ease up on the
pressure you're putting yourself under. Maybe that means getting a "good
enough" job in the meantime, or just a "regular job" (minimum-wage style), so
as to get some immediate cash flow going. If money isn't a stressor for you,
maybe just take some down time. (That top comment is top for good reason).

The second bit of advice would be to just actually go do the interviews,
whether or not you think you've prepared "enough". You're a fresh college
grad, and no-one is going to expect you to have _all_ the answers. Don't worry
about fucking up, basically, because of course you're going to. The key is
just persistence -- don't let the fucking up get you _too_ down, because
you've still got to go to that next interview -- and make sure you _learn_
from your fuck-ups, so you don't keep fucking up in the same way.

I can't tell you how scared I was during some of my first interviews. Reaching
out a sweaty hand because I was a bundle of nerves is just one terrible
experience. But if I hadn't had that experience ... well, you get the point.

Maybe programming isn't for you, but maybe a job you don't love will pay the
bills, and that's okay. Or maybe it's just that leetcode and CTCI aren't for
you. I mean, some of this interview stuff is like "security theater" at the
airport, only it's "interview theater" at the whiteboard. Ineffectual at best,
but demoralizing and humiliating at worst.

Don't let the red-black trees fool you. There is real work to be done!

------
RantyDave
Be a project manager. Extra marks if you can be an "agile" project manager
because then you get the most post-its.

------
danieltillett
How did you manage to get through a CS degree?

------
kamaal
>>I recently graduated and have been grinding for interview prep (leetcode and
CTCI mostly)

So basically academic exercises on rote memorizing Math theorems which have no
remote influence to real software development.

>>but I’m getting no where. Easy problems take me 2-5 hours.

I know ace developers with several years of experience who would fail at these
problems.

>>I experience PTSD like symptoms from the constant barrage of negative
thoughts the difficulty and stress of doing these problems are causing me.

Do not waste 2 minutes on this, because those problems are no reflection on
your abilities.

\---

Please try to understand this. People who invented these algorithms, took
years to arrive at working solutions with several years of academic career
behind them.

You and I are not going to crack the solutions to these algorithms in hours.

Those who do, build upon memorized patterns. If you consider this algorithm
ability you might as well start handing fields medal prize to every joe who
has memorized multiplication tables.

------
austincheney
I was hired by Travelocity (many years ago) to be a designer. A few months in
they had plenty of designers but couldn't hire front-end developers, so they
made me a developer. It wasn't a choice. If I wanted to stay employed I had to
figure it out. After several military deployments and treating programming
like a hobby for some open source projects I developed a talent for it. A
talent a CS degree could never provide.

I have seen several developers who thought they were awesome because they had
a CS degree from a fancy school. They were very wrong.

Programming is a skill. Skills take practice to develop. End of story.

Most people are confused about the nature of education, especially CS
students. Education is not trade school. Trade schools exist to get you
started on a skill. Education exists to provide beneficial structured
knowledge. If you are having trouble figuring this out I wouldn't hire you
either.

~~~
aryamaan
How will you develop that skill again now considering you have already gone
through the journey?

~~~
austincheney
Start writing code on your personal time outside of work. How do musicians get
started? They just do it.

------
codycraven
Seeing as you were able to graduate I'd imagine your issue is not
performance/anxiety related but rather efficient application of learned
knowledge. This resolves with hours upon hours of gruelling development
practice. I'm 21 years into self-taught programming and can testify that it's
the constant struggle that develops your chops (fresh grads are often terrible
developers).

Now if that doesn't sound like a path you want to go down but you still like
programming (even if you don't want to be the one doing the dev work) I'd
recommend picking up an MBA or some other administration based masters degree.
Seeing as you have respect for the difficulty of programming and have the
theoretical knowledge you could be a really fantastic manager and potentially
at some point an executive over developers.

------
simondedalus
IT or cybersecurity both benefit from CS (cybersecurity especially, since
that's basically just CS/IT + read the news / some sec feeds + basic risk
assessment and management).

the good thing about IT for you in particular is that scripting is so
important to it that it might sharpen your programming skills enough to
incline you back toward software engineering. sysadmin scripting is obviously
less theoretically demanding than most software engineering tasks, but you can
get the satisfaction of solving real problems (relatively) quickly using code
--and knowing basic CS principles will only help, as long as you're open to
learning the practical realities of IT, which often strain to breaking the
idealistic assumptions many CS people have about how systems work and
where/why they fail.

------
jdlyga
Look for jobs at smaller companies. Not necessarily startups, but established
small companies that have been around for 10 - 15 years. The interviews are
much more about culture fit and technical background than just grinding out
whiteboard questions. It helps you get your foot in the door.

------
anothergoogler
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.

~~~
thewayofthebutt
> 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.

~~~
anothergoogler
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.

------
throwaway613834
Like most other people commenting here, I don't have advice on the career
path—in my case, it's because you haven't given any information about what
your strengths or interests are besides programming. Could you give us a
little more info on what you enjoy, or what you think you're good at? What did
you like in high school or college? Do you like math? Journalism? Lab work?
Politics?

Aside from that, I have one other piece of advice that you may or may not
enjoy hearing:

I would stop—like, _right now_ —even _thinking_ things like "I experience
PTSD-like symptoms". (Unless you're dead serious about your symptoms being
similar to that of those who really have PTSD, in which case get a real
diagnosis from a professional.) There are many reasons for this, two of them
being:

1\. It's hard enough for professionals to get this stuff right without getting
their diagnoses called into question (including by armchair-psychiatrists like
us programmers on HN). Heck, people here are even questioning your assessment
of the CS question's difficulty. (!) And there's so much context and prior
knowledge/experience to evaluating symptoms that's difficult to judge as a
layman. Just go on WebMD next time there's a weird pain or tingling or bump
somewhere in your body. If your experience is anything like mine, you'll
quickly find that you may have anything from M.S. to cancer... when in fact it
might be nothing more than a cold (if even that) and it could go away after a
while. All you're doing is depressing yourself.

2\. The point of identifying any illness is very simple but very critical to
keep in mind: _to help find you a treatment for current or future symptoms
based on the known literature_. If you're not doing that, then telling
yourself you have—or might have—a disease/disorder isn't doing you any good.
Again, you're just depressing yourself. And what's worse is that you're
suggesting to yourself that you don't have control over what's happening, when
in fact there's quite a good chance you do.

------
alexissantos
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...](https://medium.com/the-mission/make-
the-pursuit-of-curiosity-your-metric-for-success-e22ddc4c33c3))

~~~
edoceo
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.

------
ksec
>I experience PTSD like symptoms from the constant barrage of negative
thoughts the difficulty and stress of doing these problems are causing me.

I am not sure if we have had similar thoughts and feelings. The idea that I am
simply not good enough to be a programmer, after trying so hard. And I cant
solve these problem quickly enough to be a programmer. I can definitely
program, given enough amount of time, but being a professional programmer
seems like a different thing. And there seems to be a immense amount of
knowledge that I have absolutely no idea, there is more unknown then in the
known. How am I suppose to do this day in day out? And it causes anxiety
issues? is that similar to how you are felling?

~~~
Tmp1234
Yes. Very much so.

~~~
ksec
Great!. Then I can give a few of my thoughts, I wouldn't say "advice". But you
can have a think about it.

I did Computer Engineering degree, which is different to Computer Science. At
the time I have always thought how CS would be a much better degree, but I
could not get in due to higher entrance requirement, so instead I got into CE.
I dropped into the CS class whenever I can. Reading their teaching materials,
I grinned. I remember thinking why do they teach outdated stuff like these.
Perl! ( It was on the way out, the future is super hyped thing called Java ).
May be because my Collage wasn't all that good in CS ranking. May be that is
why. In CE, we actually do lots of what I call real engineering work, with
transistor and low level design. Which requires lot of discipline, and rules
to follow.

After nearly 20 years. My thoughts are, none of the CS degree preps you for
today's working environment. And it never will. It doesn't matter which
college you go to, 90% of those work aren't really related. The modern tech
teaching is not outdated, it is just the hype cycle moves so fast and tech
industry as a whole ( Actually not tech industry, but specially Silicon Valley
) likes reinvent the wheel every few years what was put into text book
material are likely outdated.

Most of the best programmer I have met, actually not most, but ALL of them.
Are self taught.

And what is funny, ( sorry if this hurt anyone ), most programmer have
absolutely No idea what the heck they are doing. They somehow got a pieces of
code working, compiled, and it works. Don't ask them why or how or if it is
good. At the moment they would have thought those code are good enough, likely
2 years later they thought it was a pile of crap.

Compared to real software engineering, which for example, code used by NASA,
or Sqlite, the amount of testing and thoughts required are insane. But those
are niche cases in today's market.

Then there is the domain knowledge, ask DHH to explain Linux Kernel to you? He
would have said who the fxxk understand this. Algorithm what? Ask Linus to do
Web Programming? Who the Fxxk has invented these pile of abstracted mess and
trillion of framework just to render a page?

I was the few of the best in class for my programming project. But I never got
a programming job, mainly because I had always in my mind, that real
programmers were like Swordfish, Matrix, whatever thing that type so fast and
could solve a problem instantly. But instead, now I know most programmer just
stare at the monitor and does JACK ALL for a whole day.

Programming is 80% Reading + Thinking. Actually I will go on to say 90%. For a
100min of work, you only spend 10 min typing it out. There is actually lot of
thinking going on without you realising it, when you have lunch, dinner,
sleeping. Your Brian is constantly working in a background thread without you
even knowing it.

I wish I had known this at the time. I wish someone could tell me programming
is like that. I could happily hack out a solution in my own time and schedule,
but I cant think faster and solve a problem in mins.

I had always dream of telling others; the world outside geek circle, how
programming really is. I had always wish someone could fund me doing a Mini
film, and have it played in all university or programming courses. It will be
a documentary of famous programmers every day work and programming. From
Facebook, Google, Apple or Microsoft. Having them staring at the monitor, and
fast forward showing they did zero typing of code. And has embarrassing
question that should know but they don't. How all these programmers are really
no different to you.

I know how it feels, programming at your own schedule vs programming at
someones else scheduled when you have no idea how long it will take. Would I
be fired if I didn't work fast enough?

Programming isn't for everyone. There is a difference between able to write
program and likes to write program for a living. And finally you are young!
Explore more! Unless you have a burden ( bring money home ), keep looking,
don't settle. I didn't understand the explore options when I was young, but
once you are in your 30s, your freedom to explore are limited by families,
relationship etc.

Good Luck.

------
songzme
You are not alone. As the founder of garage script I've come across a few
students who got a CS degree and couldn't find a job. The problem might not
actually be your ability to solve algorithm, but rather your inability to
communicate. For the students who came to me with similar situations, I had
them lead coding sessions at our local library to help them get more
comfortable with talking to strangers and they now all have a full time job.
From my work experience as a tech lead, I've hired many people who didnt do
well with algorithm questions but they were able to listen to my suggestions
and get to an answer.

Maybe start a Meetup group and work through problems with other people?

------
hindsightbias
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.

------
flaque
> Easy problems take me 2-5 hours. I experience PTSD like symptoms

This is not ridiculously uncommon. I had this problem for awhile too. The only
thing that got me through it was applying to every possible place and getting
more practice. I know that may not be what you want to hear, I know you've
probably already practiced a ton and I know you've probably already applied to
a ton of places.

But seriously, practice. Apply everywhere without an expectation of a job
immediately. Time yourself and if you can't figure out the problems, it's okay
to look. It's fine. At a certain point you'll have just seen the problems
before or a variant of them and you'll be able to do them.

------
forgotcreds
Not all places hire using these types of interview techniques:

[https://github.com/poteto/hiring-without-
whiteboards](https://github.com/poteto/hiring-without-whiteboards)

Don't give up so soon. You can do this.

------
AndyMcConachie
> Are there any career paths I can pivot to that are less cognitively
> demanding than software engineering where this degree would be an asset?

Yes. If you understand basically how computers work and what they are capable
of the corporate world will find a use for you. Can you communicate well? Like
giving presentations? Try going into sales, project management or
documentation. Are you a real people-person? Try going into people management.

These are just general categories. The reality is that the world we've created
for ourselves has a tremendous need for people who can be at the edges of
complicated technology and act as an interface to some other world. Don't
despair.

------
crooked-v
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](https://github.com/icopp/tech-
demo-1) and [https://icopp.github.io/tech-
demo-1](https://icopp.github.io/tech-demo-1) for an example of one I've done
before.

------
Tmp1234
I didn’t expect this many responses. It’s a bit overwhelming, but I'm
thankful. I’m going to post a few important pieces of information I didn’t
think of posting above that should help clarify my situation and how desperate
it is.

I do have depression. Pretty bad one actually. I am just graduating from
college at 31 because of the toll depression took on my life. I have no
previous work experience because I spent my 20s just being depressed doing
nothing basically. I've talked to therapists for years now and it's helped,
but I've basically gone as far as that can go. My therapist and I both agree
that basically as much as can be done from me through a psych has been done.
My life needs to improve. Programming was supposed to be my ticket to a better
life.

Some people have mentioned I should move home- My home environment is
extremely toxic. I’ve cut off my mother completely because she has a severe,
much worse mental illness and I only talk to my dad when I need something
because he has quite the temper. I managed to get out of the house only
because I’m on disability for my depression. To make things worse, my dad is
past retirement age. Every single day I’m not making money forces my dad to
prolong his retirement as he is the only one in the family with the mental
faculties to maintain a job. It should be easy to imagine how this makes him
more irritable and angry while also making me feel incredibly guilty and
parasitic. This fragile economic state + my age is why I don't really have
time to take it easy. I was supposed to be making money yesterday.

I’ve been preparing for technical interviews for over a year in reality, but
intensely in the last month or 2. I couldn’t do Fibonacci recursively up until
a few months ago until I looked it up and studied how the recursion was
working. This is just one example. There are so many very basic things I can’t
do.

Finally, I can’t depend on a network or friends in any form because I have
none. I am a complete pariah in the computer science community I come from and
every other community I’ve ever tried to integrate myself into, basically. No
one will ever refer me to any job because no one likes me and, in the case of
programming, everyone knows I suck.

~~~
vpmpaul
>No one will ever refer me to any job because no one likes me

This may be true however. It is more likely they are not sure of your
capabilities. A recommendation for a programming job is basically a sure thing
job placement now days. However if someone recommends you and you are a screw
up it affects their professional reputation. I would focus more on finding a
technology you are genuinely interested in so you can "shop talk" with some
other people in the industry while proving you know what you are talking
about.

In programming almost no one cares about your personality (unless volatile). I
have a programmer my team that I sat next to for 3 years and I think we have
had maybe 5 minutes of non work related conversation during that time. He just
hates talking to people period.

------
nickodell
I'm sorry about that. Maybe you can switch tracks without losing what you've
already accomplished.

There's a paper by Phillip Guo about conversational programmers. These are
people who do not program, but seek to learn programming so that they can be
better at some non-programming task.

He's got three papers one this topic, but you're most interested in this one:
[http://pgbovine.net/publications/conversational-
programmers-...](http://pgbovine.net/publications/conversational-programmers-
in-industry_CHI-2016.pdf)

Particularly look at table 2, which is a summary of the motives of
conversational programmers.

------
crobertsbmw
You might try sales. There are a lot of sales jobs where they value the
salesman being able to understand and explain technical aspects of the
product. My uncle started as an engineer and moved to sales and he absolutely
loves it.

------
BIackSwan
It looks more of a psychological issue and lot of stress causing a vicious
cycle.

As whack suggested - try relaxing a bit and giving yourself a break for a week
or so. You will be surprised at how effective breaks are in improving
performance. This is one of the most common mistakes junior programmers do -
no breaks and constant coding until you get burnt out.

I am writing a book on using mindfulness to become a better software engineer
- [https://leanpub.com/selfdebug/](https://leanpub.com/selfdebug/) \- you can
download it for free and see if it helps.

------
sdrothrock
> I experience PTSD like symptoms from the constant barrage of negative
> thoughts the difficulty and stress of doing these problems are causing me.

There's a book called How to Keep People From Pushing Your Buttons by Albert
Ellis
([https://www.amazon.com/dp/B01DRXBJS8](https://www.amazon.com/dp/B01DRXBJS8)),
who pioneered an early form of CBT (cognitive behavior therapy).

I would strongly recommend it as thoughtful reading material with the purpose
of getting out of this negative loop so that programming isn't so stressful.

------
a-saleh
You have several options. This is what I would do in your place.

First, I would forget about interview-prep.

Second, I would try to get better idea about actual work, call friends from
university that already work, and talk to them. I did learn this way that the
day-to-day work in i.e. big corporations in a well run department is not
really stressful, especially compared to a white-board interview. Some friend
might even have an opening. Going through a referal is much better than just
applying.

If you don't have friends with jobs already go ask on twitter. I think people
around i.e. @sehurlburt form quite a friendly developer community and
Stephanie herself often retweets i.e junior CVs.

Third, I'd figure out what position suits me. I would do this after I have
realistic expectations about my work-environment. If programming itself is
that stressful, I would probably advise-against doing ops-work, because baby-
sitting servers can be even more stressful. But there are many positions that
might fit you.

Manager - even though in many corps, people view getting to management as a
promotion, there actually are junior managment position. Requires mostly
people and organizational skills. Having a CS degree should help you stand
apart.

Technical writer - mostly means writing documentation. If you have good
writing ability, having a CS degree should be a plus.

QA - mostly software testing. Skill requirements can vastly differ, i.e. my
boss expects me to be a decent coder, with some ops-experience. A friend of
mine has 101 Javascript under his belt and in different corp mostly produces
test-case documents in Word, another friend mostly clicks through a web portal
based on a giant checklist. All of us have the title QA in their org.

You still might want to be a programmer. There are many levels of
skill/stress/benefit ratios available.

If getting a job over a beer/coffer with a friend whose department/company has
open position is not an option, I would go to a job-fair, or if I'd have a
company I actually like, I'd wait for when they have an open-house, or
something like that. I would talk to a recruiter there. That is how I got a
job at RedHat as a QA more or less :-)

------
hasahmed
Yeah really don't sell yourself short. And you always get better with time
because patterns repeat. If people do those problems faster it's just because
they are using prior knowledge from problems they have solved before. That
being said if you don't enjoy programming I believe that there are a lot of
other options out there. I think that there is quite a demand for people who
are technical but have soft skills as well. Perhaps in the business realm.
Think someone who can be a middle man between customers wants and developers.

------
freemindm
Computers are fun in many ways. Maybe you can buy one wacom tablet and use
your computer mastery into drawing beautiful art? A CS degree will ease
anything computer related you go into but having the professional skill you
want will always take you a lot of time. See what you feel you can do best and
make you feel better, cuz if you are lucky and find something you can give
yourself this is what you will be doing for more time than you lived until
now. Patience and persistance. Good luck

------
phonebucket
> I put all my eggs in the “being a programmer” basket and it’s clearly not
> for me

If you are sure you don’t want to be a programmer, then don’t be one.

Your degree shouldn’t pigeonhole you. If you are a recent graduate, you have
plenty of eggs for whichever basket you choose.

Edit: what about data science? There are plenty of jobs available. Some might
be based on coding, but others are based on maths, and others based on having
a good business sense. It’s a diverse field which is in vogue and could allow
you to pivot your career.

------
teratorn
It's very good that you've recognized that programming is not for you.
Congratulations! you have a chance to save yourself.

You shouldn't feel bad or try to apologize or try to "make it work" \- those
are all wastes of time. Get on with life, and find something you have the
opportunity to excel at! Being stuck behind a glowing screen 8+ hours a day
isn't ultimately rewarding or really sustainable - so find a way to make
software-fiddling work for you, or get out now!

------
overton
As others have said, maybe doing tricky CS-heavy coding puzzles and applying
to the companies that screen for them is not the way to go. Lots of companies
just need someone who knows their way around particular language and web
framework. How about building out an idea for a website in Rails or Django and
putting it on Heroku? Go to meetups, show it to people, network, and get
advice. Not a sure thing but definitely an alternative strategy to consider.
Best of luck!

------
mselinger
CS majors that understand programming but don't want to be programmers can add
great value in a number of areas including technical support roles, consulting
roles, pre-sales engineering, professional services (helping companies to
implement software), product and or project management, analysts, etc.

Some questions to think about - are you good with people and can you do well
in a customer facing role? If not perhaps some of the more individual roles
would be better.

------
tholinar
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.

------
antonio-ramadas
Would you feel more comfortable if doing a project at home? I read here on HN
a nice advice to people that may be uncomfortable in a coding interview. Here
it goes: \- Ask the company if you can do a project of their choosing instead
of coding at the interview. I do not mean to replace that interview, but
instead of solving a problem, you would walkthrough what you have done with
the interviewee. I never tried this, but I read some companies allow it.

------
Latteland
Get a therapist to deal with the anxiety. There are plenty of nondev jobs for
things where you use your tech background with no programming like program
manager (tech planning for a project), project manager (organize the project),
esp in big companies.

But I would suggest a therapist. Probably grad school to get more experience
is not warranted until you know if you want to stay w cs, but something where
you can get more confidence like an internship.

------
ssss11
If it helps, I have a CS degree and about 15 years experience now. That
experience started not in programming but in IT support and then system
engineer/infrastructure work for corporates, followed by IT management and
Project Management roles. These are all achievable with that degree.

I also know others who mixed it with some short courses on stats or other
things to diversify into data science, marketing, business analysis and other
areas.

------
cjhanks
First off, if you're beating yourself up because you cannot do these Leetcode,
Project Euler stuff - stop it. You will probably not be the best algorithms
developer, but who cares?

Don't sit around and say, "Where can I go from here?". No matter where you
are, figure out where you _want_ to go. And 9 times out of 10, the skills you
have accrued in your life will be of _some_ value. That is my experience,
anyways.

------
mcovey
For every job I've had, I never had a coding challenge during the interview. I
had one where I had a homework assignment beforehand that we discussed during
the interview, and mostly just talking interviews discussing my experience
etc. I also work in a small city on the east cost and make less than half of
what most people here do ($65k so maybe not really less than half) so that
might have something to do with it...

------
AlexCoventry
> I experience PTSD like symptoms from the constant barrage of negative
> thoughts the difficulty and stress of doing these problems are causing me.

Find a good tutor who understands this issue and knows how to help.

I've helped multiple students level up in math by getting past this kind of
anxiety.

The book _Misteaks... and how to find them before the teacher does_ is about
calculus, but hopefully it'll be obvious how to generalize it to your
situation.

------
pjohri
There are many paths your can take \- test engineer, can still write some code
but don’t have to. you can find out if you would really want to move forward
as a coder or not

\- scrum master roles, where you are managing agile teams

\- sales engineering, helping sell technical products

\- solution engineering , helping implement a company’s product, little coding
and configuration

\- training and teaching schools

\- management and business, start as business analyst, get an mba and run a
busines

------
spatulaorama
Lots of great comments so far, but I would add that an alternative approach
would be to find an open source project that you feel you could contribute to.
Start at ground level fixing bugs and work your way up. It will look great on
your resume and would be way more productive than just focusing on interview
prep. If nothing else it will help you determine if you actually do enjoy
programming.

~~~
freehunter
This is just my opinion, but when I was in OP's shoes I found this to be the
least helpful piece of advice I ever got. I was lucky enough to realize that
programming stressed me out early on, early enough that I could switch majors
into something that I liked better. But I still wanted to be a programmer,
even if it was just as a hobby.

What I didn't like about being a real career programmer was the time stress,
the expectation that you'll write code that works, and especially having to
write code for someone else, where you're trying to translate their ideas and
trying to do so correctly with limited information.

Contributing to open source sometimes (in my experience) embodies all of these
in one. I've found a lot of really helpful open source projects where this
isn't the case and everyone is nice and helpful, but you'll also find some
times where the maintainer is mean, doesn't like your code, your code doesn't
fit their style, and they're going to make sure you understand that. And if
you spend your time writing good code, then do a pull request just to find out
someone had already beaten you to it? Oh god... I'm stressing just writing
this out.

Even if it's just 5% of the projects that are like this, to someone who
already has crippling anxiety about their skills as a programmer, being put
under public scrutiny is unthinkable. One bad experience and you might be gone
forever.

What actually helped me was getting a job in another field and finding ways to
write bash scripts or python scripts to help, with each script increasing in
complexity until I had hundreds of small programs that I designed and wrote
and improved over time. Zero stress, zero expectation, but when they work it
feels amazing and is a great boost in confidence.

------
your-nanny
it's hard to say whether or not the problems you solve should take less than
2-5 hours, but two pieces of advice:

1\. in an interview, whether you solve the problem is less important than
demonstrating how you approach solving problems. think about it like being
asked to find a needle in a haystack.

2\. don't think you have to score a job at a Google right out of school. there
are lots of opportunities in less stressful environments.

ok I lied, I have more advice...

3\. as an alternative, write good quality useful software and post it to a hit
repos, go answer questions on stack overflow, demonstrate your knowledge and
abilities. become an expert in some area that interests you.

4\. maybe you don't want to be a programmer. that's ok. your background will
still give you an edge. I have a colleague that worked for a couple years as
programmer and ditched it for PhD program in neuroscience (not thAt that is
any less stressful).

5\. consider getting professional career advice and coaching.

6\. consider getting help for your anxiety. worrying whether your smart enough
or how hard the problem is will keep you from actually problem solving.

------
amorphid
Have you considered that you stink are completing those puzzles because they
are so damn boring? I hate learning that way. I never make it past the first
chapter of CTCI when I try to attack it head on. Find another way that works
for you. I did. My personal "learn all the things" path to success has been
taking things apart and learning to understand the pieces.

------
EADGBE
I just wanted to let you know you're no stranger to these thoughts. You're
going through _exactly_ what I went through with the completion of a music
degree.

So, with that logic; perhaps you should try your hand at teaching music.

Though I didn't get into "software engineering". I'm a frontend/backend
developer. How narrow are your sights set? The CS field is pretty big.

------
empath75
Dude. Relax. Programming isn’t that hard. You don’t need to get a job with
Netflix or google. The job market is absolutely desperate to hire anybody who
knows how to write a for loop.

I’m making a six figure salary writing chef cookbooks and cloudformation
templates and I don’t even have a degree.

Just slow your roll, dial back your expectations and apply for less high
pressure jobs, man.

------
crb002
Get hired someplace for $50k as a junior that doesn't whiteboard. Apply again
as a senior for $100k+ in a few years. Long game.

------
JoshCole
There is something to the ideas expressed here which I think speak to your
situation, specifically I note a lack of joy and play in your skill
acquisition: [https://www.physics.ohio-
state.edu/~kilcup/262/feynman.html](https://www.physics.ohio-
state.edu/~kilcup/262/feynman.html)

------
sputknick
I got a CS degree 15 years ago and I have never been a salaried developer,
never written a line of production code. There are plenty of things that need
to be done in this world where you need to understand the fundamentals behind
coding, but don't actually write any. I suggest looking into Consulting and
Software Project Management.

------
SteveMorin
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.

------
bsvalley
The good news for you is that you don’t have to become a developer with a CS
degree :) a few other roles and tech companies would rather hire someone with
a CS degree rather than an MBA. Look for positions like product manager,
program manager, project manager, UX, QA, etc. You don’t have to apply for a
software engineer role.

------
z3t4
Maybe you have not yet found your programming style. Schools tend to teach
object oriented programming, but maybe functional programming is better suited
for you. And also look into test-driven-development with test-first approach,
where problems are broken down to really small parts and you solve one part at
a time.

------
zwischenzug
Take a break. This sounds like classic burnout. You need to regain the
motivation and interest that got you here in the first place. You're young,
and a bit of time doing something else will do you the world of good and
remind you why you went down this path in the first place.

Nil desperandum!

------
chemmail
Unfortunately, today a CS degree is like a degree in art, in that it gives you
the tools, but is is still up to you to make a masterpiece. If it is not for
you, you can try pivoting to similar fields like maybe get a masters in
information assurance or cyber security.

------
mikekchar
Programming isn't for everyone. Now, before I answer your question, let me
echo what most other people are saying. Unless you were already a good
programmer before you started, or you spent your university days holed up in
your room coding for fun, the chances are that you will be absolutely crap
when you graduate. You have the advantage that you already know it (most
people, including my young self, are considerably more deluded). You've got
more than 40 years of a career to become uncrap. It's too early to give up.

Having said that, my first sentence is still valid. Programming isn't for
everyone. If you don't enjoy it and you don't want to do it, you don't have to
do it. First, don't constrain yourself with your CS degree. If you don't want
to do that kind of work, then don't do it. There is an entire world out there.
Yes, you've spent 4 years and a metric tonne of cash, but that's a sunk cost.
Do what you want to do.

I will have to say that as someone who has mentored a fair number of people in
your situation, I can guess your next statement. "But the thing is, I don't
know _what_ I want to do. I don't really want to do _anything_." If I'm wrong,
then I'm happy because you can just ignore this next part and get on with your
life. If I'm right it's only because it's stupidly common.

Here's the thing. If you don't know what you want to do, then don't stress
about it. You can be a programmer for a while and suck at it. In fact, you
might as well. Just give yourself permission to suck. It's OK. It's just the
time you are taking to find out what you really want to do. I mean, you can
work at Taco Bell instead if you want and I won't think any less of you. But
programming pays more and you _did_ already pay that metric tonne of cash for
the degree. Might as well take it out for a spin around the block.

But if you are afraid that you can't get a programming job, or if you kind of
like the technology sector, but want to do something else, you are in luck.
There are lots of jobs. I'll list many, but there are many more if you look.

QA -- there are less of these jobs around because it is not as popular an
activity as it once was, but you can still find it. Best to look at older,
established large software companies.

Sales, pre-sales and sales engineering. A friend of mine gave up being a
programmer and got into sales. But he sucked as a sales person. Luckily, his
manager noted how good he was at explaining the technology to the customers
and he was moved into sales engineering. The cool thing about sales is that
you can get a job anywhere and get experience. Expect your ass to be fired
about a billion times before you get good at it though. Luckily nobody cares
if you were fired as a sales person.

Support and/or technical (or even non-technical) documentation. Maybe you
aren't good with solving logic issues, but you are good at explaining stuff.
Then this is a good bet. I have a friend who moved from programming to
technical documentation basically because he was forced into it (they were
desperate for people who understood the system to write docs). Eventually he
grew to love it and is now in super high demand.

Project management, etc. It helps to spend a few years as a programmer before
you move into this field. It doesn't matter if you are the worst coder on
earth before you move. If you write on your CV, "I've been a programmer for
the last 3 or 4 years, but I really want to get into project management", you
may have to take measures to protect your physical safety as people rush to
grab you (programmers, as a rule, do _not_ want to do this job, but their
experience is necessary).

System administration. This is really a special skill (well, not unlike
everything else I've mentioned). It takes a particular mindset to be a good
sysadmin. You need to be a self starter and self reliant. However, the job is
more about handling the complexity of the systems than handling the complexity
of code bases. It's also got a lot more short term stress as opposed to long
term stress -- it's better for some kinds of people. These days you can run
the gamut of some guy who pulls wires through buildings all day, to guys who
administer networks, to operations specialist all the way to dev ops. Sorry if
I'm pidgeon-holing some of this stuff -- I don't want to imply that these jobs
are equivalent or even similar. It's just that I don't have infinite space to
write about it.

One last anecdote. I had a friend who got a degree in CS at a bad time. He
couldn't get a job to save his life. He ended up working as a janitor at a
local high school. Whenever there were problems with the computers, he would
wander in and fix them. The school made him their full time sysadmin and
eventually he worked his way up to be in charge of the computer labs for the
whole school board (after which I lost track of him).

Your path in life is not fixed. You can tread any path you wish to tread. I
know it is insanely stressful (for some bizarre reason, I tried to be a
theoretical physicist at one time in my life -- didn't last long...) As the
saying goes, the journey of a thousand miles starts with a single step. But,
there is another less well known part of that saying: Which of the steps is
the most important? The first? The last? Some innocuous step in the middle?
Even if you don't know it, the small things you do in life are just as
important as the ones that stick out in your memory.

Good luck!

~~~
xor1
>Project management, etc. It helps to spend a few years as a programmer before
you move into this field. It doesn't matter if you are the worst coder on
earth before you move. If you write on your CV, "I've been a programmer for
the last 3 or 4 years, but I really want to get into project management", you
may have to take measures to protect your physical safety as people rush to
grab you (programmers, as a rule, do not want to do this job, but their
experience is necessary).

As someone without a CS degree but 3+ years of software experience (and a non-
STEM Bachelor's), how do I go about doing this? I feel like I would need to go
somewhere that would train me on project management, and I don't see job
positions like that. It seems like PMs are promoted from within or hired with
prior experience. As crazy as it sounds, I think I would enjoy PM work.

~~~
Kagerjay
Do nonprofit work and implement a solution solving a real problem, this is
what I am doing atm.

I hadnt done it before but its actually easier than i thought it would be,
really its just alot communication and coordination on slack

------
werber
I've worked with two interns in the past year who did coding boot camps after
(I'm making assumptions here) not finding work with their degrees, the last
one found a great job after the internship and I'm confident the new one will
as well. Good luck!

------
noonespecial
Have you ever used the computer to make something for yourself? A personal
project? Even a clever hack with a spreadsheet to save some time?

Congrats. You're a Programmer. (And probably in the top 10% of all "computer
geeks" everywhere). Someone wants to hire you.

------
darepublic
When you say

> I put all my eggs in the “being a programmer” basket and it’s clearly not
> for me.

are you judging based on your performance on these coding tests or on your
enjoyment of the work of programming. If you genuinely enjoy coding/are
interested by it then maybe it is for you.

~~~
Tmp1234
I enjoy it, but not given the failure rate I'm experiencing. If I had 50% or
less failure ratio I would be ok. But as is essentially every problem is a 2-5
hour struggle where I meander to an answer feeling usually I temporarily
learned why X didn't work in that given situation and not something widely
applicable.

------
1k
There are LOTS of jobs that appreciate programming knowledge but don't require
you to do hard core coding.

Business analysts, project management, tech sales, testing, support, etc

Choose an industry-focused company (banks, oil & gas, telecommunications)
instead of a tech-based company.

------
goldenkey
You might try to become a recruiter / head hunter. Good ones have CS / tech
knowledge which helps them place and filter candidates properly. Helps
facilitate a cathartic relationship with the companies that are hiring.

Good luck with your career, whatever you decide!

------
marmaduke
It sounds like your graduation set up expectations that developing chops would
be easy, but it’s not for anyone.

I’m a terrible programmer but it never bothered me because my degree is in
neurobiology: just avoiding a segfault was already a success for me (when I
started).

------
petecodes
I would honestly go easy on yourself and talk to a counsellor so you can
relax. Tonnes of people do degrees in one thing and then do something totally
different..all you need to say is you got a CS degree but you want to do
something different now.

------
topmonk
This may be a little out of the box, but have you considered teaching English?
As long as you have a college degree (in any field) and are a native speaker,
you could work as an English teacher in Japan, Taiwan, South Korea, etc.
pretty easily.

------
codezero
Do you suffer from ADHD? (Don’t tell me) - if so, you can often ask for more
time on challenges/tests or other accommodations. Don’t be ashamed of doing
so.

Also, don’t go it alone. Get a mentor, attend meetups, find peers to practice
with.

------
mabynogy
It's not programming. It's the stress to pass tests. Stop passing tests
because you suck at them, they hurt you and they are not even your problem
(it's the recruiter problem).

If you really like programming, you should continue.

------
nonsensetophat
You have pleanty of options, just to name a few:

\- systems adminstration

\- network engineering

\- Incident response

\- Technical sales

\- Account management

\- Intellectual property law

\- hardware engineering

\- project management

\- product management

\- IT support

\- IT security

\- technical auditing

\- data analytics

\- computational biology

------
mvp
There are plenty of good jobs in tech companies that require highly technical
people who are not great programmers, or even programmers.

It is possible that you are overestimating what's required and underestimating
your own ability.

------
rakamotog
1) Software Sales 2) Business Analyst 3) Consultant 4) Project Management
(with some experience) 5) Product Management I've seen people with CS degree
who didn't dig programming move to these roles

------
smt88
Software project management?

------
gooeykabuki
You can put your CS degree to great use in the technology field without being
a programmer. The two that come to mind are: 1\. Product Manager 2\. Sales
Engineer sometimes called Solutions Engineer.

------
ehosca
A new study found that people who believe they have built-in interests just
waiting to be discovered are more likely to give up on their newfound interest
when they hit the inevitable roadblock.

------
thewileyone
Switch to being a tester for your first job. Learn a different point of view
to producing quality software. If you want to go back into programming, it
would less difficult.

This is a path that I took.

~~~
jacekm
+1 to that. I started as a QA hoping to switch to being a dev in the future.
However I eventually grew to like my role and I enjoy my work very much. I am
much better QA than (potentially) a dev. IT is not only programming, there are
plenty of more roles there.

------
dragon96
Happy to do some leetcode problems together if you'd like. I have a couple
weeks off, and I'd be happy to tutor or give you some feedback (for free). See
my profile for email.

------
triviatise
We do product management consulting and get some CS majors that dont want to
code. Having a technical background is helpful and the path is solid leading
to similar comp to developers.

------
pryelluw
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.

------
JudasGoat
I don't have much personal insight but CBD is appearing in the news lately and
other people have said it lowers their ability to ""give a shit" about stuff.

------
dotdi
> Easy problems take me 2-5 hours.

I'd chime in to say _take it easy_. Remember: interview problems are very,
very far removed from actual, day-to-day software engineering work.

------
lowken10
Technical sales might be a good career path. Or perhaps technical recruiting.
While these are sales jobs very often you can make more then your average
software developer.

------
cncrnd
Sounds like an anxiety disorder more than a technical issue, if you have a CS
degree you would most likely not have trouble with easy problems given a clear
state of mind.

------
troymc
Maybe asking HN people isn't the best way to decide. Please also consider
talking to a career counselor (or similar) or reading a book based on
evidence.

~~~
Tmp1234
Any books in mind?

------
orcs
This is exactly how I feel. I'm 2/3 the way through a CS degree as a mature
student. I feel like I've learned absolutely no programming at all.

~~~
my_usernam3
Dude it took me a whole year in the industry to feel like I knew ANYTHING
about programming. Don't be discourage by that feeling, and don't let other's
outwards confidence fool you. Were all 10 years olds pretending to be adults.

------
T10000
To study and learn anything technical you really want to be in calm and serene
state of mind. This state is easy to achieve. I apply Two Old Goats on my
belly during the day time to resolve stomach knots and Vicks Vapor Rub on my
feet and belly at night. Among many other things, tight stomach can cause skin
inflammation which makes your complexion look terrible and post nasal drip
which gives you bad breath and nasty taste in mouth. Resolving anxiety issues
straight up kills these problems; also dramatically improves ability to retain
info and deal with ugly problems.

------
mettamage
Let me show you my process, we have some similarities which may be useful to
you. I hope it helps.

I also recently graduated (master CS). But I am having strong second guesses
whether CS is the right career for me. The only reason it would be the right
career for me is because I love thinking in steps, which is what programming
really is (procedural programming anyway). I also love debuggers (more steps!)
and am full of wonder when my little step by step world gets shaken up by
concurrent programming.

However, I don't care that much about creating things. I created a website
here and there and one or two small web apps but that's it. I don't care about
the mechanics of programming (other than it being step by step). I don't care
about learning new semantics, or frameworks. I don't care about MVC. And I
hate it how programming changes my personality. If I program 8 hours per day,
I only care about truth and don't understand humor. Contrast that when I party
all week long (did that when I was younger) and truth is still quite cool and
I understand humor and can bring the laughs to other people :D Because of all
of this I really am on the fence whether I should become a programmer, I
could, but should I?

In order to find this out I am on a month long journey. The journey is slowly
but surely beginning to complete. In this journey I decided that in order to
formulate the best career plan I can possibly have I need information from
three sources:

1\. I need to read the profiles of all my LinkedIn connections. My LinkedIn
connections show all kinds of profiles and more or less show how they got to
where they are now. To me it showed what's feasible, and I'm a bit lucky that
most of my LinkedIn connections are 2 years further than I am (I studied more
degrees).

2\. Read all interesting stories on Indie Hackers. I read 39 interviews that I
believed to be really valuable.

3\. Do the career guide on 80000hours.org. This career guide made me realize a
couple of things.

I now have a list of 46 jobs. Half of them are in things that I feel are
pretty obvious choices for me. The other half are more creative (I even have
deadbeat in there as the most creative 'job'). I intend to write a blog post
on mettamage.com about my whole journey, but for now I'll just leave you with
the 46 jobs that I found that might interest me and also the 11 or 12 (lost
count) constraints that I believe to be important for getting a job. I hope
that my process (scouring LinkedIn connections, Indie Hackers and
80000hours.org) will be helpful. The jobs happen to be ranked on what I now
currently think is most suitable to me (except for sales engineer, just added
it recently). I do think I still need to inject a little dose of realism into
my thinking, but I hope it helps. Also, options are definitely out (e.g.
blackhat hacker) but evaluating them may show what you find important.

== JOB TITLES ==

1\. Playable post writer

2\. Bar/Hotel in Thailand (project already underway)

3\. Writer

4\. Music Producer

5\. Gamification expert

6\. Negotiation coach

7\. Writing children's books

8\. Buyer and seller (ebay)

9\. Caring for kids (husband)

10\. Freelance HW

11\. Tech Freelancer

12\. Hacker (blackhat)

13\. Dating Coach

14\. Bootcamp Instructor

15\. Work for a green tea company

16\. PhD Student (psychology or computer science)

17\. Pentester

18\. Virtual Assistant

19\. Trader (stocks)

20\. Trying to be like Casanova / James Bond (seducing people while
influencing government officials)

21\. Deadbeat

22\. Real Estate Agent

23\. Workshop Instructor

24\. Serious game designer

25\. Behavioral Informatics Dev

26\. Entrepreneur (laadpalen)

27\. Something with finance

28\. Front-end Web Dev

29\. Teacher (as employee)

30\. Computers & old people

31\. Entrepreneur

32\. Full-stack Web Dev

33\. Data Scientist

34\. Marketing

35\. SEO Specialist

36\. UX Designer

37\. Sales

38\. Consultant (tech)

39\. Tutor

40\. Growth Hacker

41\. Machinist (employee)

42\. Bartender (employee)

43\. Cleaner (employee)

44\. Bus driver (employee)

The following 2 are not rated

45\. Rhetoric (blogging)

46\. Sales engineering

== FACTORS I FIND IMPORTANT == Flexibility - time (e.g. 4 days per week)

Flexibility - amount of work (e.g. not everything planned has to be done on
the same day per se)

Flexibility (travel/remote)

High Autonomy (freedom in what you do)

Pay

Meaningfulness (e.g. meaningful for yourself or society)

Ability to learn new Skills

Quality of training

Sleep (I have insomnia issues, so I need to know how bad sleep issues will be)

Perceived fun

Social capital (connections are everything)

Amazing colleagues

Cognitively Challenging

Emotionally Challenging (this is a negative for me)

Shapes you into an interesting personality (doing sales would make me more
chatty, if I only program I become a humorless person who only cares about
scientific-truth, not so fun at cocktail parties)

Risk (high-risk, high reward)

== FUTURE STEPS ==

My goal is to find out more about income opportunities of the more risky
things I have. Most if not all of my future steps involve talking to people.

(1) I think I should have a conversation with Nicky Case how I could leverage
playable posts into a career. At the very least I could work with him on
something. (2) I think I should email Bart Hufen about becoming a gamification
expert. And also ask him how to deal with associated risk. (3) I should find
out if negotiation coach is actually a thing and do more research on it. (4) I
should find a pentester and invite him/her for coffee. I suppose Guillaume is
a good person to ask! (5) I need to find a couple of people who are able to
tell me about the pro's and cons of freelancing and to what extent a normal
job will help. (6) Look more into becoming a virtual assistant. (7) I think I
should research more into becoming a serious game designer/developer. (8) I
should look for role models / people who I feel are like me. (9) I want to
know more about growth hacking. (10 optional) Find out if your love/hate for
CS is justified by talking to people like me.

== THINGS I WANT IN MY FUTURE JOB ==

1\. Thinking in steps or in processes, sans the frustration

2\. Immersive-like experiences (e.g. storytelling)

3\. Highly challenging and seeminlgy improbable to even impossible projects

4\. A small bit of applied math/arithmetic (e.g. what I experience with
professional poker)

5\. A touch of playfulness

6\. A sense of altruism

~~~
abledon
I really need a better hn reader app to help me bookmark great post like these
ones.... anyone have a good suggestion?

~~~
raarts
I use (on iOS) the share function in the MiniHack app to store it in Evernote.
You could also use Instapaper or Pocket.

------
horatiocain
Forget CTCI, that's all bullshit. What have you built? Show it off, build more
stuff, and find a team you can work on.

------
FreeRadical
You may want to consider something like project management or IT auditing
although you may not enjoy these fields either

------
21stio
You could do (least techy at the bottom):

DevOps Data Engineering Product Management Project Management Agile Coach

------
davewiner
Are you a good writer?

------
timwaagh
some companies take on juniors without these kinds of questions. you might
make less money though. i messed this up so many times but still i got a job.

------
r3nrut
You could apply that knowledge as a business analyst, solutions architect,
project manager, software developer in test (test automation)... There's
definitely options, just depends on what fits for you.

------
tr33house
Why don't you think being a programmer is for you?

------
megamindbrian2
I thought I was "resilient". I was wrong.

------
adrianhel
I got 99 problems, but quicksort ain't one!

------
mlevental
how many leetcode problems have you done? are you really not picking up any of
the tricks? which language are you writing in?

------
bayesian_horse
Take an ADHD test. It might change your life.

------
sAbakumoff
How old are you? mid 20-ish I guess? It's not late to find a new job -
Wallmart cashier, Uber driver, HelloFresh delivery guy, et cetera.

------
russtrpkovski
Explore software architect roles

------
taparisbat3
See a therapist if you can.

------
throwaway114433
Man, don't despair!

Seriously. I think that you are just doing the _wrong_ interviews. Applying
for the next wanna-be-like Google company that asks for stupid riddles (yes,
they are damn stupid - and I hate them, because they are totally unrealistic,
disconnected from reality, and with a lot of pre-assumptions that in reality
_never_ happen) and "how to find the n-th element in a non-sorted set
considering that there is a rat jumping up and down every 30 seconds and this
has an impact on how the numbers are stored, ... in time O(logN) with space
O(1) etc" doesn't say ____about you or your abilities.

Nothing. At. All!

It only says that you didn't prepare well for that sort of exercises. Can you
do better? Maybe, if you [still] find the fun in it, which you don't and it
seems you never did. So ditch it! That's not what you wanna do now! You know
what you can do? Apply for a job. They ask you to do the codility test? Just
ditch them. Don't take s __* from anyone that doesn 't value you as a human
being. A machine can't assess how good you are. Yet. Maybe in 50 years. Not
today.

Right now you need to regain trust in yourself, and in order to do so, you
might wanna try to start with a company that doesn't ask you to do these sh __
_y tests. I saw that some comments here mentioned a github link with some
companies not following such madness. Take a look at them. And remember the
rule: DON 'T even think about starting the online test if all they ask is a
riddle. If they are CS questions, why not. If it's a riddle, stop it right
away and maybe even tell the company that you won't do it and why - they might
want your feedback. Again, this is entirely up to you.

I want you to repeat it in your mind until nausea: these tests don't say
anything about yourself! They only say how bad the company is, as they don't
value anything else but your ability to solve riddles that they find "smart".
So, the question is: do you want to interview with someone that sees the real
s_ __that you can do and that you can offer, or someone that likes to assess
how good you are with their interviewing process?

Remember: interviewing is broken. Nobody has yet found a way to assess how
really good someone is.

Everyone will tell you "oh but you need to know the basics of CS". All it
takes is to learn algorithms and data structures then? That's it? Studying a
couple of books? That's all CS is about? And that's all an software
engineering job is about? I didn't know that. All I know is that it's
inconsistent with the large amount of exams I had to take to get my CS degree.
Not 1, not 2. Many!

And the funny thing? They even ask "behavioral" questions, thinking they can
spot liars or "culturally unfit people", if you are lucky enough to pass the
stupid online riddles. You know how easy it is to fake answers to show that
you are such a great team player? Or that you are an ambitious person? Unless
you have a psychologist with two big balls during the interviews, and even
then, you might find the psychopath that knows how to fake answers. That most
of the times become managers. Top level ones.

Seriously - don't feel bad. You achieved a lot, you got your damn degree.
Don't let these poor people ruin your life - yes, for me they are poor people,
and no, I am not sorry. They just don't know how to interview, but as they are
big names, or follow the methods dictated by the big names, they feel they are
doing the right thing.

Google admitted many times that their interviewing methods are doomed. It's
nice to find that type of guy. It's to create a niche of people that feel
intelligent, that need to feel smart, that need to have something in common.
It creates equality inside the company, because everyone had to go through the
same sh __, so nobody questions "how come that this guy got hired?". It's a
pool of prepackaged types. I hope you don't wanna be one of them, do you?

------
spaginal
Do something else.

------
digitalpacman
QA Automation.

------
w0rd-driven
How do you know you're unable to be a programmer? Are you just basing that on
having issues with leetcode or CTCI?

I spent 2 years in college studying CS before I couldn't continue. I had just
started getting into harder courses using primarily assembly and my interest
faded quick. I had this incorrect assumption that developers lived in terribly
small cubicles and it didn't interest me much. I had also quickly burnt out,
having a job at 40+ hours a week for an ISP and going to school full time in
addition was unattainable. Networking and systems seemed to be more
interesting at the time and I took a 10 year detour in IT.

In my IT tenure I slowly developed programs to solve business needs, starting
with batch scripts and working my way up to very simple automation tools.
Somewhere along the way I no longer cared about the work conditions a
developer, doing the work was just too fun and I gained an immense sense of
accomplishment when my creations were being utilized. Fast forward to getting
my first full time developer-only position as a C#/.NET developer doing
primarily Windows apps 8 years ago to now being a full stack web developer. It
took being paid solely as a developer before I really felt like one and it
took until probably 2-3 years ago before the imposter syndrome started to
completely wear off. Where I may lack in algorithm knowledge I make up for it
in understanding devops topics to have a more complete understanding of the
full technology stack running the web apps I have a hand in. I believe every
developer could benefit from a little operational knowledge as it usually
makes debugging esoteric issues with a technology platform easier.

I'd describe my capabilities as more of an integrator. I used to write every
library I used but I find other developers often have more complete solutions
I could bastardize into something to fit a specific use case. While the
puzzles I work with primarily involve fitting packages together into
solutions, the end result still involves all of the same developer workflow of
debugging and automated testing. I'm not incapable of algorithm knowledge, it
just bores the ever living fuck out of me. I'm extremely fulfilled in spite of
having some less than enjoyable positions, so hopefully you don't let this
period try to define your future. There's an amazing breadth to this field to
the point of easily having analysis paralysis.

Other comments give good alternatives but there are companies all over the
planet paying great money for CRUD/LoB apps solving all sorts of interesting
problems. There's also an amazing breadth of jobs for people with the
knowledge of computing that comes from a CS degree if being a developer really
isn't for you. You don't have to be in a wildly different industry but
something else may involve solving interesting problems that keep you more
engaged.

------
dolessdrugs
TC or GTFO

------
sixdimensional
Hi Tmp1234. I think an idea for you, is to see if maybe you can find a GOOD
career counselor or mentor (who might be found in a first job even). If anyone
on the thread has any recommendations, please share them (or volunteer!).

It would be even better if you could find someone who is a programmer /
developer in a day-to-day business who could talk to you regularly about it
and maybe help you out / support you.

It sounds like you're having trouble getting started in this career. Trying to
get a first job in this area out of school can definitely be difficult,
competitive, tiring and/or scary. It's perfectly normal to feel those things,
I think (I know that I have). One can believe that, should you choose to
continue down this path, when you find the right place, you'll know it because
they'll give you a chance and support you.

Perhaps you could seek out an internship first - try to find somewhere with
less pressure for success and more room to grow - if you can afford it. You
have one thing going for you that I didn't have - a CS degree (my story is a
different one though and I wanted this reply to be about helping you).

You don't have to be a perfect l33t coder on day one. You will find that,
programming problems can be vexing headaches like you describe - and not being
able to solve them can be extremely frustrating. If you chose to keep going
down this path, you might come to learn that this is more normal than not, and
as you gain experience - when you hit those brick walls, you learn to go
around, or under them. Or you might work really hard and break the brick walls
down. Or you might invent a new kind of concrete and realize you don't need
brick. I'm not waxing metaphors, I am serious and I'd ask other developers to
chime in here if their experience matches this. Eventually, honing this skill
actually becomes a reward - but it certainly takes honing and practice and
time.

By the way, graduating with a CS degree is no mean feat, so congratulations
for being capable of doing that!

I hear you asking about other career paths. I can't answer that question
immediately, but, some others on this thread have suggested there are a lot of
tangential jobs - like project management, product management, really, there
are a great many number of possibilities. Within information systems and
technology, you can be a database engineer/developer and work with ETL, data
and SQL. You could become an system infrastructure person, for example - doing
cloud architecture with AWS/Azure/GCE/etc. or even managing physical hardware.
You could work in IT support. You could work in technical sales or solutions.
Those are all possibilities that are maybe less hard programming intensive.
Perhaps there are too many possibilities without some direction / feedback
from you about what you like.

It is entirely possible that you may want to do something other than
programming or technical in nature too. What are your interests? For example,
some people who thought they would enjoy programming, really end up enjoying
cooking and might work towards becoming a chef. You can spend a little time
exploring what other options you might find exciting or interesting, and then
write down pros and cons / compare and contrast for those things and for
working in some sort of programming capacity. Don't give up immediately, but
don't necessarily settle if something else really calls out to you.

You also just went through a lot working finishing school and graduating.
Maybe you're a bit tired - and need a break (top rated post by whack suggests
something similar). That's a great recommendation. It's hard after going
through something difficult and stressful to jump right into another similar
thing. Don't take a break for too long, but be willing to take a break. We all
need them from time to time.

You can think of the kind of skills you gained programming in college - focus
on the skills not the programming - problem solving, critical thinking,
creativity, being analytical, etc. and see what other careers or vocations
need similar skills.

Another final thought - find some places that you can interview without caring
about the outcome, but rather simply to gain experience interviewing and see
how it goes. Find something that interests you, but isn't necessarily good or
bad if you were to get or not get the position. Try to interview, even for a
job you might not want but is at least involving programming - if you don't
feel comfortable or they give you some horrible programming task, you don't
have to finish the interview. Find a way to turn this into an experiment.

You could think of it this like a minimum viable product for a startup, where
you are the product, and the goal is to see how you fit in the market. Be
willing to experiment, make hypotheses, and try them out. Be willing to fail
and learn and take opportunities to grow too. And remember, the difference
between science and screwing around is writing it down!

Best of luck to you. You have already shown you care by asking questions - so
keep up the good work. Ask more if you think this is helping!

------
johnsonjo
My advice is don’t give up quite yet. I had a drum line coach who was also a
biology professor. One day he told us that when we practice we needed to have
proper technique and take the practice deliberately. He said otherwise we
would be doing ourselves a disservice, and that we would effectively be
undoing part of what we’ve done.

He then told a story of one of his biology students. He said that one of his
students came to him after failing a test, and said he studied for many hours
before the test and was asking for his score to be improved. My drum line
coach then said he told the student that he wouldn’t raise the grade, but
instead in my own opinion decided to teach him a valuable life lesson. He said
to the student you need to be studying smart and not hard. He then told our
drum line that we need to do the same with our practices.

I bring up this story not to say you’re not working hard. I believe you have
met that criteria. Maybe though you are not doing things as efficiently as you
would be able to if you had the right resources.

Also, with all that said in my opinion a lot of day to day software
engineering is different than competitive programming like interview
questions. I wouldn’t be too stressed not being good at the interview
questions, because it’s so different. I also wouldn't be stressed that you
don't enjoy it. Although since it’s a good idea to have a job you may need to
meet these somewhat odd demands of getting a software job.

I took a class that was primarily focused on solving problems like these, and
I had at least one classmate that was discouraged because he felt not much
progress was being made solving random problems. Well if you solve enough of
these problems you soon seem to find out that a lot of them are very similar.
A lot of them fit into just a few relatively small categories. That’s why it
may be easier to see the categories as well as solve random problems. That way
you can be picky about which problems you solve and choose to strengthen your
skills on problems you have less experience with (another principle I learned
from a music teacher).

There is one book that does this really well. It is “The Competitive
Programmer’s Handbook” [0]. The only gripe I have with this book is I wish it
had example problems to go along with the theoretical aspect of each of the
categories. Also I would recommend the "Cracking the Coding Interview"
HackerRank challenges [1] which are written and compiled by Gayle Laakmann
McDowell (who is the author of the book with the same title as the course.) I
recommend watching the videos that go along with each section.

Also just a tip for interviews it’s very good to think out loud and converse
with your interviewer. Also remember they are not just testing your ability to
answer problems, but also testing how well you would fit within their existing
teams (personality wise and such), and they’re testing how you cope with
failure. So try and destress before an interview, and try being humble and
kind (in my opinion that’s a good thing for teams of software developers to
do).

Hopefully you find this helpful, and take this as you will. You honestly have
the best knowledge of where you are at in handling this.

[0]: [https://cses.fi/book/index.html](https://cses.fi/book/index.html)

[1]: [https://www.hackerrank.com/domains/tutorials/cracking-the-
co...](https://www.hackerrank.com/domains/tutorials/cracking-the-coding-
interview)

~~~
johnsonjo
Also, advice that my Dad (a professor in Information Systems) always gave me
is that it's more important to get your foot in the door and just get a decent
software developer role than go for a job with a high salary or terrific
benefits.

------
lucaspottersky
i've seen many "pivoting" to Project Management.

------
megaman22
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.

------
paidleaf
> Are there any career paths I can pivot to that are less cognitively
> demanding than software engineering where this degree would be an asset?

Have you thought about going into CS research or academia?

CS is not about programming. One of the best CS professors I've had barely
knew how to type.

CS is more about math and algorithms and theory than programming.

There is also technical writing or teaching. High schools are desperate for CS
teachers.

