Monday, October 17, 2016 @ 6:00 pm ( link ) Pixability - 77 North Washington Street, Boston, MA by T. J. Maher @tjmaher1
10/17/2016 2 About This Talk How to pass a coding interview as an automation developer Slides have been posted on SlideShare.Net. http://slideshare.net/tjmaher1 Note: This presentation has been adapted for SlideShare. Slideshare does not handle animations. What used to be originally animations has been split out across various slides.
What about the audience? 10/17/2016 3How to pass a coding interview as an automation developer Where are the:  People who aren’t in the Quality Assurance field who may not know what we QA people do?  Manual testers trying to break into the automation field?  Automation developers?  Software developers?
10/17/2016 How to pass a coding interview 4 About the Speaker: Thomas F. Maher, Jr. ( ā€œT.J.ā€ ) @tjmaher1 http://tjmaher.com About the Speaker: Thomas F. Maher, Jr. ( ā€œT.J.ā€ ) @tjmaher1 1996: Start of Software Testing Career 2014: Working with Selenium WebDriver / Java 2015: Blogger, Adventures in Automation 2016: Contributing Writer to TechBeacon  How to pass a coding interview as an automation developer, by T.J. Maher, Sept 21, 2016  BSCS from Bridgewater State  MSE from Brandeis University
Quality Assurance Engineer => End User Advocate 10/17/2016 5 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer
Quality Assurance Engineer => End User Advocate  Build Model of Customer 10/17/2016 6 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer
Quality Assurance Engineer => End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 7 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer
Quality Assurance Engineer => End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 8 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…
Quality Assurance Engineer => End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 9 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…  Software requirements
Quality Assurance Engineer => End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 10 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…  Software requirements  Acceptance criteria
Quality Assurance Engineer => End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 11 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…  Software requirements  Acceptance criteria  The software development process
Quality Assurance Engineer => End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 12 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…  Software requirements  Acceptance criteria  The software development process  The software itself
Quality Assurance Engineer => End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 13 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…  Software requirements  Acceptance criteria  The software development process  The software itself  My own assumptions about the product
Quality Assurance Engineer => End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 14 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…  Software requirements  Acceptance criteria  The software development process  The software itself  My own assumptions about the product Finding bugs is fun, too … don’t tell the developers…
10/17/2016 15 QA: The Not So Fun Parts!  How to pass a coding interview as an automation developer
10/17/2016 16 QA: The Not So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing: 
10/17/2016 17 QA: The Not So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11
10/17/2016 18 QA: The Not So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge
10/17/2016 19 QA: The Not So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge  Chrome, Firefox
10/17/2016 20 QA: The Not So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge  Chrome, Firefox  Safari on the Mac
10/17/2016 21 QA: The Not So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge  Chrome, Firefox  Safari on the Mac Automation Development Makes Things Fun Again: 
10/17/2016 22 QA: The Not So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge  Chrome, Firefox  Safari on the Mac Automation Development Makes Things Fun Again:   Write software to automatically check the old stuff is still working
10/17/2016 23 QA: The Not So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge  Chrome, Firefox  Safari on the Mac Automation Development Makes Things Fun Again:   Write software to automatically check the old stuff is still working  Selenium WebDriver to emulate the user workflows
10/17/2016 24 QA: The Not So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge  Chrome, Firefox  Safari on the Mac Automation Development Makes Things Fun Again:   Write software to automatically check the old stuff is still working  Selenium WebDriver to emulate the user workflows  Testing the Webservices or REST APIs
10/17/2016 25 Before My First Technical Interviews: Incorrect Assumptions How to pass a coding interview as an automation developer
The Technical Interview Would Be Based Around Automation Development Experience 10/17/2016 26 Before My First Technical Interviews: Incorrect Assumptions How to pass a coding interview as an automation developer Assumption #1:
The Technical Interview Would Be Based Around Automation Development Experience 10/17/2016 27 Before My First Technical Interviews: Incorrect Assumptions How to pass a coding interview as an automation developer Assumption #1: I’d be writing Selenium WebDriver code either:  On a laptop  On a whiteboard Assumption #2:
10/17/2016 28 The Technical Interview How to pass a coding interview as an automation developer
A developer instructed me to go to the whiteboard and answer the following: 10/17/2016 29 The Technical Interview How to pass a coding interview as an automation developer
A developer instructed me to go to the whiteboard and answer the following: 10/17/2016 30 The Technical Interview How to pass a coding interview as an automation developer ā€œUsing your favorite programming language: Write a method that checks to see if a given word is a palindrome.ā€
A developer instructed me to go to the whiteboard and answer the following: 10/17/2016 31 The Technical Interview How to pass a coding interview as an automation developer ā€œUsing your favorite programming language: Write a method that checks to see if a given word is a palindrome. ā€œExample palindromes: ā€˜noon’ and ā€˜racecar’.ā€
10/17/2016 32How to pass a coding interview as an automation developer
• Blank Staring at Whiteboard 10/17/2016 33 And then this happened… How to pass a coding interview as an automation developer
• Blank Staring at Whiteboard • Developers waiting for me to do … 10/17/2016 34 And then this happened… How to pass a coding interview as an automation developer
• Blank Staring at Whiteboard • Developers waiting for me to do … ANYTHING!! 10/17/2016 35 And then this happened… How to pass a coding interview as an automation developer
• Blank Staring at Whiteboard • Developers waiting for me to do … ANYTHING!! • Scribbled something down.... 10/17/2016 36 And then this happened… How to pass a coding interview as an automation developer
• Blank Staring at Whiteboard • Developers waiting for me to do … ANYTHING!! • Scribbled something down.... • Erased it. 10/17/2016 37 And then this happened… How to pass a coding interview as an automation developer
• Blank Staring at Whiteboard • Developers waiting for me to do … ANYTHING!! • Scribbled something down.... • Erased it. • Scribbled something down... 10/17/2016 38 And then this happened… How to pass a coding interview as an automation developer
• Blank Staring at Whiteboard • Developers waiting for me to do … ANYTHING!! • Scribbled something down.... • Erased it. • Scribbled something down... • Stared blankly. 10/17/2016 39 And then this happened… How to pass a coding interview as an automation developer
• Blank Staring at Whiteboard • Developers waiting for me to do … ANYTHING!! • Scribbled something down.... • Erased it. • Scribbled something down... • Stared blankly. • Finished only half of the problem. 10/17/2016 40 And then this happened… How to pass a coding interview as an automation developer
I joked with the interviewers. If only: 10/17/2016 41 Technical Interview: The Aftermath How to pass a coding interview as an automation developer
I joked with the interviewers. If only:  Questions focused solely on automation 10/17/2016 42 Technical Interview: The Aftermath How to pass a coding interview as an automation developer
I joked with the interviewers. If only:  Questions focused solely on automation  Interview demoed writing an automation script 10/17/2016 43 Technical Interview: The Aftermath How to pass a coding interview as an automation developer
I joked with the interviewers. If only:  Questions focused solely on automation  Interview demoed writing an automation script Their response: 10/17/2016 44 Technical Interview: The Aftermath How to pass a coding interview as an automation developer
I joked with the interviewers. If only:  Questions focused solely on automation  Interview demoed writing an automation script Their response: ā€œAll employees are expected to meet a certain minimum standard of coding knowledge, even for quality assurance positionsā€. 10/17/2016 45 Technical Interview: The Aftermath How to pass a coding interview as an automation developer
I joked with the interviewers. If only:  Questions focused solely on automation  Interview demoed writing an automation script Their response: ā€œAll employees are expected to meet a certain minimum standard of coding knowledge, even for quality assurance positionsā€. 10/17/2016 46 Technical Interview: The Aftermath How to pass a coding interview as an automation developer … These types of questions asked in 10 out of 12 of my interviews!
10/17/2016 47 New Requirements For Automation Developers How to pass a coding interview as an automation developer
 Screening for Basic Fluency in a Programming Language 10/17/2016 48 New Requirements For Automation Developers How to pass a coding interview as an automation developer
 Screening for Basic Fluency in a Programming Language  Automation Developers asked same interview questions as Software Developers 10/17/2016 49 New Requirements For Automation Developers How to pass a coding interview as an automation developer
 Screening for Basic Fluency in a Programming Language  Automation Developers asked same interview questions as Software Developers  Automation Developers are Software Developers 10/17/2016 50 New Requirements For Automation Developers How to pass a coding interview as an automation developer
 Screening for Basic Fluency in a Programming Language  Automation Developers asked same interview questions as Software Developers  Automation Developers are Software Developers  Same code quality in the automation test framework as the software application itself. 10/17/2016 51 New Requirements For Automation Developers How to pass a coding interview as an automation developer
