Skip to content

Instantly share code, notes, and snippets.

@roc
Forked from chrisns/techtest.md
Last active January 18, 2016 10:24
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save roc/e0a814307b6eea35c3e1 to your computer and use it in GitHub Desktop.
Save roc/e0a814307b6eea35c3e1 to your computer and use it in GitHub Desktop.

JS technical test

Starter

  • Do you know anything about HOD? GDS/etc — can give quick introduction
  • What have you been working on recently? Good things/bad things?
  • Familiar with agile? How have you been working with your team?

What don't you like about:

  • JS/angular/backbone/ember
  • Node.js
  • Mysql/postgre
  • NoSQL store
  • other technology

Git

  • What does a good commit message look like to you?
  • What is a merge commit?
  • Your feature branch has fallen behind the master branch, how do you update your branch?

Assume you have commits pushed to origin:ABCDEF

  • You discover another developer put a password in C, discuss how you could go about editing that commit
  • You find it would make more semantic sense to reorder the commits to AEBCF
  • You find it would make more semantic sense to combine commits A & B Assume have another branch with commits: WXYZ
  • You want to take commit Y and add it after E

Scope

Consider the following code:

var a = b = 5;
console.log(b);

What will be printed on the console?

Hoisting

Describe what the following will return and why

function bar() {
   console.log(a);
   console.log(foo());
   var a = 1;
   function foo() {
      return 2;
   }
}
bar();

Flow

Describe the predicted output of, and why

console.log("john");
setTimeout(function() {
    console.log("jack");
}, 0);
console.log("jake");

Extend basic prototypes

Write javascript to make the following:

console.log('helloworld'.repeatit(3));

output: helloworldhelloworldhelloworld

Quickfire

  • Describe the difference between == and ===
  • Assuming function myfunc() {} describe the difference between myfunc() myfunc.call() and myfunc.apply()
  • Describe the difference between null and undefined
  • What is an error-first callback?
  • How can you avoid callback hells?
  • How can you listen on port 80 with Node?
  • What's the event loop?
  • What's the difference between operational and programmer errors?

Discussion points

  • AWS/rackspace/similar cloud
  • NoSQL stores
  • Docker
  • Technology you're excited about
  • Mysql when would you use INNODB vs MYSIAM
  • Talk about what HTTP methods there are and what they are used for.
  • Talk about what RESTful means to you
  • Describe what HATEOAS means to you
  • What tools can be used to assure consistent style?
  • Why npm shrinkwrap is useful?

Testing

  • Describe a test pyramid
  • How can you implement it when talking about HTTP APIs?
  • Describe mocking, stubbing
  • Describe the difference between BDD and TDD
  • Why would you use BDD/TDD, are they mutually exclusive?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment