You got all this experience and love making stuff for users, but you don't know the "insert trick of the week" to solve the latest "elite" programming question. Bye Bye. No more jobs for you.
You got all this experience and love making stuff for users, but you don't know the "insert trick of the week" to solve the latest "elite" programming question. Bye Bye. No more jobs for you.
Could be lots of reasons for that. They’re hungry, they don’t know what’s impossible (occasionally an asset, often a source of aggravation), or that they don’t know when to say no.
From what I gather, this is covered in required curriculum in schools like Berkeley, Stanford, MIT, etc. I've never heard of it in my life, and I was one of the top two in my CS graduating class.
IMO, this boils down to cultural bias, plain and simple. "We hire people just like us."
These companies now specialize in creating online tests. Where in you will have to enter a working program, which takes input through stdin, and has to print output to stdout. There are typically a huge range of tests your program has to pass. Several of those tests are to check if your program completes in time. And yeah, you write the program in a stipulated period of time.
Most questions go along the lines of dynamic programming. Mostly because for other questions, there is often a solution you can come up with. But for DP ones there is often a 'unique trick' involved with nested loops. And other ones are often bit manipulation types, where you get strange and interesting results by doing some tricks.
So you have to learn all possible algorithms. Which means you have to spend hours everyday learning every new problem/solution posted on those forums. Apart from this you also need to good C++ skills. I often see solution submitters in Java and Python laugh in the comments, commenting how their solution is just a Java equivalent of the C++ code, but just won't complete in time for a test case to pass. That also means learning a lot of C++ important to go through these tests.
These days getting good at interviews is a full time job.
I often have this thought. If you are really good at interviews you should waste no time in a company, building stuff and writing software. Your whole life must be dedicated to finding the next best paying job.
After all that's what you trained for.
The last place I interviewed at that did riddles ended up offering me the job, but I teased them even before they asked their riddles about how it wasn't a good interview technique. I could kind of tell they were thinking "oh boy, another guy full of excuses for why he's not gonna pass the interview process". Second riddle, I started talking and had the answer within a single sentence. No pauses, no sentence fragments. Now I had their attention.
Since it was a rapidly growing company I was in the interview pool within three or four months and it took me maybe six months after that to convince all but one person to stop using riddles for interview questions.
Point is, if you disagree with an interview technique but can manage to get through that filter anyway, you owe it to the rest of us to say something. Apply some peer pressure whenever you can.
Having gone through one of the mentioned schools, this material also never came up even once.
I'm now trying to get a business off the ground in a field I've dabbled in for years (game dev), but there's no expectation it'll get me past minimum wage :/
Job 1 - I had already been working at one company way too long. But I wasn’t asked any tough technical questions. I explained both my professional experience, and that I got my start as a hobbyist in 86 in 6th grade.
To be honest, with my programming experience I was overqualified for the job, but I wanted to get into .Net and away from C so I took a high level entry job as a .Net developer and it was basically a vertical salary move (wage compression is real).
2. I remember having a real simple written test that made sure I could write FizzBuzz, knew the basics of .Net and knew how to design and use databases. After that, I sat down and did pair programming with an IDE where I had to make failing unit tests pass. Again I was still punching below my weight class, but I was more concerned with learning than maximizing salary. It was a 10K bump and with a well known at the time Fortune 10 company.
3. Basic technical interview making sure I knew .Net, JavaScript and relational database theory. They asked a lot of questions about architecture and my “whiteboard interview” was drawing out a relatively complex, scalable system.
4. Slightly technical but the main question I remember is “tell me what steps are you going to take to create this software development department we need”. I was interviewing for a Dev lead position without knowing it.
5. “Here are some real world issues we are having with our architecture. We are on AWS. How are you going to solve them?”
Yes I’m still supposedly a hands on developer.
There are also a huge alumni of the FAANG club, who have a vested interested in doing "Google Interviews". Basically these people have spent so much time(thousands of hours) that the only way they can justify it is by making that interview process that way. Anybody who hasn't spent that kind of effort is obviously beneath their station.
But I hope you see where this is going.
>>Here are some real world issues we are having with our architecture. We are on AWS. How are you going to solve them
The "Google Interview" club likely won't ask you these questions. Their job isn't to build software. It is to get good at interviews, if you are good at interviews, interviewing is your day job, as practicing questions brings you a raise/promotion/title-change every year.
Why waste time building software?
I’m very happy in a major metropolitan area with a relatively low cost of living anf a good relative salary working as an “Enterprise developer/architect”.
No one should be asking you to write a self balancing binary search tree off the cuff. One of the simplest would be a Splay tree, and even that's way too much.
More relevant would be to ask for 3 or so things each of which are 1/10th the complexity, but then see if you can specify how to integrate those things together into a system in a way that shows you have experience with the pitfalls of actual coding and debugging.
Anecdotally, I am finding more of these people in indie development. Making their own thing or working with like minded people.
I used to look to Google/Facebook for experts and people to follow. Now, I look elsewhere.
Indie = recently unemployed, experienced dev making dream project.