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.
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!
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.
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 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.
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.
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.
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.
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’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.
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.
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.
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.
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.
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.
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.
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.
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.
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?
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.
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.
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 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!
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).
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.
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!
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.
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.
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.
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.
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)
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.
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.
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.
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.
If you're hiring and care about these things hit me up :)
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.
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.
"Show up on time" is not just for Hollywood.
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.
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.
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.
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.
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.
if you're good, you're good. no need to be terrified.
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.)
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.