
Ask HN: Is it possible for someone to not be cut out for software engineering? - conflicted_dev
I&#x27;m pretty new to software engineering (~1 year out of college as a CS major) and am having some serious problems improving my skillset (particularly with interviews).<p>Background:<p>- I worked as a linux sysadmin at a startup before going to school for CS. After 3 years, I graduated with a decent GPA (&gt;3.6) and a couple internships at a large tech company.<p>- In college, I always felt like I had to work a harder than most of my classmates in order to get the same result. I would regularly spend 60 - 80 hours per week on schoolwork.<p>- Upon graduation, I accepted a job with the company I interned with and have worked there for ~1.3 years. However, I&#x27;ve been prepping to jump to a different role for a few months now.<p>- Recently (past 1.5 months), I&#x27;ve spent 1 - 3 hours per day on tech interview prep using CLRS, Cracking the Coding Interview, etc. My current target is a role at one of the &quot;big four&quot; tech companies or a high-quality startup doing either webdev or infrastructure engineering.<p>- So far, I have interviewed for and been rejected by no less than 10 different roles. I was also rejected by approximately 20 companies during college. I always fail during tech portions.<p>- I am REALLY bad at algorithm problems and experience serious performance anxiety. Concentrated studying and mass interviewing haven’t led to positive results so far. I can solve most problems correctly given enough time (usually 2x+ longer than interviews).<p>Questions:<p>1.) Does there ever come a point where it just isn&#x27;t worth it to continue trying to be a software engineer who can get into top-tier companies &#x2F; projects?<p>2.) How can I find some positive reinforcement in interviewing &#x2F; interview prep even if I constantly get rejected? I do perform post mortems on every interview in order to find areas to improve.<p>3.) If my goal isn&#x27;t an impossibility, how can I efficiently progress towards it? Would a mentor be helpful?
======
Xephyrous
Why do you want to work at one of the big 4 tech companies? Software
engineering is a very big field, you don't need to be really good at solving
coding puzzles on a whiteboard to be a good developer. Hell, there are
developers who do nothing but set up wordpress sites for their clients, and
they're providing a needed, valuable service.

You can work as a web dev at a small company without being part of the
mainstream silicon valley rat race. Sysadmin-type skills are pretty hard to
hire for, and very useful at small companies. It sounds like you've got that
going for you. I'd change your definition of success and focus on finding a
job at a company with a culture you'd enjoy, and not worry so much about its
perceived prestige.

~~~
et-al
As someone who used to work for a not-so-technical large consulting firm, it
pains me to hear newcomers wanting to work for the "Big 4" in tech.

The reason why accounting, banking, consulting need their Big Four / Big Three
is because it's hard to measure what their people actually do, so they rely on
joining a big firm to reflect their worth.

In software engineering, you should be able to describe to someone in tangible
terms what you've worked on in the past 3-6 months and what value it's brought
to the company (and if you can't, start writing that down because you should
always be ready to discuss that with recruiters or your boss when you want a
raise). Because of that, we don't need the prestige of a namebrand company
when we jump to the next job.

You should ask yourself why you'd want to join a Big 4 and if it's actually
necessary. If it's for potential entrepreneurial connections, I can assure you
that there are plenty of startup founders that are doing fine without the
Google name. If it's for technical challenges, all companies have their own
issues. You may not be working at Google scale, but trust me even with 5000
customers, there are still scaling problems that need to be solved for that
particular case. And if you just want to work with smart people, they're
_everywhere_. The company I work at was bought an East Coast company (outside
SV!) and their engineering team are doing infrastructure things heaps better
than we were.

This is an extremely humbling field and regardless of where you work, there's
always something to be learned.

~~~
tedmiston
As a counterpoint, the prestige of the big 4 can be helpful going from a
software engineer to a technical co-founder role. Investors like seeing
external validation with that kind of weight.

~~~
cookiecaper
While I can't speak about investors, I personally know of one highly-respected
niche company that seriously favors candidates who have one of the "big 4" on
their resume (AmaMagaGooBookSoft or whatever they're calling it these days).
Ironically enough, a widely-recognized position at a major tech company
unfortunately _can_ be a stepping stone that gets you in the door at a place
you actually want to work long-term. People are generally _really bad_ at
hiring.

It's kind of funny that a position at one of those companies is now the new
mark of prestige instead of a college degree or something. Shows how far the
university has fallen.

~~~
uep
>While I can't speak about investors, I personally know of one highly-
respected niche company that seriously favors candidates who have one of the
"big 4" on their resume (AmaMagaGooBookSoft or whatever they're calling it
these days).

Is it Valve?

~~~
raverbashing
I wonder why, since Valve's way of working is very different from the way big
companies traditionally work

------
soham
[Disclaimer: I run a technical-interview prep bootcamp,
[http://interviewkickstart.com](http://interviewkickstart.com). I also worked
at a Big4 of my time. And then some]

Your problem is not with software engineering. Your problem is with
interviewing. Don't let anyone (including yourself) talk you into conflating
the two.

Technical interviewing process at big4 is optimized for the interviewERs (and
the company), and not for the candidate. They have to do that, because their
hiring requirements are massive. When you are hiring hundreds and thousands of
engineers a quarter, you usually land with the quick, brash process they have
currently, despite however well-meaning you are. They can also get away with
it, because they have a revolving door of candidates.

Don't let that signal reflect on your software engineering skills. As long as
you can solve problems in reasonable time (and 2x is reasonable by many
measures), you are good.

If you want to get better at technical interviewing, then use brute-force
methods to do so. Find a good source of problems like Leetcode or
Interviewbit, prepare a regimen and stick to it. Repeat problems. Do several
mocks interviews with something like interviewing.io. You can also use us, of
course ([http://interviewkickstart.com](http://interviewkickstart.com)).

But like others have said, you don't HAVE to go that route. There are
companies who do similar level of impactful engineering and make enough money,
outside of Big4, who don't have a seemingly depressing interview process.

~~~
dmoy
Yea I will also echo this. I work at Big4. I don't interview particularly
well. I was in fact rejected by this same Big4 the first time around. When
looking to move out west, a grand total of one company even gave me an
interview.

Turns out the job is totally different.

But yea, definitely practice mock interviews as much as possible.

------
lossolo
> Concentrated studying and mass interviewing haven’t led to positive results
> so far. I can solve most problems correctly given enough time (usually 2x+
> longer than interviews).

You are probably here to get some hope. Politically correct it would be to
give you that hope because we all know that "Everyone can do and be whoever he
want if he work hard". Unfortunately reality is different. Sometimes false
hope can make more evil than harsh truth. I am pragmatic that's why i will
give you pragmatic answer. You have binary choice. You already know that you
struggle with certain things. Give it more time, to the end of the year, so
you can determine if the problem was not enough time to learn. If nothing will
change then aim lower. If you solve software development problems as you
mentioned then you can get into software development.You don't need to work
for top 4 tech companies to be happy and solve interesting problems.

~~~
iaw
To add to this great advice: ask yourself why you pursued this path in the
first place. Do you like what you do? It sounds like it's more of a job you
struggle with more than you like, perhaps there are tangentially related roles
you would enjoy more?

~~~
ixtli
I would say this is the more important thing. I would argue that even if you
are under-performing when held to a certain set of standards, if you _love_
doing it then whatever. If you _don't_ love doing it then you should switch
careers even if you happen to be "really good" at computer science.

~~~
iaw
I've found it's a personal balance. I worked very hard to get to a job and a
company that I enjoy but I had to suffer some very miserable/toxic
environments to get there. Even now, obligations to my family prevent me from
being free or starting a family of my own.

I have to include considerations about the survival of my clan which is more
important than some aspects of my day-to-day happiness.

------
danso
I know that there's a huge demand for software engineers, and just about
everyone can think of the time their company inexplicably hired someone who
couldn't do FizzBuzz. But if you've already been hired as an engineer and
you've worked there for 1.3 years, at a level comfortable enough where you
actually want to keep being an engineer and move on to a "better" company, and
you're willing to put in 10-20 hours extra a week studying, then you aren't
_not_ cut out to be an engineer. You clearly have the mindset and tolerance of
rigor that the job requires.

But it's possible that you aren't cut out for whatever benchmark/ideal you
have in mind for software engineering. If a company is looking for the next
Jeff Dean, sure, being not confident in algorithms is going to put you at a
severe disadvantage. But there are plenty of valuable and important software
engineering jobs -- even within the domain of just programming, nevermind
design, planning, management, etc -- that aren't limited to those who can show
a mastery of algorithms.

One well-known contemporary example:
[https://news.ycombinator.com/item?id=9695102](https://news.ycombinator.com/item?id=9695102)

My main job is not software engineering right now, though I do a lot of it on
my own (to be better at my actual job). I think I'm similar to you in that I
was probably mediocre in comparison to the best of the class, though unlike
you, I was probably in self-denial of how mediocre I was. But I eventually got
into it much more after working in non-software jobs and understanding how the
world works, and that there's plenty of uses for programming beyond the narrow
scope of what's taught in CS curriculum. It's equivalent to thinking that
you're not cut out to be a writer after feeling mediocre in a journalism news
writing class, or technical writing, or poetry.

~~~
conflicted_dev
Heh. It took me a few months to be put into my proverbial place, but now I
understand just how amazing some engineers are. I read that post a while back
too. A few of my colleagues have actually done client work for Google (even
though they clearly never had to go through their interviewing process).

The thing is, I'm trying to figure out whether if it is really worth my time
to continue the grind. Are there other roles that I might be both more excited
about and better equipped for? Perhaps. This thread is essentially the
beginning of my research process.

~~~
mikekchar
I'll take a young developer who understands where they are over someone who
can solve tricky algorithm problems any day. You've got a good attitude and it
will serve you well.

Here is my litmus test for developers. Writing software is a boring job that
requires you to obsess about details and to concentrate heavily on minutia far
beyond the tolerances of most people. It is also a thankless job. Users will
hate you for the bugs. Management will hate your for how slow you are. Nobody
will appreciate the effort you put in, all believing that what you do is
trivial. Even your own team mates will view your work and universally declare
it to be crap. Every time you try something new, someone else will tell you
that you are doing it wrong and imply that you are an idiot. Every time you
discover something truly complex that requires years of experimentation to
even come close to getting good at it, someone will laugh at you and direct
you to an ill considered blog post or framework that purports (and fails) to
solve your problem. To be blunt, you will be criticised for virtually every
keystroke you make for the next 45 years.

There are easier ways to make a living. But if programming still seems awesome
after you have read the above, welcome to the club. Never give up.

~~~
Koshkin
Judging from my own experience, _none_ of this is true or correct. In
particular, programming is by far the easiest way to make a (good) living. The
apparent fact that programming is not for everybody does not change that a
bit. A lot of people who work as software engineers hate it and/or are not
good at what they do, but if coding were taught in K-12, I am sure many more
people would have liked it - simply because coding would have been a second
nature, just like reading, writing, and counting.

------
hluska
Do you like writing code?? If yes, you're in the right field. If no, get the
hell out as fast as possible.

Some of the best developers I know couldn't pass a whiteboard interview if
their lives depended on it. Conversely, the worst developer I ever worked with
absolutely dominated the whiteboard phase of his interview.

If I were you, I'd look outside of the big four. There are plenty of amazing
companies out there doing some very interesting things. Hell, I work for a
company that I guarantee you've never heard of, but I work on the most
interesting problems that I've ever encountered.

~~~
voltagex_
I dunno. Some of the best programmers I know treat programming as strictly a 9
to 5. I'm the outlier at the moment - I go home and keep programming.

I can't help but feel that the "passionate programmer" is a construct created
by SF and SV to trick people into working far more overtime than they need to.

~~~
wccrawford
Are you saying that you don't like writing code, and yet you go do it as a 9
to 5?

I have never worked with anyone who was a coder that didn't enjoy coding. I'm
not talking about being evangelical about it, just a basic satisfaction in
what they're doing and not having a desire to be doing something else. (Note
that I'm talking about the coding aspect, not the other BS that goes with it
sometimes. I've met many people that hated the politics/etc.)

~~~
voltagex_
No, I'm talking about the difference between a person who codes out of hours
as well as working, as opposed to someone who codes just during their job.

------
labrador
Your title says "Is it possible for someone to not be cut out for software
engineering?" while your first point says "Does there ever come a point where
it just isn't worth it to continue trying to be a software engineer who can
get into top-tier companies / projects?" which are two very different
questions.

It'd be like me asking "Is it possible for someone to not be cut out for
jogging" and then changing it up to "Does there ever come a point where it
just isn't worth it to continue trying to be a runner who can win the Boston
Marathon?"

Most of us programmers can't get hired at Google because we don't have the
pedigree, the work ethic and other qualities it takes to be at the top of the
game. That doesn't mean we don't enjoy and make a living at computer
programming.

------
stuxnet79
You say you've only been prepping from CLRS and Cracking The Coding Interview
for the past 1 and a half months. It's not unusual for candidates to spend up
to 6 months prepping if not longer. Also, it's normal to be rejected from one
of the big four 2-3 times before getting in.

When you say you had to work harder to get the same result, do you mean the
programming or the math? In my CS classes I saw really smart kids who were
aces in the theoretical aspects of the program but couldn't grok programming.
I also saw the reverse. You will have to be honest with yourself and figure
out which kind of person you are and if you are willing to put in the
necessary work to be 'big 4' material.

My advice, is keep practicing the algorithms, but do so with purpose. Try to
tie in what you are learning with what you are doing at work, or a side-
project. The essentials will osmose over time. Learning this stuff without
having the proper context to understand is value is difficult ... (for me
anyways).

~~~
conflicted_dev
Thanks for the input. I tend to be good at programming, but very bad at
algorithms / math.

At this point, I'm trying to assess what amount of work it's going to take to
get into one of the "big 4"-type companies. I also need some way to feel like
I'm improving.

~~~
gwbas1c
1: Don't get hung up on a specific prestigious company. There's more to life
then working for a specific company, going to a specific school, driving a
specific car, wearing a specific article of clothing, ect. (This also plays
into who you date and who your friends are.)

1.5: Interviewing is like dating. At the end of the day, it's all about a
mutual compatibility among you and the people you work with.

2: Interviews aren't things you study for. When I interview candidates, I'm
trying to figure out if they can learn and if they understand core concepts
that come with experience.

I must say this: I can tell when someone studies for my interview. They get
all the questions "right," so then I start twisting the questions and the
candidate starts acting like "you said this wouldn't be on the test." Those
candidates are rejected.

In an interview, I can always take some code on the board, make up a funny
situation that you didn't study for, and see how you handle it. If all you do
is study interview questions from a book, these questions will tank you.

I've had two situations where a candidate who studied my interview made it
past. In one case, the candidate was fired after a few months because he was
too focused on goals that weren't our business's goals; and because the
quality of his work sucked. In the other case... Well, let's just say that
upper management is well aware of the problem.

~~~
conflicted_dev
You're the second person I've heard this from within the past week. The last
person I spoke to about this is an engineer at Facebook who found that several
of the most recent interviewees simply "memorized the material for the test,"
as it were.

Personally, I don't find it useful to perform a rote rehearsal of the
material. I'd much rather be able to intuitively understand it because I hope
it will help me in areas other than interviewing.

------
ryandrake
Some points:

1\. Skill at software interviews seems to have zero correlation with skill at
being a software engineer.

2\. Being rejected for 10 roles is nothing. I've probably been rejected at a
rate 5X that. 10X if you count college recruiting.

3\. Despite the "shortage of engineers" meme that constantly gets repeated,
competition is fierce. There are a lot more engineers that need work than
roles to fill.

4\. I disagree with the commenters here dissuading you from interview prep.
It's worth it to study up on interviewing and do lots of practice interviews.

Keep at it! I've been out of work for stretches up to 4-5 months. It's not
unheard of. It's kind of a numbers game. Do 100 interviews, and if the accept
rate is as low as 1% you've got the job!

~~~
shados
For #1... I've been pretty vocal in my circle about how stupid interviews are,
and I'm pretty bad at the myself...

However, at this point I probably interviewed at 100+ places over the years
(Ive been at this for a while), and there's very little variations in
interviews. You have a few outliers like Google's stupid "Write this C++ shit
in a Google Doc", and the "Please write the jQuery code for a Modal dialog"
that occasionally pop up, but overall, its all variations within a finite
subset. People are not original.

So after being rejected 10 times, if you still don't see a pattern to exploit
in the 11th....well, you might be missing a key skill as an engineer that
would be worth working on. Even if you're successful, you have one obvious
growth opportunity.

------
danneu
I doubt I could get a job at one of the "big four". Their interviews seem
mired in hard technical questions, the sort of problems I just don't encounter
in the things I build. It doesn't interest me.

Doesn't mean I'm not cut out for software development nor that I can't deliver
value to anyone else.

Nor does it mean I can't find a rewarding and interesting job that suits me
and the lifestyle I want.

------
tedmiston
I'm going to sidestep your questions and just remind you that software
engineer hiring processes today suck.

Just because one doesn't do well under the extreme time constraints of an
interview does not mean they won't do well as a software engineer. Honestly,
in fact, I think it can be quite misleading because you have both: (1) good
software engineers who work best solving problems with plenty of time to
think, and (2) "hacker" style programmers that can whip up something to pass
an interview quickly but are not actually good at design pattern and
architectural type stuff that separates the software engineer from the
programmer. Just my 2¢.

~~~
thegayngler
From my experience you never know which person you are going to get from me in
an interview. If I'm swamped that day and just did a deployment or something
then I'm probably already spent or preoccupied mentally by the time the
interview rolls around that day. That was my experience when interviewing at
Facebook earlier this year. I generally will go on interviews to at least
learn what I don't know or what I don't know well enough to do in my sleep.
However, many times its just the luck of the draw that day as to which version
of me you'll get.

------
aboodman
I don't see anything in your question about what you -want- to do. That is the
important question to understand.

It's of course possible to not be cut out for computer science, or lawyering,
or doctoring, or anything else.

But more than mental horsepower, the most important ingredient is desire. What
do you want to do?

Not in terms of "I want to be a programmer because it is a good career" but "I
want to be a programmer because I love writing code".

It's very important to deeply understand what motivates you, and what you
enjoy doing. This might take decades to fully understand, but you must start
now.

If you don't love writing code, you will never be a good programmer. If you
don't love helping sick people, you will never be a good doctor.

Find what you enjoy. Start there. Doesn't mean you're going to do that for a
living, but you can't proceed without understanding that first. And be patient
with yourself. It took me 20 years to realize I was meant to program. You
might have to do stuff that pays the bills for a long time while you're
figuring it out.

But be honest with yourself, try to listen deeply to what your lizard brain is
telling you, and then try to find a way to make that work.

Good luck.

~~~
conflicted_dev
If I had it my way, I'd drop everything an do another (tech) startup (I've
already done one). The problem is, I don't have the financial resources to
take on the risk associated with founding and operating another company. I
still have lingering debt from my last one (in addition to college loans), and
the best way to resolve it is through doing tech for a few years.

So, naturally, I'd like to make sure I end up at the best tech company (with
the highest likelihood of making helpful connections) as possible. To me, this
is a step, albeit a necessary one, in the process towards being able to
achieve my overall goal.

For the record, I do like writing code. I just hate technical interviews.

~~~
aboodman
If you did the tech startup, what would you like your role be?

Would you be the product guy, designing screen flows, talking to users,
figuring out how to solve people's problems? Would you be the biz guy, doing
deals and making sales? Would you be the technical architect, staying up late
hacking away?

===

If you love (and notice I keep using the word "love", consciously)
programming, then it's just a matter of interview anxiety. That is solvable.
Some great companies don't do standard whiteboard interviews. You could focus
on those. You can also bolster your overall hireability by participating in
open source projects (my project - [https://github.com/attic-
labs/noms](https://github.com/attic-labs/noms) \- is always looking for
contributors) and publishing code on github.

At my startup we don't do whiteboard interviews for exactly this reason - lots
of people just suck at them. It doesn't give you a good signal. More and more
smallcos are going this direction.

===

If what you really love is product design, or business development, or sales,
then you can try and get work doing that. I am aware of people who have
totally hustled their way into great companies as bizdev or product by just
doing what needed to be done before even getting hired ("hey, I found you a
customer -- btw can I have a job??").

This also can work for engineers btw. "hey, I fixed this bug for you, btw can
I have a job??".

When I was at Google, we had a guy show up to one of the OSS projects. He
started sending in patches, participating in the mailing list, making design
proposals. We hired him. It largely wouldn't have mattered how he did on the
interviews, it was clear he was a star before he walked in the door.

===

I would also note that you don't need to go to one of the big-four to get
connections for a future thing. Tech is very close-knit. People cycle in and
out of bigcos and tinycos all the time.

It's infinitely more important how much impact you make, than where you are.
Change the fate of a small company and everyone there will love you and sing
your praises. You'll have opportunities from all those people's direct and
indirect connections.

Go to a bigco, and it is actually harder to make as big an impact. You'll know
more people directly, maybe, but it will be harder to really impress them.

===

Good luck, again. I've been where you are. It sucks, but you'll get through
it.

Try to focus on what you want, then put one foot in front of the other to get
there :).

~~~
conflicted_dev
1.) This is a really good question, and to be honest, I'm not 100% certain
what you'd call my role. At my last startup, I was the founder, so initially,
I had to do everything. However, as the project scaled, I focused most of my
energy in three areas: product, business development, and operations. What
kept me going was figuring out what our wanted and how to best deliver the
product to them. For the most part, writing code was a means to an end (aka a
better product and/or user experience).

2.) I certainly noticed your use of the word "love" in reference to coding. On
the other hand, I purposefully used the word "like" instead. Coding is fun. I
generally enjoy doing it and I find software engineering to be intellectually
stimulating. At the end of the day, I view coding / software engineering as a
means to an end - a way to deliver a better product, or make a process more
efficient.

With that said, although I may not have this innate love for coding, I am the
type of person who, upon deciding to do something (e.g. coding), has to go all
in. Maybe that's enough to be a "great" software engineer. Maybe it isn't.

3.) Good suggestion, although if I do decide to go the product / bizdev route,
I think I need to spend some time understanding more about how the formal
versions of these roles actually work. On the other hand, the engineering
route seems a little more straightforward.

4.) Noted. If you scroll up a little, you'll see a comment I made in response
to the "big 4" bit. I'm less interested in targeting a "big 4" company and
more interested in targeting the ideals that they represent (culture,
challenge, quality, etc.). tl;dr: I want to work an environment that will
foster my professional growth in relatively specific ways.

------
adamnemecek
CLRS is not a software engineering book, it's an algo book. This is a somewhat
widespread misconception. Anyway, what language are you using to implement
these algorithms? Some languages are much worse suited for doing algo work
than others. I always hated implementing even the simplest algos in C or
Python but it's actually kind of fun in Swift, Rust and Haskell (the types
really do help in cementing your understanding of what's going on).

Also, there was an article yesterday on HN about how the process of mastery is
about memorization and repetition
[https://news.ycombinator.com/item?id=12508776](https://news.ycombinator.com/item?id=12508776)

You should try doing that. Write an algo one day and get as far as you can
without looking for help. When you are done check your solution against some
correct solution. Do it the next day again and try to do it faster. Repeat a
couple more times like next week, next month and before you know it, it will
be second nature.

~~~
ocean_blue
I totally agree with you!

------
ChemicalWarfare
Start elsewhere, there is a reasonably high demand for software engineers out
there, get a job and go from there.

I've done some reasonably complicated things in my programming career (things
having to do with encryption, threading, high volume systems) but I'm sure I'd
fail a Google-style CS drilling (and have no interest in implementing a non-
cyclical direct graph on the whiteboard :)).

Guess what - hacker rank type challenges I'm semi decent but not great at.

I do pretty good with take home mini projects though and with interviews where
even if things get theoretical they are still relevant to the actual day-to-
day, like let's say describing the thought process behind selecting a linked
list vs arraylist for a given situation etc.

Imo these things come with experience, so again if your goal is to get a job
with "google" eventually, start elsewhere, get the chops and go from there.

------
wpietri
I agree with others that maybe you should consider whether working at a fancy
company is really the only thing you'd be happy with. That goal strikes me as
motivated by social status, not the work itself. I don't think that's a
sustainable motivation for a software career.

But I mainly wanted to address the anxiety. Programmers definitely skew
anxious; it's a trait that's in many ways beneficial. However, it's easy to
let it run away with you. I have been coding since I was 12, and I still
regularly have feelings that I'm too dumb to tackle whatever it is that I'm
working on. I'm not; I just get uncomfortable when I'm not sure what to do
next.

The main way to get past that is by accepting that you have particular
feelings in particular circumstances. There's a difference between having a
feeling and believing a feeling. If you are having trouble finding that
difference on your own, find a good therapist (you may have to go through a
few) and work on it with them. At your age I would have tried to macho my way
through those feelings, but now I look at that as yet another way I let my
reactions drag me around by the nose.

Good luck sorting this out! And thanks for asking such a good question. You've
helped way more people than yourself with it.

------
64ec39bda1
I have nearly 8 years of being a professional developer. I didn't graduate,
and got into the industry while in college before dropping out. So there are
some differences between us in years in the industry and educational
credentials.

First quarter 2016, I was laid off from my job as the first engineer/tech lead
of a small startup. I have been searched ever since then, and your experience
mirrors mine exactly. I have been on over 25 in person interviews and gone
through untold degrading whiteboard interviews, code tests, trick questions,
and take home projects; all have ended in rejection. This industry has a need
to torture candidates because we are all considered to be liars by default.

Much is said about combating impostor syndrome in ourselves but we are too
eager to cultivate it in others. It seems people in this industry refuse to
understand that some people are not perfect. I never graduated college because
I hated it with the very fiber of my being, so I am, like you, not
particularly great at white boarding answers to algorithm questions off the
top of my head in a high pressure environment. If I need them during my job, I
look up answers and learn from people who are much smarter than I am.

My personal identity has been shattered, as I thought my ~5-10 year history of
success in the industry indicated I was in demand and talented. I saw posts
like this and thought that if the worst happened I'd still be able to find a
job. The idea that there is a talent shortage is a lie, or candidates like me
wouldn't be treated as I have been. I'm not asking for a free job, or a
handout, or a huge salary. I have had a successful career so far and am
capable of doing good work.

I have struggled with bipolar disorder and suicidal ideation most of my life.
I've dealt with the death of beloved family members and pets over the past two
years with only minor lapses in control. Nothing has caused me to consider
taking my own life as much as the past 6 months. It seems there is no future
for me in the only career I have any skill in and which is a huge part of my
identity. And to constantly be told that there is such a shortage of engineers
only salts the wound.

If you are expecting things to get better with experience, they won't. It's up
to you to decide if you can take the mental strain of continuing in an
industry with such inhumane hiring practices.

~~~
jacquesrn
I have to agree with you here. My contract ended last February. Since then I
have applied to over 220 jobs. 2 in 3 don't even bother to reply. As for the
rest, you get a rejection letter, or, if you're lucky, an interview. I've been
through a number of prolonged interview rounds with a coupla dozen of
companies since then. You know the drill... interview with recruiter, more
interviews with technical people, programming tests, even more interviews,
etc. It seems everybody wants to copy Google's process nowadays.

None of these have panned out, they did however waste a lot of my time. But
the worst thing is how useless the whole process makes you feel. I have a lot
of experience, but that doesn't seem to count for anything in today's
industry. Also, you get no feedback, so it's basically a black box that you
put effort in, and then you're left guessing where you failed and what you did
wrong. Study up on the things you didn't know enough of? Sure, except the
market is so extremely fragmented that every company wants a different set of
skills and technologies. (A while ago I counted the number of different
technologies asked for in one of the "who is hiring?" threads. I stopped when
I reached 200.)

After spending months trying to get a job in this kind of environment (with no
unemployment or disability, so there is a lot of pressure), it becomes really
hard NOT to feel like a complete failure. Apparently I can't even get a
mediocre job. And at the same time you keep seeing persistent rumors that
there is a high demand for software developers. Companies supposedly have
trouble finding them. If that was really the case, why do they make it crazy
hard to get hired? In actuality, many companies mention that they get an
overwhelming number of replies, which seems to be more in line with their
behavior.

~~~
abledon
what area were you applying in? Maybe its just an isolated geographic
incident.

~~~
jacquesrn
Most of the jobs I apply for are remote, so all over the US (and a few outside
of it). That does mean that a significant chunk is in Silicon Valley. I apply
for local jobs as well but there are not that many, and the turnout has been
even worse.

------
atemerev
1) passing job interviews is a skill orthogonal to coding abilities. You might
want to get a book and start training on that.

2) I failed Google's interview 6 times. OK, so I don't work at Google, but I
am still a decent software engineer loving functional programming and
distributed systems.

~~~
trhway
>I failed Google's interview 6 times.

During last few years me and 2 of my friends passed the interview and got
offers there. Everytime Google came up with noticeably (like $10K-$15K) lower
salary than the then current pretty typical SSE salary of the candidate with
barely balancing that decrease by stock (with total being $5K-$15K higher on a
good market day). One of the friends even took that offer with obvious result
- more disappointed by the offer than enthusiastic he barely made through the
first year and run away.

~~~
pbhjpbhj
That sounds like supply and demand pricing, people want to work for Google
even if the salary is low. It could also be a good pay off in that some people
will value you as a better programmer because you're ex google? The right move
might well be to take a position for a year and leave if you don't like it, on
leaving I imagine you can get a better paid position more easily than before
it was on your CV??

~~~
cbanek
This is exactly how salaries become how they are in the gaming industry.

Source: I worked in the gaming industry. Everyone wants to work at Blizzard,
so why pay people what they're worth? Because you get what you pay for.

------
ocean_blue
I am a recent college grad and I started interviewing pretty late. I never did
an internship while in school and have had a grand total of four phone
interviews to date and two onsites(Google), resulting in one job offer(with a
decent tech company). I think tech interviews are beatable. Here's my
hypothesis/strategy: \--> The "problem solving" part favors people with an
aptitude for math but I think that this is a skill that can be acquired. I
presume that you have an understanding of all the basics including graphs and
Dynamic Programming. Doing mass interviews/concentrated studying might not
help here. I would recommend a style to you: Start with a problem and solve it
in 45 minutes. Then look for a similar problem(within similar domain) and try
to solve it 40 minutes. Then push yourself until you reach about 20 minutes.
Shift to another domain and repeat the process over and over again. The idea
here is to practice for interview just like you would do for a math exam. You
should never trip on the basics e.g code syntax, or understanding what data
structure to use etc. Also problems belong to certain domains and this
strategy of repetitive training develops the intuition to categorize a
problem. Finally, 1.5 months might not be enough. I would recommend about 3
months of studying as you understand things better over a long period of time
--this is why cramming never works. All the best

~~~
conflicted_dev
This is an interesting strategy. I like it. Also, given all the posts in this
thread, I'm beginning to think it's going to take over a year to really get a
good understanding of this stuff.

~~~
ocean_blue
One year is way too much. Tbh, you need two semesters of coding to beat tech
interviews. An intro to programming class and data structure class(Which I
think you have).

The only advantage taking more classes is that you develop "Comp Sci street
cred" but I believe it has no correlation to success in interviews. The
advantage of experience is that you get to master a certain language well.
Other than that it just comes to a matter of how you practice.

For "culture fit"(which generally means don't be an asshole), communication
and butterflies, I think [https://www.pramp.com/](https://www.pramp.com/) will
go a long way in helping.

------
thecolorblue
For me, interviewing is the worst part of being a software developer. Now that
I am a little more senior (5 years experience) I can see that its pretty
miserable doing the interviews as well.

There are plenty of reasons that I haven't gotten a job that had nothing to do
with me, for example, the CIO already had a third party ready to do the same
work or they already had someone at my level of experience and focus.

The only thing that has worked for me is focusing on what I have done, and
look for companies that also need those problems solved.

~~~
benjamincburns
> Now that I'm a little more senior ... I can see that its pretty miserable
> doing the interviews as well.

I think part of this is that people too often view interviewing as an
adversarial process.

It may help you to enjoy it more if you look at it as a collaborative game
that you are playing with the applicant. Your role in the game is to guide
them through the process without breaking any rules like asking questions that
are too leading, etc. I find this mindset helps me to maximise the applicant's
chance of success without compromising the goals of the process. I think it
also helps you to subconsciously adopt a manner of speaking and body language
that is a bit more friendly and approachable.

------
fsloth
Your original header and the content of your question do not match. I've been
a software engineer for 10 years, enjoy my job considerably and been commended
for it, but am not working for the big four or a cool startup.

I can't give you any other advice, except for my personal satisfaction the
team I'm in and the domain of the problems I need to solve weights so much
more than the specific company I'm working for.

For the technical interviews I've participated, I've always sucked ass. But
guess what - those tests don't correlate with success at the actual work any
way. They are a gate, but a bit arbitrary one at that. Yes, one needs to
understand all that stuff, but can solve them at ones own pace - algorithmic
puzzles usually take only a fraction of development time unless the situation
is most unusual. If you can solve the problems, then from practical point of
view it's sufficient.

On learning techniques, Barbara Oakley's "A mind for numbers" is an awesome
book. I'm 36 and I wish I had read it 20 years ago. Slow is not bad, if
correct methodology is used to verify learning. Slow can be deeper. Barbara
also suggests some techniques for dealing with test anxiety - which I've not
tried myself, mind you.

As per yout goal, I'm afraid I have no idea what is possible and what is not -
people are complex and unpredictable. But as a senior software engineer, from
the point of view of theoretical capability - if you understand the problems
and can solve them at your own time, that's quite sufficient.

------
oliwarner
Of everything you've said, nothing suggests you actually _like_ programming. I
think that's most accurately reflected in your description of how much a chore
you find algorithms. That's a pretty serious issue.

I don't think I'm alone when I say problem-solving —even if it's not novel— in
an efficient way is something most software developers live for.

Part of this is learned and honed with experience. Part comes from a drive to
solve [any] problems, even simple puzzles. I truly believe you can learn
everything there is to know about programming, but if that's not your passion,
you're never going to thrive.

To answer your questions:

1\. Your aim to become a top-tier company programmer will never happen at the
moment. They only hire passionate programmers who love their work. You can't
expect to be hired and _then_ get passionate.

2+3. Stop focusing on study and GPAs. That's done. BUILD SOMETHING for
yourself to get some experience doing something you have a vested interest in,
not under test conditions. Improve it. Ask other people how you can improve
it.

Once you have something that's yours, you might be able to display some
passion in an interview (as well as having gained some "real" experience).

If you can't muster even that much enthusiasm for the subject, perhaps it's
time to look elsewhere. It's not for everybody.

------
huherto
> 1.) Does there ever come a point where it just isn't worth it to continue
> trying to be a software engineer who can get into top-tier companies /
> projects?

Don't just look at the top-tier companies / projects. There are many
projects/companies where you can learn, grow and contribute.

> 2.) How can I find some positive reinforcement in interviewing / interview
> prep even if I constantly get rejected? I do perform post mortems on every
> interview in order to find areas to improve.

Are you getting a positive reinforcement when you are doing software
engineering ? That is the key question. If you do, you can have a very
satisfying career. Even if you don't work at google.

------
mrweasel
I would seriously cut the interview prep crap. It's useless in my mind. You're
the person you happen to be, and that's the person that need to walk into an
interview. Never prep for an interview (other than of cause figuring out what
the company does and if you'd want to work there), you'll just try to remember
the prep and not focus on being at the interview. Most interviewers only care
about who you are, and ensuring that you didn't lie on your resume.

If you want to make difference, find a small business, no more than 30 to 50
people. The kind of company that wouldn't except a person like you to walk in
the door.

~~~
kafkaesq
_I would seriously cut the interview prep crap._

Yup. Governing principle being: if a hiring filter can be significantly
"prepped" for -- then you have to ask whether it's really valid filter in the
first place.

~~~
jsmith0295
It isn't, but if you want to work for those companies you'd better be prepared
for it anyways, because they don't care if it's valid for them or not.

~~~
kstrauser
My problem with the approach is that you may be faking your way into a job
you're not qualified for by prepping specifically for its interview. Say you
want to work for Company A and get your hands on their interview questions.
You memorize them forward and backward and practice until you can spit out the
expected answers with confidence.

Great.

On your first day at work, you find you're actually expected to _know_
everything related to that material. You studied for Bayes' Theorem, which is
great, but your first bug is fine tuning a random forest exploration. Cue deer
in the headlights face.

My favorite jobs - including the one I'm currently at - are the ones I just
walked in off the street for. Sure, I did my homework about the companies,
their plans, their management structure, etc., but not one second of reading
up on the docs of their tech stack. Either I knew the stuff (or had enough
related knowledge that I could learn it quickly), or I was honest about my
shortcomings in that area. And on my first days at work, I either knew how to
do the stuff they asked of me or was comfortable reminding them that I needed
to bone up on it first.

TL;DR I feel like studying tech for an interview is like lying to a first
date. It may impress the other party but it doesn't last. Be honest, relax,
and wait for a legitimately comfortable relationship.

~~~
jsmith0295
In my opinion if you can prepare for the interview, then you can probably pick
up anything else you might need to know for the job, too. A lot of algorithms
and data structures you'd have to memorize for these interviews are also very
easy to Google when you don't know them, and having to do that isn't likely to
make you much less effective.

------
johnward
I'm not an engineer but I'm am a tech consultant. First, there are options
outside of engineering that you may like. Second, being rejected by 20
companies doesn't seem excessive to me. It really is a numbers game. I have 10
years of experience and I'm looking a list of 83 places that didn't want me
within the last year. Interviewing really beats me up and makes me feel like I
have absolutely nothing to offer.

Companies focus on these code puzzles and things even when you will literally
never come close to that level of code in practice. I mean, I can't even
complete the screening challenges Uber gives you but I still found something I
can do in the industry. If you are applying for some senior engineer position
than you probably need to know this stuff, but if you are looking for a junior
role than I really doubt the value of these.

Honestly, I question if I'm cut out for the work I do still. I sometimes just
want to walk away from tech and never come back. Today is one of those days
that I am questioning WTF I am doing with my life.

~~~
vonmoltke
> First, there are options outside of engineering that you may like. Second,
> being rejected by 20 companies doesn't seem excessive to me. It really is a
> numbers game. I have 10 years of experience and I'm looking a list of 83
> places that didn't want me within the last year.

This is kind of a tangent, but I don't understand how the sentiments "it's
just a numbers game" and "nobody can find good engineers" can coexist. It
seems like the people expressing the latter are trying to simultaneously be
beggars and choosers.

~~~
johnward
I think "nobody can find good engineers" is a fallacy. Either the filtering is
failing or they simply aren't paying enough to attract "good engineers". If
they are paying an average wage they should expect average engineers to apply.

------
bazaroni
1) The answer to that needs to come from you. If it's important to you to work
at a "big four" tech company, it's probably possible with enough effort.

2) I think most people in industry realize that interviews don't really
correlate well with how well people actually do their jobs. So I wouldn't take
rejection too hard. It really is strange that in interviews we test for "can
you figure out a non-trivial problem in the time it takes for me to eat a
sandwich" when most software engineering roles are more along the lines of
"can you work well with others, generate and document clean/functional code,
and learn what you need as requirements change".

3) For most things, the best way to get better at something is to do more of
it. Interview every single day. Hopefully over time you will get better at it.
If you don't, consider seeking help with your performance anxiety. That might
help.

Best of luck! :)

------
wasd
There's a lot of good feedback here for both sides. The only thing I want to
reiterate is that success isn't defined by employed by the big four. There are
companies that embark on more interesting engineering challenges or pay more.
Big four is a measure of status, not success. I don't think you've defined
what you want well enough to quit because you're not being hired by the big
four.

------
muzster
More Questions Than Answers :

1.) Why top-tier companies ? Have you considered joining a startup instead ?

2.) Ask the interviewer. Prep'ing for interviews will not prep you for the
work at hand. Try working on your interpersonal skills and getting real world
experience ( open source or side project demonstrating your skills )

3.) The recruitment process is broken. When you find that elusive efficient
way - make sure to give back to the community.

------
riboflava
Practice your softer skills for interviewing. Do you get anxiety over other
aspects of the interview, like the fact that there's an interview itself? Work
on that. Many times candidates get hired even if they bombed some aspect of
the technical portion of the interview, for various subjective reasons. (Also
consider asking for a take-home problem where they give you 2 hours or
whatever to email back the solution. It can help if that is solid but your on-
the-spot whiteboarding is shaky.)

Also consider an SDET role, those can sometimes be easier to get and then you
work internally on removing the T if you really don't like that sort of work.

------
Ologn
Being on the other side of the interview table is helpful for perspective. You
might even experience this if your team is hiring for a position and wants you
to look over resumes, do phone interviews, in person interviews etc.

If I interview six people for a position, usually one is really good, four are
average, and one is really bad. Guess who is getting the offer? It's almost a
paradoxical thing - being average is good enough to keep a job, but you have
to be in the top 16% to get a job. Lucky for you, the above average
interviewer usually gets competing offers, so that leaves the less attractive
job slots open.

If you take six random programmers with a CS degree and <2 years experience,
are you the best of those six? If not, you're one of the four average ones,
and are not going to pass most interviews unless the market is hot and they
desperately need you _or_ you have a friend bringing you in who vouches you
can do the job.

You also say you want to "get into top-tier companies / projects". Well, that
doesn't mean being one standard deviation above the mean, it means being two
standard deviations above the mean.

So now you don't just have to be the one in six that sticks out as good, you
have to be the one in fifty that sticks out as great. You know those one out
of six quality tier guys I talked about? Now you're competing with just them,
and you have to be the best among seven or so of them for the job.

When I was studying CS, I was once assigned to write a homework on the process
scheduler for Linux, Mac and Windows. Within 20 minutes I'd know I would have
an A on the paper - that was all the study into the subject that was necessary
for that mark. But then I continued to read about process schedulers for the
rest of the night, because I always wanted to look into it, never really had,
and if I was ever going to do it, I knew then would have been the time.

I'm not like that all the time in terms of devotion to learning CS, but if I
was, I would have a shot in being one of those two standard deviations above
the curve programmers. Because that's what they do, even after they know they
got the A on the paper, they keep reading even if it takes hours just so they
really know and understand the subject more fully.

------
amorphid
I suck at studying. It's boring, I have a short attention span for words on a
page. And I'm not a good listener, so someone explaining things to me verbally
is the fastest way to fill my brain. I used to try learning this way, failed
miserably, and then told myself I couldn't be a programmer.

I'm good at grinding away. I'll bite onto a something I want to learn and not
let go until I frikkin' get it. I learn with my hands, by asking questions,
and staring at the screen until it makes sense. I've learned to push through
it, and just write crap tons of crappy code until I come up with something
interesting.

As recently as a couple years ago, I had a hard time finding ANY work as a
developer. 6 months ago, I finally landed a dev gig that doesn't suck, and my
coding mojo has been skyrocketing ever since. I've had code merged into the
Elixir code base, I've got another PR waiting to be merged into Systemd, and
I'm accidentally discovering use cases for those algorithms that bored me to
death when I tried studying out of a book.

If you want to chat, my email is in my profile. I was a technical recruiter
for 9 years, and now I'm Sr. Software Engineer (at least in title!). If you
have some foundation level skills, there are plenty of ways to hack the
interviewing process.

Good luck. If you can't climb someone else's ladder, build your own.

~~~
selimthegrim
>If you can't climb someone else's ladder, build your own.

Seconding this, this doesn't just work in programming.

------
JeremyMorgan
There are people who aren't cut out for it, for sure but it's probably not for
the reasons you think.

In my experience those "not cut out" for software engineering who struggled
did so not for a lack of intelligence or learning ability, but lack of desire.

To succeed in this industry you need either be:

1\. A "Natural": rare but real people who learn things so fast they don't put
a ton of effort into it. They "get it" very quick and find a way to keep
current and continue learning ahead of most within their 40 hour week. They
spike on something for an hour, comprehend it and retain it.

2\. Everyone else - You'll need to work your day job and learn the most you
can, and go home and learn more. Experiment, go through
walkthroughs/tutorials/courses and consume information. On your own time.
Constantly seek out new technologies and methods, build side projects to
learn.

Those are the two types I've seen, and I fall into the latter category. I
could never be at the skill level I'm at now by just showing up to work. I
have a lot of outside of work tech activities and I'll be the first to admit
there are many concepts I don't "get" right away. But I keep trying because
I'm having fun. The end result isn't as fun as the experience for me.

Of all the people I've worked with in the last 20 years, most of those who
gave up were in the same camp as me but either didn't enjoy "having to learn"
something, didn't have the personal time, or just didn't want it bad enough.

I know this isn't the most sunshine and rainbows answer but it's the truth.
Look inside yourself and ask why you want to do it, and how bad to you want
it. Really ask yourself the question "why do I want this?" and be honest with
yourself.

For me the answer is "I love building things and solving puzzles" and I want
it bad enough to sacrifice a lot for it. When I imagine something abstract and
piece it together into something it feels nice. The money is great, but it's
not my primary motivator. This may or may not apply to you but if you're
passionate and you love it, you will succeed and it will get easier as time
goes on. I learn things about 5x faster than I did when I was 2 years out of
college. You will too, if you want it.

If you aren't that passionate about it, start thinking about something that
makes you feel like you HAVE to succeed at it, at any cost.

------
jwatte
Is everyone cut out to be an Olympic athlete, or are some genetics involved?
The answer is "it's a mix."

Can anyone with diligent work ethic and a continual effort into learning find
some place that needs their skills? Very likely. How well does your skill set
match how broad a market? It depends. If you are narrower, or aim higher, it
will take longer to find a match.

That being said: if you have sysadmin skills, have you considered an SRE
position? Or DevOps? It may be that you find a better match there.

------
osivertsson
Rejected by 10 different roles when you only have 1 year of experience is
normal, as is being rejected by 20 companies during college. I've done (far)
worse, and I'm still in this industry after 10 years and enjoying it.

If you spend 1-3 hours per day on interview prep you are overdoing it.

Stop it, spend your time doing something else that will benefit you in more
subtle ways in the interview and in everyday life, like: * Get in better
physical shape (take a walk! go dancing! lift weights! bike around town!) *
Hang out with friends, or try to get a new friend by putting yourself into a
different environment than you usually are in. The point is to clear some of
the anxiety and stress that you now seem to carry, and go into an interview
with more confidence and more relaxed.

I too suck at algorithm problems. It is mostly because I fail to see the
relevance to the work I want to do, which is to build great software with
other devs that want to do the same. The 2-3 times during my career when I've
really been confronted with problems that require some clever algorithms to do
this, then all of a sudden it becomes very interesting and keeps me up at
night.

So perhaps algorithm problems at the whiteboard during the interview is not
your strength. It is surely not what the job you are interviewing for is
really about either. Just be honest during the interview that you find these
situations awkward, and that you perform much better in a real work
environment.

Explain what value you think you can deliver to the employer. It might be that
you get things done with quality without over-engineering for the future, that
you have a solid linux sysadmin background and can help out in a web dev team
with these skills, and that you have experience of what works once things are
deployed. Or maybe that you really enjoy working close to customers, or that
you are the go-to-guy when it comes to tool XYZ, etc.

First and forement do a good job were you are now. If your goal is to get into
a top-tier company then accept that you may have to change employer 5-10 times
before you get there. You must always focus on doing a good job at your
current employer, since the more years in the industry you have, the less
algos at the whiteboard during interview counts, while contacts and your
reputation starts to weigh very heavy.

Best of luck!

(As always when answering these kinds of questions you really are shooting
from the hip because you have so little information, compared to
seeing/knowing someone in real life...)

------
xt00
Interviewing is a special skill. I would try practicing it with real people
(if you haven't already), and to actually implement the algorithms you are
struggling with in real-time with your friend that is "interviewing" you.
Basic point is that you need to spend some time practicing like crazy where
you have the ability to "fail" with friends. I have done a ton of technical
interviews, done a qualification exam for my phd (twice :-) ), and its hard.
You have to learn how to improve your speaking capabilities, and know the
material well enough so that you can speak confidently. Basically if you feel
like you are winging it, then you don't know the material well enough. If you
feel like you know it, but then "suddenly" forget the info, then that is
basically like stage-fright, and you need to practice with people like crazy.
Another method is to create like 10 questions that are annoying questions that
you can imagine somebody asking you. Then save them someplace. Then on a
random Friday afternoon, pull out those questions, get a blank sheet of white
paper and sit down and "answer" those questions without looking at a book, and
time yourself as you do it. I would not give up, just keep trying.

------
plinkplonk
The _combination_ of "I am REALLY bad at algorithm problems and experience
serious performance anxiety." and "My current target is a role at one of the
"big four" tech companies " seems to be at the root of your troubles. The 'big
four' interview processes are heavily focused (for better or worse) on
whiteboard algorithmic problem solving. You should change one factor or the
other to make progress.

My 2 cents.

------
raverbashing
So what you can't get into the big 4? There are several companies with
interesting problems AND a bigger chance for you to actually make a
difference.

Rejections happen. I would try to see if there's a common thema (some area of
knowledge that is missing) or if it's just being nervous/lack of experience

Not everybody is good at algorithm problems and there are other areas you
might be better suited for

------
rckclmbr
It took me 8 years of industry programming (after college) to get a job at a
top tech company. But I'm here, and I feel like my skills are a lot better
than they were. Don't get down on yourself by getting rejected, and don't
invest too much time in interviews. Take 1 or 2 a year, and just concentrate
on being a better programmer and person.

1\. No, but you should evaluate how much time you invest in this. (time per
year)

2\. I hated every time I got rejected. I never did postmortems myself, but
swore I would never interview at another BigCo again. But guess what kept
happening.

3\. I never found a mentorship useful. The best way is to find where you're
deficient (which is hard, because companies almost never give feedback). I
don't think post-mortems is the right way to approach this -- look at
different ways companies evaluate someone (tip: it's not always just the code
you write), and see where you can do better.

I'd be happy to answer ad-hoc questions you have -- maybe it would be better
to provide suggestions by understanding of your particular circumstances.

