Open Side Menu Go to the Top
Register
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** ** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD **

04-30-2015 , 01:02 PM
Say a user clicks down on the nav twice. The app will make two calls to get data to load in the content panel for each focused nav element. There is no guarantee the first call will come back first - thus leaving the user looking at say What's Hot when the focused nav element is Recommended For You.

Stupid mistake. I saw it as soon as they mentioned it. I forgot the user input isn't blocked while the data is being gathered. In the real world I wouldn't block user input but would kill any outstanding callbacks when a new one comes in. I told them this in my defense of their comments.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 01:02 PM
Quote:
Originally Posted by KatoKrazy
I have found having a code review system with on screen diff, commenting, replies, and a scoring system etc to be really helpful. We use Gerrit but I believe there are several options.
Yeah, we use GitHub pull requests and its awesome.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 01:33 PM
Quote:
Originally Posted by candybar
Suzzer is 100% right here. In javascript, even in strict mode, every property access using the dot operator is using an inline constant, even if it doesn't appear that way. Constants.UP is just syntactic sugar for Constants["UP"] and if Constants is defined globally it's actually a shortcut for window["Constants"]["UP"] (though this isn't entirely true in strict mode).
I didn't say he was wrong to code it that way and I actually stated in an earlier post how I understood why he coded it the way he did. It isn't about what whether he is right or wrong in reality, it is about what the prospective company could criticize him for. That seems to be a hard concept to grasp.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 01:38 PM
Quote:
Originally Posted by adios
I didn't say he was wrong to code it that way and I actually stated in an earlier post how I understood why he coded it the way he did. It isn't about what whether he is right or wrong in reality, it is about what the prospective company could criticize him for. That seems to be a hard concept to grasp.
But you could be criticized either way, so how does your suggestion help? Any code anyone writes can be criticized in much the same way - if people are evaluating based on superficial preferences, you can't win.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 01:53 PM
Well they wind up with a lot of developers who think the same way. Which can be good and bad I guess. But it's definitely not the way to think outside the box, value differences of opinion, value smarts and critical thinking skills above all else, or any of the other BS in the X slide deck.

Butthurt fading but not still completely gone.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 01:54 PM
Quick question please - I have heard that creating JavaScript grids is an interview selector.

Just completed Chapter 2 exercises in Eloquent JavaScript and my solution seems dramatically less efficient than the one presented.

How bad would this solution be in an interview (I had to write out the solution in pseudo code on paper before getting to it)? - from My Blog Post

Code:
var gridHeight = 8;
var gridWidth = 8;
var rows = 1;
var grid = '';

while (rows < gridHeight + 1) {
  if (rows % 2 !== 0) {
    var rowLength = 1;
    while (rowLength < gridWidth + 1) {
      if (rowLength % 2 !== 0) {
        grid += '#';
        rowLength += 1;
      } else {
        grid += ' ';
        rowLength += 1;
      }
    }
    grid += '\n';
    rows += 1;
  } else {
    var rowLength = 1;
    while (rowLength < gridWidth + 1) {
      if (rowLength % 2 !== 0) {
        grid += ' ';
        rowLength += 1;
      } else {
        grid += '#';
        rowLength += 1;
      }
    }
    grid += '\n';
    rows += 1;
  }
}

console.log(grid);
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 02:10 PM
I'm starting to sound like a broken record but if your technical interview is such that there's no objective way to distinguish between the candidates and you're left to nitpick about style choices that reasonable people can disagree on, you're doing it wrong. If too many people are able to give the right answer, make the question harder.

If you need to hire a mathematician, would you give the candidates middle-school math problems and hire the ones who wrote down the prettiest looking answers using whatever methods that you would've used?

Subjectivity in a technical screen is dangerous because ultimately most interviewers have little skin in the game and most engineers aren't well-equipped to judge others on qualities that don't have much to do with technical ability. Letting your interviewers give easy problems that are graded subjectively effectively takes the "technical" out of the technical interview, which is bad news because your interviewer is neither well-trained to read people, nor particularly incentivized to care.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 02:14 PM
Quote:
Originally Posted by candybar
I'm starting to sound like a broken record but if your technical interview is such that there's no objective way to distinguish between the candidates and you're left to nitpick about style choices that reasonable people can disagree on, you're doing it wrong. If too many people are able to give the right answer, make the question harder.

If you need to hire a mathematician, would you give the candidates middle-school math problems and hire the ones who wrote down the prettiest looking answers using whatever methods that you would've used?

Subjectivity in a technical screen is dangerous because ultimately most interviewers have little skin in the game and most engineers aren't well-equipped to judge others on qualities that don't have much to do with technical ability. Letting your interviewers give easy problems that are graded subjectively effectively takes the "technical" out of the technical interview, which is bad news because your interviewer is neither well-trained to read people, nor particularly incentivized to care.
Hmm, ok cool, I'm sure there's some good stuff in here for someone but come again?

I'm trying to learn to code to prepare for a junior coding position at some point - just wondering how I'd stack up vs others if questions like this are given.

I'm not the CEO of a large organization coming on 2+2 for help creating coding tests for the PMs to give potential candidates
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 02:20 PM
Quote:
Originally Posted by Somnius
Hmm, ok cool, I'm sure there's some good stuff in here for someone but come again?

I'm trying to learn to code to prepare for a junior coding position at some point - just wondering how I'd stack up vs others if questions like this are given.

I'm not the CEO of a large organization coming on 2+2 for help creating coding tests for the PMs to give potential candidates
Wasn't talking to you - there's this whole conversation here regarding interview/recruiting processes, etc.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 02:28 PM
candybar, do you believe the feedback on Suzzer's solution was just nitpicking style?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 02:37 PM
Quote:
Originally Posted by jjshabado
candybar, do you believe the feedback on Suzzer's solution was just nitpicking style?
Basically yes. It's simply highly problematic to judge candidates based on the types of things they are discussing.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 02:41 PM
Quote:
Originally Posted by candybar
Basically yes. It's simply highly problematic to judge candidates based on the types of things they are discussing.
Which is why the hiring manager should be at least a little bit technical to sort through fundamental deficiencies vs. one engineer's preferences. I get the feeling if the engineer's manager would have been involved instead of the department director, things might have gone differently.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 02:41 PM
getting the impression the timing of my post was less than optimal
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 02:44 PM
Lol got this on the node dev group on linkedin:

Quote:
DraftKings is growing. Be a part of our Boston team.


WHAT BUILDS A GREAT COMPANY IS HAVING GREAT PEOPLE
careers.draftkings.com•Our health insurance covers your pearly whites and peepers, and the rest of you too! Our kitchen’s stocked with healthy
It's the poker boom all over again. I actually got paid pretty well to create an iOS prototype for PS, and interviewed with FTP when I was in Dublin. That was about 3 months before all hell broke loose though.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 02:46 PM
Quote:
Originally Posted by Somnius
getting the impression the timing of my post was less than optimal
Can you restate the question a little better? IE no one's going to click a blog post link. Are you asking if that code is optimal? If so what's the problem?
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 02:54 PM
Quote:
Originally Posted by Somnius
Quick question please - I have heard that creating JavaScript grids is an interview selector.

Just completed Chapter 2 exercises in Eloquent JavaScript and my solution seems dramatically less efficient than the one presented.

How bad would this solution be in an interview (I had to write out the solution in pseudo code on paper before getting to it)? - from My Blog Post

Code:
var gridHeight = 8;
var gridWidth = 8;
var rows = 1;
var grid = '';

while (rows < gridHeight + 1) {
  if (rows % 2 !== 0) {
    var rowLength = 1;
    while (rowLength < gridWidth + 1) {
      if (rowLength % 2 !== 0) {
        grid += '#';
        rowLength += 1;
      } else {
        grid += ' ';
        rowLength += 1;
      }
    }
    grid += '\n';
    rows += 1;
  } else {
    var rowLength = 1;
    while (rowLength < gridWidth + 1) {
      if (rowLength % 2 !== 0) {
        grid += ' ';
        rowLength += 1;
      } else {
        grid += '#';
        rowLength += 1;
      }
    }
    grid += '\n';
    rows += 1;
  }
}

console.log(grid);
You need to worry about getting better at programming, not interviewing. Practice more until you can quickly solve problems these with minimal effort and not a lot of code.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 02:56 PM
So candybar gave me permission to show his initial response to my assigment:

Quote:
  1. Given their warning against Angular/Ember, I think using jQuery Templates may have been considered a bit of cheating, because you're taking advantage of its data-binding facilities, even if it has to be invoked manually. I'm not so sure about this though.
  2. Your navPanel is hard-coded and not data-driven, which I think goes against their directions. They do mention having to support n categories and x movies, but your solution is limited to the four hard-coded categories.
  3. Actually you may have misinterpreted their "we'll ask you questions like these" as don't architect for these yet, but have some strategies in mind for the interview that you're willing to discuss. I think the safe interpretation here is, have your app architecture explicitly take these extensibility concerns and more that you can imagine into account.
  4. With that in mind, I think they basically wanted you to create a hierarchical, container-based framework with event delegation. That's what the question "How would your key handling accommodate dozens more UI components, like episode selection and playback controls?" reads like to me. That way, if you were to replace, say one of the items in the list with a completely different component, you can. Also, if you want to replace the entire list panel with some other component, you can. Right now, there's some vague hint of componentization, but a lot of it is hard-coded and keystrokes aren't passed down in a hierarchical fashion, but from top level to the panel level, so you're limited to two levels of mostly predefined, hardcoded components. That's completely fine for a lot of things but if you read between the lines, that goes against their expectations.
  5. On a related note, this means your top-level composition doesn't at all resemble how your secondary-level composition looks. This prevents further hierarchical composition - what if your list panel is composed of several different panels?
  6. Also on a related note, your controller instances aren't properly scoped to its corresponding view and only manage to find their view through global selectors. This means you can't use any given controller more than once, for example.
  7. In general, your model is very shallow and the vast majority of logic is hard-coded in your raw controllers - I think they wanted it the other way around so that a deep application model that's hierarchically structured is uniformly interpreted by a core framework with just a bit of glue code specializing each component (events/view)

I can go on further but I think you get the point. Given the description, I think they wanted you to essentially create a mini-framework that can solve many more problems than what was specified, and I think you took it a little more literally as, solve this particular problem in a simple straightforward manner. Hope this helps!
So yeah I got this before the feedback from X, and I was like "oh ok, yeah that's on another level". If they would have come back with this, I would have basically had no reason to quibble.

Then the feedback from X came in, which I shared with candybar, and here's his response:

Quote:
Actually looking at their feedback, I'm not sure they know what they are doing either. I mean, who cares about constants and namespaces in an interview question - I did notice the namespace issue but I really didn't think they'd have a problem with it! And the level at which they were talking about code reuse, I don't know, seems kind of shallow. They are clearly a UI/UX specialist group and the problem with specialists is that they tend to lose perspective as to exactly which portions of their knowledge are essential and which are incidental. This is why otherwise great developers are often terrible interviewers. Judging people on their interpretation of vaguely worded interview questions is kind of silly.
Then I felt much less suicidal. Btw candybar I can put you in touch with a guy at X if you're interested and willing to move to Los Gatos.

If I'd have gotten your feedback before I turned in my submission I could be on my way there. And in all sincerity after all this I'm really glad that didn't happen. And in the end I still got to reject them, albeit for the 3rd bridesmaid spot.

Last edited by suzzer99; 04-30-2015 at 03:03 PM.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 03:08 PM
@candybar - fair enough, thanks.

@suzzer99 - candybar basically answered the question.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 03:21 PM
Suzzer, I have no idea why you'd expect to get feedback from X that is at the same level as someone reviewing your work for you as a favour. I'm actually blown away they gave you as much feedback as they did.

Candybar, I think its pretty silly to call their feedback nitpicking style (except for the things that they admitted were nitpicks). It seems pretty clear from your feedback that you also felt that Suzzer's solution wasn't really to the depth they would expect and that he probably misunderstood what they wanted.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 03:24 PM
Quote:
Originally Posted by Somnius
getting the impression the timing of my post was less than optimal
The code is pretty verbose. Quick rewite:

Code:
console.log( makeBoard(8,8) );

function makeBoard(w,h) {
  var row = repeatStr(' #', w) + "\n";
  return repeatStr(row, h);
}

function repeatStr(str, n) {
  return new Array(n+1).join(str);
}
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 03:26 PM
Quote:
Originally Posted by Somnius
@candybar - fair enough, thanks.

@suzzer99 - candybar basically answered the question.
Also, there's a newbie / homework question thread for those of us who are learning. Easier to post there and not worry about your question getting lost in the flow of convo itt
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 03:30 PM
Oh right, sorry :S

appreciate all the input
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 05:24 PM
Well my uncle just endorsed me for Javascript. VINDICATION! Suck it haterzzz.

** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 06:09 PM
My uncle was a mildly famous programmer. Helped develop lisp, worked for Google etc. When I was getting my career started a few years ago he kept insisting I wouldn't get anywhere without a degree. And then he died before I could prove him wrong.

Cool story.
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote
04-30-2015 , 06:19 PM
My uncle is a very successful CPA who struggles to turn on his smartphone. I seriously doubt he has any idea what Javascript is. I thought it was very cute though.

I had another uncle who developed COBOL since the 60s. He was working for Folgers coffee as a file clerk or something. His story is that they gave everyone in his group an IQ test. Then afterwards came to him and said "Hey we've got this new computer thing we need to figure out how to work. Would you like to learn programming?"
** UnhandledExceptionEventHandler :: OFFICIAL LC / CHATTER THREAD ** Quote

      
m