Quote:
Originally Posted by Roonil Wazlib
That may have been me, if no one else claims it.
Been going through Head First Design Patterns and Cracking the Coding Interview, mostly because I don't want to completely fail any interview I do, and also because I think they'll make me a better programmer.
This bit was posted here before, but I had a follow-up, semi-related to dave's post:
How much of this stuff is an intern/apprentice-level applicant expected to know or have mastery of? In CtCI I think this was the baseline for people with experience to get jobs.
For example, one apprentice job I'm looking at has this for the requirement:
I don't know what qualifies as 'proficient'.
My apologies if I've asked this before, but I feel like I'll be applying sooner than later and while I wouldn't mind being semi-overqualified, I definitely don't want to go in and not know at least enough basics to be helpful and contribute.
Hopefully this will serve as my lack-of-confidence rant for this quarter.
As I've said I applied for 497 jobs. I never got a question on any algorithm or data structure more difficult than linked lists, arrays, hash tables, queues, and then DFS/BFS (mainly BFS and just being able to explain why it's better than DFS for the problems I faced). This isn't necessarily typical but that's what I got. Make sure you can implement them all other than arrays (build a queue that will enqueue/dequeue in O(1) time and be able to reference this, offering to build it if necessary).
Most common coding question was "two sum" (given an array of numbers and a number k, select all pairs that add up to k - there are variations of this). Make sure you can do it in O(n) time. I got this question a ton.
Don't know how much algorithm knowledge you have already but you're probably better off spending time on an online course like the Coursera one that just started up again than with diving right into CtCI, if you don't already have a lot of those basics down.
Practice white board style on a literal white board if you have one or on paper if not. Talk things through as if you're on an actual interview. If you talk correctly, most interviewers will guide you through the parts you get tripped up on.
If JavaScript is one of your skills or needs to be, read Effective JavaScript and spend time learning about "gotchas" like closures and prototypal inheritance (most of it is in that book if you can absorb it, look into it more if not).