Upgrade to Pro — share decks privately, control downloads, hide ads and more …

How to Hire Good Programmers

How to Hire Good Programmers

Few things will ruin a great team faster than a bad hire so how do you recognize a talented software developer in a 30-minute interview? The traditional method of hiring programmers is to hire based on what they know. I will argue that you should instead hire a programmer based on what they can learn.

Jennifer Bland

February 22, 2018
Tweet

More Decks by Jennifer Bland

Other Decks in Technology

Transcript

  1. How to Hire
    Good Programmers
    Jennifer Bland

    View Slide

  2. 2
    Who Am I?
    www.jenniferbland.com
    @ratracegrad
    www.youtube.com/c/JenniferBland
    [email protected]
    github.com/jenniferbland

    View Slide

  3. 3
    answer at end of presentation
    Three Truths One Lie
    I made only 1 B at university rest were A
    I was in the 2nd largest California earthquake
    I have been to England 24 times
    I have more toy soldiers than Winston Churchill

    View Slide

  4. INTERVIEW PROCESS TODAY SUCKS
    let me show you how to improve it

    View Slide

  5. Improving the Interview Process 5
    Stop doing at-home programming challenges
    Implement short coding exercises
    Have casual conversations on topics

    View Slide

  6. Stop Doing At-Home
    Programming Challenges

    View Slide

  7. Create an AngularJS applicaOon using Sass/Less.
    The Page view of the applicaOon will contain 2 dropdowns (The dropdowns should
    be custom dropdowns created using Angular direcOve) – 1st dropdown will list 2
    makes – Ford, Acura. The 2nd dropdown will contain the corresponding models
    based on the selecOon of the make – Models dropdown will be hidden by default
    and will only be available in the DOM if the make is selected.
    · Models for Ford: Edge, Escape.
    · Models for Acura: ILX, MDX.
    The page view will also contain a content placeholder – Depending on the model
    selected, text will be populated in the first placeholder based on that specific
    model. The content should also display the corresponding image of the vehicle.
    Write unit tests validaOng the funcOonality above. Data should come from
    mongodb. Create a nodejs project for this exercise.

    View Slide

  8. Create the objects that you feel would best model a jungle using your best OO design or funcOonal approach
    and coding pracOces based on the following requirements, using any language of choice.

    1. The jungle contains several species of animals; Ogers, monkeys and snakes.
    2. All animals can do three things, make a sound, eat food, and sleep.
    3. Each species of animal knows how many others of its kind exist.
    4. By default when an animal’s energy level changes, it changes in the following ways:
    a. -3 for making a sound
    b. +5 for eaOng food
    c. +10 for sleeping
    5. The jungle can perform a sound off. This involves all of the animals in the jungle each making their sound,
    along with reporOng their energy level.
    6. Tigers get +5 energy for sleeping.
    7. Monkeys get +2 energy for eaOng and -4 energy for making a sound.
    8. Some animals have the ability to play.
    9. Only monkeys can play. When they do they say "Oooo Oooo Oooo" and get -8 energy. If a monkey doesn't
    have enough energy to play they say "Monkey is too Ored".
    10. The jungle contains several types of food; meat, fish, bugs and grain.
    11. Tigers can't eat grain because they have sensiOve digesOve systems.
    12. Bonus Item: The jungle can have each animal perform a random acOvity out of the ones possible for that
    animal. Include Unit tests if you would like to do so.

    View Slide

  9. You will be creaOng an applicaOon in the language/framework of your choice that plays the
    game "Connect Four”.
    • Level 1: Build a playable game of Connect 4 with 2 players, a command line interface being
    fine. Should have player moves, win detecOon logic, Oe detecOon, etc. 

    • Level 2: Implement a standard “AI” for the computer player. A standard computer
    opponent should block a human from winning when able to, but plays more ad hoc and
    does not operate with an advanced strategy.

    • Level 3: Make it playable online (Heroku or similar) with a SPA web interface, games
    persisOng to a database, etc.

    * Boss Level (Bonus): the computer player's decision engine should have a sesng for smarter
    vs standard opponent. The smarter version should employ any sort of intelligent strategy or
    look-ahead approach you choose, and be able to win most Omes (assuming it goes first and it’s
    not playing against a player with the same strategy), though it does not have to play
    mathemaOcally perfectly.

    View Slide

  10. Implement Short
    Coding Exercises

    View Slide

  11. Break Questions into Areas 11
    HTML/CSS
    JavaScript/jQuery
    Node.js

    View Slide

  12. HTML / CSS 12
    Test their knowledge
    What is the difference between an id and a class?

    View Slide

  13. HTML / CSS 13
    Test their knowledge
    What is the difference between an id and a class?
    What does the box model refer to in CSS?

    View Slide

  14. HTML / CSS 14
    Test their knowledge
    What is the difference between an id and a class?
    What does the box model refer to in CSS?
    reset css file and normalize.css - What are they?

    View Slide

  15. HTML / CSS 15
    Test their knowledge
    What is the difference between an id and a class?
    What does the box model refer to in CSS?
    reset css file and normalize.css - What are they?
    What is the difference between inline, inline-block
    and block?

    View Slide

  16. HTML / CSS 16
    Test their knowledge
    Write a CSS selector to select on the inner two li’s in
    the markup below

    View Slide

  17. HTML / CSS 17
    Test their knowledge
    Write a CSS selector to select only the first of the inner
    two li’s in the markup below

    View Slide

  18. HTML / CSS 18
    Test their knowledge
    Given this CSS What would the HTML look like?

    View Slide

  19. Scoring Potential
    Applicants

    View Slide

  20. Scoring System 20
    Consistency is the Key
    Have scorecard completed by every
    person doing interview
    Set points for each question
    Require minimum score to hire

    View Slide

  21. Scoring System 21
    Consistency is the Key

    View Slide

  22. Scoring System 22
    Consistency is the Key
    Does the candidate meet minimum score?
    How do they compare to other candidates?
    Resolution of same score

    View Slide

  23. Have a Casual
    Conversation

    View Slide

  24. HTML / CSS 24
    Test their knowledge
    What are Sass and LESS? Which one or none do you
    prefer to use?

    View Slide

  25. HTML / CSS 25
    Test their knowledge
    What are Sass and LESS? Which one or none do you
    prefer to use?
    Name some online resources that you reference
    when having CSS issues?

    View Slide

  26. HTML / CSS 26
    Test their knowledge
    What are Sass and LESS? Which one or none do you
    prefer to use?
    Name some online resources that you reference
    when having CSS issues?
    What are the various techniques for clearing floats?

    View Slide

  27. HTML / CSS 27
    Test their knowledge
    What are Sass and LESS? Which one or none do you
    prefer to use?
    Name some online resources that you reference
    when having CSS issues?
    What are the various techniques for clearing floats?
    What are some accessibility concerns that come up in CSS?

    View Slide

  28. General Questions 28
    Test their knowledge
    What is your favorite IDE and why?

    View Slide

  29. General Questions 29
    Test their knowledge
    What is your favorite IDE and why?
    What are your favorite programming languages?

    View Slide

  30. General Questions 30
    Test their knowledge
    What is your favorite IDE and why?
    What are your favorite programming languages?
    You are asked to write a palindrome function. What
    are some conditions you definitely want to test?

    View Slide

  31. Conclusion

    View Slide

  32. 32
    Additional Resources
    www.codeprep.io
    www.in5days.tech
    www.youtube.com/c/jenniferbland

    View Slide

  33. 33
    answer at end of presentation
    Three Truths One Lie
    I made only 1 B at university rest were A
    I was in the 2nd largest California earthquake
    I have been to England 24 times
    I have more toy soldiers than Winston Churchill

    View Slide

  34. 34
    Who Am I?
    www.jenniferbland.com
    @ratracegrad
    www.youtube.com/c/JenniferBland
    [email protected]
    github.com/jenniferbland

    View Slide