Step 1: Take a Refresher Course: 10/17/2016 52 How to Become Fluent in Coding? How to pass a coding interview as an automation developer
Step 1: Take a Refresher Course:  Members of the Boston Public Library get a free subscription to Lynda.com. 10/17/2016 53 How to Become Fluent in Coding? How to pass a coding interview as an automation developer
Step 1: Take a Refresher Course:  Members of the Boston Public Library get a free subscription to Lynda.com.  Massively Open Online Courses such as Mooc.org, indexes absolutely free edX courses from Harvard, MIT and other colleges dealing with Computer Science, Java 10/17/2016 54 How to Become Fluent in Coding? How to pass a coding interview as an automation developer
Step 1: Take a Refresher Course:  Members of the Boston Public Library get a free subscription to Lynda.com.  Massively Open Online Courses such as Mooc.org, indexes absolutely free edX courses from Harvard, MIT and other colleges dealing with Computer Science, Java  Coursera.org by Duke, Stanford, Johns Hopkins 10/17/2016 55 How to Become Fluent in Coding? How to pass a coding interview as an automation developer
Step 1: Take a Refresher Course:  Members of the Boston Public Library get a free subscription to Lynda.com.  Massively Open Online Courses such as Mooc.org, indexes absolutely free edX courses from Harvard, MIT and other colleges dealing with Computer Science, Java  Coursera.org by Duke, Stanford, Johns Hopkins  Udacity.org, backed by Google, AT&T and Amazon, also has free courses in Java, JavaScript, etc. Learn by creating projects. 10/17/2016 56 How to Become Fluent in Coding? How to pass a coding interview as an automation developer
Step 2: Read the Documentation:  Learning Java? Java has official ā€œLearning trailsā€ with chapters such as Getting Started, Learning the Java Language, and Essential Java Classes.  Learning JavaScript? Free online books such as Speaking JavaScript. Other resources are listed on my blog. 10/17/2016 57How to pass a coding interview as an automation developer
Step 2: Read the Documentation:  Learning Java? Java has official ā€œLearning trailsā€ with chapters such as Getting Started, Learning the Java Language, and Essential Java Classes.  Learning JavaScript? Free online books such as Speaking JavaScript. Other resources are listed on my blog. Step 3: Solve Coding Problems on Paper  Make up simple homework examples and solve them on paper while reading documentation.  DON’T DO CRAM SESSIONS  Create functions that do mathematical operations or string comparison. 10/17/2016 58How to pass a coding interview as an automation developer
Mathematic Examples: Sketch out on paper a function that uses a for loop to print out, in the range of 1 to 100:  All even numbers within that range  All odd numbers.  All numbers divisible by three  All numbers divisible by three and five String Manipulation: Sketch out a function that takes in a string s and returns:  The length as an integer (Java: s.length)  The first character (s.charAt(0) )  The last character (s.charAt(s.length - 1) ) 10/17/2016 59How to pass a coding interview as an automation developer
10/17/2016 60 During the Coding Interview How to pass a coding interview as an automation developer 1. Define the problem: Take a moment to think of what information you need from the interviewer to solve the problem. Do candidates immediately jump into the code, possibly not realizing that the specs are unclear? Or do they take a step back, examine the problem and gather the requirements?
10/17/2016 61How to pass a coding interview as an automation developer 2. Start with initial test cases: Do candidates come up with enough edge cases to test their code? How thorough are they? Do they go through test data with us? If Palindromes are matched character by character, space by space:  ā€œnoonā€, ā€œracecarā€   ā€œMadam, I’m Adamā€   ā€œAlphaā€   ā€œA Man, A Plan, A Canal: Panama!ā€  Single character strings?  Empty Strings? 
10/17/2016 62How to pass a coding interview as an automation developer 3. Walk the interviewer through solution Does the candidate sketch out the problem, talking out loud so the interviewer can get a sense of the candidate's thoughts on solving the problem?
10/17/2016 63How to pass a coding interview as an automation developer 3. Walk the interviewer through solution Does the candidate sketch out the problem, talking out loud so the interviewer can get a sense of the candidate's thoughts on solving the problem? 4. Come up with a solution Can the candidate write clear and concise code?
10/17/2016 64How to pass a coding interview as an automation developer 3. Walk the interviewer through solution Does the candidate sketch out the problem, talking out loud so the interviewer can get a sense of the candidate's thoughts on solving the problem? 4. Come up with a solution Can the candidate write clear and concise code? 5. Debug and Test Your Code Does the candidate accept feedback gracefully?
10/17/2016 65 Summary How to pass a coding interview as an automation developer Find basic coding problems on the web. Solve them with a pen and paper. Find official documentation to see if built in functions can help you Come up with your own solution first Don't do cram sessions. That merely store the information in your short-term memory. Practice a little bit at a time
Don't go through all this effort just to pass a whiteboard test. Aim higher! Make it your goal to be a better programmer. Thank you! 10/17/2016 How to pass a coding interview 66
10/17/2016 67 Appendix: Palindrome Solutions How to pass a coding interview as an automation developer public boolean isPalindrome(String s) { int head = 0; int tail = s.length() - 1; while (head < tail) { if (s.charAt(head) != s.charAt(tail)) { return false; } head++; tail--; } return true; } Attempt #1:
10/17/2016 68How to pass a coding interview as an automation developer public boolean isPalindrome(String s) { int len = s.length; for (int i = 0; i < len / 2; i++) { if ( s.charAt(i) != s.charAt(len-1- i)) { return false; } } return true; } Attempt #2: Write the code using a basic for loop.
10/17/2016 69 Further Reading How to pass a coding interview as an automation developer Coding Interviews:  Gayle Laakmann McDowell's book, Cracking the Coding Interview  "Get that Job at Google", Steve Yegge, March 12, 2008  "Get that Job at Facebook", Carlos Bueno, July 20, 2012 Practice Questions:  Top Ten Algorithms For Coding Interviews The slides are at: http://slideshare.net/tjmaher1

