Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Any other self taught devs terrified of interviewing these days?
195 points by ramesh31 10 days ago | hide | past | favorite | 212 comments
When I got into this industry 10 years ago, the world was a completely different place. Bootcamps weren't a thing. Computer Science programs were still something just for the nerds. And the industry was almost entirely autodidacts like myself who grew up immersed in technology and did it for the joy of it. Fast forward a decade, and now literally everyone and their uncle wants to be a software dev, and CS programs are churning out hundreds of thousands of graduates. The thought of competing against someone credentialed with 5 years experience vs. myself with 10 years and no degree, feels hopeless. It almost seems like the path I took back then would be completely impossible today.





I am an old timer, back in 1978 after getting my PhD, I interviewed with a bunch of companies. One was Bell Labs. I remember the recruiter, did not make me take a test on programming or anything. He just asked me to explain the most interesting project that I had worked on. I told him about a music synthesizer chip I had designed... after about 20 minutes of going on about it, I stopped and said sorry, I went on too long. He just said, nope, you are exactly the type of person we are looking for and hired me on the spot.

I think there is a piece missing now days, I could just be an old fart that does not know what I am talking about (probably), but it's the idea of finding someone with passion, even if they are not the slickest programmer in town.


There are a couple of things that make this kind of tricky imo, even as someone who generally wants to find passionate people when hiring. Over my career though, these things have led me away from using that as my primary motivator:

The first is that there are just a lot of people out there nowadays who can convincingly talk about programming for an hour and still somehow not be able to code their way out of a paper bag. Frankly, though, this is really rarely obviously self-taught people. It's usually people who have degrees but managed to kind of skirt around doing actual work during their degree, or who have advanced degrees and it's just been too long since they did much practical coding.

At the first job I had where I was involved in hiring we started with a talking interview and then did a small coding test (which was: write a program that outputs some text of a particular format, take as long as you like, come get us when you're done or if you have questions). Eventually, we had to flip the order around because we had so many people come in who seemed really promising and then literally couldn't write a loop in a language they chose.

The second is that just selecting for passion also selects for a bunch of unrelated traits like free time, wealth, etc. There are plenty of really brilliant coders out there for whom it's just a job. As with literally any job. Many of those people don't really have the luxury of having a history that's littered with working on things they were actually excited about.

In the end, the social forces that created bell labs and the general sense that coding is a thing people do because they're passionate about were/are probably temporary, and programming is likely to become more and more "just a job" for most practitioners. And there shouldn't really be anything wrong with that.

All that said, I do think people pass up programmers with potential a lot. Everyone wants someone who can hit the ground running, but in my experience a lot more mileage is gained in the long run by hiring people who grow into their role. I think to really find these people you often have to go deeper than just looking at their passion projects. A good coding session can tell you a lot about how they think and communicate. And that's where you find people with potential to reach beyond their history.


Let me give you one more example from my experience (after the labs), where I was on the other side of the table where I was the hiring manager, I was up against it on a project and needed a super star programmer. I interviewed a bunch of people and they all had awesome credentials and did great in the interview, except for this one guy. He stumbled and could not answer any of the questions. I was struggling to make a decision but was sure he was on the no go pile.

The next day he sent me and email, in it he had every single question I had asked him verbatim (I did not see him taking notes and I do not think he recorded it) and he had every single answer perfect and then some. He said in his email he got nervous in interviews but said he is good at researching things and said he could solve any problem if I gave him a chance.

I took a risk and hired him, he was fantastic and pull my irons out of the fire. He was one of my best hires ever. So, you never know.


I love this story. I wish it was easier to hire for that. I've had candidates that solidly passed my gut check but got vetoed on technical calls because of trivia. Our company has a format for interviews that has worked well for us but I'm positive we've lost out on potential because of where we set the bar. I go into every phone screen and interview with the intent to hire the person speaking with and I try to make that clear. I think this has done well for me and the candidates because we both have the same goal.

Yup, one reason why I am no longer a manager, I switched tracks to research many years back. I felt it had become untenable with so many other people they started inserting into the process it was no longer really my call who I hired.

Also, I sort of shortened the story above, but the other intangible thing I saw others maybe would not have picked up on is when I gave all the candidates a tour around our set up, we had these Symbolics computers to do some back end AI stuff (early days stuff) and we needed a Symbolics slayer. I just saw the look in his face when he saw those things, you could tell he was truly excited about working on them. They all said they wanted to work on them of course but just how he looked at them.... I just felt like that was going to make a difference.

In today's world it would not fly if I told HR that I was choosing this guy because he looked at the computer equipment they way a dude looks at a sexy lady.


> In today's world it would not fly if I told HR that I was choosing this guy because he looked at the computer equipment they way a dude looks at a sexy lady.

I'm pretty sure that you can imagine the sort of problem you might be setting up for the organization. If not, I'll spell it out: if you select candidates based on whether they are eye-fucking the hardware, you may just end up with a bunch of technosexuals on the payroll who aren't necessarily as good at their jobs as you hoped they would be.


I definitely really like it when people come back with more thoughts after an interview. Accounting for nervousness is always a difficult thing to do, but important. Definitely the stories in this whole thread about people who were told they weren't "confident enough" imply people not taking this into account.

On the other hand, I was once involved in hiring someone who we thought was nervous but it turned out the signs of nerves we were seeing were probably DTs. They didn't last very long for mostly unrelated reasons, though it's possible we could have done better by them as well. Still, it's sometimes hard to parse out what even looks like nerves in an interview because it's usually treated as such an adversarial process.

Mostly these days I try to focus on making it feel less adversarial when I interview, to try to get people over that nervousness and treat it more as a conversation. It's amazing how far you have to go to convince people you're not trying to trick them though, because of how many standard interview questions are (intentionally or not) trick questions.


You said the magic word: passion!

For some reason they confuse passion with puppy-love or enthusiasm and they become either sarcastic with you or lose interest immediately, they interrupt the interview, and let you go without any warning.

Nowadays you need to go through SWAT and military training to be considered a candidate to get an email reply.

To me this is a clear indication that the market is extremely saturated and something big is about to happen...there's no other logical explanation behind this madness at all levels and categories of jobs.


As a long time dev with "passion", it's often my passion that has got me in trouble on projects. Having people on my team who are doing it just as a job for the money have helped prevent me from making mistakes.

There is a long history of devs choosing a tech because they want to learn a new tech or expand their skills instead of the right tool for the business needs. I'm guilty of this.

At the same time, a passionate employee put on the right task & managed well is a great asset. Like everything in software, "it depends", "trade-offs"...


I talked about a fullstack node project I was working on during an interview last summer. I went on for 20 minutes maybe explaining why I used the tech that I used and what I planned to do with the project. It took up the scheduled time and he said, thank you, Mr. 7speter. I got a timid little email from the recruiter saying they were pursuing other candidates.

This was for a customer service position.


Speaking as someone who has been on the other side of the interview table for a customer service position, you probably focused on the tech side a little more than the people side. It sounds like you were probably over qualified as well. Usually we were looking for someone who would stick around for a while after they were trained.

Just something to consider. I hope your job search worked out or is going well.


>people side

Its a fullstack portfolio project built for the sole purpose of me learning crud. Its not going live, theres no people side. The manager was raising concern anout my experience as a developer


Just a random person interjecting, but, you don't understand what CRUD is? Or how to execute? Why did you feel the need to build an entire fullstack application just to practice it? When there are plenty of materials available online, further, it's just not the kind of thing you need to wrap an entire app around to learn. It does sound kind of weird, to be honest.

> This was for a customer service position.

Nice


One of the questions I ask candidates is what text editor they prefer. I don't particularly care what they use, but I do care about whether _they_ care. I think it touches on the passion thing: do they care enough about what they do to invest time and effort into looking at the best tool that suits them...

Eh. My favorite editor is Vim. But right now I'm writing code in Java. Guess which editor I'm not using much lately?

No matter how awesome your particular hammer is, it should be set aside when you're working with screws.


Never fear! You can still use vim keybindings (probably) :) .

> Never fear! You can still use vim keybindings (probably) :) .

IntelliJ has a good plugin for vim key bindings.

Vs code has one, but it's sufferable at best.

It's my experience that these IDE plugins are more insufferable the more power user you are. Vim is far more than asdf and :wq.

But I digress.


IMNSHO, the IdeaVim plugin is worse than useless.

Even the most basic of commands, like '' or u, never do what you expect (i.e, what they should do to be consistent with vi/vim).

And the more compelling features, like q:, are simply not implemented.

That is before even addressing the more minor quibbles, like the fact that when your search wraps around the end of the file, you don't get anything in the "status bar" indicating that fact.

Really, these people should be ashamed of themselves for putting "vim" in the name of this plugin.

On the other hand, in a previous life I had tried a paid ($100) non-free plugin for Visual Studio, and it was much much better.


Yeah, I could wax rhapsodical about my Emacs config and the HUGE productivity boosts I get by using and programming Emacs. But let's be real. I'm likely to get one of two reactions.

If the interviewer is 50 or so, or older: "Emacs... people still use that?!"

If the interviewer is under 50: "Emacs... what is that?"

Either way I'm going to get dinged for clinging to a clunky, obscure editor that's not even from this century.

So next time an interviewer asks me what my favorite editor is, I'm going to tell them VSCode, because it has the best tooling and most developers use it.


I’ve been using Emacs since the early 90s. I recently started developing in TypeScript for a big project. Found out about TIDE and company-mode and it’s been absolutely mind blowing. I now have all (of maybe most?) of the capabilities that my intelij colleagues have but frankly I feel I’m way more efficient.

Bringing emacs into the 21st century with this technology is life changing. Still run it in full screen terminal mode.

My team can’t comprehend how I can ssh into a box that’s running tmux which had all my shells a full-screen eMacs instance, tons of context, history etc all waiting.

I can reboot my laptop and not loose any of that. I can ssh in with tmux and I can instantly pick up where I left off. And from any host. My laptop, work desktop, etc.


under 50; vim for life

but also, emacs is pretty cool but I figure i'd mess around with elisp way more than actual programming


That's the real genius move, avoid config sinkholes by forcing yourself to use vimscript

precisely; i don't even consider using vimscript a possibility.

I think even if candidate cares, they'd be afraid that you judge them on the choice. And the safest answer is that they don't care.

Would you ask them their favorite programming language, and if they say Perl very passionately?

Also, it often depends on the ecosystem.


I never got asked this question, but I tend to show off my customised settings by not touching the mouse once in a live coding test ;)

no point in hiring for passion if the job itself is gonna be hardly related to what's someone is passionate about, it's going to be taking tickets defined months in advance from PM who is no longer there and composing existing pre-made components into a sad little pr

In '01 I got a job with very little experience under my belt. I interviewed at a small company with a website, and they wanted to hire their very first developer. They had no idea how to evaluate me, so the CEO sat me down, logged me in as root, and told me about two bugs on the site. I solved the bugs, and I was hired. Times have definitely changed.

Favourite project is still my favourite interview question, on both sides of the table. I love hearing what someone is interested in or passionate about, and I have plenty of interesting projects I can talk about.

Only people I've been enthusiastic to hire have been people who were enthusiastic about technology. Go figure

We should hire plumbers this way. “Tell me about your favourite plumbing project” for 20 minutes.

Well, "worst plumbing disaster" followed up with "so, what lessons did you take away from that" works, and the coding (or ops, or security, etc.) equivalent works just as well.

Having finished your PhD may have also helped... ;-)

Sounds like you were lucky and ran into the right HR person.

I'm not only terrified, but petrified...literally!

After getting rejected for years, I have decided to stop from even trying.

It has cost me a lot of pain, physical and psychological, not to mention the emotional damage.

You know, panic attacks, stomach ulcer, colitis...the whole package!

I have been telling this for years, but people think I lost my mind :/

I'm fortunate enough that more and more friends that are around my age (40+) or even younger have noticed the same thing and don't know what to do.

I have no idea how to interview anymore; whatever I say it's either wrong or not enough.

  * If I speak more than they want, I'm wrong.
  * If I say near nothing, again I'm wrong.
  * If I say EXACTLY what they want to hear, they go "meh".
  * If I show my skills, I'm considered a smart ass.
  * If I don't show my actual skills, again I'm considered an asshole for hiding my knowledge from them, therefore I'm considered untrustworthy.
...I could go on and on and on and on, but this is your "Ask HN", not mine LOL!

Feel free to check my submissions and my comments on related topics and you will find you are not alone in this.

Virtual hugs my friend, we are together in this.

Update: I forgot to mention that I have a CS diploma which is basically worthless...trust me, the toilet paper you use has higher value than my degree, HA!


>I have no idea how to interview anymore; whatever I say it's either wrong or not enough.

Consider it like dating. It doesn't matter what you say as much as it matters whether or not you're compatible.


Dating can be easier, at least for me; with interviews no one can figure out how to make it work...

The way I like to tackle this is to interview sporadically, at least every other year when I have a stable job and I'm not actually looking. It takes the pressure off and if nothing else, can be useful to just practice my interviewing skills. When they ask why I'm looking, I tell them the truth... that I'm happy where I'm at but just looking around and that you never know what opportunity is out there. I don't see this as a question loyalty. You don't owe the company you work for anything any way. But it's a matter of you making life choices on your terms, and when you deal with the type of anxiety that I do, you have to take control lest it control you!

You’re right!

I advise my direct reports and people new to work that you should seriously interview every six months.

As a manager, the one-to-ones we have when my people are interviewing are much more goal oriented and concrete, and give me actionable information to help them get more out of their career.

That typically helps them, our team and our shared mission. Sometimes it leads to departures, but they and I are conscious about why - we can’t always give them the work or the opportunities that they are seeking. Sometimes it’s remuneration; it’s either a useful datapoint which can be matched and used for salary adjustments through our org, or a unicorn offer which we can’t match in cash, but which offers a discussion about growth and maybe their own priorities.

In nearly all cases it’s just a huge win.


It's really interesting to me that you aren't getting more in trouble with this just due to salary alone. I know Netflix follows your approach and I think it's fabulous. However, Netflix also doesn't have paybands and their strategy is to see the other offers as the candidate's true market value and then pay them slightly above that. If you cannot do that, I would have assumed this to be a certain way to lose your top employees quickly.

Once salary has reached a certain point, the total compensation, benefits and professional satisfaction or CV opportunities as well as healthy work/life balance, in addition to social environment - all start taking on more weight.

People do leave for pure pay concerns, but it’s not that simple for many.

Also: this strategy might not work so well in places where future financial security isn’t so assured, as where I am. Thinking about the USA or some developing countries where I grew up - piling up capital is so critical to survive surprises ranging from illness to state failure, so ymmv.


Good point. Now that you are pointing this out I see this reflected in the behavior off my friends. I have friends in the US who make very high salaries but are much more focused on that and piling up money for retirement as quickly as possible whereas my friends in Europe are earning much less but are prioritizing happiness. At the same time some of the offers I've seen for the same people at different companies for the same person differed by significantly more than my European friends' entire compensation.

I once interviewed with a company that I really liked. And they liked me. They were doing really weird abstruse AI shit, heavy algorithmic stuff. The head guy was a Ph.D. in whatever field they were in, and I interviewed with him and some really good engineers. The questions they asked were HARD algorithmic questions, right up there with Google. I was a nervous wreck throughout.

They passed. They were kind enough to offer feedback. They said they liked my responses and felt I had the right skill set, but I didn't sound confident enough. Which is just... how am I supposed to feel, in an interview deliberately designed to be challenging, going up against the top minds in their field? Am I supposed to wear a douchey, smarmy grin throughout this process and act like this whole deal ain't no thing? Maybe I really wasn't smart enough for the job because they're looking for someone with the smarts and background to solve their problems without breaking a sweat.

Again, if you are not the exact perfect cinnamon roll of a candidate the company is looking for, do not expect to be hired.


It’s all about shucking and jiving and I fucking hate it. I’m like you: a nervous wreck for interviews and tests. I’m capable as fuck /when I have time/! Just not with someone pressing and judging me.

Sounds like you dodged a bullet to me.

You have a web portfolio, a github account with a few open source projects, and an active linkedin presence?

That's what lands me jobs.

no tech degree. just a couple classes in statistcs & databases under my belt. other than that, self-taught via online resources (videos, ebooks, forums, chatrooms)


  * Not everyone is for web development, even though I'm very fascinated with back-end development and solving sophisticated problems that are considered unsolvable. I have a Computer Science degree (a 2-year diploma, which basically is nothing comparing it to a bachelor's or a master's) and still cannot please them.
  * My important projects were in-house for certain clients under NDA, which ties my hands and cannot demonstrate any of them.
  * I had LinkedIn account and closed it after getting spammed countless of times. I have informed the company at that time and instead of fixing my problem, they would start sending me their own ads for Linkedin Learning courses instead LOL!

I hope you don't take this the wrong way, I mean it in a good way, but I want to point out that reading this comment you come across as someone who is difficult to work with. If you gave me that impression in an interview I'd probably pass on you too, no matter how great your technical skills are. The most important skill for me is how you can work in a team (what education you have isn't at all important). I'm not Google or Facebook, but there's a million people like me When I ask you to tell me about your experience, I understand that you can't tell me all the details, but even with an NDA you can tell me roughly what you did. Maybe if you worked on a secret project for Apple that hasn't yet launched it would be different - but if you gave that as an answer I'd understand and move onto other questions. If you just said "it's under NDA" I'd assume you are trying to hide something.

Who cares if LinkedIn wants to spam you? The only purpose of it is to help me look attractive to potential employees, so I keep it up to date but don't pay any attention to it. I turned off all email notifications and they don't email me, but if they did I'd just set up a filter. I get hundreds of recruiters spamming me, but that's just what recruiters do. I ignore them and get on with my life.

Interviewing is a skill, and it's something you can learn, so focus on that. Apply for jobs that you don't even care about just for the interview experience, maybe you'll get an offer and decide to take it :-) Skip FAANG or whatever requires you do 7 technical interviews where you reverse red black trees of doubly linked lists, go for smaller companies where the interview is typically just a few informal chats.


> I hope you don't take this the wrong way, I mean it in a good way, but I want to point out that reading this comment you come across as someone who is difficult to work with.

I am a very difficult person; I am diagnosed as HSP and have characteristics of autism.

> If you gave me that impression in an interview I'd probably pass on you too, no matter how great your technical skills are. The most important skill for me is how you can work in a team (what education you have isn't at all important).

That's good to know; that helps me clarify a few things in my mind and I should try to find jobs that I could work solo, if possible.

> I'm not Google or Facebook, but there's a million people like me When I ask you to tell me about your experience, I understand that you can't tell me all the details, but even with an NDA you can tell me roughly what you did.

I give them enough information to get a rough idea of what I have done, but cannot show them the whole project nor the names of the companies; but I do let them know what type of architecture I have designed and implemented for each project.

> Maybe if you worked on a secret project for Apple that hasn't yet launched it would be different - but if you gave that as an answer I'd understand and move onto other questions. If you just said "it's under NDA" I'd assume you are trying to hide something.

I have explained above how I handle it.

> Who cares if LinkedIn wants to spam you? The only purpose of it is to help me look attractive to potential employees, so I keep it up to date but don't pay any attention to it. I turned off all email notifications and they don't email me, but if they did I'd just set up a filter. I get hundreds of recruiters spamming me, but that's just what recruiters do. I ignore them and get on with my life.

Not all people like such thing nor can I handle social media; it affects me emotionally and causes me symptoms of severe sadness to the initial state of depression.

I had to look for my mental health to stay safe. It's not a comfortable feeling seeing countless people being "successful" with how many certifications, masters, and PhDs; it made me feel the last person on earth, like a complete worthless human being.

That's why I had to close it down.

> Interviewing is a skill, and it's something you can learn, so focus on that.

I have tried for 2 decades now. I fail miserably with interviews.

The way I function is first knowing the person I'm about to talk to so I can be stress-free. I know, such thing cannot work with an interview process, but what can I do? It's not something I can change forever...that's how I have been my whole life!

> Apply for jobs that you don't even care about just for the interview experience, maybe you'll get an offer and decide to take it :-) Skip FAANG or whatever requires you do 7 technical interviews where you reverse red black trees of doubly linked lists, go for smaller companies where the interview is typically just a few informal chats.

Currently the market is limited where I live and they have high demands and expectations.

I wish I had more professional experience, but I don't I'm afraid.


>I get spam from Recruiters** on LinkedIn

Spam back. Recruiters contact me-- that's 95% of the reason I am on LinkedIn: So potential employers can find me.

Now I've had Amazon, Meta, and Google contact me. Amazon I worked with as a consultant so I was in their system. a Meta recruiter found me on LinkedIn. and I applied to Google and a few months later they reached out.

In call cases, they've viewed my Web portfolio, Github profile, and LinkedIn page.

This is "Marketing".

It's one thing to have "Skills". But if no one knows you have skills, then you must market yourself in order to use the skills in the course of working for others.

Skills + Marketing => Get job => Be productive => Build career & Make money

But you can't do it efficiently without both Building Your Skills and Marketing Yourself.