------
contingencies
Big companies suck. They stifle you creatively, make it difficult to learn or
find a challenge, and tend to surround you with people who have a conservative
mindset. You will rarely be exposed to all aspects of a business, rather only
to the pigeon-hole you are assigned.

Find something you enjoy, work on it, don't worry what other people think.
People that you _want_ to work with tend to care more about your attitude,
confidence, personability and capabilities rather than paper or formalisms. As
long as you are learning and pushing your boundaries, you are not wasting your
time. Keep applying for different smaller businesses in your area or that you
may be interested in: also, in many countries employers may let you come on as
a 3-month lower-paid intern then up your salary when you prove your skill.

It seems you have reached a point where you are doubting yourself: this is
healthy, but give yourself a break! Look at all you have achieved, focus on
the parts you enjoy, and worry about planning a career path after a job or
three.

~~~
Tempest1981
Well, any company can suck, but I agree -- focusing on "big 4" is probably a
mistake. Find a team where you fit in.

------
slowrabbit
I have problems with interview anxiety too. Fortunately, you don't need to be
good at interviewing or algorithms to be a successful software engineer. I
think a lot of the good companies realize good interviewing skills and good
programming skills don't go hand in hand. Interview practice can be helpful,
but my suggestion is to get into actively developing open source software and
add significant code contributions to projects. People care about actual code
you have in production, contributing to major open source projects is an easy
way to get your code in production and tested across millions of servers. The
kinds of companies you ultimately want to work for care far more about what
you have actually done code-wise outside of the interview far more than any
trivial test they could possibly give you in an interview. If your
contributions are significant enough, companies stop asking you to do those
lame technical interview tests altogether and just hire you.

------
kearneyandy
Interviewing is a skill like all things. The more you practice the better you
will get at it. Unfortunately, this process can be slow and the worst part is
that when you interview you don't really get any kind of feedback from the
company about why they rejected you. I'm working at a startup in this space
refdash.com where you could go do a technical interview and get some feedback
from the interviewer on how to improve. Perhaps the problem is just that you
don't know what the interviewer is looking for or what strategies to use to
feel comfortable in an interview.

The other thing I'll say is that the "big four" companies are glamorized a
lot, but each have their own issues. I would say focus more on the fit than
the name.

Other tools that are nice are leetcode and hackerrank for practicing. They can
offer positive reinforcement because you can see how you are able to solve
problems and keep track of your success on those.

------
alistproducer2
I don't think you are cut out for a job at the big tech companies simply
because they do put so much weight on discrete math and puzzle solving.

I say this as a person who is pretty much in the same boat.

------
kozikow
I feel like algorithmic interviews are starting to be a red herring. When we
are reaching a point that people need months of preparation and special
interviewing bootcamps, we start to experience something akin to Goodhart's
law. Correlation with real world skills get smaller and smaller, as people
stop honing their "real world" skills and focus their energy on gaming the
artificial metric.

Many companies are starting to value good github profile more than "how
quickly are you going to implement the dijkstra algorithm on whiteboard". I
believe this trend is better for candidates and companies, so it will
continue.

I am speaking it from the point of someone fairly proficient in algorithmic
challenges and algorithmic interviews (e.g. top 100 google code jam,
worked/interned at 3 out of big 4).

~~~
vorg
> Many companies are starting to value good github profile

Expect an industry to grow around servicing the github accounts of US-based
programmers to make it look like they're doing side projects and learning
certain skills. In reality, it'll be India-based college grads doing the
github updates to a specified schedule -- the same college grads who presently
do course assignments and online coursework for US-based students.

~~~
kozikow
Maybe with plethora of online info, we could implement reasonable fraud
detection?

    
    
      - Detect copy-pasta code
      - too inconsistent language style (either code or English)
      - prepare interviews questions about github profile (e.g. What made you choose library X for project Y)

------
dougabug
1\. If you love writing software, don't give it up just because you don't fit
into the existing mono-culture of "top-tier" tech companies. Recall that
WhatsApp's founders were both rejected by Facebook, but still managed to build
a game changing company that Facebook later bought for ~$19B.

2\. Find an interview coach or service that suits you and can help you improve
by giving you detailed feedback and concrete advice. The cost of professional
help is noise compared to developer compensation. Reward yourself for steady,
incremental progress, don't beat yourself up for not being at a specific level
yet.

3\. Take classes on algorithms and data structures until you can solve
problems cold. Master key topics, don't settle for incomplete understanding of
your craft. Be curious.

------
dkarapetyan
Feynman has a really nice quote I think that is encouraging for someone with
your experiences

 _“Right. I don’t believe in the idea that there are a few peculiar people
capable of understanding math, and the rest of the world is normal. Math is a
human discovery, and it’s no more complicated than humans can understand. I
had a calculus book once that said, ‘What one fool can do, another can.’ What
we’ve been able to work out about nature may look abstract and threatening to
someone who hasn’t studied it, but it was fools who did it, and in the next
generation, all the fools will understand it. There’s a tendency to pomposity
in all this, to make it deep and profound.” – Richard Feynman, Omni 1979_

I agree with the sentiment. There is much pomposity in the software
engineering field and the usual interview process is more like a hazing ritual
than an interview so being stressed out about software interviews in general
is the correct response.

It sounds like you are a persistent and hard working individual though and
those characteristics will serve you far better than being good at algorithms
and software engineering interviews. My favorite quote about persistence and
hard work is from John Ousterhout

 _A little bit of slope makes up for a lot of y-intercept

CS140, 01/13/2012 From a lecture by Professor John Ousterhout_

Do not despair and continue improving. The job part will happen on its own.
Trust me, you don't want to end up somewhere that values reciting topics from
undergrad CS 101 over the kind of disciplined and hard working attitude that
you clearly demonstrate.

The relevant links for where I found the quotes: [http://duncan.mkz.com/what-
one-fool-can-do-another-can/](http://duncan.mkz.com/what-one-fool-can-do-
another-can/), [https://www.quora.com/What-are-the-most-profound-life-
lesson...](https://www.quora.com/What-are-the-most-profound-life-lessons-from-
Stanford-Professor-John-Ousterhout)

------
hkmurakami
Yes, some people are naturally bad at the big 4 style programming interviews.
I know several great engineers who lead leads at startups who have had
difficulties in such settings.

I myself had a terrible time with McKinsey style case interviews, which is
sort of a cousin to tech interviews.

------
DanielBMarkham
When you're looking for work, you enter the marketplace with a certain set of
skills and experiences.

As you interact with the market, you're supposed to be understanding better
what sills and experiences you _should have had_. Then you start gaining new
skills and experiences to match the market.

If your market is so small as to only consist of a few name-brand companies?
Your sample size is way too small. This is a numbers game, and you need to
play the numbers -- not try to mold yourself into some candidate some
arbitrary set of companies would like. Quite frankly, it sounds like a fool's
game.

You're a smart person. Play the game according to your rules, not theirs.

------
advicemonkey
I sucked at programming, rejected by google twice. I could finish problems and
even finished whiteboard puzzles, but I never enjoyed large infrastructure
projects and that showed in the interviews. I had a "kill me now" face as one
HR person put it :) OTOH I love loved mathematics and working on complex
scientific problems. So I switched to machine learning and scientific
computing, and fforward a few years, I won the best employee of the year award
in a fortune500 company with over 20K employees and have a couple of
algorithms patent pending. Just one more line for you to think about.

------
DjGilcrease
"\- I am REALLY bad at algorithm problems and experience serious performance
anxiety. Concentrated studying and mass interviewing haven’t led to positive
results so far. I can solve most problems correctly given enough time (usually
2x+ longer than interviews)."

I am a principal engineer at a mid size (~4k employees) tech company (F5
Networks), and if someone asked me to do a bubble sort, or other algorithm
from memory I would end the interview there, and have. The CTO at a company I
was interviewing at asked me to do bubble sort in less then three minutes, I
said no, lets just end the interview loop here. Google almost always asks a
pure memory algorithm question, though they have been getting better at
remapping the algorithm solution they want to actual work they are doing.

As an interviewee the ability to write out some random algorithm from memory,
that I could just google for tells me nothing about the type of work I would
be doing, how I might fit with the team, how the team thinks and collaborates.

As an interviewer I never ask this type of question since it does not tell me
anything about how you think, work though problems, and collaborate with
others. I always try to tie my technical questions back to problems I have had
to solve in the past two or three months.

For a Software Engineer of any level your ability to think critically, ask the
right questions, and work with others is way more important then your ability
to bang on the keyboard in the right order. Syntax and idiosyncrasies of a
language can be taught to just about anyone who can think critically and knows
how to collaborate with others.

"Does there ever come a point where it just isn't worth it to continue trying
to be a software engineer who can get into top-tier companies / projects"

Not if you enjoy doing it. If you do not enjoy it and find the work a constant
struggle that you dread facing every morning, then move on to something you
enjoy.

Also "top-tier" is rather subjective. I will never work for Google or Amazon.
I would prefer to enjoy what I am doing, be able to have a life outside work,
and get paid more (At least compared to Google and Amazons average pay in
Seattle for the same role).

------
NikolaNovak
Hmm, few notes & questions:

\- Being cut out for software engineering activities; vs software engineering
career/success, may be different skills and concepts. You could be good at
development, system administration database administration; without
necessarily being good at succeeding in any particular type of company culture
or organization, applying those skills. Which one is your question: can a
person be "not cut out for software engineering", or can a person be "not cut
out for success at particular type of company as a software engineer"? [I
would give the answer for both a "probably, in principle, but less often than
assumed].

\- You mention some of your perceived history of effort, success, and lack of
success. What about more personal stuff - do you ENJOY the work? Are you
attracted to software engineering (however you see it - development, sysadmin,
etc)? Would you dabble with it even if you got a job in an unrelated field?

\- Do you have a specific filter you might or might not be aware of? Are you
seeking specific types of jobs in specific types of companies under specific
constraints?

\- Do you have friends you trust in similar professions, or with similar
interests? What do they say?

\- How about colleagues, classmates, profs?

\- Number of failures at obtaining jobs is a metric but not a predictive one
without context. Skill at interviews is not the same as skill at software
engineering is not the same as skill at organizational success.

\- Similarly, you may have _perceived_ to be working harder at college; you
may have _actually_ been working harder, due to your higher standards; you may
have been working harder but _not_ receiving the same results as others -
without full understanding I would not automatically put full weight in your
perception of relative work.

\- Top Companies and Top Projects may not have one-to-one ration. Why do you
think you want/need to work for those particular companies? Are you interested
in prestige of the name? If not, what is your true interest - type of work?
Team culture? Accomplishment? Paycheque? Write a list of your actual
priorities, be brutally honest with yourself, and see how they match with
those "top-tier companies".

\- How would you perceive your skillset at large? Your communication skills,
people skills, friendliness, dependability and reliability, loyalty?
Personally, I look for a reliable willing learner on my teams more than
somebody who can solve puzzles but will cause havoc - different companies have
different fashions however.

Either way, best of luck :)

~~~
conflicted_dev
Thanks for taking the time to share some input. Here are your answers:

1.) I do enjoy software engineering to a certain degree, and even if I weren't
in the field, I'd almost certainly still write code from time to time.

2.) This is a bit of an involved question, but I'll try to answer concisely.
The past few years have given me a pretty decent idea of what I like/dislike
about software engineering. At this point, I believe that the team and process
are EXTREMELY important factors in determining a (software engineering)
project's likelihood of success. I want to work in an organization where
engineers are really excited about their product and/or technology of choice.
In my experience, I've found that these people tend to congregate at what most
consider to be leading/high-quality tech companies (e.g. facebook, google,
airbnb, uber, twitter, etc.).

3\. & 4.) A good number of my friends and ex-colleagues work at the
aforementioned companies (as well as a few other "top-tier" firms). Their
opinions on their companies is overwhelmingly positive and directly aligns
with my values.

5.) I understand this, but it is a bit of a blocker if I can't even get in the
door, right?

6.) This sentiment is reasonable, and it certainly is difficult to quantify
"working harder." For what it's worth, I will say that it usually took me
longer to complete assignments than it did many of my cohorts.

7.) Here's the brutally-honest list, in no particular order: \- Atmosphere: I
find that I thrive when I'm around people who constantly challenge themselves
ot be better at what they do \- Interesting work: I want to be engaged in my
work; at the moment, that means full-stack webdev (JS + react/redux) or super-
large scale infrastructure engineering (devops) with containerization \-
Prestige: having a top-tier name on the resume opens doors, and I'd like to
maximize my opportunities in future endeavors \- Compensation: The financial
aspect is important; I work hard and want to be paid accordingly \- Culture:
Again, I want to be around people who are generally REALLY excited about what
they're working on. Having led a startup in the past, I know what it's like to
be a part of the atmosphere where everyone is passionate about their work.
Now, I do know that this aspect isn't necessary a given for employees at top-
tier firms (especially the large ones).