How to pass a coding interview as an automation developer talk - Oct 17 2016

  • 1.
    Monday, October 17,2016 @ 6:00 pm ( link ) Pixability - 77 North Washington Street, Boston, MA by T. J. Maher @tjmaher1
  • 2.
    10/17/2016 2 About ThisTalk How to pass a coding interview as an automation developer Slides have been posted on SlideShare.Net. http://slideshare.net/tjmaher1 Note: This presentation has been adapted for SlideShare. Slideshare does not handle animations. What used to be originally animations has been split out across various slides.
  • 3.
    What about theaudience? 10/17/2016 3How to pass a coding interview as an automation developer Where are the:  People who aren’t in the Quality Assurance field who may not know what we QA people do?  Manual testers trying to break into the automation field?  Automation developers?  Software developers?
  • 4.
    10/17/2016 How topass a coding interview 4 About the Speaker: Thomas F. Maher, Jr. ( ā€œT.J.ā€ ) @tjmaher1 http://tjmaher.com About the Speaker: Thomas F. Maher, Jr. ( ā€œT.J.ā€ ) @tjmaher1 1996: Start of Software Testing Career 2014: Working with Selenium WebDriver / Java 2015: Blogger, Adventures in Automation 2016: Contributing Writer to TechBeacon  How to pass a coding interview as an automation developer, by T.J. Maher, Sept 21, 2016  BSCS from Bridgewater State  MSE from Brandeis University
  • 5.
    Quality Assurance Engineer=> End User Advocate 10/17/2016 5 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer
  • 6.
    Quality Assurance Engineer=> End User Advocate  Build Model of Customer 10/17/2016 6 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer
  • 7.
    Quality Assurance Engineer=> End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 7 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer
  • 8.
    Quality Assurance Engineer=> End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 8 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…
  • 9.
    Quality Assurance Engineer=> End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 9 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…  Software requirements
  • 10.
    Quality Assurance Engineer=> End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 10 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…  Software requirements  Acceptance criteria
  • 11.
    Quality Assurance Engineer=> End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 11 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…  Software requirements  Acceptance criteria  The software development process
  • 12.
    Quality Assurance Engineer=> End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 12 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…  Software requirements  Acceptance criteria  The software development process  The software itself
  • 13.
    Quality Assurance Engineer=> End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 13 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…  Software requirements  Acceptance criteria  The software development process  The software itself  My own assumptions about the product
  • 14.
    Quality Assurance Engineer=> End User Advocate  Build Model of Customer  Taking Model through Software Development Process 10/17/2016 14 Quality Assurance: The Fun Parts! How to pass a coding interview as an automation developer The Fun Parts: With brand-new functionality, testing the…  Software requirements  Acceptance criteria  The software development process  The software itself  My own assumptions about the product Finding bugs is fun, too … don’t tell the developers…
  • 15.
    10/17/2016 15 QA: TheNot So Fun Parts!  How to pass a coding interview as an automation developer
  • 16.
    10/17/2016 16 QA: TheNot So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing: 
  • 17.
    10/17/2016 17 QA: TheNot So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11
  • 18.
    10/17/2016 18 QA: TheNot So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge
  • 19.
    10/17/2016 19 QA: TheNot So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge  Chrome, Firefox
  • 20.
    10/17/2016 20 QA: TheNot So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge  Chrome, Firefox  Safari on the Mac
  • 21.
    10/17/2016 21 QA: TheNot So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge  Chrome, Firefox  Safari on the Mac Automation Development Makes Things Fun Again: 
  • 22.
    10/17/2016 22 QA: TheNot So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge  Chrome, Firefox  Safari on the Mac Automation Development Makes Things Fun Again:   Write software to automatically check the old stuff is still working
  • 23.
    10/17/2016 23 QA: TheNot So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge  Chrome, Firefox  Safari on the Mac Automation Development Makes Things Fun Again:   Write software to automatically check the old stuff is still working  Selenium WebDriver to emulate the user workflows
  • 24.
    10/17/2016 24 QA: TheNot So Fun Parts!  How to pass a coding interview as an automation developer Regression Testing:  Checking the old functionality still works in:  IE9, IE10, IE11  MS Edge  Chrome, Firefox  Safari on the Mac Automation Development Makes Things Fun Again:   Write software to automatically check the old stuff is still working  Selenium WebDriver to emulate the user workflows  Testing the Webservices or REST APIs
  • 25.
    10/17/2016 25 Before MyFirst Technical Interviews: Incorrect Assumptions How to pass a coding interview as an automation developer
  • 26.
    The Technical InterviewWould Be Based Around Automation Development Experience 10/17/2016 26 Before My First Technical Interviews: Incorrect Assumptions How to pass a coding interview as an automation developer Assumption #1:
  • 27.
    The Technical InterviewWould Be Based Around Automation Development Experience 10/17/2016 27 Before My First Technical Interviews: Incorrect Assumptions How to pass a coding interview as an automation developer Assumption #1: I’d be writing Selenium WebDriver code either:  On a laptop  On a whiteboard Assumption #2:
  • 28.
    10/17/2016 28 The TechnicalInterview How to pass a coding interview as an automation developer
  • 29.
    A developer instructedme to go to the whiteboard and answer the following: 10/17/2016 29 The Technical Interview How to pass a coding interview as an automation developer
  • 30.
    A developer instructedme to go to the whiteboard and answer the following: 10/17/2016 30 The Technical Interview How to pass a coding interview as an automation developer ā€œUsing your favorite programming language: Write a method that checks to see if a given word is a palindrome.ā€
  • 31.
    A developer instructedme to go to the whiteboard and answer the following: 10/17/2016 31 The Technical Interview How to pass a coding interview as an automation developer ā€œUsing your favorite programming language: Write a method that checks to see if a given word is a palindrome. ā€œExample palindromes: ā€˜noon’ and ā€˜racecar’.ā€
  • 32.
    10/17/2016 32How topass a coding interview as an automation developer
  • 33.
    • Blank Staringat Whiteboard 10/17/2016 33 And then this happened… How to pass a coding interview as an automation developer
  • 34.
    • Blank Staringat Whiteboard • Developers waiting for me to do … 10/17/2016 34 And then this happened… How to pass a coding interview as an automation developer
  • 35.
    • Blank Staringat Whiteboard • Developers waiting for me to do … ANYTHING!! 10/17/2016 35 And then this happened… How to pass a coding interview as an automation developer
  • 36.
    • Blank Staringat Whiteboard • Developers waiting for me to do … ANYTHING!! • Scribbled something down.... 10/17/2016 36 And then this happened… How to pass a coding interview as an automation developer
  • 37.
    • Blank Staringat Whiteboard • Developers waiting for me to do … ANYTHING!! • Scribbled something down.... • Erased it. 10/17/2016 37 And then this happened… How to pass a coding interview as an automation developer
  • 38.
    • Blank Staringat Whiteboard • Developers waiting for me to do … ANYTHING!! • Scribbled something down.... • Erased it. • Scribbled something down... 10/17/2016 38 And then this happened… How to pass a coding interview as an automation developer
  • 39.
    • Blank Staringat Whiteboard • Developers waiting for me to do … ANYTHING!! • Scribbled something down.... • Erased it. • Scribbled something down... • Stared blankly. 10/17/2016 39 And then this happened… How to pass a coding interview as an automation developer
  • 40.
    • Blank Staringat Whiteboard • Developers waiting for me to do … ANYTHING!! • Scribbled something down.... • Erased it. • Scribbled something down... • Stared blankly. • Finished only half of the problem. 10/17/2016 40 And then this happened… How to pass a coding interview as an automation developer
  • 41.
    I joked withthe interviewers. If only: 10/17/2016 41 Technical Interview: The Aftermath How to pass a coding interview as an automation developer
  • 42.
    I joked withthe interviewers. If only:  Questions focused solely on automation 10/17/2016 42 Technical Interview: The Aftermath How to pass a coding interview as an automation developer
  • 43.
    I joked withthe interviewers. If only:  Questions focused solely on automation  Interview demoed writing an automation script 10/17/2016 43 Technical Interview: The Aftermath How to pass a coding interview as an automation developer
  • 44.
    I joked withthe interviewers. If only:  Questions focused solely on automation  Interview demoed writing an automation script Their response: 10/17/2016 44 Technical Interview: The Aftermath How to pass a coding interview as an automation developer
  • 45.
    I joked withthe interviewers. If only:  Questions focused solely on automation  Interview demoed writing an automation script Their response: ā€œAll employees are expected to meet a certain minimum standard of coding knowledge, even for quality assurance positionsā€. 10/17/2016 45 Technical Interview: The Aftermath How to pass a coding interview as an automation developer
  • 46.
    I joked withthe interviewers. If only:  Questions focused solely on automation  Interview demoed writing an automation script Their response: ā€œAll employees are expected to meet a certain minimum standard of coding knowledge, even for quality assurance positionsā€. 10/17/2016 46 Technical Interview: The Aftermath How to pass a coding interview as an automation developer … These types of questions asked in 10 out of 12 of my interviews!
  • 47.
    10/17/2016 47 New Requirements ForAutomation Developers How to pass a coding interview as an automation developer
  • 48.
     Screening forBasic Fluency in a Programming Language 10/17/2016 48 New Requirements For Automation Developers How to pass a coding interview as an automation developer
  • 49.
     Screening forBasic Fluency in a Programming Language  Automation Developers asked same interview questions as Software Developers 10/17/2016 49 New Requirements For Automation Developers How to pass a coding interview as an automation developer
  • 50.
     Screening forBasic Fluency in a Programming Language  Automation Developers asked same interview questions as Software Developers  Automation Developers are Software Developers 10/17/2016 50 New Requirements For Automation Developers How to pass a coding interview as an automation developer
  • 51.
     Screening forBasic Fluency in a Programming Language  Automation Developers asked same interview questions as Software Developers  Automation Developers are Software Developers  Same code quality in the automation test framework as the software application itself. 10/17/2016 51 New Requirements For Automation Developers How to pass a coding interview as an automation developer
  • 52.
    Step 1: Takea Refresher Course: 10/17/2016 52 How to Become Fluent in Coding? How to pass a coding interview as an automation developer
  • 53.
    Step 1: Takea Refresher Course:  Members of the Boston Public Library get a free subscription to Lynda.com. 10/17/2016 53 How to Become Fluent in Coding? How to pass a coding interview as an automation developer
  • 54.
    Step 1: Takea Refresher Course:  Members of the Boston Public Library get a free subscription to Lynda.com.  Massively Open Online Courses such as Mooc.org, indexes absolutely free edX courses from Harvard, MIT and other colleges dealing with Computer Science, Java 10/17/2016 54 How to Become Fluent in Coding? How to pass a coding interview as an automation developer
  • 55.
    Step 1: Takea Refresher Course:  Members of the Boston Public Library get a free subscription to Lynda.com.  Massively Open Online Courses such as Mooc.org, indexes absolutely free edX courses from Harvard, MIT and other colleges dealing with Computer Science, Java  Coursera.org by Duke, Stanford, Johns Hopkins 10/17/2016 55 How to Become Fluent in Coding? How to pass a coding interview as an automation developer
  • 56.
    Step 1: Takea Refresher Course:  Members of the Boston Public Library get a free subscription to Lynda.com.  Massively Open Online Courses such as Mooc.org, indexes absolutely free edX courses from Harvard, MIT and other colleges dealing with Computer Science, Java  Coursera.org by Duke, Stanford, Johns Hopkins  Udacity.org, backed by Google, AT&T and Amazon, also has free courses in Java, JavaScript, etc. Learn by creating projects. 10/17/2016 56 How to Become Fluent in Coding? How to pass a coding interview as an automation developer
  • 57.
    Step 2: Readthe Documentation:  Learning Java? Java has official ā€œLearning trailsā€ with chapters such as Getting Started, Learning the Java Language, and Essential Java Classes.  Learning JavaScript? Free online books such as Speaking JavaScript. Other resources are listed on my blog. 10/17/2016 57How to pass a coding interview as an automation developer
  • 58.
    Step 2: Readthe Documentation:  Learning Java? Java has official ā€œLearning trailsā€ with chapters such as Getting Started, Learning the Java Language, and Essential Java Classes.  Learning JavaScript? Free online books such as Speaking JavaScript. Other resources are listed on my blog. Step 3: Solve Coding Problems on Paper  Make up simple homework examples and solve them on paper while reading documentation.  DON’T DO CRAM SESSIONS  Create functions that do mathematical operations or string comparison. 10/17/2016 58How to pass a coding interview as an automation developer
  • 59.
    Mathematic Examples: Sketch outon paper a function that uses a for loop to print out, in the range of 1 to 100:  All even numbers within that range  All odd numbers.  All numbers divisible by three  All numbers divisible by three and five String Manipulation: Sketch out a function that takes in a string s and returns:  The length as an integer (Java: s.length)  The first character (s.charAt(0) )  The last character (s.charAt(s.length - 1) ) 10/17/2016 59How to pass a coding interview as an automation developer
  • 60.
    10/17/2016 60 During theCoding Interview How to pass a coding interview as an automation developer 1. Define the problem: Take a moment to think of what information you need from the interviewer to solve the problem. Do candidates immediately jump into the code, possibly not realizing that the specs are unclear? Or do they take a step back, examine the problem and gather the requirements?
  • 61.
    10/17/2016 61How topass a coding interview as an automation developer 2. Start with initial test cases: Do candidates come up with enough edge cases to test their code? How thorough are they? Do they go through test data with us? If Palindromes are matched character by character, space by space:  ā€œnoonā€, ā€œracecarā€   ā€œMadam, I’m Adamā€   ā€œAlphaā€   ā€œA Man, A Plan, A Canal: Panama!ā€  Single character strings?  Empty Strings? 
  • 62.
    10/17/2016 62How topass a coding interview as an automation developer 3. Walk the interviewer through solution Does the candidate sketch out the problem, talking out loud so the interviewer can get a sense of the candidate's thoughts on solving the problem?
  • 63.
    10/17/2016 63How topass a coding interview as an automation developer 3. Walk the interviewer through solution Does the candidate sketch out the problem, talking out loud so the interviewer can get a sense of the candidate's thoughts on solving the problem? 4. Come up with a solution Can the candidate write clear and concise code?
  • 64.
    10/17/2016 64How topass a coding interview as an automation developer 3. Walk the interviewer through solution Does the candidate sketch out the problem, talking out loud so the interviewer can get a sense of the candidate's thoughts on solving the problem? 4. Come up with a solution Can the candidate write clear and concise code? 5. Debug and Test Your Code Does the candidate accept feedback gracefully?
  • 65.
    10/17/2016 65 Summary How topass a coding interview as an automation developer Find basic coding problems on the web. Solve them with a pen and paper. Find official documentation to see if built in functions can help you Come up with your own solution first Don't do cram sessions. That merely store the information in your short-term memory. Practice a little bit at a time
  • 66.
    Don't go throughall this effort just to pass a whiteboard test. Aim higher! Make it your goal to be a better programmer. Thank you! 10/17/2016 How to pass a coding interview 66
  • 67.
    10/17/2016 67 Appendix: PalindromeSolutions How to pass a coding interview as an automation developer public boolean isPalindrome(String s) { int head = 0; int tail = s.length() - 1; while (head < tail) { if (s.charAt(head) != s.charAt(tail)) { return false; } head++; tail--; } return true; } Attempt #1:
  • 68.
    10/17/2016 68How topass a coding interview as an automation developer public boolean isPalindrome(String s) { int len = s.length; for (int i = 0; i < len / 2; i++) { if ( s.charAt(i) != s.charAt(len-1- i)) { return false; } } return true; } Attempt #2: Write the code using a basic for loop.
  • 69.
    10/17/2016 69 Further Reading Howto pass a coding interview as an automation developer Coding Interviews:  Gayle Laakmann McDowell's book, Cracking the Coding Interview  "Get that Job at Google", Steve Yegge, March 12, 2008  "Get that Job at Facebook", Carlos Bueno, July 20, 2012 Practice Questions:  Top Ten Algorithms For Coding Interviews The slides are at: http://slideshare.net/tjmaher1

