Ask HN: Career advice needed
I am PhD student graduating soon and I am looking for career opportunities. I am having trouble with the job hunt though.
A little bit about me... I am not software engineer, but I do lots of programming in C/C++/OOP. I have done some advanced things, wrote many lines of code, and completed many projects. The catch is that I do all of my programming with the help of the interwebs.
I also work with the TCP/IP abstraction. My research is in the networking field where I try to improve communication streams. I test protocols, modify them, design them, implement them, whatever I need to do. I usually do this using C/C++.
I have an interest in security and cryptography. I took a few courses at school and I follow some online courses and forums. I implemented some crypto things for fun, such as AES-128 ECB, from scratch. I also worked on blockchain projects that required crypto knowledge and implementation of related methods. I implement my security/crypto projects in C/C++ as well.
The problem is that I am doing these job interviews where they ask me about implementing something for a BST or something similar. I am not successful at answering interview questions of this type. I understand the logic behind them but I do feel that these types of interviews are inadequate at measuring a candidates potential. Am I applying to the wrong jobs? Any suggestion are appreciated!
Thank You!
20 comments
[ 2.8 ms ] story [ 53.1 ms ] threadYou get to decide between a) drilling leetcode for a couple of months, at which time you know the shibboleth and whisper it at large swaths of companies to gain admittance; or b) look for companies that go with a more liberal but likely still uncomfortable interview ritual.
I believe you're applying to the right jobs, it's probably just that the interviewers are trying to do what they think is the "popular" way of going about technical interviews.
Best way to handle this IMO - ask yourself: Are you ok with putting up with this in order to get the job? If so, study study study. Buy the recommended books (there are tons of HN threads on this topic) and study! However, if you decide that you're not going to be the monkey boy for anyone, only go so far as displaying that you know the fundamentals of sound programming (e.g., binary search, linked lists, all basic data structures, etc). None of the crazy/wacky/never-used stuff.
A lot of modern interviewing isn't about finding talented programmers, it's about finding those who know how to follow their (albeit implicit) rules. You study, we give you the job, you don't, we won't.
Edit: change "the" to "your" in last sentence
From my perspective it feels like that. For some reason, it also feels like there is a gun pointed at me when doing these kinds of job interviews.
These interviews are looking for specific things while you work through these problems. They do not necessarily want you to answer the question exactly correct. They want to see you work and see where you are at.
Intro level jobs are competitive right now. The search will be slightly harder but there are still jobs out there.
Know what is happening in these interviews before you go into them. There are a number of books specifically about code interviews and how to pass them. Read them. STUDY FOR THE INTERVIEWS instead of complaining as if you are owed a job.
None of us like the whiteboard interviews. It is a good dog-whistle for a good education which, despite what people say, is still worth something to these companies.
This isn't a bad point, though it would be stronger if you approached the subject with empathy. OP is clearly intelligent, but they're frustrated by a difficult, opaque process. Imagine yourself in the situation and try replying with some empathy.
When the interview was setup I was told it was going to be about gdb/valgrind. When the interview took place, BSTs were involved, I answered the basic stuff such traversing it, finding the min/max, some other functions, but I was not able to answer some tricky questions later towards the end.
I do still highly recommend picking up a book specifically about coding interviews as I have found them helpful
This isn't meant to measure potential. It also isn't to make you feel good about the process. It's to give the employer some assurance that the candidate can think through not only the problem but how to implement a solution. It's not enough to understand the theory and be able to write whitepapers about it. It likely exists because other candidates have got through the process but were not effective. It likely won't apply to you, but they just want to do some up-front filtering. If you want to find a research position that doesn't involve implementations as a deliverable, then perhaps you could apply for those if they exist.
No, just someday someone decided to add this to interview process.
I hate these kind of white board coding questions, but if its what you need to do to get the job you want, why not just bite the bullet and practice these kind of coding exercises? Clearly from your experience you are capable of learning/memorising this stuff..
Yes its a pain in the ar*e but if its what you need to do then its what you need to do.
- try applying for an internship. One of our swe has a PhD in chemical engineering. They pivoted their career but started as an intern.
- are you looking for a job in the US? Are you a US Person (citizen or perm resident)? if so, be sure to explictly state that. Don’t just say authorized for work in US. That could mean OPT and many companies won’t bother with that and won’t bother to investigate. In general US companies are not allowed to require us citizens but they are allowed to require “perminant legal right to work in US”. That means citizen or green card.
I am outside the US.
An interview process is always hard, but I think you're in the midst of an exceptionally hard process. How are you caring for yourself? What do you do to relax?
My best advice, based on many frustrating interview processes is that when you're going through hell, keep going. That's been attributed to Winston Churchill, but I don't have time to research whether that attribution was correct.
If you keep going, you will get something. You're very, very smart. You can do this. You will do this.
Best of luck and if you need to vent, my email address is on my profile.
I will keep going at it, but these kinds of job interviews are definitely a turn off from the company itself.
2. Negotiate the terms of the interview: "hey instead of whiteboard puzzles here is some code I wrote that demonstrates my abilities."
3. Practice these, if you don't get anywhere. It's a bunch of work, but they tend to be repetitive. But you can also take control of the interview, e.g. by saying things like "I will write tests first", and sometimes the process for solving will impress them too.
Long version: https://codewithoutrules.com/2018/07/29/getting-a-job-withou...