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.
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.
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"...
This was for a customer service position.
Nice
Just something to consider. I hope your job search worked out or is going well.
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
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.
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.
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.
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.
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.
No matter how awesome your particular hammer is, it should be set aside when you're working with screws.
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.
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.
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.
but also, emacs is pretty cool but I figure i'd mess around with elisp way more than actual programming
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.
Would you ask them their favorite programming language, and if they say Perl very passionately?
Also, it often depends on the ecosystem.
This is exactly the type of person I still hire to this day. Your specific skills are less relevant than your ability to communicate, your drive and passion, and your shared interests with the team. I've rarely got a bad hire out of this method.
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!
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)
I was so frustrated by the ridiculousness that I just immediately signed off and left the meetup group and discord.
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!
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.
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
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.
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'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.
* 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!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 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.
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/
Consider it like dating. It doesn't matter what you say as much as it matters whether or not you're compatible.
I’m pretty tired of getting laughed at and the rampant dishonesty.
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.
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.
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.
I changed my nutrition, plus some other bad habits which reduced its intense; now I am way better than past times.
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.
I can't imagine if my peers that's less fortunate or less passionate with programming to be able to pass.
What industry / YoE / skillset combination do you have? Seems like full stack engineers are writing their checks these days.
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.
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.
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.
That's my experience anyways.
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.
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.
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.
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.
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 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.
Wish I could do something with that info. A deadpool where the posting that's been up the longest wins the daily pool?
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.
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.
He took it the right way. :-)
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.
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 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.
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.
If anything, I'd actually argue that there are more non-traditional routes to working as a software dev today.
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.
Interviewing sucks, but it's mainly because the people doing it are poorly trained, at least in my experience.
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'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).
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 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 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.
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.
> 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.
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.
What companies are offering interviews at night? That’s when I’m at my sharpest.
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)
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.
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.
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.
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.
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.
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.
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 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.
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.
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 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.
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))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.
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.
It's okay to read Knuth, and even do the problems. Just don't tell anyone. :-)
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.
Needless to say I didn’t get the job.
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.
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.
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)
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.
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.
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.
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.
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).
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.
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.
Not picking on you, just using your comment to generalize.
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.
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?
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.
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.
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).
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.