** Regarding Recruiters on LinkedIn: I simply use a text expansion tool like Espanso ( https://espanso.org/ ) to paste a message to them, usually something like this (Note: this is a "strategy" just like marketing. For any problem/challenge, develop a strategy to tackle it.):

Thanks for contacting me! Unfortunately since I am contacted by <insert some number here> recruiters per week it is not feasible to meet with them all.

Before we meet, could you please tell me:

-> Who is the company? (optional)

-> Is the role 100% remote & am I permitted to live outside the USA?

-> What is the salary range?

-> Is the role for a Full Stack Javascript (NodeJS, ReactJS, AWS --> my areas of expertise (Learning React-Native currently))?

-> What steps does the interview process involve-- How many steps, What is involved in each step?

-> Do you have a full job description you could send?

Here's my resume.

Thanks, MyName -- https://www.MyWebsite.com/ https://www.github.com/MyProfile/ https://www.gitlab.com/MyProfile/ https://www.linkedin.com/in/MyProfile/


I recently went to a virtual meetup for help on a project and the organizer got mad at me for using a tutorial to scaffold my project and called me out on the call.

I was so frustrated by the ridiculousness that I just immediately signed off and left the meetup group and discord.


Oh I have a better story! :D

An HR called me after a 1 and a half years I originally applied for a C++ position at a FinTech company to ask me whether I'm still interested in it.

I replied "of course I am!" and she asked me to send her my resume, updated.

As soon as she received it, she immediately replied back "but here says you are an Assistant Systems Administrator; how about to arrange you another position that is closer to what you are currently doing?".

I was like "WOMAN! Read the darn line after what you read that says 'Teaching assistant (C++) during office hours', I have the necessary experience! Are you playing with me now, why did you even call me in the first place?!".

I nearly exploded from my nerves and she didn't like it.

She started shouting at me and closed the phone.

I checked her name online; lo and behold, the very first result Google returned was her (age 23) thanking an Anger Management Center for talking courses how to handle her wrath(!) with annoying customers.

I was speechless! You let a young, fresh graduate without previous experience to handle the most difficult department of your work...at a freaking FinTech company that deals with billions of dollars at a global scale?

Things have gone very wrong at so many levels...GLOBALLY!


> I nearly exploded from my nerves

Why? Why not just calmly explain the situation? Why let your emotion get the best of you?

I saw you disregard someone else's advice as well earlier, I think you're forgetting that you have to mould yourself around what the market wants not the other way around.


Let me give you another perspective: you messed this one up. In multiple ways. Maybe the HR person wasn't great or professional, but you did a wide range of things that sort of demonstrated that the company might not have been a good fit for you. I'm trying to say this in the nicest way, but I see multiple red flags that would get you exited from interviews at a wide range of professional companies, and strongly suggest you revisit how you approach these sorts of situations.

So... you got angry at her and yelled, and then got more angry because she yelled back? Forget qualifications, I wouldn't have hired you either.

Thank you for your honesty.

I know I did not handle it properly, but since you were not in my shoes at the time of the incident, you should not condemn me nor judge me for my reaction.

There's a whole theme behind the scenes with this particular HR that led to this unfortunate reaction; still though, I appreciate your sincerity and I am thankful for that.


There is almost never a good reason to be impolite! Sometimes in interviews they try to piss you off with the exact purpose to see how you handle these kind of situation… you clearly failed! My first job after university was for a big tech company… during the interview the interviewer was very aggressive and borderline impolite trying to push me “over the edge”… I handle it with calm and politeness. Needless to say I was offered the job on the spot at the end of the interview (in real life the interviewer was a delightful kind person and all the rudeness was an interviewing technique)

Rest assured, I don't condemn you. But given what you've said about the experience, I would have judged you as unfit to employ in that moment. I'm curious about your focus on the HR person's history taking anger management classes: do you think that your own anger could be better managed?

I think we have a clash of cultures here, so I don't expect people to understand how insulting was her behavior in the first place that led to my reaction.

Let me remind you: > An HR called me after a 1 and a half years I originally applied for a C++ position at a FinTech company to ask me whether I'm still interested in it.

She literally ghosted me for 1.5 years while I was sending emails for months without response; even my calls were ignored, so I decided to stop trying...and then she decided to check her Discard email folder to look for possible candidates and when she read my updated resume, she went "oh, you are not a good fit"!

Then why did you even call?! Could not you just send me an email and ask me for an updated resume so you can check whether I'm suited or not for your company's needs?

I honestly don't understand you people, seriously.


> I honestly don't understand you people, seriously.

I'm not sure why you'd say "you people"; I'm not in HR, I'm purely technical, and I find many HR folks to be incredibly frustrating and even infuriating at times. But I do not express that to them. Rather, I have, but only through a mediator, after I've cooled off, to help ensure that I wouldn't say something regrettable. As frustrating as they can be, if you yell at the HR person helping my team find a new member, bzzzt, next.


To be fair, you should probably have multiple versions of your resume, each customized for a specific type of job. If this was a C++ job, relevant experience should have been the first item, not SysAdmin. Are there inexperienced (or experienced, but still dumb) HR people? Of course. But knowing that, you didn't present yourself in the best light to overcome a predictable obstacle.

Yeah this is a good approach I try to customize my CV off a base for every role. Even shoving it in a new company-name folder in Dropbox.

Even though the person is asking for them to apply they are probably asking a lot of people so are going to scan your resume looking for keywords and alignment to a role


Probably a nepotism hire

Yep, I totally identify with you. I saved up and bought an nvidia gpu and am about to start learn about video editing to see if I can get into that field.

I’m pretty tired of getting laughed at and the rampant dishonesty.


> I have no idea how to interview anymore;

Same. Anytime someone says the market is hot, I get irrationally angry.

It's probably hot for kids in their 20s with ex FAANG experience. Not so much for the rest of us.


No FAANG experience, only worked at 2-3 (very) small startups. I have basic JS / Web dev skills. Total of 6 YoE. I created a profile on dice.com and have gotten probably 20+ hiring manager-stage interviews so far.

What industry / YoE / skillset combination do you have? Seems like full stack engineers are writing their checks these days.


Mostly ecommerce, but varied. 6 yoe. Backend/Python.

I have applied to hundreds of places, grinded leetcode, studied advanced system design, and am near giving up. Becoming a famous actor is probably easier than this.


It's clearly not hot enough to remove leetcode interviews as part of the screening process. I changed jobs almost a year ago and almost every company I applied to had a leetcode section.

And the leetcode isn't easy either, even for regular / non high tech companies. I barely passed the test, and I'm confident that I'm at least around top 20-30% of programmer skill-wise with tons of free time and passion to program during my university.

I can't imagine if my peers that's less fortunate or less passionate with programming to be able to pass.


Unfortunately, it’s also like that working at some places—not just in the interview process. The day-to-day can be excruciating involving each of your bullet points inside of 8-10 hours, on repeat.

There’s a lot more humourless bureaucracy than there is else it seems. It just gets packaged up in the popular mode.

It’s kind of like the Vogon with slightly savvier marketing teams and a Patagonia jacket.


My manager has more or less decided that degrees are useless, given the failures that major, well-known universities are graduating these days, so… it’s not everyone, for those who are terrified of the people with degrees.

I saw your past comments. You should check if you don't have ADHD. The treatment fixed me!

Well, they have diagnosed me with HSP (Highly Sensitive Person) with symptoms of Autism Spectrum Disorder.

I changed my nutrition, plus some other bad habits which reduced its intense; now I am way better than past times.


Why do you need to reread something a bunch of times? Could it be lousy working memory?

Interviewing is absolutely terrifying. I've been a software engineer for over 40 years and I still get the shakes. And freeze. It sucks hard.

Don't worry about the degree. After ten years (even after five) it doesn't matter. If it does matter to the company in question, you probably don't want to work there anyway. Seriously.

Lean heavily on your contacts. After ten years you almost certainly know good people at other companies, and you may be surprised how well they regard you. Most of my jobs have been through such connections, and they have been the ones I've enjoyed the most. Reach out.

During interviews, I find it helpful to communicate a little of my emotional state as well. "Let's see, I'm pretty nervous, just so you know, and I'll probably make a few mistakes here until I get it right. Now, the obvious thing is N-squared and clearly terrible, but let's do it anyway and see if we can get some insight and improve it..." And once you decide to have fun with a problem and can stop pretending that you're a giant, perfect brain, I've found things go a lot better. If your interviewer is an emotionless robot, you probably don't want to work with that person.

My own lack of a degree has never been a problem. You're fine, man. As long as you keep up some kind of continuing self-education (doesn't need to be fancy, just read interesting conference proceedings, maybe learn a new language every few years) you're going to do great.


You contacts can refer you and get you an interview. After that, it's still 6-8 rounds of grilling.

That's my experience anyways.


Yeah, same. A referral can get you a phone/zoom call with the right person, and somewhat skip the intro nonsense. After that it’s still back-to-back grilling.

I do like a referral however. I often get cold emails from recruiters that are interested in hiring me, but still want me to fill out an application and do some intro async coding screen. It feels silly. I’d think I’d they’re reaching out, then why do I need to fill out an application? Let’s have a convo with the hiring manager, see if our goals align, and do the on-site grilling thing, if so.


> Now, the obvious thing is N-squared and clearly terrible, but let's do it anyway and see if we can get some insight and improve it..."

By "let's do i anyway" do you mean to implement it? That's a terrible strat. You should not be touching the keyboard until you have an optimized or at least final design. If coding up the naive algorithm gives you some "insight" that you don't expect to have seen by thinking through the problem beforehand, you need to invest more in logical thinking.

This applies to both interviews and to your normal work.


I don't think we should be calling out what works for someone else as "a terrible strategy". People work in different ways - don't assume your way is the only right way.

On an interview you have maybe 45 minutes to get something working.

In real life, it’s going to take you longer to understand the problem enough to even attempt the naïve solution. So in the context of an interview, get ANYTHING working.


This seems like terrible advice. Make it right, then make it fast.

I feel this. I’ve done pretty well for myself — I have decades of practical experience and have risen to be a principal engineer at my work. I can write what I feel is pretty solid, robust, performant, and well-architected code in many different languages across all ends of the stack from high-level UI to low-level system-level components. I don’t have a CS degree and am largely self-taught. I tend to struggle a lot with theory and I stink at algorithms. (I can generally understand them, but coding one from scratch would be a struggle since these fundamentals aren’t committed to memory and in the real world are rarely necessary to recall at the drop of a hat.)

Given my non-traditional background and keen awareness of my blind-spots, I really struggle with impostor syndrome. I also fear the interview process because I don’t want to look stupid and come to realize my past success was driven by chance rather than smarts. I also know how much of a grind the entire process can be and how it seems like many interviewers are more interested in making themselves look smart rather than honestly assess a candidate.

All of these things are probably more of a function of projection and insecurity rather than reality, but they all feel real to me.


I'm not terrified of interviewing. I just think it's an even bigger pain in the ass than dating. The older I get the less patience I have for people who need me to sell myself to them as if I were a commodity and not a human being.

I don't think you need to be a feminist to say "WE ARE NOT THINGS".

I am not a resource.

I am not "human capital".

I'm a man who happens to need to work for a living. Deal with me as such or not at all.


> I just think it's an even bigger pain in the ass than dating.

It’s even worse compared with modern dating apps. Like dating apps, I can’t even trust that job applications are real and actually interested in finding someone.

And just as with dating no one I seem to like likes me and vice versa.


>I can’t even trust that job applications are real and actually interested in finding someone.

I got burned by this recently. A recruiter reached out to me on LinkedIn about a job opening at a company I had previously been interested in joining. One phone screening and one Teams call with two different external recruiters later I was informed that the company wasn't even hiring for that role.

Of course this was partially on me. If I had looked at the careers section of their website I would have seen that the role I was applying for wasn't listed.


Yeah I had the same thought. I get the feeling there are more than a few places out there posting jobs just to gather massive amounts of resumes with no intent to contact anyone.

My meat grinder has about 500 companies, 200+ I touch every three months. There are a lot of companies with same / similar ads for extended periods. Some of them I've applied to, and discovered after they'd been in the meat grinder for a while.

Wish I could do something with that info. A deadpool where the posting that's been up the longest wins the daily pool?


On the other hand needing to sell yourself, and being judged on how well you present yourself seems very much a part of being human. I agree though that the "human capital" language and the formalized processes at some places is a bit dehumanizing.

This is the uncomfortable truth.

We'd all like to be judged by our objective value, but the problem is, it's really hard to measure it, so we have to use some kind of heuristics. One of the heuristics is self-confidence which is supposed to come naturally with skill.

So if you hide yourself from the world, don't be surprised that the world doesn't see you. If you want the world to see you, it is your responsibility to sell yourself, in order to inform and assure others of your value. The valueable ought to be louder than the conmen, in order for world to work properly.


> I am not a resource

This is a very poetic and hopeful thing to say, but at the end of the day, it is simply not true. We don't get to just exist for the sake of existing. There has to be give and take with our external environments. There are a few relationships that bypass this (to SOME extent; see: mother/child) but by and large for the vast majority of human relationships, if you don't provide value—they aren't going to altruistically just give you money, love, time, etc.

So while you are correct that we are not things, we are humans, there is a level of needing to convey what wonderful human qualities you plan on bringing to the relationship. This is true in dating, interviewing, and making friends. There's no relationship you can voluntarily enter where the other party will be fine with you taking and not giving—and interviewing is simply outlining those terms—"selling" what you plan to bring to the table.


And as bad as with dating, you're more demanded when you already get one or recently get one. It improves your value which ironically defeat the whole purpose of job seeking.

I don't mind selling myself if the person on the other end is worth it, this is almost never the case though in both dating and business.

With the demand for software, I don't think it matters that much how many devs are churned out. Most of them are going to be mediocre and have poor interviewing skills. Boot camp grads really don't pose serious competition to anyone besides other junior developers. With a resume that has good formatting and spelling, people skills, networking, and maybe a few personal projects, it's entirely possible to get hired today. With 10 years of experience, I'd be surprised if anyone gave a f--- about whether you have a degree in most cases.

With 10 years of experience your biggest problem is likely to be that the person reviewing you doesn't have half your experience.

I once told a manager that I'd been using C longer than he'd been alive.

He took it the right way. :-)


And one tip for junior who is first time job seeking: fake your confidence, and learn to fake your confidence while keep improving your skills.

Second, interview is a number game, though it's against you (..r time). Send as many applications (even though you barely or almost meet the requirements) and have as many interview as you can.


I don't know if I can relate.

Was the industry really "almost entirely" autodidacts 10 years ago? Were CS graduates "nerds" in a way that autodidacts weren't?

It's still very possible to get into tech without a traditional CS education, and it's not clear why it seems hopeless to you to compete against someone with a degree -- ACAICT most interviewers don't even look at candidates' resumes.


Completely agree. 10 years ago is 2012. That really isn't a very long time ago. I studied computer science well before that and even then it wasn't true that the industry was "almost entirely autodidacts". That's my dad's generation, where a computer science degree wasn't even a thing you could get. You'd have studied math or electrical engineering or some such and you kinda got into the computer side of things, e.g. through the computer lab usage at university.

I can also tell you that for someone with 10 years of experience, I don't look for a degree at all when I hire. Sure, I will read your whole CV and will see whether or not you have a formal degree, but I won't throw out your CV just because I don't see a computer science degree. Whether you have a degree or not, I will check whether you know how to code, talk about software, design a system etc.


Also don't relate. Got my first job in tech about 6 years ago, last interview was 6 months ago. Found the interviewing process very easy and got an offer I was happy with after 1 week of searching. I'm not applying at big tech where you need to do 20 hours of real time leet coding. Just a regular B2B product where they quizzed me on ruby/rails for 30 minutes and another general vibe interview and that was it.

Reading the responses to this thread, it seems clear most of this is a lack of social skills rather than any change in the industry.


I mean I can only speak purely anecdotally, but I graduated with a CS degree nearly 20 years ago and in my ensuing career, 90% of my colleagues had either electrical engineering or computer science backgrounds, so I honestly have no idea what he's referring to.

If anything, I'd actually argue that there are more non-traditional routes to working as a software dev today.


This is true.. 20 years ago getting hired without a degree was difficult and excluded you from many jobs.. getting a java or c/c++ job was difficult. Now it's more open.

10 years ago? I sincerely doubt it.

I’m not in the US but from France.

I know two things for sure : - Hiring is stupidly hard. There is basically nobody applying. - For any non junior position, we dont even care about the degree. Personally, I don’t even read this part of the CV. Experience matters way more.

For me, as long as you are doing decent work, nobody will avan care about what degree you have. Furthermore, I’d say that companies filtering you on this is a good thing : you really don’t want to work for a company that recruit people based on a piece of paper they got decades ago.


You know, everyone seems to say this but the reality is that once you get in that room--physically or virtually--the hazing rituals and in-group tests begin. As an industry and a culture we need to accept that this is the reality at many/most companies and that those companies need to stop saying "Oh woe is us, we just want to hire someone!"

Well, I have interviewed people who I know I will not hire based on the first 5-10 minutes. I schedule 30 minutes for the screening interview so I will still give them that time and be nice to them... with the intention of not giving away why I will not be hiring them. My motive is to not let them know so that they continue the way they are so that people like me are able to avoid them too.

Maybe they could improve if they were aware of the problems, right? No... and even if it was possible to change them, that is not my job. I'd rather hire someone else.

(Not giving away what I look for because I don't want people devising deceitful techniques to get through the screening. If you know, you know.)


I'm at a FAANG and I'm in the same boat. I don't care at all if you have a degree, the resume is just to get your foot in the door.

Interviewing sucks, but it's mainly because the people doing it are poorly trained, at least in my experience.


I almost interviewed for a FAANG company recently (they put a hiring freeze in before I could get in the interview) and they literally told me to grind "Leetcode Hard" problems to prepare. I have 20 years experience but the kind of problems that are "hard" on leetcode are a very different than what I have done day to day during that time.

I wish my degree and experience would speak for itself. But in reality it seems like exactly that... the degree doesn't matter.

Edit: Last time I mentioned it I got hammered by people in HN essentially telling me I must not be good enough. But having done a lot of interviews on the interviewer side, I can say pretty certainly that Leetcode skill is not directly correlated with Software Engineering skills.


I dabbled in competitive programming a bit (~20 years ago) and can confirm this. Since everyone was talking about leetcode recently, I went and did a couple questions there. Smart people with some CS background but without specific training can reasonably expect to find medium challenging but not impossible. Hard usually requires some specific knowledge of the tricks to do those types of questions -- and these tricks are rarely used outside of specific niches. Solving leetcode type problems are generally kind of fun for me (might be considered an "acquired taste"), but I don't believe all programmers/software engineers need to grind them to become good...

I've personally never really applied those competitive programming skills in my 10+ years career (outside of interviewing...) Those who have done so are probably in the minority (and I suspect, probably over-engineered the solution a bit).


Change your mindset. With 10 years of experience, in my last two job searches I felt incredibly well positioned to interview for senior roles, and ended up with dream jobs in both cases. I have no degree. I've noticed a trend in the last 3 years where companies require a degree OR equivalent experience. Which is awesome. If you're a great engineer and you're friendly, be confident in yourself!

I did struggle initially with the "coding challenge" nonsense used as a candidate filter these days, then realized I'd never paid attention to data structures and algorithms (which is covered heavily in computer science degree), so I spent time learning this and I was fine. I still wish these would go away.

TLDR: Don't worry about competition. Worry about yourself.


The "... or equivalent experience" has been in job descriptions for as long as I can remember. Since the 80s, for sure.

I have only seen one instance of a software engineer not being hired because they lacked a degree, and the three or four of us in the org who also did not have degrees were pretty upset at a certain idiot manager. I wish I'd kept track of that candidate, because they were on fire and going places.


The only way I found to get over this is to interview more and get successes. Interviewing without success is draining but interviewing with success is draining and rewarding.

I’ve done over 500 technical interviews. I only started interviewing more seriously in 2015. (I had done less than 10 before then) It took me years to get more comfortable with interviewing. It’s all about knowing the gauntlet and what you’re getting into. The mental warfare of interviewing is almost all in prep and once you’re in the interview - it should practically be autopilot.

This takes hundreds of hours of prep (usually outside of work hours) and a lot of dedication. This is the industry now for many of the more competitive positions. (FAANG-etc, more known startups, anything in SFBA)

Get on leetcode. Solve 20-30 easy problems to get your confidence up and familiar with it. Start doing the problem sets that are targeted at special types of problems (binary search, dfs, graph traversal, dp, backtracking, etc.) Do mock interviews once you’ve solved 40 mediums without looking at the solution and at least 15 hards. (Might be helpful to just look at solutions of a lot of hards to get some pattern recognition going) Use whatever service you want for that - they’re usually free.

Interview with companies you don’t care about. Get offers. Figure out what you’re doing wrong. Practice more. Start interviews with companies you want to work at and some others that will give an offer you can leverage in talks. Schedule onsites - get offers. Don’t schedule more than 3 onsites a week unless you have endurance. I’ve done 6-7 in a week - wouldn’t recommend. This was when they were in person too. Driving from one office immediately to another to grind was intense. Wouldn’t recommend - tbh.

Get your target offers. Get them to compete for another. Maybe pay for advice as to get salary band info and what you can do. Accept whichever you want - don’t burn any bridges here. Let them know you’ll keep in touch if things don’t work out - if things at new place suck - go to other places.

Repeat until you’re FI. Probably RE because this toxic grind set is unbelievably taxing.


> I’ve done over 500 technical interviews ...

> This takes hundreds of hours of prep (usually outside of work hours) ...

> Don’t schedule more than 3 onsites a week unless you have endurance. I’ve done 6-7 in a week - wouldn’t recommend.

Where do you find the time? I stopped doing practice interviews because I kept doing badly and also lost a day of annual leave each time.


Nights and weekends. Often I used my vacation time to do all the onsites.

Sometimes I had to just quit my job and commit to job searching full time. I’ll be doing that again this year. The problem with some jobs is that they’re too intense to really give you ant energy or time to interview elsewhere. Quitting becomes the only option at that point.


Hey, I just quit my job to go interview elsewhere! My job was too intense to study while working and I was a bit burnt out.

Deciding to leave was really hard, but then I realized that grinding leetcode and interviewing would be more fun and interesting than my current job.

Now I’m realizing I really suck at these problems. I think I’m going to start a blog chronicling my struggle and triumph. I hope to help others who are just starting the grind, it’s a bit discouraging at first. I have 10 YOE, but am a n00b here. It’s pretty fun and reminds me of old times.


> Nights and weekends.

What companies are offering interviews at night? That’s when I’m at my sharpest.


Usually startups but I’m not talking like 9pm. I’m talking like starting at 6 or 7pm.

I mostly meant that in reference to prep but some startups will interview on weekends too. They’re a lot more flexible - obviously. It does mean your own WLB will likely suffer too though.

Alternatively - quit your job and interview for American jobs while visiting Europe if you perform better at night. ;) (I am planning to do some of this but not because I perform better at night but because I am burnt out and need change)