8.) Skillset: For simplicty'sake, I'll use a 1 - 10 scale where 1 is weak and
10 and strong: \- Communication: 9/10 - I focus on this skill as much as
possible because I've found that none of my work occurs in a bubble \- People
Skills / Friendliness: 7/10 - I like people and I like interacting with
people. That said, I'm always learning how to better interact with people. \-
Dependability / Reliability: 9/10 - One of my nightmares is being perceived as
unreliable. \- Loyalty: 8/10 - It's a virtue and a weakness, but I tend
towards loyalty to those who have done me right in the past, be it a person or
company. \- Pure Coding Skill: 6/10 - I get the job done, but I still have a
lot to learn \- Algorithms: lol/10 - Still working on it \- Ability to learn:
9/10 - This is another trait I focus on. Tech is always changing, and I fully
believe that one of the core skills of a good software engineer is to be able
to continually learn new things.

------
ErrantX
Forget practicing the tech for now. Sure it might be where you "fail" but it
Sounds like performance anxiety is what is holding you back; work on your
confidence in interview settings. Apply for jobs you'd never take (I mean, non
tech jobs where you are sure to get an interview) to give you more practice in
these settings.

I see this sort of thing in newer engineers we interview. It's the thing that
makes it hard to get to the root of how good someone is.

Right now the sort of challenges the big 4 are setting might not suit you. You
might need more experience elsewhere; that's okay, you've got a year as a SE,
wirh some good previous background: the future looks bright. It does take a
while to get there. I measure myself as successful; at 29 I am a well paid
engineering team manager at a largish firm. We do cool tech and I get to
promote Devops. 8 years ago I was on a cruddy wage doing very little
engineering - but learned loads that set me up for success. Focus on what you
can learn right now to make yourself better, add things in increments, don't
burn yourself out looking for the shortcut. Most of all don't fall for the
hype; there is so much more than the big 4 or a start-up, and they do good
engineering too!

------
deeteecee
Having trouble with interviews isn't a big deal, it's just a grinding process.
What I do personally is think through issues I had myself while going through
the problem. Not necessary but you could also see if with the post-interview
results, you can get any possible feedback from the interviewers themselves.

Performance anxiety is just something you have to get used to dealing with in
some way. You can always just ask questions during the interview.

------
jwiley
I graduated during the first dot.com boom, and decided to transition from
Economics to web developer. I got a job at a small company, with minimal
programming knowledge. My programming test was explaining how a Perl program I
wrote worked.

I certainly wasn't a great engineer, and I have never been a natural
programmer. But the company I worked at realized that they didn't need the top
1% to build basic enterprise software. Paying a kid out of college 1/5th the
salary of a top 1%er, and who a maniac about learning, was pretty attractive
to them.

The barrier for you guys is so much higher now, and it's a shame. We need you.
We really, really need you.

I think the real question is: do you like building real applications?
Algorithm questions are wonderful intellectual challenges, and useful
background knowledge. But most engineers I know spend 90% of their time
figuring out why something wont compile, trying to integrate with crazy APIs,
or dreaming about how new technology X will fit into the stack. Worrying about
whether the hash table Java uses is O(n) or O(1) is very low on my priority
list, and something hard to justify to bosses and customers who care about a
shipped product more than microseconds of optimization.

Take a break from programming if you can. Get a job in retail, and experience
a different form of suffering for a while. Or join the Peace Corps. When your
brain gets rested, find an open source project that interests you, and
contribute to it. If you can't find one you like, or find that it bores you to
tears, consider another profession. There's no shame in that, the world needs
doctors, lawyers, chemists, business people and barristas as well.

------
kmonsen
I matured as I get older, don't feel too harsh about yourself because of where
you are know.

I think the most important part is if you are interested in software
engineering and find coding fun.

Life is long, and you have many, many years to get "successful" still. But
there is a large chance you are more successful than you think.

As for tech interviews, it is a skill that can be learned. Things like
hackerrank.com, but also just getting more work experience helps.

------
grahamburger
Consider that it can be easier and often more rewarding to be a good software
engineer in a non-software field than a good software engineer at Big4 - you
can make major contributions to other fields even as a mediocre software dev
because you're not 'competing' with the best of the best. Take up a position
as a software dev in a field that has not yet been eaten by software and ride
the wave to the top.

------
feelix
>\- I am REALLY bad at algorithm problems and experience serious performance
anxiety.

For me this is the key sentence here.

Don't worry about feeling like you had to work harder than everybody else
during college, that is called imposter syndrome and it's normal.

As for the performance anxiety on technical stuff, I had the same thing. I was
even barred from being allowed into programming courses, that I would have to
pay a lot of money for, because I failed the aptitude test. I went back in
days later and I demanded to retake it after failing and was allowed, and did
even worse on the same test.

So I had crippling self doubt. Then given a few years to work on my own stuff,
I taught myself C and became the most prolific developer (my work is linked to
in other comments I've made on HN if you want to check it) I know churning out
loads of awesome software. I even got into kernel hacking in C and stuff. I
still don't know if I'm inherently clever or even a good programmer, but I do
know I've achieved good results. I think if you're passionate about it you'll
find a way to create what is important to you, even if it's very technical.

------
jauer
Taking this in a totally different direction...

Have you been evaluated for ADHD? (PsychD with the long paper test & blinky
box with clicker, not necessarily MD with the "Ask your Dr about Adult ADHD"
screener).

You might not have the stereotypical symptoms of ADHD, but the executive
function hit (and unconsciously compensating for it) can lead to symptoms that
resemble a lot of the things you mention in your background: feeling like you
have to work harder than classmates, having issues with algo problems,
performance anxiety, and needing 2x more time on some problems.

I mean, aside from school, you are clearly smart enough if you can do full-on
sysadmining (debug and solve problems, not just follow tutorials) and use code
to solve project euler problems. Why not make sure you aren't handicapped in a
way that's totally treatable?

Of course, this could also just be graduate nervousness and insecurity that
can be overcome with practice and experience, but I wish someone had mentioned
this to me when I was mid-college so I'm mentioning it.

Disclaimer: I am not a medical professional, this is from personal experience
and comparing notes with coworkers with ADHD. YMMV.

------
elizabethanera
>My current target is a role at one of the "big four" tech companies or a
high-quality startup doing either webdev or infrastructure engineering.

You're shooting high and dissatisfied that at 1 year out of college you're not
'there' yet. Regardless of your interview performance or speed with tech
challenges, you're still a 'junior' (not a great term as it can seem
insulting, but it's what the industry uses) engineer.

Your question is more "Is it possible for someone to not be cut out for super-
prestigious software engineering?" Which is much different. If you want it
you're going to have to work hard for years. Wanting it for the sake of the
prestige (which is the vibe I get from this post, sorry) is not enough.

Why do you have this "if I can't make it there, it's just not worth doing"
attitude? Do you have to be heads above most engineers in order to feel ok
about yourself? Listen: all around the industry people need software
engineers. Serve your purpose as a diligent engineer.

Just: do good work. Then do more of it.

------
andaric
I think you already have enough technical skill to be a good engineer. Like
others and even yourself have said, the problem is the interview.

What kind of post-mortem are you doing? Are there particular types of
questions that give you more trouble, e.g. tree traversal, recursion, bit
math, data structures, OOP concepts/design. If you're having a hard time
figuring out what algorithm or data structure to use, you may have to get more
familiar with common algorithms, like graph traversal, BFS/DFS, recursion,
etc. Once you know the basic algos and data structures, they become your tools
and building blocks to solve a problem.

If speed is your issue, you'll need to practice solving problems to train your
intuition to come up with working solutions quicker. You will start to
recognize problem types and the algo and data structure to use.

Also, being familiar with common data structures like lists, arrays, hash
maps, trees and graphs is essential. Know their runtime and space
complexities, so you can know when to use what.

Sites like hackerrank are good places to get practice questions.

Hope this helps.

------
random_coder
To me, it looks like you're just having problems with algorithm interviews. I
have a solution for you and it's much more effective than textbooks - go to
websites like www.spoj.com, projecteuler.net, topcoder.com and many other
similar online sites, I suggest www.spoj.com - start with the easiest ones (on
most of these sites, problems are tagged by their difficulty level) and solve
them - I mean code solutions to them in a language of your choice (But C, C++
and Java are popular in interviews) - these sites have online judges where you
can submit your source code, have your code run against a large suite of test
cases for each problem and get results back - all in a matter of seconds.

Solve 100s of these problems(start with easy ones and move into harder ones at
your ease, learn new concepts and algos as you go) and try the interviews
again in another 6 months. I promise, you'll improve a lot at this kind of
problem solving. I've seen a number of people do this and succeed at algo
interviewing game.

------
DrNuke
Your best shot may be finding the way to use your knowledge in a field you are
really passionate about. In fact, it seems to me you are just hanging yourself
at some sort of cerebral tree while cutting passion out. That way, you will
always work harder than your peers and get less and less satisfaction. Use
software engineering as a tool to achieve applied goals.

------
rogy
Not everyone is the same, there are a lot of people who come straight out of
college to the big companies who end up not being incredible software
engineers. And vice versa.

Not everyone can prove their real skillset to the Facebooks of this world in
an interview, with very little SE real world experience. You don't need to aim
so high to enjoy your job and learn a lot.

------
fapjacks
Please don't goalify working at one of the behemoth hiveminds. You will become
a better hacker by working at a small, scrappy _non-unicorn_ startup --
meaning, an actual startup -- with tons of work to do. It's not for everybody,
but where else can you hack on machine learning on the same day you experiment
with building infrastructure? There is so much work to do all around that
you'll find yourself digging deep and learning tons of new stuff every single
day. One year at a startup I think is worth five at a big ass corporation.
Going to work for Google, you'll forever be at the behest of naturally-
talented CS PhDs that spend all day answering Gmail support tickets. You won't
_ever_ get to play with the cool toys at one of those companies. Seriously.
That is one thing I've learned after twenty years in this industry.

------
realworldview
A mentor is a great addition when doing anything new. SSomeone to guide and
advise, to answer questions, to be realistic and stop you from jumping early,
and perhaps someone to talk to about oblique issues. I'd also recommend
(without knowing what you already do) good food at regular intervals, ensure
you have and are able to stick to basic routines, don't drink alcohol,
minimise bread and pasta intake (no need to stop it completely), walk where
you would previously get a ride, plenty of air and water (same as for dogs and
cars) and to return to the start, if you can't fin a mentor then try ensure
you have people to talk to and with, especially offline.

And don't worry about your speed or performance. I'm as slow as hell and
manage successful projects, very hands-on. Find your niche, and don't expect
to be good at everything.

------
throwanem
It sounds like you're trying to go straight from ~zero to Google. Would you
torment yourself over being unable to go straight from high school football to
NFL superstardom? And have you considered the possibility that NFL
superstardom may not be the only way in which you might satisfy your ambition?

------
timwaagh
wow you sure dream big. i would not know anything about joining a big four
tech company. but it seems like you went up from system administration to
developer. congrats on that. I think you have worked hard and you are doing
very well for yourself. Of course learning to get better at interviews is
going to yield results sooner or later. So keep doing that. there will be one
day when somebody gives you an offer at a higher salary because of this.

I don't know whether joining the creme de la creme of the industry is possible
for somebody who has some trouble with algorithms and the like. it seems a
pretty essential differentiator. I'm not very quick when problems get harder
as well. But you know whatever. i still eat and i own my home.

------
NumberCruncher
If a decent B.Sc. degree in CS and 1-2 years of real-life experience would be
enough to land a job at the "big four" than 99% of academics would work for
the "big four".

In my country it is really hard to get a decent job without an M.Sc. I know a
lot of people with two M.Sc.s in their pocket (this means at least 1 B.Sc. + 2
M.Sc = 7 years of academic education, like myself) speaking 1-2 foreign
languages and having 6+ years of real life experience at the age of 30. And
some of them would like to work for the "big four", and maybe in your country.
Whether you like it or not you compete with them.

[edit] One of my friends who is IMHO a genius got a job at Google in Zurich
and he had a hard time at the beginning.

------
bwackwat
Software engineering covers is an increasingly wide range of skills. For me,
it has been critically important to realize the things which I love doing in
this field, and the things which I am genuinely particularly good at.

Overall I might not necessarily "talented," but I certainly enjoy my side
projects, have looked for jobs in different areas of work, and try not to shy
away from my opinions.

Your comments are varied and it is difficult to fully understand your
perspective. Nonetheless, I greatly recommend finding two things: the things
you love about software engineering, and the things you believe you have done
well within the field.

Capitalize on those things!

------
lunchboxsushi
At the end of the day "if you do what you love for living you'll never work a
day in your life". I'm guessing you do love your career and seeing as you
would put in 60-80 hours of work into school each week doesn't mean your
lacking any motivation behind it. I look at it as baby steps, keep working at
it with the same motivation and you will reach the goals you want. Anyone can
who has the passion for it.

but perhaps you might want to do a bit more math + physics studies (online,
books etc..) it helps you with formulas and thinking a different way which
helps IMO with programming.

Lastly, use a rubber ducky when programming :).

------
pmorici
Something people don't talk about much because many people might not even
realize it is that after your first job most people find a job though their
professional network. It's hit or miss interviewing cold.

------
dustingetz
I know a guy like you who had to work so hard in class, we called him names
because of how bad he was at coding. Somehow we ended up great friends. Now
it's 10 years later. The guy is a contract Scala programmer and bills $100 an
hour and is generally one of the best programmers at the companies he
contracts for. Not big four, but regular bread and butter companies that build
their own software. He got to where he is by not drinking in his 20s and by
studying software before work an hour every single day. He even has a wife and
young child... we are 30 btw

------
JamesBarney
Do you have problems solving algorithm challenges when you're not in an
interview?

If it's just doing interviews I would recommend going to a doctor and maybe
getting prescribed some beta-blockers. It should calm your nerves enough you
can focus on the problems at hand.

1) Many people live great fulfilling lives not working at AmaGooBookSoft. But
1.5 months 1-3 hours of time isn't a huge commitment. Also consider that you
might not be studying well. What types of questions are you being asked and
how are you studying?

2) What are the types of things you decided to improve on?

3) Yes

------
AlexCoventry

      > I can solve most problems correctly given enough time 
      > (usually 2x+ longer than interviews).
    

That you can solve them at all puts you in a rare and valuable group.

It probably won't get you a "big 4" job, but you might experiment in some
future interviews with being transparent about the conditions in which you
_can_ solve such problems. E.g., "Give me three hours in a room by myself with
paper, pencil, and a disconnected laptop running $MY_DEV_ENVIRONMENT, and I
will be able to work it out."

------
smoyer
How did you get into technology? Did you choose a tech career or did it choose
you? Why do you want to work for one of the big four? And what are you
passionate about? Happenstance is not a reasonable way to manage a career. And
it's probably unrealistic to keep up with those who grew up tinkering with
code.

On the bright side, you might very well lead a more balanced life outside
work. It's also not realistic for me to make an assessment of your choices but
you should honestly answer these questions for yourself.

------
redleggedfrog
"My current target is a role at one of the "big four" tech companies or a
high-quality startup doing either webdev or infrastructure engineering"

Yup, I'd say if that's your goal, then you're not cut out for it.

That's like saying you want to get into stock car racing because you want to
hang out with Danica Patrick. You're doing it for the wrong reasons.

You have to love it for the joy it gives you to learn it and use it. Otherwise
you won't spend the necessary time to be truly good at it.

------
trhway
software engineering and the algorithm based interviews, while connected, are
2 different things. The later is an attribute of software engineering
industry. So you may be not cut out for the industry, not the engineering
itself. Beside the engineering itself, the industry is the people working in
it with a lot of tribal superstitions, rituals, "gods" and "saints", etc. A
kind of weak version of religion. Not everybody fits well or easy.

------
dnprock
\- Do you like to make software projects? Can you write software for your
projects (slow or fast doesn't matter)?

If you answer one No, then you should move on.

If you can answer Yes/Yes, then you should continue. I suggest that you stop
interviewing. Your negative experience is hurting your attitude.

Start with what you know.

\- Does your current company write software? Go help them write their
software.

\- Do your friends work on software projects/companies? Go help them write
their software.

------
CharlesMerriam2
I remember a fun talk by our department chair about the graduate admissions in
Computer Science over the years. The chart fluctuated with booms and busts:
lots of applicants during hype and profit and a few during gloom and
retrenchment. The second line, the surviver (matriculation) numbers over time,
was a flat line.

There are many options in life and computer science is not for everyone.

------
crashbunny
Some people will need to spent more time that others on learning the skill,
but if you love it, you do it.

Search youtube for Neil deGrasse Tyson on dyslexia

~~~
conflicted_dev
That video was great. He spoke at my commencement and it was incredible.

------
Taylor_OD
I think its worth pointing out to interviewers that you experience performance
anxiety. Some might have a solution like letting you do a take home coding
exercise. I would also get as much high quality code on github that you can
share with interviewers that will show you can write code regardless of your
ability to answer questions in real time.

------
icedchai
There are many, many types of software engineering roles. Perhaps you are just
applying to the wrong ones. Maybe you're not a good _programmer_? I can't say.
But even if you aren't, that doesn't mean you can't be a good engineer. You
mentioned sysadmin experience, so perhaps you could focus on a DevOps or SRE
role?

~~~
autotune
DevOps and SRE will still challenge you with bullshit algorithm questions at
most companies, and the ones that ask for practical questions based on what
you'll actually be doing on the job rather than standard algorithm or trivia
questions are few and far between.

~~~
conflicted_dev
Can confirm. 50% of the roles I've interviewed for are DevOps, and they
definitely ask algorithms questions. Granted, I don't think DevOps is very
different from product engineering these days. It's still code.

------
WhitneyLand
You must, at all costs, find a way to realize your actual ability level is
independent of your own mind fucking with you to create anxiety and doubt.

The real question is do you have passion and innate motivation around it? If
you can earn a CS degree and you have the passion then relax. You just need
some time to get the interviewing figured out.

------
robbles
> I can solve most problems correctly given enough time

Have you tried asking in advance of an interview for a few extra hours to do
the task(s)? I think this is a totally reasonable request to make ahead of
time. Plus, any company that thinks a hard time limit is necessary to evaluate
your skills is not going to be worth working for.

------
fooey
Of course not everyone can be anything they want.

Practicing basketball for 8 hours a day for 10 years doesn't guarantee you'll
get drafted to the NBA.

If you enjoy it, recognize your limitations and try to figure out a way to
make money doing it, but don't assume you're going to be a rockstar just
because you put in the time.

------
intellegacy
I think you aren't asking yourself the right question.

It's not about whether you are "Cut out" for it or not.

The most important question is: Are you doing what you want with your life?
And is your current path helping you get there?

Another user suggested, that you might not even like software engineering. Sit
down and seriously ponder that.

------
voidpointer
"Working at one of the Big 4" is not a good way to state your goal. Whatever
yor definition of the big 4 is, they are very different companies with
different cultures and different products. Find the company (from those four
if you want) and product that really excites you and go for that.

------
Apocryphon
Have you considered trying an interview boot camp? As awful as the state of
the industry is for such a thing to even exist, having feedback and mentoring
could be an additional aid over studying and practicing on your own.
Interviews are conversations and not solo HackerRank tests, after all.

------
readme
Instead of preparing for interviews do you think it would help if you instead
improved your skills with algorithms?

Would knowing that you have it down pat make you more confident?

Do you like this stuff? If you don't, you can always do something else like
sysadmin or devops.

------
clw8
If you finished a CS degree with a 3.6, you definitely have the aptitude. What
makes you so sure you had to work harder than your classmates to get similar
results? They could have been burning the midnight oil a lot more than you
think.

------
ktRolster
It took me 6-8 months after college to figure out the job search/interview
process. Once I figured it out, I had no problem.

It sounds like you are running into problems with performance anxiety in
interviews. Fix that.

------
ziikutv
I usually lurk on HN but I just logged into say this because this gets me very
worked up...

Mate, fuck what anyone here says, with enough dedication you can do anything
you want.

With that out of the way, fuck the big 4s as well. Working there imo is
overrated. However, what I would say is you should work on smaller companies
and focus on your career path. If you aren't learning at a company then you
should be leaving. You can always keep eyes on job posting at those big 4s and
develop skills at work or at home that you need to get in.

Just to recap, fuck the big 4s and given enough dedication and hard work
anyone can do anything they want. Its not rocket science. heck you can even
learn rocket science, there are many resources online. Knowledge is
everywhere.

------
heisnotanalien
Your performance anxiety about failing at algorithms problems is making your
fail at algorithm problems. You need to believe. Yeah, maybe you will need to
work a bit harder but you can do it.

------
BurningFrog
Writing software is _hard_ , and far from everyone can be real good at it.

It also takes time to become good at it. I was pretty useless the first three
years of my career.

------
1024core
Not only is it possible. but at a previous job I soon realized that every one
of these people had decided to get together and take over the company.

------
jimjimjim
1) no one starts at the top.

2) you have done enough prep. Get some real world experience.

3) make them want you. Establish yourself.

------
mdip
I'll try to answer your question and provide advice on each of your points but
to your broader question, _yes, absolutely_ someone can be not cut out for
software engineering. The people I know who were "not cut out for it" usually
went to school for CS because "that's where the jobs are" but it wasn't
necessarily where their passions were. Several of them ended up in tech, but
often on the sales or management side, not in software development. Really, if
you enjoy it and want to do it, you can _become_ cut out for it. You'll simply
learn what you need to learn to become successful.

 _\- Working harder than others in college._ I don't find this to be a
particularly useful guide for anything other than your work ethic. You had a
respectable GPA and were willing to spend 60 to 80 hours per week on
schoolwork. So what if someone was able to eek by more easily? Maybe they had
a leg up on you and got into it earlier. Maybe they wouldn't have put in that
time if they needed to.

 _\- Rejected interviews / performance anxiety / bad at algorithms_ I can't
speak to working for "the big 4". I haven't had any interest in doing that,
myself. There's plenty of great jobs out there at smaller companies (including
startups). If you know you're bad at algorithms, start studying. Grab the ones
from interviews that you've been bad at and learn them up and down. Write
example libraries of each in a few programming languages. _Put them in a
GitHub /GitLab/BitBucket repository._ For the languages you're targeting jobs
in, find an open source project in the language that has a good community and
participate. Find a library you wish you had and write it. _Put them in a
repository._

Failing at interviewing at a top-tier company may be an indicator that you're
not cut out to work at one of those top-tier companies. This sounds worse than
it is. Maybe you wouldn't thrive in that environment as much as you'd like to
thrive? Wouldn't you be happier with a job at a smaller outfit where you can
grow, or maybe just a _different_ outfit? If Google/Facebook/whomever else you
consider top tier is proving too difficult to get in to, look elsewhere.

I mentioned the whole repo thing and this is advice you'll find all over
Hacker News and elsewhere. It's not an industry fairy tail ... it works. In
your _cover letter_ , specifically mention your experiences with the languages
they're looking for and link to relevant projects. In your resume, provide a
link to your GitHub ID or relevant ID on another site that has a list of your
projects. If you're lucky, they'll have already looked over some of your code.
But don't count on it.

Having that available gives you the opportunity to creatively _deflect_ those
technical questions. Remember, they're asking you to demonstrate your
knowledge. Just because they gave you a whiteboard doesn't mean you can't
demonstrate it differently. Three years ago I took an interview[0] and was
asked something algorithmic around multi-threading. I had written a library in
a private repo that handled message passing between two applications running
on the same machine in a thread-safe manner and was directed to the white
board. I said "I can do you one better"[1] and mentioned a library I had
written for thread-safe in-memory message passing between two applications
running on the same machine where I not only had to solve that problem, but
had to do so very performantly and had to address a number of other corner
cases. The interviewer let me log into my BitBucket account, plugged his
laptop into the meeting room's TV and after a quick apology about the code
quality (it was actually pretty good, but not perfect which was why it wasn't
public, yet), I showed him the solution. The upshot was that the _entire rest
of the interview_ was me walking through this code[2]. Why did you use a Mutex
there? Why a ManualReset there but an AutoReset there? It was a _lot_ of fun.

 _1)_ Yes. When the benefit of getting into a top tier company outweighs the
grief in trying to get there. Maybe you're there, maybe not? Ask yourself
_why_ you're focusing on these specific top-tier companies and find out if
there's a company not currently in your list that may fit those criteria would
be my only advice here.

 _2)_ You're already doing this. Post mortems are a good idea. Another thing
you can do is join some meet-up groups that have professionals in the parts of
the industry you're trying to get into. After you get to know some people,
you'll find folks who do regular interviews. Ask them to help you. I used to
give a _lot_ of interviews and I have volunteered for interview prep many
times. A lot of anxiety around interviewing comes from social anxieties in
general. Joining a meet-up group will give you practice at introducing
yourself and making a good first impression. Walking up to random strangers at
the super-market and striking up a conversation works, too (I've done this as
practice, my self).

 _3)_ My last two answers are my best advice. A mentor would be helpful, but
it doesn't have to be such a formal mentor/mentee relationship. Get into some
user groups/meetups and meet others in software development who are where you
want to be. Make friends and those friends will become your mentors by default
if you're willing to seek advice, ask for help, and accept hard observations
you may not want to hear.

And, most of all, hang in there. It sounds like you really _like doing this
stuff_ and _want to do it_. You're already ahead of most of the people I used
to interview. Granted, it wasn't at a top-tier company (though we were a huge
internet company) and it wasn't for the sexiest of development jobs (because
that kind of attitude would have had you hired pretty easily if you were even
close to qualified where I was at).

[0] This interview found me. I wasn't looking at the time but my dad's advice
of "never turn down an interesting interview/opportunity" stuck in my head, so
I was _very_ casual in this interview. That turned out to work in my favor for
whatever reason and I ended up being offered the position at a salary figure I
had never expected to get. I didn't take the job because it required moving
out of state and that wasn't an option for me at that time.

[1] This sounds really arrogant and I'm embarrassed to say that those were _my
exact words_. It could have _easily_ been off-putting to the interviewer and I
knew that, but because of the last footnote, I was overly casual and confident
(if I didn't get the job offer, who cares, I probably can't take it anyway!).
The funny thing was, this group of people went from extremely formal in the
beginning to casual by the end. I felt like we were having a discussion like
I'd have with other developers over beer, not like I was having my knowledge
put to the test and when the "thanks/hand-shakes" happened at the end, one of
the guys said something along the lines of "Thanks for your time, I really
enjoyed this interview" to me, which stood out since I can't remember an
interview experience that equalled it.

[2] I picked a perfect library and I ended up using this library in two other
interviews as example code. It was a tricky bit of logic where you had two
applications, each in different security domains with both responsible for
processing some data and one responsible for requesting and writing the data.
They used MemoryMappedFiles to share the data between them and had to manage
situations where either side may not be in the position to be able to receive
the data, so it covered a number of scenarios neatly in one library and made
message passing with these odd requirements a simple matter of a few lines of
code wrapped in whatever threading construct one wished to use.

------
kafkaesq
_1.) Does there ever come a point where it just isn 't worth it to continue
trying to be a software engineer who can get into top-tier companies /
projects?_

Maybe, though I don't think you're at that point yet. More specifically,
though, you may do better to simply let go of this idea that you need to join
a "big four" (or "top-tier" company in any other sense) in order to feel like
you've reached your potential (or are on a safe track to it). Why? For one
thing a lot of people who "make it" into those companies report back that
(apart from the prestige) the experience just wasn't as rewarding or
interesting as they thought it would be.

But even more fundamentally: After all, you have to remember that _none of
these companies were anything like what our image of them is now, back when
they started_. And they certainly weren't "the companies to go work for and
make a name for yourself", back in their very early days.

Point being: rather than chasing after the coattails of what other people have
done (and which society later deemed to be great), you may do better thinking
up something _you can do_ that will great, and make it your goal to bring it
into reality. And by definition, its potential greatness may lie in the fact
that it just isn't seen as "great" by a critical mass of people yet (or
because it simply raw and unfinished, and waiting for someone to come along
and provide fresh interpretation and perspective -- someone like you,
perchance).

BTW, there's an obliquely related quote from Jamie Zawinski about running
after "success", and where you end up as a result:

 _And there 's another factor involved, which is that you can divide our
industry into two kinds of people: those who want to go work for a company to
make it successful, and those who want to go work for a successful company.
Netscape's early success and rapid growth caused us to stop getting the former
and start getting the latter._

[https://www.jwz.org/gruntle/nomo.html](https://www.jwz.org/gruntle/nomo.html)

Things are rather different nowadays, and I wouldn't say that working for
Google or FB now is anything like working for the ticking time-bomb that was
Netscape in 1999. But, existentially, I think there's a similar lesson to be
drawn from being obsessed about joining something "great" versus... _doing_
something great.

And what's interesting about JWZ's is that, while he appears to have made out
well enough for the years in the tech industry -- where he ultimately
succeeded was in defining "success" on his own terms, even if it meant doing
something completely different (running a music venue), even if was guaranteed
not to make him rich or "influential" as certain other people with whom he
also worked at Netscape, and who we hear a lot more about today.

 _2.) How can I find some positive reinforcement in interviewing / interview
prep even if I constantly get rejected? I do perform post mortems on every
interview in order to find areas to improve._

Fundamentally, we can only find positive reinforcement from within (and from
helping others) -- not from other people's _evaluations_ of us.

But in regard to interviews, it may help to remember that these are largely
bullshit. Basically we're in the midst of a long-term speculative bubble in
regard to the supposed potential of certain cargo-cult interviewing techniques
(hashed out in the past few years in folkloric fashion) to assess people's
inner qualities, and predict their potential for "greatness." Which basically
seem to operate on the principle of, "Well we asked such-and-such questions
before. So let's ask 5x as many, 10x harder. That'll get us people 50x
better."

All of which are fundamentally, hopelessly flawed: not (just) because the
questions are silly, and increasingly have become tests of rote memorization.

But because you don't do great things by "being" great, or simply by finding
"great" people. Great things are accomplished through great _ideas_ , and from
the courage (and strength) to pursue them. And because you're pursuing
something _you_ believe in -- not some random goal that someone else put in
front of you.

Focus on these qualities, and you'll have a much better shot and ending up
where you really want to be in this life.

------
projektir
Disclaimer: I have never worked for a Big 4 company, and the only interviews I
had with them were during college with Amazon, and I've failed both of those,
either in the 1st or the 2nd round. So I'm not a success story. That being
said, if I were to set this as a goal, I know what I would do.

> Is it possible for someone to not be cut out for software engineering?

The answer to such a question is always 'yes'. But there's a lot of danger in
assuming that you are the someone. This is betting against yourself. And
there's only one of you in the current reality state. Don't bet against
yourself. That is not how you should think.

Definitely don't bet yourself in this instance if you already have experience
successfully getting multiple jobs...

What you should investigate instead is what do you want, and how much you want
it. Consider the various pros and cons and how they make sense to you. How
much do you really want to work for a Big 4 company? How do you feel about
some of the potential tradeoffs (i.e., time spent on learning algorithms and
interview questions)? Same with the software engineer question. How much do
you want to be one? Why? What are the tradeoffs?

[Note: not all tradeoffs are "true" tradeoffs, i.e., that you'll loose
something. Learning algorithms may make your mind sharper and help you in
other areas. But it also means you can't spend that time on, say,
relationships, entertainment/hobby, or even something in the health
department. There's nothing wrong with tradeoffs and don't scrutinize them too
much but still be aware that nothing you do is free]

The problem with the question of "am I not cut out to be a software engineer /
Big 4 employee" is that no one can answer it, including you. You will, most
likely, never ever know unless you reach some success point where you can
definitively say yes. You can't just base it on things like being rejected by
many companies or struggling in college, because that already implies those
are reliable proxies and that's a really shaky assumption. I had trouble in
college, too. I graduated with a 3.0. It doesn't seem to mean a thing, other
than what it literally means.

> So far, I have interviewed for and been rejected by no less than 10
> different roles. I was also rejected by approximately 20 companies during
> college. I always fail during tech portions.

This is neither here nor there. There are a lot of factors that could go into
something like this, it could be way too many things. Not enough information.
The only thing I'll say is try to develop a model of what kind of companies
you are not a good fit for, so that you don't spend too much time on them, and
avoid wasting too much time on unlikely pathways unless you really want to
work for some specific companies. I would often apply to very few places, get
offers from all of them, and then choose among that. Applying to lots of
companies indiscriminately was both stressful and yielded nothing. Also, don't
be discouraged from applying to places that have requirements you don't meet
but are nonetheless interesting to you.

Also, field, location, frameworks, what the company lacks, how the company is
doing, etc., all affect your chances.

> performance anxiety

I got rid of my performance anxiety mostly through a major philosophical
shift. I don't know if this is a topic that one can give "simple" advice on...
in the context of interviews, for any given interview, assume that you will
pass it. Just assume this, without making anything depend on it being true.
Any time something in the interview goes "wrong", just assume it doesn't
matter. Don't think about how you "should" know the answer to some question,
just give your best answer or say you don't know and move on and do not assume
that this jeopardizes your interview.

Whether you did something "wrong" during the interview, you can figure that
after it is over. And, remember, they're just interviews. You do not owe to
the world to pass them, they don't say something insidious about you, you're
not a worse person for not passing one, nor are you a worse software developer
for not passing them. You interviewing for your benefit, not theirs or anyone
else's.

> If my goal isn't an impossibility, how can I efficiently progress towards
> it? Would a mentor be helpful?

Assuming you do decide that getting into a Big 4 company is a fairly high
priority goal for you (and, really, even if it's not), the first thing I would
recommend is making sure that you're focusing about progress and results as
opposed to time or work. You want the most productive results from the least
amount of time and work. All work should be justified.

Essentially, you're trying to learn how to solve algorithms quickly and under
pressure. As with any learning tasks, this is a fairly big and complex topic
that's not well understood. This is where you want to apply your learning how
to learn skills and try to pool whatever intelligence, intuition, and
knowledge you currently possess. I can write, well, a lot on this topic so
I'll try to keep it relatively short: try to figure out what is needed and
what is missing in your head, and try to find a way to process your learning
style and what kind of things give you trouble. Grinding on a problem over and
over actually probably benefits more brilliant people more than the slow ones
among us, since the brilliant people can make their brain form all the
connections, we actually need to trace what goes where.

Maybe you have a poor memory and you need to organize the algorithms you're
learning. Maybe you're not used to writing code a certain way and you need to
do that. Maybe you should take a stab at some weird language to free up your
brain from misconceptions. Maybe you should play a video game to see some
pattern you've never paid attention to before. Maybe you should get some sleep
and stop worrying about things for a week. It's a bit of a strange process at
times but it's not entirely hit or miss and if you are very attentive to your
brain and you do not waste time shaming and guilting yourself, you can
discover a lot of interesting things about how you work, whether or not you'll
make it into that Big 4 company.

I can write more about this but it's not going to fit in an HN post.

Just, don't bet against yourself.

------
ufmace
Is it possible for somebody to not be cut out for software engineering?
Absolutely.

Are _you_ not cut out for software engineering? You've already been doing it
for 1.3 years, there's no reason for you to think that.

Are you not cut out for being a high-quality professional? That sounds like a
yes. But it's all about your mindset, not your skills. Your skills are just
fine, but your mindset is much more important.

You need to ask yourself what you want out of your career. I say that
rhetorically because It's pretty clear from your writing that what you're
looking for is an external perception of status. The thing about status is
that the people who chase it above everything else will never, ever get it,
and it isn't worth as much as you think. Who exactly are you trying to impress
with this status that you're looking for? If you manage to get it (not
likely), and these people are actually impressed by it (even less likely),
will you feel good about that for more than 5 seconds? I'll let you guess the
likelihood of that.

The thing about jobs perceived as high-status is that so many kids are
desperate to get them that any one person will have a very hard time getting
them, and the people who do get them tend to get treated like dirt, because
the companies know very well that there's a line of people down the block
ready to replace them if they displease their management in the slightest way.

You're not gonna get that kind of status with your job search. What you can
get is a solid, upper-middle class salary, a good work schedule, and respect
that you have earned with your productivity from your co-workers and
management. If that's enough for you, you can get a job like that very easily.

I never got a CS degree, and have never really gotten good at the fancy
algorithm type of problems that some tech companies like to use in interviews,
and that you seem to be sweating over. Yet I just finished a job search, got
multiple good offers at once, and accepted a good job with a solid company.
How? I never bothered trying for any of the big-name companies, and am
perfectly open about what my skills are and aren't. There are tons of good
jobs out there that want people that can solve real-world problems instead of
academic exercises on whiteboards.

And that's where real status comes from. Having a solid job that you're happy
and successful at is real status for adults. Just wanting to have Google or
Facebook on your business card is for children.

Not that there's anything wrong with working for the Big 4. But do it from a
position of strength, i.e. you're already a strong, confident professional
with a lot of value on the market, and they better give you a good offer and
not jerk you around on the interview process because you have plenty of other
potential employers to choose from.

------
nilved
Experience can be a replacement for formal education but you need one or the
other. I think that anybody can work at a big 4, but it won't be your first
job unless you went the formal route.

------
beachstartup
you should check out reddit.com/r/accounting

terminology like "big 4" is quite telling. you are competing with people who
do not view this industry as a stepping stone to high social status, and that
is why you are losing.