Editor's Notes

  • #3Ā I’ve include a lot of links to reference material in these slides. If you wish to get a copy of them, I have uploaded them to my slideshare account at Slideshare.net/tjmaher1. You’ll see that link again at the end of the talk.
  • #4Ā Before I begin talking about myself and my interview experience, by a show of hands, are there any people who aren’t software testers or in the Quality Assurance field? … Good! Welcome! I’ll make sure I’ll to cover a bit of what a QA Person is for you. Now, where are the manual testers? By a show of hands, who are the manual testers who are trying to switch over to automation? With this talk I’ll go into the basics of the automation development interview process and how to prepare. How many people are already automation developers? … have you job searched recently? The interview process changed a bit in the past two years. I will cover that, too. Now, any software developers in the audience? During the question and answer sessions, we will really need your input. There may be misconceptions that I have that you can help straighten out for me. Hiring managers looking for manual testers? How many hands are up? Manual testers, make sure to meet these people after the presentations. Hiring managers looking for automation developers? How many hands are up?
  • #5Ā Good evening! I’m T.J. Maher. Even though I have been in the software industry for the past twenty years, I just started getting involved with Selenium WebDriver fairly recently. Around three years ago, I started taking a few courses in Selenium WebDriver with Java. Last year, back in March 2015, I went from executing other peoples automated tests at one job to writing my own tests in another. I captured my Adventures in Automation in my blog, tjmaher.com. This year I have been turning blog posts into articles. When I found myself this summer suddenly needing to find a new job after a shift in managers raised the bar a bit too high for me, this time around, I found the interview process remarkably changed in just two years. I wrote about that experience, too. I published last month an article ā€œHow to Pass a Coding Test As an Automation Developerā€ based this summer’s job search. Knowing that I wanted to get some practice public speaking Conrad suggesting I build a talk around the article. Thank you Conrad for this opportunity! I want to apologize for my heavy use of notes during this talk. I just started a new job last Monday, and the time I wanted to use to memorize the talk went into learning the ropes of the new job. I’m now a Software Engineer in Test. It’s weird: for the first time in twenty years, I don’t have the words ā€œQAā€ in my job title.
  • #6Ā As a QA Engineer I’m an end user advocate. I don’t just do software testing. I shepherd the Quality process … I try to build a model of the customer that is using the product and carry that model throughout the entire software development life cycle. As with any job, there are fun parts, and not so fun parts … The fun parts for me is testing the brand new functionality the developers are creating. Developers and testers shouldn’t work like being an artist to an art critic. They should be like a writer and a copyeditor: separate disciplines working together to make a quality product. I test the Software requirements … acceptance criteria … the software development process … the software itself … and my own assumptions about the product and how it is supposed to work… Okay, okay finding bugs is fun too. Don’t tell the developers…
  • #7Ā There are not so fun parts of my job… Two words: Regression testing. Making sure the new feature built did not break the old functionality… There is nothing more boring than testing the same exact workflow in IE 8, IE9, IE10, IE 11 … MS Edge … Chrome, Firefox, … Safari on the Mac, etc… Automation development makes regression testing fun. You are writing software to test the software. That is what I have been doing as an automation developer… Using Selenium WebDriver to emulate a user navigating through the web application … Or testing at the webservices layer, what the browser interacts with.
  • #8Ā When I found myself unexpectedly job searching for a new automation development position, judging by what I experienced two years ago, I thought the technical portion of the interview could go one of two ways … Assumption #1: The technical interview would be based around my automation experience … Assumption #2: I’d walk into a room, find a laptop pre-installed with IntelliJ or Eclipse, I’d be directed to a web page, and ask to automate it. Or I would be directed to a whiteboard, and I’d be asked to write code to, say, log into a login page using sendKeys to input a user name and password, and click a button. Those were most of the interview questions I was asked two years ago. This time around, it was something completely different.
  • #9Ā After chatting for a bit and giving my background, a developer instructed me to go to the whiteboard and answer the following: ā€œUsing your favorite programming language: Write a method that checks to see if a given word is a palindrome. ā€œExample palindromes: ā€˜noon’ and ā€˜racecar’.ā€
  • #10Ā I must have started at the whiteboard for a good two minutes while the developers watched silently, waiting for me to do… anything! I scribbled something on the board, I am not sure what. I stopped. Erased what I had written. Wrote something else. I just didn’t know how to answer this question. I was completely unprepared …
  • #11Ā After getting through only half of the assigned problem… I joked with the interviewers … If only I was coding an automated test, I would be doing a lot better. Yes, I had been doing Java coding, but I only had focused on how it manipulated Selenium WebDriver … If only I had a laptop in front of me, loaded with IntelliJ! Or if I had been demoing an automation script I had written… Their response … All employees are expected to meet a certain minimum standard of coding knowledge, even for quality assurance positions. And that, my friends, is how I started my new job search … It seems that I stumbled on a new requirement: These types of whiteboard coding questions were asked in ten out of twelve jobs I interviewed with this summer.
  • #12Ā Okay, by a show of hands, how many people know Spanish? Did you take it back in high school and college? You might know Spanish, but are you fluent in it? Let’s say you had a beginning job translating English to Spanish with an English to Spanish dictionary and a phrasebook close at hand? If you had the dictionary and phrasebook taken away, and were asked suddenly during an interview to go to the whiteboard and write a paragraph on what you had for breakfast this morning it would be difficult. That is how it felt without the development environment IntelliJ and the Java Documentation close at hand. My work experience as an automation development hadn’t prepared me to answer the types of coding questions given. If I was asked a Java question that related to Selenium WebDriver and automated testing: How to compare two string values, such as when I am setting up a test where the expected alert message on a page matches the actual alert message appearing on the page. At the time, I did not have the basic fluency in Java that they were looking for … I found that automation developers would be asked the same questions as software developers … Why? This might sound naĆÆve to any software developers, but I found it astounding that Automation developers are Software developers. You see, just five years ago, a QA Engineer wouldn’t be expected to know how to code at all. Three years ago, automation developers were manual testers who were learning how to assemble automated tests. Now, they seem to be straddling being a QA Engineer and a Software Engineer … Companies are now looking for the same code quality in the automation test framework as the software application itself.
  • #13Ā That’s the question, isn’t it? How do we become fluent in coding? … Step 1: Take a Refresher Course: Members of the Boston Public Library get a free subscription to Lynda.com … Massively Open Online Courses such as Mooc.org, indexes absolutely free edX courses from Harvard, MIT and other colleges dealing with Computer Science, Java … Coursera.org by Duke, Stanford, Johns Hopkins .. Udacity.org, backed by Google, AT&T and Amazon, also has free courses in Java, JavaScript, etc. Learn by creating projects.
  • #14Ā Step 2 to becoming fluent: Read the Documentation: Learning Java? Java has official ā€œLearning trailsā€ with chapters such as Getting Started, Learning the Java Language, and Essential Java Classes… Learning JavaScript? Free online books such as Speaking JavaScript. Other resources are listed on my blog… Step 3 to becoming fluent: Solve Coding Problems on Paper … Make up simple homework examplesĀ and solveĀ them on paper while reading documentation… DON’T DO CRAM SESSIONS: You want to work this knowledge into your long term memory, building up over time… Sample Homework Examples: Draft functions that do mathematical operations or string comparison.
  • #15Ā Here are a few sample homework problems I am talking about that could get you started: Sketch out on paper a function that uses a for loop that prints in the range of 1 to 100: All even numbers within that range All odd numbers. All numbers divisible by three All numbers divisible by three and five … How about some string manipulation? Sketch out a public method that takes in a string s and returns: The length as an integer (Java: s.length) The first character (s.charAt(0) ) The last character (s.charAt(s.length - 1) )
  • #16Ā Here's what I hadn't realized when I went on that first coding interview. The two stone-faced developers observing me having a brain freeze and getting flustered in front of the whiteboard weren't just silently watching. They were waiting. The first think I should have done was Define the problem. Take a moment to think of what information you need from the interviewer to solve the problem… DoĀ candidates immediately jump into the code, possibly not realizing that the specs are unclear, or do they take a step back, examine the problem and gather the requirements?Ā  If you remember, the problem I was given was: "Write a method that checks to see if a given word is a palindrome. Example palindromes: 'noon' and 'racecar'.ā€ …. What is the very first question I should have asked them? … ā€œWhat is a palindromeā€ They would have replied: "We are looking for a string and its reverse to match exactly, character by character."Ā  "Your solution should be caseĀ sensitive. An uppercase 'R' should not match a lowercase 'r'. "
  • #17Ā 2.Ā Start with initial test cases: … Do candidates come up with enough edge cases to test their code? How thorough are they?Ā  … If Palindromes are matched character by character, space by space: ā€œNoonā€, ā€œRacecarā€  … ā€œMadam, I’m Adamā€  ā€œAlphaā€  ā€œA Man, A Plan, A Canal: Panama!ā€  … Single character strings?  Empty Strings? 
  • #18Ā 3. They also were trying to see if I could Walk the interviewer throughĀ solution Does the candidate sketch out the problem, talking out loud so the interviewer can get a sense of the candidate's thoughts on solving the problem?Ā  4. Come up with a solution Can the candidate write clear and concise code? 5. Debug and Test Your Code according to their new changes given Does the candidate accept feedback gracefully?
  • #19Ā Gaining basic fluency in a programming language and being able to demonstrate it will not happen overnight, but it can happen. Here's how to proceed … Find basic coding problems on the web … Attempt to solve them with a pen and paper … If you can't solve them, look at the officialĀ documentation of the programming language and see which built-in language methods will help you out … Come up with your own solution first before seeking out a better solution elsewhere. If you do your own research and investigation, chances are the information will stick in your mind permanently.Ā  Don't do cram sessions. That merely storea the information in your short-term memory… Practice a little bit at a time—maybe 15 minutes a day. You want this information to move to long-term memory, so you can recall information even during extreme interview stress … 
  • #20Ā The main takeaway is this: Don't go through all this effort just to pass a whiteboard test... Aim higher! Make it your goal to be a better programmer.Ā Thank you … Thank you.
  • #21Ā If you want, I included two of the solutions that I came up with.
  • #22Ā .
  • #23Ā Here are some listings for further reading.