206 karma · joined January 15, 2011
Ask yourself, do you even need a function that large? You might already be approaching the limits of the L1 cache, at which point you might as well be using separate functions since the call itself will be negligible to the cache miss.
Oh well, there's plenty of other companies who were happy to talk to me.
For example, have header files for functions? Want to know when they're called? Monkey patch it in!
Also, from what I've heard monkey patching a function is calling adding a detour, and monkey patching a virtual function is called hooking. "Monkey patching" usually refers to injecting code into dynamic languages, not into compiled languages.
Therefore, buffer through buffer+1 would be valid pointers, but unless they can prove that i-128 is <=1 they can safely assume that the final pointer can be more than 1 past the buffer.
If it was just a pointer (not an array) they could do the same analysis if the pointer was mallocced right then in the same function with a constant size. More likely though, the pointer would be a function argument and then they would not know where the object boundaries were without doing interprocedural analysis (which I assume is outside of the scope of this post) and some other additional propagation (so technically within the C99 spec, but I doubt you would see an optimization that actually would do that).
It could definitely get lonely if a new person starts and they don't develop a regular lunch routine with a group when they are used to it (from their previous job?).
People who actually prefer to sit alone and aren't making this up should be able to sit alone (or do their own thing).
This makes doing something like e.g. map(map(...)) extremely annoying.
Javascript (nor does, really, any other proper closure implementation) has no such issues.
And even if the candidate does have the code up, not all interviewers would bother spending the time to look at it. At the end of the day I think it is based off some kind of reputation on whether or not people believe in the technical chops enough to skip asking the candidate the question.
And it's really hard to draw the line between belief and sloppy interviewing where they simply forget to ask.
I wonder, in your cases where you experienced the ideal interview, which factors do you think contributed to it?
The trouble is that unless someone is highly referred from a technical coworker you trust, it's going to be hard to know in advance if you have the technical chops or not.
Anyone can write down on their resume they've done A, B, C and are well-versed in X, Y, Z. They might even be able to talk the talk. But when it comes to writing code they might completely freeze or write something that would make college students blush.
Finally, the time is limited (could be 45 mins, could be 1 hour) during the interview, and the most important thing in most peoples minds is technical chops. That's why I'll usually start out with that (unless the candidate was referred or seems highly qualified, in which case I'll merely get into that later), since it could just weed out the candidate before getting very far.
With your regard of "Convince me why I want to work at your company," I think that only happens once a candidate has proven to be worthy. At least in my last company we would be in "sell" or "buy" mode for a candidate (sell meaning we try to convince him/her to join, buy meaning we try to convince ourselves if he/she should join) and it would start out in buy mode.
There's nothing worse than interviewing and hiring a candidate with a great personality than just finding out he/she couldn't code their way out of a paper bag. That being said, I do dislike interviews where they spend the entire time just asking technical questions as it should be obvious after one or two, so a particular balance needs to be sought.
The problem I'm sure, was being rusty at C, not the algorithm implementation. I make all kinds of silly mistakes on the whiteboard if it's with a language I haven't used for a while.
Personally I was in between jobs recently, so I sent Google my resume using their online application site. After about a month, Google still didn't get back to me -- meanwhile I managed to interview at 6 different places (all the way) and found a new job.
"I heard nothing for a month and a half" is the key problem I think. It's going to be very hard for any full time employees that are any good to stay off the market that long, they'd have to apply to Google before quitting their last job.
As for interns, I am not overly surprised since you applied in December. At my school we had the hiring booms in October/November and then again in March/April (that's when we had the 2 engineering job fairs), so anytime between that people weren't really finding a new internship (unless it was on their own).
One last thing, what exactly is a Google spreadsheet beta candidate form? Is that the same one as the optional Google "survey" where you had to rank your skills (1-5 or 1-10 was it)?
Wouldn't have guessed that from the blog post though.
Still, it's definitely the best way to get exposed to writing optimizations using LLVM. Writing optimization passes ends up being really self-contained too (just that one file/class, and it 'automatically' gets registered into the optimizer), so it might be just one of the better ways of learning LLVM overall.
* 2 people in a non-windowed office
* 1 person in a non-windowed office
* 1 person in a windowed office
* 1 person in a corner windowed office.. etc
and people just starting out do end up getting paired up with someone else.
And remember, once you have at least one internship under your belt the rest will be as easy as cutting a knife through butter.
That being said, being on the same page as the rest of your coworkers for what constitutes correctly-styled code is invaluable.
Every couple of weeks, I get into the zone while driving my car. For this the situation needs to be just right, i.e. the road can't be empty, but it can't be full of cars either. Basically the ideal situation is that there's just enough cars that you can't stay in the same line while maintaining your preferred speed, but there's enough switching lanes is viable.
On those days I might get 'in the zone' and have intensely heightened situational awareness. I 'feel' the cars around me and can easily navigate the road like I was flowing through a river (aside: 'flow' is a synonym for 'zone').
Situational awareness is also a key trait in becoming proficient in an FPS. In fact, almost anytime a video gamer goes on a kill streak it's because they were able to tap into heightened situational awareness (e.g. you 'feel' your enemies, know where they're going to come from, so you take them out before they take you out). The only difference is that since it's front of a computer screen it's easy to be misled that you are ignoring everything.
You are just ignoring everything irrelevant.