Nope.

I'm self taught in the sense I never went to university but I like to think of it more as self guided. I've read thousands of blog posts and learned a ton from other people. If you asked me to whiteboard a red-black tree on the spot I'd insta-fail but if you asked me to Google an implementation of it I'd find it and have it running in a few minutes with a few languages.

I don't worry about algorithm grinding because if their interview process expects that then I won't apply. There's lots of options out there where folks will hire you based on skill sets more in line with solving problems directly related to their business. I tend to gravitate towards those which are focused on building and deploying web apps.

Of course not all apps are created equal. If you plan to be operating at a super low level for critically important / number crunchy domains like a custom high frequency trading platform or you're writing Mars rover code then sure having a strong CS background seems reasonable, but you don't need to know shit about time-scale calculus or pulse-coupled neural networks to create a CI / CD pipeline to help a 100 million dollar a year business deploy their apps faster and more dependably which in turn helps them become a 110 million dollar a year business. The same goes for planning out, building and deploying a huge variety of SAAS apps.


I was at Amazon over 10 years and did several hundred interviews. I tried my best not to contribute to the problem, but here’s my experience:

First, the interviewing culture optimized for fresh computer science college grads, and specifically Indian nationals who excel (from my experience) at memorizing specific patterns and applying them decently in interviews. It doesn’t mean they’re better employees or better engineers, but it does mean you can hire someone as an H1B. And they’ll work pretty damn hard and out in more hours, because otherwise they fear getting managed out and with their visa situation, they have to leave the country.

Secondly, we’ll hire H1Bs from other companies. They often times don’t pass our hiring bar and fall significantly short. But as an Indian national, there are plenty of other Indian SDMs, Senior SDMs, and directors who will still give you an offer and bring you on board. It’s sort of a nepotism, and there are ways you can extend an offer without even going through an interview loop.

So… a culture of engineering talent who look great on paper, but you end up building a lot of mediocre products and services, or simply using this “talent” to keep existing, well designed services up and operationally sane. Mostly ticket loads.

And that’s really just it. The system is designed that way to extract a certain amount of labor. The skill doesn’t matter. Certain nationality brings in more of its own people.

We talked a lot about diversity, but we hired practically zero Hispanic, black, women, or other (tech) minority groups. Our damn HR didn’t even bring them into interview loops. If you worked at Amazon, you’d think that only Indian people graduate with CS degrees.

If you get rejected by Amazon, trust me as a 10 year veteran who finally abandoned ship late last year - you’re better off not being there. I regret the 10 years of my life I gave to that company. I regret the relationships I abandoned, the toll it took on my physical and mental health.


Once you're past the interview Leetcode rituals gatekeeping, and the undisguised ageism many places, remember that there's no substitute for experience.

An entire product or company can hinge to a large degree on an engineering team doing wise things, to avert problems, and occasionally to solve them.

Experience helps you be much more wise than when you had no experience -- and were just going on what you heard from professors, read in blog posts, or imagined with the confidence that comes from not yet knowing any better. :)

Just stay enthusiastic and curious, keep learning, and get past the interviews.


Considering how many candidates are out there who have B.S., M.S., or even Ph.D. degrees in Computer Science, but can't even manage to write FizzBuzz, I think your fears are a bit overstated IF you are actually reasonably competent and are capable of showing it.

Anyway, in my experience degrees are more about simply getting past the first-level HR filter than anything, and don't get you hire per-se. And with 10+ years of experience, you'll get past the first-level HR filter just as easily, so really it comes down to demonstrated competence. Can you show/convince (an) interviewer(s) that you are competent? If you can, you'll be fine.


I am doing PhD in CS. I solved and designed algorithms to solve very tricky and hard concurrency problems (mostly in the Linux kernel). I ported the Linux kernel to a research CPU architecture. I wrote complex system software to deal with memory models, heterogeneity and cross-ISA migration, modfying glibc, llvm, linux.ld and tens of other system software. I worked on KVM, kernel network stack, networked filesystems and implemented distributed systems levraging all of them. However, I have no single idea what is FizzBuzz, and if someone asks me to do it an interview, I would fail miserably. I also only code in C and lots of LeetCode type of questions are a nightmare for me.

> I have no single idea what is FizzBuzz, and if someone asks me to do it an interview, I would fail miserably.

If you know what you are doing even in the slightest, you won't fail.

No one will put you next to the whiteboard and say "do FizzBuzz", expecting you to know exactly what it is and what to do. They will say "write a function that takes in a positive integer as an argument, and then counts from 0 up to that integer. Every time a count is divisible by 3, print out 'Fizz'. Every time a count is divisible by 5, print 'Buzz'. If a count is divisible by both 3 and 5, print 'FizzBuzz'".

I cannot imagine someone who wrote all the complex things you did, but is not able to write a toy counter function like that.


To be honest, that's the first time ever in my life to read the description of FizzBuzz, which is ridiculous. But I was just answering the parent and providing a data point that proves the correctness of his statement.

But in general, I find LeetCode style interviewing very boring and dry. Like all of those "Given a string, find a substring that satisfies bla bla condition", or "given a matrix as csv input, read it then calculate some BS and find the best estimation for some other BS, etc".

When I was very young and naive, that might be fine, but at this point in my life, I just get super super bored and annoyed by such questions.

Instead, I prefer contextual questions. Like if you're hiring for a low-level network programmer, let me do some socket stuff in C or Go, implement a backoff mechanism in a given code template, discuss some TCP/IP congestion stuff, discuss some code, add a small feature, put a bunch of system calls and watch how I care about performance (blocking vs non-blocking, epoll vs select, shared-memory vs message-passing, context switching, etc) and how I handle errors, and also observe my workflow, how I check the documentation, the man pages, debugging, etc.

I think this is a much more reliable and less frustrating way of interviewing and I believe it attracts very highly skilled and motivated people.


FizzBuzz isn't leetcode. It's a filter for bare minimum programming and reasoning skills. It's purposely simple to avoid tripping people up with a seemingly hard problem that depends on insight you might miss while under the pressure of an interview. If you're so innumerate you can't check for integer divisibility you might not be a good fit for some programming tasks.

I've seen candidates fumble when given the problem of adding a node to the end of a linked list. Everybody is pampered now with swiss army knife languages that do everything for you that they don't know how anything basic works. Many of the HN crowd will sneer at the idea of this sort of low level coding but it is still important in many domains.


> Everybody is pampered now with swiss army knife languages

Wow. Who's sneering again?

> Many of the HN crowd will sneer at the idea of this sort of low level coding but it is still important in many domains

Yeah, we do. Because developer-cum-interviewers for companies writing marketing-optimized CRUD apps use these as filters (or to make them feel superior, take your pick), and sneer at people who can't bark out the proper magic incantation for reversing a linked list on demand.

And let's be honest. Unless you're in an exceptionally specific field with exceptionally restricted resources, using the "swiss army libraries" will create more performant code than a human can. Because those "pampered languages" have been optimized to ridiculous degrees.


> Because those "pampered languages" have been optimized to ridiculous degrees.

Haha, and then there are stories about python finally getting rid of the GIL - soon, probably, hopefully!

And that's only my favorite language.


If the job description is for an embedded programmer you should be prepared to work in that field.

At the FAANG companies I’m familiar with, the coding portion is sort of a standard bar that everyone must pass, from new grads to 30-year veterans. The more senior you get, the less they matter.

If you were being hired into a specialist role such as for low-level networking, there would absolutely be a more detailed “Systems” interview where you would discuss in depth the topics you mentioned, usually in the context of a more open-ended “architectural” problem.

Interviewee performance on these “Systems” interviews hold a lot more weight at senior levels, not just for hire/no hire decisions, but in fact the level of your offer.


There's no way in hell you would fail a FizzBuzz test if you have done the things you say you have done.

However, I have no single idea what is FizzBuzz, and if someone asks me to do it an interview, I would fail miserably.

A fellow commenter here has already addressed this point, but let me reiterate: you wouldn't be told "do FizzBuzz" with the expectation that you already know what FizzBuzz is. The problem definition would be explained, and it is a very trivial problem. That's why it's often used as a low level filter for programming interviews.

At a former employer we used to do just about everything we could to make the process as easy for the candidates as we could. We'd give them a laptop with an IDE running, the skeleton of the test app already in place (eg, main method, and any "plumbing" dictated by the language. We supported using Java and Python) and comments basically saying "flesh in the required logic here." We would give them, IIRC, 5 such "skeletons" and ask them to pick any one (or more) they wanted to implement and gave them approximately 30 minutes. Besides FizzBuzz the other ones were "reverse a string" and other problems of similar difficulty. And yes, you could use any standard library API that you wanted. And frankly, if somebody had said "I know how to do this, but I'd need to download library $FOO" we probably would have arranged to get them library $FOO ('net access on the test machine was disabled, as we really didn't want to test their ability to go find the answer somewhere else and copy & paste).

And despite all that, it was sad to find that very many candidates, even those with documented years of experience and/or advanced degrees, could not manage to complete a very simple programming assignment. Well... I say "sad" but there is another way of looking at this: it could be that FizzBuzz, "reverse a string", etc., just don't have any particular relevance and that this whole exercise is useless. I mean, if you have a person who's been gainfully employed as a developer for 10 years, and they can't do this, what does that tell you? Maybe it's the test that's wrong. Even though intuitively, I think most developers would believe that anybody who can't do this sort of thing doesn't really know how to program.

Anyway, back to the original point directed at the OP: being self-taught isn't really that big a deal, IF you can demonstrate some fundamental level of competency.


> However, I have no single idea what is FizzBuzz, and if someone asks me to do it an interview, I would fail miserably.

I'd suggest actually looking up what fizz buzz is before making that claim.

https://en.wikipedia.org/wiki/Fizz_buzz

I like it as an interview question because it gives insight into the candidate's thought process. I'm not as concerned that the resulting code works. My approach is to explain fizz buzz, hand the candidate a computer, ensure they have the tools they're comfortable with, and tell them to use whatever resources they need. Copy and pasting code from the Wiki page wouldn't be the worst that I've seen (and would be 100% acceptable to me if the candidate can explain what the code does). Write it in BF for all I care, as long as you can explain what it does and (ideally) run it.

At one job a few candidates stood out. I was running late as usual, so I popped in, realized I'd forgotten my notebook in my car, and went back to grab it. By the time I returned the candidate had literally run out of the office. One candidate wanted to impress us with his bash skills and got completely flummoxed trying to figure out how to implement the modulo operation in bash. What really stood out about the candidate we hired was that they reviewed the code and then ran it to verify the correct behavior before handing the computer back to me. They were the only candidate to do that.


I really hope you (or someone else in your interview loop) asks another question besides FizzBuzz.

I'm not quite sure where you got the impression that fizz buzz is the only interview question that got asked. I'm fairly process oriented so I find a lot of value in observing how someone works. But at some point it's just not worth it to proceed further.

