/junior-developer-interview-prep

Repository of things to assist Jr. developers with Interview Prep

OtherNOASSERTION

Junior Developer Interview Prep

Repository of things to assist Jr. developers with Interview Prep

Be Prepared to Whiteboard

You'll probably be given the opportunity to whiteboard a problem. The goal of this whiteboard session is not to see you write perfect code. Instead, it is designed to let a prospective employer see how you work out a problem. You should practice a scenario with a friend where someone asks you to solve a problem. These sorts of questions are very similar to word problems from gradeschool math.

Examples

  • Can you draw an ERD diagram for the following SQL tables...?
  • Can you write a logical statement for...?
  • Can you manipulate an array/object using iteration...?
  • Can you create a diagram that explains the purpose of MVC?
  • Can you outline how to create an HTML Form to POST to...?
  • Can you create a class (or constructor) for the following object...?
  • Can you create an HTML template to render the following data...?

Research the Company

If you're going to apply and then interview with a company, you should be familiar with what they sell/use. Research their Github; see what their developers use (if you can). If the company offers a service, create an account, login and try it out. Write down some questions about their product. Inspect their source code on the front end to see what libraries they may use. The more you know about the company when walking into the interview, the better!

Examples

  • Github.com - In a frameworks.js file, they bundle/minify...
    • jQuery
    • Facebook for jQuery
    • Sizzle CSS Selector Engine
  • GeneralAssemb.ly - uses...
    • jQuery
    • Facebook
    • Twitter
    • Google Analytics

Random Questions You May Be Asked

  • How would you organize a front-end application folder-wise? Where would you place JS, CSS, etc?
  • What is your favourite Ruby framework and why? What does it do better than another framework?
  • What is the benefit of namespacing in a Javascript application?
  • What is the next thing you'd like to learn?
  • Can you describe the use case for classes VS IDs in CSS? Why is this useful and how does it affect your CSS design and layout?
  • What is the purpose of a library like Backbone.js or Angular.js for Javascript?
  • What is the primary difference between Sinatra and Ruby on Rails?
  • Do you have any experience with using templates of any sort? If so, can you describe a use-case that you’ve used them for?
  • In layman’s terms, how would you explain the concept of inheritance and classes to someone who is not a developer?
  • What is the benefit of using TDD or BDD (test driven development or behaviour driven development)?
  • What is the benefit of using an MVC architecture?
  • What is the most recent API or library that you've used and why?
  • If I provide a class, can you show me what class it inherits from?
  • Can you describe inheritance?
  • Could you write a SQL statement that SELECTS from a table?

The Joel Test

Read about the Joel Test. If you are unfamiliar with what some of these may be, check out the writeup below (as a Jr. developer I wouldn't expect you to understand all of these). If you're comfortable with one or two of these questions, it doesn't hurt to ask the interviewer one or two questions during the interview regarding these. Typically the Joel Test is designed to rate a company on how solid their development department is.

  • Do you use source control?
  • Can you make a build in one step?
  • Do you make daily builds?
  • Do you have a bug database?
  • Do you fix bugs before writing new code?
  • Do you have an up-to-date schedule?
  • Do you have a spec?
  • Do programmers have quiet working conditions?
  • Do you use the best tools money can buy?
  • Do you have testers?
  • Do new candidates write code during their interview?
  • Do you do hallway usability testing?

Read more... http://www.joelonsoftware.com/articles/fog0000000043.html

Final Thoughts

  • Before interviewing, think of a 3-5 questions you'd like to ask the interviewer about the company/their product/wht you'll be doing.
  • Ask what your role in the organization will be and what you can do to prepare for it prior to being hired. This also shows your interest in the role and your desire to own it.
  • Ask what software/tools that the company uses; this lets you see what you'll be working with.
  • Dress to impress... but ask what the expected dress code will be when scheduling the interview. Dress up one step nicer than that.
  • Don't be afraid to say I don't know. It is better than lying.
  • If you need for clarification, ask!
  • Don't ask for specifics regarding benefits on the first interview.
  • Get your interviewer's email address. Email them next day thanking them for their time. They'll remember you.
  • Don't waste interview time with useless small talk.
  • Talk to a friend before interviewing. You'll feel confident going in. It isn't a bad idea to walk to an interview with a friend.
  • Your Github is your portfolio. Clean it up. Be proud of it. Remove bad code.
  • Demonstrate passion for what you are doing. It'll set you apart.

Sources & Additional Reading