Ask HN: How to get a job while having a job?
All these hackerrank/leetcode tests + White board tests + all day interviews. How is it possible to work a full time job and dedicate enough time to get another job? Especially if you have been out of school for while. I got like 100 on my algorithms classes, but its been so long ago and its not like most developers write red black trees, suffix tree, heaps etc. I have started to review this stuff and it takes so much time.
Why can't we have some sort licensing board like a medical board so that you prove you can code, and then interviews aren't so time consuming.
49 comments
[ 2.6 ms ] story [ 102 ms ] threadAfter months of not finding time to do courses online, I've been studying between 5-7am for the last couple of weeks. Previously I would wake up, go straight to work, come back home tired and waste time on Netflix before going to bed. Now I spend less time for entertainment after work and sleep sooner because I have to wake up early.
This may not help you but thought I would share my experience.
Edit: Reading your question again and looking at the other comment, looks like your question may not be about time management so this may be irrelevant.
My situation has changed a little bit now (due to some deadlines) and though I can find a web developer job more easily, I want to give it my best shot trying to get an ML job, since I have realized I might never do it if I don't do it now.
Luckily I don't have a lot of those negative thoughts/days. I've felt bad a couple of times for wasting too much time on that particular day but I think of the overall progress I've made and get over it pretty quickly.
I've found that if I want to get into something, it's a real pleasure to research, learn, tinker - that is my entertainment & relaxation.
This is something that has frustrated me - I thoroughly enjoy learning new things and these online courses and yet I wasn't spending time on these things. After work, it's a lot easier to just switch on Netflix from the couch and let it autoplay. If they had Udacity on FireTV, I would have probably used that instead of Netflix. I'm thinking this is also because I am mentally spent after work and it takes more to study vs Netflix.
I totally agree on better industry accreditation though, it would be good to prove a basic level of qualification and experience although we have all met people who are great on paper and useless in real-life!
We all do this. Yes, it's a hassle.
Separate work and job-hunting as two different skill sets in your mind.
Use any note-taking tool of your choice (I used EverNote) and write up:
- Standard algorithm questions and answers to quickly revise on
- Soft questions (like name a time you rose to the challenge/etc) with pre-prepared answers.
- ANY f*ckups from previous interviews and how to not do that again
- ALL tech questions you were asked + solutions to revise.
I hope you get the gist of what I'm saying here. Job-hunting is a "mode" you enter in. It's like preparing for an exam where you're learning a whole bunch of stuff before-hand, but knowing very well that once the exam is over you'll forget everything.
This has already happened to you with algorithms. Same thing goes with jobs. You'll enter into algo-solving and interviewing mode, but once you have an offer you'll have the luxury of forgetting it all once you start working.
It's when you're back on the path of finding a job again that these notes you've taken serve as an anchor for quickly getting back into that job-hunting mode.
It's served me for years.
All the best.
The whole thing is mildly comical.
For a lot of the things we build in engineering that kind of qualification would be ludicrous, yet we've created another barrier for a variety of people where there doesn't have to be one.
"Must have Super Engineer Accreditation(tm)" - it'll be the new college degree. How much does it cost to get? How much time? The girl who doesn't need to work can study all she wants and pass without having to do nights and weekends for months / years etc.
>Why can't we have some sort licensing board like a medical board so that you prove you can code
Too many software developers have a strong aversion to regulatory bodies in their own profession. That really is the issue here.
apply for some jobs you aren't that interested in to get used to interviewing again. you will typically get phone interviewed first so not much risk of interfering with your job.
you may need to take vacation (sick days) for some interviews.
[1] https://github.com/mtdvio/every-programmer-should-know
1) Don't devote much time to studying, and focus on companies that don't rely on whiteboarding leetcode-style interviews. They're harder to find, but they exist. FAANG probably isn't going to be an option, unless you get lucky.
2) Go all-in on studying. Make the time. Even an hour a day. Cut back on work and social obligations. Chip away at problems for several months. Keep track of the ones you get stuck on and re-do them a few weeks later. Try some practice interviews at sites like interviewing.io with real humans, and listen to their feedback. Repeat, repeat until you feel more confident. It takes time, but it pays off.
I have a simplified skeleton of class that is similar to the problems we solve every day and failing unit tests.
They have to make the unit tests pass.
Then I give them a second set of requirements and they have to make the second set of tests pass without breaking the first set.
This is a topic that has been discussed to death for years and there are ample resources on the Internet for anyone who is genuinely interested in alternative approaches to whiteboard interviewing.
I'll be crude but whiteboard interviews are fucking stupid, obnoxious and wastes time, you will definitely miss out on quality candidates. You might as throw a personality test in for the ultimate combo of "how to fail at hiring"
If you've been working for a while it's much more efficient to get jobs through your personal network. I have about 4.5 years of industry experience and was able to skip directly to the final round onsite with a couple companies where I have close friends/former colleagues trying to recruit me. I just started a new job with desireable BigCo that I got this way. Unless you are specifically passionate about getting in with a specific company to work on a specific product, you're much better off focusing your energy on companies where you know people who will vouch for you.
However, why should some well-connected person want to talk to some bozo who's only giving them the time of day to job hunt? Especially in a career like ours that isn't dominated by talking like sales is?
Building and maintaining a professional network is something you should be doing all the time. If you wait until you need a job to network you are doing it wrong.
Maybe I have Asperger's or something else, but this whole thing about relying on connections to get jobs more easily doesn't come naturally to me.
TBH the whole thing about getting ahead more easily to jobs through common friends, man does it remind me of nightclubs. I don't care about having a personal entourage, but the industry seems to be forcing me to. I'm just trying to live a happy career and life without needing to be popular and stuff.
And while I do have friends I've made in high school, they're a small group and they've never given me good leads. I don't generally see them as people I rely on for jobs. They're in totally different work fields and the kind of people who can't tell programmers apart from IT.
Why wasn't building a good network second nature with me, I don't know. But want to know why I don't have the intuition, and how to fix that.
----- I'm just kidding but it is really expensive to hire and fire a poor performer. These are high paying jobs where bugs can mean loss of revenue so it makes sense that they want the best.
Honestly, you should be reviewing algorithms every few years so you never fully lose it... not just when you need a new job.
Update: You should not be trying to memorize problems but learn the 10ish basic algos... and understand how to quickly classify a problem as solvable with a specific algo. It makes the entire process less daunting.
Using the simple Joel Spolsky criteria for hiring, “smart and gets things done”, the only thing that testing whether someone can do algorithms is testing is whether they are smart.
There are plenty of people who are smart but don’t have the follow through to get things done and are always distracted by the “ooh shiny”.
The company doesn't like all-day interviews any more than you do. Multiple highly-paid people get distracted from their normal duties to interview you. With both you and the employer having a cost to bear, the interview should mean that both you and the employer are pretty serious about you being hired.
While it's nice to think this is true in an ideal world, having been on both sides of the interview in numerous companies in Silicon Valley (even having done hundreds of interviews in a big company I had worked in), this is remarkably false. (Sorry, didn't intend to be mean, just stating how it is.)
Both in terms of candidates that I've interviewed, as well as when I'm a candidate myself, pass rates for on-site interviews are quite low. I'm not selective as an interviewer, but when everyone else is unreasonably selective, there's not much I can do as a lone interviewer who gives a "Hire" to candidates I thought were fine.
That's a really interesting point. I think you may have just nailed why the software developer hiring process is so broken right now.
Our industry is about at the stage of maturity where civil engineering or medicine were circa the turn of the 20th century when state accreditation boards began licensing in those industries.
I actually don't have a CS degree at all and admittedly poor understanding of algorithms and data structures as I originally was educated in code at an art school. But after 16 years writing code, due to the increasing amount of gatekeeping being put up around CS fundamentals I'm actually going "back to school" right now, taking online courseware to gain at least some rudimentary online certificates in those CS areas just to demonstrate that I'm qualified to continue working in the industry.
It would actually be quite nice to have a real board certification in this stuff to study towards, rather than some BS online course certificate, or worse, having to re-do my entire undergrad 16 years into my career...
I am supposedly a senior developer, but I was asked:
To whiteboard a system that I designed and asked me how I designed it for high availability, scalability, etc.
How would I improve the current process to bring in CI/CD.
My theory on automation testing.
My previous job interview was similar, I was interviewing for a lead dev position without knowing it. He asked me 30/60/90 day plan to create a software development department to ship some green field projects and to rescue a project that had gone off the rails.
Any company that is more concerned with whether their senior developers can write algorithms than whether they can ship features and architect systems is not a company I am going to work for. It’s probably a company full of architect astronaughts who couldn’t ship if their life depended on it.
Then again, I don’t live in SV but so do live in a major metropolitan area.