I like fizz buzz because it's both a good low pass filter and a good jumping off point for further discussion. If you can't read the Wiki entry and wrap your head around fizz buzz, you're probably not a good fit. If you can then there's the opportunity to ask all sorts of questions (e.g. why did you choose this language, how would you test this, what would you do differently) and maybe even move on to a more complex program.

For the one candidate who struggled with bash, we started offering input around the ten minute mark. Stuff like "is there something else you could use instead of the modulo operator", leading questions to encourage them to check the man page (or google it), inquiring maybe a different language would be a better fit. That this person could wrap their head around fizz buzz was only a minor detail. That they were fixated on making a specific implementation work was a big miss. At this job specifically the tech stack was fairly diverse so there was a lot of value in being able to suss out the right tools for the job and less value in being able to bang out a more complex algorithm in clojurescript or whatever.


I tend to memorize it like this:

  If number modulus 3 is true, print "Fizz"
  If number modulus 5 is true, print "Buzz"
  If number modulus 15 is true, print "FizzBuzz"
My favorite examples are in Python and Lua, but I honestly adore Lua's version as it makes it really clear of what it does.

Here's an implementation of mine for reference:

    local startTime = os.clock()

    for i=1,100 do  
      fizz = (i % 3 == 0) and "fizz" or ""
      buzz = (i % 5 == 0) and "buzz" or ""
      if fizz == "" and buzz == "" then goto continue end
      print(string.format("[%03d]: %s", i, fizz..buzz))
      ::continue::
    end

    local endTime = os.clock()
    print(string.format("Total time %.6f seconds", endTime - startTime))

An issue is that a lot of mediocre people got into decently ranked positions and are now mediocre interviewers, too.

I think FizzBuzz and other easy questions being asked is a symptom of the opposite issue.

The field of interviewees is so mediocre that if you start with a reasonably difficult interview question a lot of them will flounder and will never get it. When I interview I like asking tiered questions. They build on each other conceptually and get harder.

The first one I ask takes good candidates 10-15 minutes at most. I've had some solve it in 2 minutes. You can write a not-too-ugly 1-liner in Python to solve it. Some candidates spend a full interview on that question and never get it. The question isn't a trick question, it requires a basic knowledge of data structures and directly translates to the (mostly simple) code people write every day. If someone solves this question it basically tells me that they're good enough for the second question, not much else.

But man, is it painful to interview someone who can't answer that first question with a harder problem to start with. I don't know if you've ever interviewed someone who just didn't get it, no matter how many hints you drop, but it is an uncomfortable experience.

That is why we have FizzBuzz. Asking a harder question first to a shockingly large number of candidates is a waste of effort. So we all have to FizzBuzz and then (hopefully) answer some real questions.


Two words, my friend: Grind leetcode. In fact, solve leetcode problems with a friend. Write down the solution in a notebook (pencil and paper) and read it to your friend, see if they can evaluate your solution. Because apparently this is a valid way to phone screen.

One more word: network! Make friends in high places in the industry. If you come in as a nobody, and nobody will vouch for you, why will companies choose to take a risk on you?

It's not the 80s and 90s anymore, when only nerds touched computers and companies were willing to work through an employee's issues to develop them and get access to that rare programming talent.

Programming is now more like acting: it's on you now to make the right connections and prove that you are perfect for the role. Not perfect = no hire. No social proof from people on the inside = no hire. This is what the market looks like now. Adapt or perish.

One more thing: if you are cishet, AMAB, and white, you will have to work harder for that job now. Many tech companies have policies to prefer people of color and marginalized communities including LGBTQ over privileged candidates.


I'm pretty sure 85% of the people I interviewed with didn't read my resume and my education never came up.

My resume is a list of projects I made myself. I had an interview where the interviewer obviously didn’t bother looking at my resume until he got on camera with me, and he asked, “can you tell me about your time at 5 day weather app?”

Needless to say I didn’t get the job.


Not at all -- I have no degree with ~8 YOE. Recruiters and hiring managers don't even inquire about my education anymore.

I assume your worries come from the leetcode trend in interviews.

Personally, I let recruiters that are knocking down my door via LinkedIn or email my expectations up front. Salary & no leetcode (algorithmic problems), I have found a lot of success. There are many companies willing to give sane interviews with real world SWE problems.

Experience is highly valued in this field. Someone with 10 YOE isn't really competing with someone with 5 YOE. If you talk to anyone involved in hiring nowadays it's extremely difficult to find experienced devs. Experience will always trump education.


Someone with 10 YOE of desktop experience can't compete with someone with 5 YOE of cloud based experience for a saas opportunity.

I'm a senior software engineer at a FAANG making 7 figures and meaningful contributions. There's zero chance I would pass an interview at the same company now.

I'm self taught first programming 36 years ago. I have some college experience in a computer engineering program but I did not graduate.

My experience has been that once someone is a few years in to the industry, their degree or lack of one is largely unimportant. Schools and especially boot camps simply cannot compare with hard earned experience.

I'm never dishonest about my school experience although I do not mention it unless I'm asked about it or someone assumes I have a degree.

Interviews are largely about connecting with the interviewer and getting them to like you, consider you as someone they would want to work with.

Focus on what you have done, how you solve problems, how you work with others. Are you up front when you don't know something? Can you consider another's viewpoint and even change your mind? What is your reaction to making a mistake? Confidence and security in one's self go a long way here. Let your curiosity be infectious.

Interviews are an inexact science and there are plenty of bad or even abusive companies out there. Take your time and try not to take rejection personally.

Try to keep in eye out for what your next move will be. You'll likely learn more and earn more through some job hopping every 2 to 3 years. That's okay.

Practice, practice, practice! Code in your free time. Work on an open source project. Find an itch, scratch it and share the results.


Read, read, read.

It's okay to read Knuth, and even do the problems. Just don't tell anyone. :-)


I'm reading this post and replies and how people are terrified of interviews... and they are right in that all that's going on is wrong. But I don't understand what's there to be afraid of. I have 20+ years of experience and I can do a lot of things, yet as of right now I have maybe 500 bucks left, but I finally decided I'm not taking any more jobs. I'm not exactly sure how I'm about to survive the next month, but, I suppose, being worried, or let alone afraid of it, isn't going to help it. I must say, I had a lot of money a few years ago, but I was also running a company that I didn't want anything to do with. Hiring and employing people seemed very much like just the other side of the coin. And having money doesn't change much about you - it only changes the behavior of people around you, that's for sure.

To all the folks who are frustrated with the interviews - quit doing them. You already know they don't want you. They want the mindless code monkeys and submission. But what you had always probably felt is that you are an artist. It's time to be one. No one gets it easy. And the actual choice you might have is famine vs oppression. Which one do you choose?


Kinda, although I am a CS grad (graduated in 2014), I practically self-taught myself engineering. I have always been an OK interviewer, but it's gotten worse with time as the market's expanded. I regularly freeze up during whiteboarding or my stomach acts up and I can't concentrate.

Nearly 8 years later, and I've noticed bootcamp grads with half my experience are surpassing me on the corporate ladder and getting better paying jobs. The way I see it is that the market + colleges saw a demand for a certain type of programmer, and created programs to form newcomers into that mold. More importantly, I find that these younger engineers that are surpassing me are typically not anymore knowledgeable or skilled than I am, but they are much more confident.

I try not to let that bother me, so long as my current position can support me financially, gives me the means to enjoy time with my family, and support my hobbies (of which my favorite is programming & open-source), I am happy.


Why do you think it’s hopeless? Having a CS degree is just one attribute a candidate brings. I’d personally value 10 years without that 5 with but there are so many other factors to consider in candidates.

I think that if the tech bubble collapses, the hiring market will once again swing in the favour of those with CS degrees. When the best tech jobs going are at banks, government departments, etc. hiring managers will probably look less favourably on those that worked at some over valued startup that produced nothing of value, vs somebody with an actual CS degree from a good college and with some work experience. The days of the "went to bootcamp for 4 weeks and got a 200k job at a startup making CRUD APIs to solve world hunger" Dev are nearly over.

It's important to keep in mind that the vast majority of people who are currently employed had to work through rejections before landing their current role. Meaning that rejections are nothing to fear, they are simply part of the process. So it's important to not internalize a rejection as some deficit in yourself, just understand that it comes with the territory and move on to the next evaluation. The more zen you are about each rejection, the more motivation you will have for the next opportunity, and the quicker you will complete the process.

Back in 2007-2008 I, an economics graduate, was snubbed by developers, even though I showed a working prototype and examples of works since 1998!

DB developers also snubbed, even though I asked to show a working database app made at analyst position.

I showed a hand-made website with Javascript and PHP backend, and they snubbed that I didn't use frameworks.

Finally, in 2009 I got a web dev position with humiliating remarks. Only at the next company, a small web studio, the chief dev said "great, because if you did it by hand, it means you know the internal gears better than the framework guys", hired me and taught me some frameworks, which I learned quickly.

I understand that people are afraid they'd have to babysit the new developer, but I showed them lots of things, and it still didn't matter. Maybe they were afraid I'd leave their shitty job, IDK.

So, some standard framework used in the industry is a must. Plus, if a company is bigger than 20 people, snobs start running the hiring process.

Nowadays, well, if you want to slightly change the field of work, you're given a huge task to build a whole app, and then are nitpicked at insufficient comments, not clear code, not making useless classes, not using useless async, and so on. Nobody looks at your github project where you have those features. I guess, a single child-less guy could do this in 3 nights on RedBull, but I don't think I could. I'm quite discouraged.


I haven't been scared about interviews nearly as much as when I started. When I was getting started, I was a newbie with no degree. Now, I've got over a decade of experience with no degree. Granted, I haven't interviewed a lot: two processes in the last few years. Both times, the interviews felt like much more of a two way street and conversations between peers as opposed to me feeling like I have to prove myself to some way more senior decision maker.

Don't get me wrong, I still get nervous for interviews and want to make sure that I come off as a competent person. I still have doubts about what kinds of questions I'll be asked right beforehand. I also tend to apply for roles that are different from what I've done before, so I already know I probably won't know everything about the immediate subject matter. The process as a whole just seems less nerve-wracking now, though. Regardless of how nervous I might be right before an interview, at the end of the day I feel much more at peace with my own abilities.

I think there's a high chance this would change if I was more actively looking for different positions and interviewing a lot. Some caveats that make this easier for me:

* I don't bother with processes that do Leetcode-style whiteboarding interviews. I prefer take-home tests. Pretty sure if I was going for the former, I'd be much less "zen" about it.

* Both times I already had a good job and was just exploring other opportunities that came up. If I had a sense of urgency without stable employment, I'd surely be much more nervous.


The thing about Computer Science nowadays is that the machines are stupidly fast so that a lot of the algorithm stuff is redundant. Bubble sort can be good enough or isn't even required for implementation as the higher order primitives are already implemented. In a lot of ways it's why SW development nowadays is nauseatingly awful. Sprints and all that web baggage have killed the enjoyment and challenge. The only challenging SW roles I see nowadays are close to the HW.

> The thing about Computer Science nowadays is that the machines are stupidly fast so that a lot of the algorithm stuff is redundant.

Accidentally quadratic is such a thing there's a blog[1], and it's regularly the source of problems of a certain blogger who debugs problems in Windows that are usually causing his "stupidly fast" hardware to run bog slow[2].

Just this week, I hit what seems to be an accidentally-quadratic bug in macOS's tail — tail! I'm not even sure how you write an accidental O(n²) in implementing tail, but yet macOS tail takes 7 minutes to process a log file on my system that GNU tail can process in 80 milliseconds.

Regex regularly lead to oops-O(n²) due to devs not grokking the greedy nature of the star character, and for a while last year it felt like every week some NPM package was getting a security vuln. for a DoS vuln. due to quadratic regexes.

Understanding how B-Trees work — and more importantly, when they don't — in database queries is a perennial source of bugs in every company I've worked at where queries get written that won't hit an index, and don't get noticed until they're hitting production levels of rows. Dev confusion entails — "but the index has the columns I'm querying!" … yes, but that's not how a B-Tree works.

And it's not just the order-notation. I've seen, numerous times, people re-discover topological sort, or worse, hack a solution onto a problem where the problem is a DAG, and the solution is topo-sort, but instead you get something that isn't topo-sort, and just performs worse. Gitlab's CI failed to model CI jobs as a DAG[3], and as a result, will not launch jobs in some cases that can be run when they can be run.

> Sprints

Yeah, these destroy dev's souls.

[1]: https://accidentallyquadratic.tumblr.com/

[2]: https://randomascii.wordpress.com/

[3]: I hear it has been fixed, but I've since left it so I've not had an opportunity. Regardless, the point is that the solution was obvious … if you know the theory. Or even contemporaries, like Make.


> Just this week, I hit what seems to be an accidentally-quadratic bug in macOS's tail — tail! I'm not even sure how you write an accidental O(n²) in implementing tail, but yet macOS tail takes 7 minutes to process a log file on my system that GNU tail can process in 80 milliseconds.

If you're curious you might be able to find out why for yourself: https://github.com/apple-oss-distributions/text_cmds/tree/te...

It's presumably based on an old freebsd (circa v3 or v4) version of tail.

(it's possibly you may already know this is out there, but it used to be a lot harder to find macos-related source code and they only recently put it all up on github so just in case)


The easier way (or a supplementary way) would be to reproduce the slow situation, open Activity Monitor, choose the `tail` process and click "sample process". You'll get a stack trace.

Most of the issues on delivering value at work I face these days are figuring out how to get the teams that own the various internal platforms we use to authorize me to do things on those platforms. Or waiting on a vendor to deliver what they said they would. Or getting interrupted by the 1000th mandatory firmwide migration project this quarter that has to be finished today, or else. Or waiting for the CI/CD environment to come back up after they had to finish the 1001th mandatory firmwide migration project.

I wish I had software issues, at least they would be interesting.

I'm exaggerating a bit, but this is the life at an enterprise company for many devs.


> machines are stupidly fast so that a lot of the algorithm stuff is redundant.

This is just not true. Growth rates matter a ton and there is no way around that. A better conclusion to draw from your point about hardware would be that algorithmic performance is the only performance worth optimizing for, which is more accurate, but still not the case.

Also it's not as if software is just getting faster, it's getting slower, so something else has gone wrong.


> Also it's not as if software is just getting faster, it's getting slower, so something else has gone wrong.

Javascript, electron, developers don't know how CPU works, developers don't know how to manage memory so that it's optimized for CPU prefetching, abstractions and libraries out the ass that make it impossible to reason about performance. Modern software is an absolute mad house, and developers think they can get away with it because computers will always get faster. Computers are very very fast, the problem is that software is written such that it doesn't take advantage of it...and I'm not even talking about multithreading.


> The thing about Computer Science nowadays is that the machines are stupidly fast so that a lot of the algorithm stuff is redundant.

Plenty of basic computer science problems are not well understood by a lot of devs out there. One of my current projects has a daily data import process from each customer. Some of the states were taking well over 2 hours to import with a good CPU, lots of memory & fast SSD. A bad data import or a mistake could cost the company a decent chunk of money & upset their state customers. Plus we would have to re-import which meant another 2 hour wait.

The prior code was modifying the string every field instead of using pointers when importing the data. That took a 2 hour plus import down to under 1 minute. There was also encryption being done on certain fields. Re-using some keys instead of generating them for no valid reason every line ended up bringing the import down to 10 seconds.


They are until they aren't. Or you add latency into the mix. I've seen far too many N+1 problems, quadratic loops and full table scans to believe that computers are fast enough such that understanding data structures and algorithms is unnecessary.

Machines are stupid fast but cycles are cycles, and O(n^2) time complexity will always be suboptimal. There are (I feel) so many examples of stuff getting locked up because it's just for loops, right?

> When I got into this industry 10 years ago, the world was a completely different place. Bootcamps weren't a thing. Computer Science programs were still something just for the nerds. And the industry was almost entirely autodidacts like myself who grew up immersed in technology and did it for the joy of it.

I don't think any of these things are really much more true now than they were ten years ago. Computer science programs have been booming since the first dot com boom, and the industry has been mostly people with degrees since I've been in it (I started in the aforementioned boom, also with no degree). I've worked at brand new startups, post-VC startups, and two letters of FAANG.

In my experience, both as a person involved in hiring and as a person looking for work over those 20+ years, once you're proven with a couple jobs under your belt no one gives much of a shit about your educational background. This is a "need credit to get credit" kind of situation, where a person with no experience and no degree will have the hardest time getting a job, but someone with 10 years experience? Yeah I'd be shocked if you get dinged for no degree on an interview unless you're trying to do degree-heavy work like ML or something.


It's normal to feel fear of rejection and failure. I'm interviewing again now for the first time in several years, and I can totally empathize.

Your lack of a degree is not as much as an issue as the coding screen test. If you can ace those tests then you'll be able to get a job. I hate the idea of these coding tests -- I have decades of coding experience and even I must practice these coding test problems. It's the reality we must face, and we must deal with it. For those of us who enjoy coding for the joy of it, we can self-study data structures, algorithms, and system design for the joy of it too.

I know from previous job searches that I'll fail some coding tests at first, but as I get more practice then I'll start passing the interviews. Like everything else, it takes iteration.

Luckily there are lots of open job positions to apply for. You just need to believe that you can will get better with practice, and you can keep interviewing over and over until you beat the tests. You taught yourself to code; you can teach yourself to pass these interviews.

P.S.: These tech interview coding tests have been around for a long time. I remember going through some tough ones back in the 90's, even before Joel Spolsky promoted writing code during interviews in The Joel Test.


I'm more-so terrified of taking the risks that would be required to break "back into" that part of the industry. I have been developing since I was a kid in some capacity. Life took me down a different path career wise that put me in just enough of a comfortable spot to make me nervous about switching it up. I feel like I have a lot of intuition and experience throughout the years - it's just not enterprise-level nor something that someone in a senior dev role could attest to.

I finished my BSCS recently because it was paid for (GI Bill), and I kind of feel the opposite about it than you do. The amount of "shotgun" messages from recruiters from LinkedIn, etc have certainly increased, but I don't feel any closer to breaking into a dev role high enough up the food-chain to make it worth the risk of leaving my cush fringe-industry position. I have been asked internally if I'd like to help out more with dev-related things, so I guess that's a start.

I'd look first at the contacts you've amassed throughout your decade in the field. I'd be willing to bet that's where your best opportunities will come from. Good luck and stay confident!


As a retired software development manager (among other roles throughout the years), the problem is that industry, collectively, has no idea what determines success. The infatuation with boot camps, certifications, specific frameworks/libraries, even languages is detrimental to identifying real talent. Worse is CIO lust for a new technology regardless of its applicability to the particular domain, e.g., cloud and cypto. Consequently, interviewing and hiring an experienced software developer, who may be extremely talented, can be an uphill battle if they don't check all the right boxes. Up until the last two years prior to retirement, I worked for a very large, well known insurance company. The HR staff wouldn't even pass along resumes that didn't check the boxes or pass the automated review by the application software. The problem is further exacerbated by the ready availability of "certified", cheap resources from companies like Cognizant, et al. I went to the HR department and insisted that I see all the resumes which caused a bit of firestorm but fortunately the CIO supported my request. I was looking for talent, degreed or otherwise, for which I was willing to pay more, regardless of their specific technical backgrounds. All they had to do was be confident, frequent readers/learners, and convince me that they could learn our environment and deliver. In the end, my team had a higher average salary but a lower head count than competing teams (around 45 persons, mostly cheap Cognizant contractors vs. my 15, all employees) and we tended to hit our project targets with greater frequency. And never forget, particularly in technical interviews, the interviewers will often be out to show their peers and managers that they are smarter than the candidate. For example, around 2010, I interviewed for a VP position at a company that required nine phone interviews with different peer and subordinate managers prior to the in person interview. I scored well on 8 of the 9 but the last was with a potential subordinate who wanted to focus on optimizing Java/Oracle on a server. Every question was some technical minutia about Java, which fortunately, I had never had to learn. He, of course, voted against me. I withdrew my candidacy because the last interview suggested a culture I didn't want to be part of or fight to change. I explained the reasons but I doubt anything changed. So interviewing, if not terrifying, is at least intimidating and a royal PIA. Just be confident of your talents, continue to read and learn, and if it doesn't go well, F it, and keep looking.

I used to be, but I have maintained the habit of sending out a handful of resumes every week, and interviewing once at the very least (3 times this week). Even while I am in a job that I am currently not planning on leaving in the next year. It has made things easy, articulating who I am, what I am working on and how I got there. Must have had a few dozen interviews in the past year, and while I still get a rush of anxiety every time, I've been enjoying getting better at them.

I do get the usual interviews where I very well know that I am either over my head. Or where I get the feeling that they must have interviewed some very skilled people before me. But it doesn't really matter. As I see it, with 5 years of experience (self-taught), I am a good dev in my own right. And I am very sure that my experience and drive has a job ready for me at enough places not having to worry about job security (for now, in this buyers economy).


One interview a week? Where do you get the time? There’s often the HR/recruiter call, a screen, a tech interview or project or whatever and then the meet the team, architects whatever. That’s 2-3 hours minimum a week.

The interviews are all HR screens (I no longer respond to recruiters) with the goal of getting the technical take home, technical interview or team chat. Its more or less 3-5 hours a week if I advance past the first interview. This week for example I had a follow up and review from a take-home I did last week, which ended in a declined offer; but a good future networking opportunity at that company.

Some technical take homes take me the entire weekend. Where do I get the time? I am just getting better at managing my time and focusing on the projects. After you do quite a few, it just becomes a challenge, and things don't feel as stressful anymore. Admittedly, I do spend too much time on software next to working in software; its not your usual situation.


I’m self taught, worked in my career for 15 years, went back and finished my degree.

My interviewing skills are not substantially different. I still probably can’t invert a binary tree, and I get hung up on the abstract CS problems. The revelation I had after finishing my degree was that I was the same person with just a little more knowledge, and that if I didn’t check it, I’d be chasing after the “now I’m qualified” label indefinitely.

The interviews I do very well in are the ones where I’m asked to take something home and produce something real. If a company is really important to me and I know it’s coming, I know how to practice leetcode. If a company is rejecting you for not having the degree, then you’re not even getting to the phone screen.


I think it comes down to supply and demand as with everything else. There are tougher filters (interviews) now because there way more people applying for jobs than ever.

Even for people with CS degrees the competition is fierce. To most companies especially Big Tech experience matters little they just care that you can pass an interview which includes leetcode and system design, and if you really put the effort you can learn both from scratch without even having any experience. Unfortunately such is the current market.


Why be scared? Worst case is they don't hire you and there were good odds of that regardless. Take an interview-- if it doesn't go well, you'll know what to beef up for later.

if you learned it for the joy and have 10 years work experience on top of that you've got some massive advantages that many new graduates will lack.


I have no degree and less experience than you, big companies are knocking down my door to hire to me. I don't think you're in trouble.

Something perhaps worth mentioning: The fast growth of the industry means that there are a lot of junior engineers who need wrangling, those of us who can wrangle them are valuable!


For me personally it ranges from random successful highs to very depressing lows. I have a degree, but I feel I am more self taught (I barely took my degree seriously). With 9 years of experience under my belt, most times interviews are hit/miss for me. I spent time on Leetcode, but sometimes the interviews go well and I pattern match because I have seen that sort of problem. Other days I look like I have no idea what is going on.

It is exhausting, but everywhere I look people say this is the best way so far. I prefer freelancing now because I still love coding, I do it on my downtime, I do it on the weekends. It energises me. Unfortunately I am not good at solving puzzles/IQ tests under 30-60 mins.


Everyone has value to someone.

Most people talk about 'what they know'. The people who get hired (and get hired at a better rate) know how to explain the 'value' of what they know.

The ability to communicate your value is a skill that most people don't learn and work on. Getting better at this will make you stand out from the crowd.


as someone who is responsible for hiring in this space: i miss the autodidacts.

I see too much buzzword-hype-cycle candidates, and not enough people who have really built something, including real world stuff like badly performing apis, broken edge cases, etc.


You may miss us (I am one, for example) but everything in your HR-written job posts screams "conform!"

Not picking on you, just using your comment to generalize.


I get the feeling that everything has to be perfectly polished and 100% working as I apply for jobs. I’d like to learn more backend stuff, but I’m judged on if I can get into the minutiae of bootstrap grids or why my react drumkit isn’t 1000% responsive. Its rather exhausting.

There have been so many interview fads it's hard to remember them all, but a particularly disagreeable fad was the "surprise question." You're being questioned about some programming-related thing, and then in the middle of it they want to know how many monkeys you can stuff in a milk crate, or how to develop an optimal strategy for playing roulette.

I suspect a lot of interviewing fads are because interviewing is a long and boring process, so changing things up brightens their workday. But I never had any reason to believe any of them had any connection with discovering the optimal candidate.


Can you dig further into the specifics of your worry? I find that most interviews focus on my knowledge or experience, I’ve never really had the degree come up. You are somewhat alluding to two problems though, interviewing with 10 years of experience and the path you took to get there. Starting out may be harder(although it’s an employees market out there right now so it may be a great time to start)

But it’s funny you say 10 years ago. I started 20 years ago and don’t feel like 10 years ago is that much different from today(though would say it seemed easier to start out 20 years ago)


I had been programming for over ten years when I first ran into FizzBuzz, suffice to say I failed the exercise and wasn't offered the job. So I just moved onto the next interview and passed that one.

Sure, you can't prove that finding subcycles in a directed-graph is an NP-Hard problem on a whiteboard, or implement a linked-list or invert a binary tree by hand: But what you have is hard-earned common sense and a meaningful understanding of how software evolves over time. This is valuable to any company and many have identified that they are in desperate need of it.


Why did you fail Fizzbuzz if I may ask? I have heard a lot about people with 10 yoe but who can't write 3 lines of code in an interview, and I have always wondered what was the cause. It can't be that all those people just got lucky and never did anything for 10 years.

I'm sure you realised after the fact this was absolutely trivial and you could have finished that in a few minutes. Also, what changed that you passed the next interview? What didn't you also (I assume) freeze in that one?


Not OP. But my worst fear with fizzbuzz would be that I'd forget the damn modulus operator. In python % is used for string formatting and I would have to quickly Google it to be 100% sure of any gotchas. Doing that in an interview the people would think "wow, 15 years of exp and doesn't know the modulus operator!!".

When I interview people, I wouldn't dock any points for saying what you just wrote. I care more about the way you think than if you perfectly know the language's syntax. If anything, that's a positive for me. The modulus operator can be tricky and do not behave the same in every language, the fact you're aware of that and you would have a quick sanity check is a great sign in my opinion. It can be the start of some further conversation.

I have no idea how you'd fail Fizbuzz, if you had been programming for over the 10 years as you claim.

Speaking as a programmer, knowledge and trivia of "hard-earned common sense and a meaningful understanding of how software evolves over time" is not useful to the actual building of software at all.


Frankly I don’t se me how you could fail FizzBuzz even after having been programming for a month…

I've learnt to enjoy them and trying to connect with people. Especially after the pandemic, I think everyone is currently struggling or did struggle with life stuff so in some ways we can all relate more easily to each other.

Some companies culture just suck and you can tell it really quickly, trying to pursue those positions is a waste of valuable energy.

I think the worst interviewers are developers that are not senior yet and will try to favor cleverness over what's actually valuable. They tend to ask the questions you can easily google.


>> When I got into this industry 10 years ago, the world was a completely different place.

10 years is a lifetime in the tech industry.

>> The thought of competing against someone credentialed with 5 years experience vs. myself with 10 years and no degree, feels hopeless.

This is a vague comparison. Someone with 5 years of stack-specific experience vs. someone with 10 years of general experience?

Personally, I am very bad at interviewing. I need lots of practice before any interview. Don't be afraid to ask others for help for interviewing prep.


I've found it very difficult to find places that give a damn about personal projects or anything a self-taught developer can do.

If you're hiring and care about these things hit me up :)


I graduated in early 2000s, and I heard same things from CS students/graduates and self-taught developers. They all said the golden age of computer science was 60s, 70s, 80s, or early 90s when people got into computers for love of it not money. Now everyone is computers for money.

Sadly though I did meet a lot of students in my CS program who were in it for money and openly admitted they hate programming, logic, etc and cannot wait until they get a job and then move into management.


I graduated in 2003 form a Software Engineering programme. From the 100 people that started the 1st semester, only 15 of us got out. Of those 15, 4 of us had a Software Development specialization, around 5 specialized in Networking and the rest chose "Administrative IT" specialization.

Most students didn't like programming, but knew that there was money to be made in computer technology (we started in 1999, the internet was booming before the 2000 bubble burst).


I'm a self taught with 5YOE and I'm having a screening interview at a FAANG in a few weeks. I'm afraid I'm nowhere near the knowledge I should have to perform well in those interviews.

DS&A is huge and although I read a book about it when I started learning to code, there's a ton of stuff that I'll need to learn in depth that I'll use scarcely during real life work and I've never used so far in my professional experience.


Remember, you're self taught. You didn't go to school you had a goal, you sat and stared at a screen, problem after problem and worked through them until it clicked. You have drive, tenacity, and the ability to problem solve, no one held your hand. For these reasons you are an ideal candidate to someone. Learn to explain the problems and how you overcame them and you'll do well!

Thank you. This hit hard.

Been this way since there was a tech industry. I felt the same way 23 years ago with no degree. Just keep learning and be more motivated than the competition.

Same for me. I'm also astonished about the amount of time that is often expected to be put into an interview process especially speaking about take home tasks. But apart from interviews, I think self-taught engineers are still in high regard at most places because solving blocking problems and building things that last is not something that can be learned easily.

Sheesh, most jobs just want a warm body that can type so many lines of compiler-ok code per day.

"Show up on time" is not just for Hollywood.


One thing I know for sure - if you go to an interview terrified, you most probably will be terrified. People feel your mind set and attitude even through zoom, through your "interview face".

In my experience the less i care about a specific interview (after some reasonable preparation from my side of course), the better it usually goes.


I can't agree. I find most interviewers are very utilitarian here--they want proof you know your stuff, not proof of formal education. A CS degree is great, and I wish I had one (for the knowledge more than the sheepskin), but talented developers with some soft skills should not have a problem finding work in this industry.

It's especially hard for people who like me who choke during interviews and freeze like a deer. :(.

If your Interested in switch jobs, just try :).

Are you interested working in a particular domain? If you have experience , that will be helpful.

Also, you’re generally hired to provide value. If you’re able to enable your team to solve challenges the company is interested in, you’ll be fine.


If you feel a degree is that important to your confidence level, you could go get one.

I will say that when we interview people, for senior positions, we hardly look at their education. You have 10 years of experience, so your interview would most likely depend on that.


Good luck, in the same boat here and yeah it's tough.

The problem I think for me may stem from the fact that I actually enjoy the work. I always feel gutted when I'm rejected from a job that I know I could do well.


Did a web dev bootcamp in 2004. ASP and VB Script. Got many jobs. Finally took data structures and algorithms class in 2020. Am better programmer now.

I also joined the industry (over) ten years ago, and I'm pretty sure people were saying similar things.

if you're good, you're good. no need to be terrified.


you have ten years of exp, you shouldn’t be worried about having no degree at all… unless you are not in US?

I'll probably never be able to go through whiteboard leetcode questions :/

Have you (did you) consider hiring an interview coach?

Often the first few layers of interview are the most difficult, then it eases up as you get to just talk to real human beings.

Having someone help you play the game to get to the next step could be helpful.

(None of this is to say I condone the asinine hiring paths so many companies have adopted.)


If it bothers you so much why not do a degree? It’s like 2 years

A standard university computer science degree is 4 years full time. Generally past that age it's not possible to put your life on hold to go to school full time, so even 4 years can be pushing it.

I did a two year masters to become a programmer. My brother went to law school part time. It’s not easy but if it solves the problem should OP not even consider it?

Not sure where you're at, but in the US a masters is generally only available to someone that already has a bachelor's. I'm not saying it isn't worth it, but the traditional bachelor's path is 4 years of full time work.

No. I learned algorithm complexity in secondary school and started early enough that coding my own hash table was a normal exercise because the standard library didn't come with one (Turbo Pascal).

I also discovered competitive coding via the International Olympiad in Informatics (also a school thing, pre-college), and the kinds of problems in those turn out to be almost identical in form to today's style of coding interview. I only had to learn recursion and I could start hacking away at problems.

Fancy techniques like "dynamic programming" are normally amenable to memoized (i.e. cached) recursion implementations, but in practice most interview problems aren't even that hard.

Now, I went to college, but it was a mixed degree with business and it didn't teach things like hash table implementation, let alone pointers. Algo analysis material was weak. I was the best student only because I knew it already. The degree is mostly useful for visa qualification. I also got very good at pool.




Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: