Presentation is loading. Please wait.

Presentation is loading. Please wait.

“Pair Programming” for successful Job Interview Abel Shen May 12th, 2010.

Similar presentations

Presentation on theme: "“Pair Programming” for successful Job Interview Abel Shen May 12th, 2010."— Presentation transcript:

1 “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

2 What is Successful Job Interview  a “process in which a potential employee is evaluated by an employer for prospective employment in their company, organization, or firm. During this process, the employer hopes to determine whether or not the applicant is suitable for the job.”  both the interviewer and the interviewee are very satisfied with each other  both of them believe they will get along very well and have a bright future  In the most successful cases the result proves them right

3 How many things do we want to know  Knowledge –Reading –Being taught –Concluding by himself –Studying and thinking  Skill/ability –Experience –Training –Hands on –Creative –Experiment  Characteristic –Born –Education –Cultivated

4 What we want  As a Colleague –honest –smart –easy to get along with –interesting –direct –reliable –warm hearted –a good team player

5 What we want  As a developer –Focused on –passionate for delivery –hands-on –effective –quality-oriented –a quick study –logical –good at deduction

6 What we want  As a consultant –open-minded –trustworthy –flexible –versatile –intelligent –good at expressing themselves and able to help others understand them –sensitive to risks –good at solving problem

7 Why Pair Programming  it's much closer to what a real situation on a project would be like which helps you to gain a more accurate picture of the skill level and potential of the interviewee  the interview process is as much an opportunity for the employee to work out if they actually want to work for the potential employer and I think having the opportunity to pair with some of the people who work there is a great chance to assess this.  Pair Programming can cover as many as possible.  Problems in Pair Programming are not predictable.  Solving Problems in Pair Programming is a continuous process, questions interviewee try to round will be the debt at last.  Pair programming make good candidate outstanding, bad candidate awful, middle class candidate personalizing.  It’s impossible to pretend

8 Data from mine Do not Recommend Recommend With Concerns Recommend with No concerns Strongly Recommend total 9205438

9 Goal and Attitude  You are cooperating to solve a problem  Help your partner show his best performance  Setup the environment and intimate atmosphere  Remove those meaningless block issues

10 Role of employer  Observer  User/Client  Partner  Coach/Reminder  Tester

11 Process  Greeting  Preparation  Discussing  Warm Up  Pair programming  Retrospective and estimation  Departing

12 Greeting  Self introduction (both) (English) –My Name is Abel, I am a software engineer in Perficient –Interviewee’s self introduction –Some questions related to his introduction and resume –Some questions related to his paper testing  Introduce the rule (Chinese) –We will cooperate to solve a problem. –The time limit –Try your best and do the way you feel most comfortable. –You can search on Google.

13 Greeting  Goal –Calm down the interviewee –Set up a good atmosphere –Explain the rule  What you may discover –Introverted / talkative –Self confident –Interesting –Exaggerating –Agile experience –Open mind  Avoid –Questioning and Answering

14 Preparation  Interviewer –Turn on the computer and start Virtual Machine –Ask interviewee the language and IDE he prefer. –Start the IDE  Interviewee –Go through the question

15 Preparation  Goal –Make sure both of you are doing things.  What you may discover –English Reading –Attitude to Pride and Success –Will he ask questions actively –Will he inform you his progress

16 Discussing  Ask whether you have finished reading?  What’s problem? Explain it to me.  is there anything difficult?  Do you have some ideas of how to deal with it?  What if?  I have a suggestion.  I think it cannot work.  Can we begin working?

17 Discussing  Goal –Clarify the requirement –Observer candidate’s skill of communication and team work. –Discuss What to do and How to do –No need too detail,whether we can begin doing sth.  What you may discover –Is he willing to discuss. –What’s the way he try to understand the question and express himself, by metaphor, example, diagram, table, etc. –Can he find uncertainty or ambiguous point. –Can he discuss with you –Will he expose his idea. –Will he argue with you. –Can he ask good questions? –Can he try to understand from your point of view. –What’s his reaction if you challenge him –Can he think logically?

18 Warm up  Candidate create a project  Usually I will type in a “hello, world”, compile and run.  If everything is Ok, I will leave him alone for 5 minutes. Pour two cups of tea for both of us.

19 Warm Up  Goal –Imply him to check frequently. –Imply him to be effective. –Imply the way you inform your partner what you want to do and show the progress to your partner. –Give him a chance to adjust himself.  What you may discover –Is he good at observing –Is he effective

20 Pair Programming  Interviewer –Ask question: what are you doing? what will you do? What’s your problem now? In that case what will be the output? –Suggestion: How about do this first? Why not make this block of code a method? Let’s do a experiment. –Answer question: answer directly. Inducement. Refuse. Ask in reply. Why not google it? –Discussing: what if? In my opinion,…? –Design test cases to drive development or expose potential bugs. –Help candidate remove those issues caused by carelessness or not so important issues.  Interviewee –Solve problem step by step –Coding –Search on internet. –Passing compile –Testing and Debug

21 Pair Programming  What you may discover –Can we finish the task –Can he focus on? –Is his pace natural and comfortable, Is the process fluent? –Are you stimulating each other. Are you happy? Are you excited? –Can he read the error message generated from compiler. –His skill of debugging –His skill of deduction –His style of coding –What’s his reaction to unexpected result. –How he verify his assumption. –Can he discover risks on time. –Will he discuss performance and complexity –Can he supply several solutions for a specific problem, How he assess them. –Can he work independently or can he follow direction –Does he Look for excuse –Is he flexible –Can he search effectively on internet –Does he use pencil and paper, what he draw on the paper. Does he write to-do list? –If you teach him something, can he master it and infer the whole from a single instance –Is he easy to get angry? –Is he tend to complain? –Will he be blocked by his known knowledge. –Can you learn something from your partner.

22 Retrospective –Time is up/We have finished –How do you feel like this process –What we did good and what we need to improve –Is there any difference between your previous experience. –If there is a another chance what will you improve. –How long do you think you still need to complete this task, why? –If there is another task have concern with this problem, how long do think we need to accomplish it? Why?

23 Retrospective  Goal –Make sure both of you have been co-working –Tell him some of your value –Encourage or Comfort candidate  What you may discover –Is he a good observer –Can he think out ways to improve –Is his feeling consistent with your feeling –Is he happy –Is he self-confident –Can he assess his performance properly. –Can he give estimation realistically –Can he remind you something you missed. –Can he discover your role

24 Departing  Do you have any questions?  Pull off the network cable.  Let interviewee save his source code according to the manual.  Tell interviewee to have a rest after long term of hard working  Tell interviewee HR will talk with him after a while.

25 Departing  Goal –Marketing –basic computer operation skill –Reading manual and following instructions step by step

26 What value we want to tell our interviewee  Individuals and interactions over processes and tools  Working software over comprehensive documentation  Responding to change over following a plan  Commitment  Focus  Openness  Communication  Simplicity  Feedback  Courage  Respect

27 A good interviewer require –Adaptive to different kinds of interviewees. –Ability to follow other’s idea and try your best to understand others. –Good skill to explain your idea and persuade your partner. –Make sure your partner know your idea then go further. –Tolerant to not best solution. –Patient, Never be angry. –Ability to influence your partner. –Design good test case to expose your partner’s bug. –Don’t waste time on meaningless issues. –Discuss with your partner but don’t interrupt him. –Ask yourself How does this help your partner to expose his merits?

28 A typical pair program artifact I wrote  public static void main(String[] args){   System.out.println(Cal.string2List("1234560"));   System.out.println(Cal.list2String(Cal.string2List("1234560")));   System.out.println(Cal.list2String(Cal.add(Cal.string2List("0"), Cal.string2List("0"))));   System.out.println(Cal.list2String(Cal.add(Cal.string2List("1"), Cal.string2List("1"))));   System.out.println(Cal.list2String(Cal.add(Cal.string2List("10"), Cal.string2List("1"))));   System.out.println(Cal.list2String(Cal.add(Cal.string2List("11"), Cal.string2List("11"))));   System.out.println(Cal.list2String(Cal.add(Cal.string2List("15"), Cal.string2List("16"))));   System.out.println(Cal.list2String(Cal.add(Cal.string2List("123"), Cal.string2List("123"))));   System.out.println(Cal.list2String(Cal.add(Cal.string2List("153"), Cal.string2List("163"))));   System.out.println(Cal.list2String(Cal.add(Cal.string2List("6"), Cal.string2List("6"))));  } 

29 Use Cases-1  Question –What’s the difference between StringBuffer and String.  Answer –objects of type String are read only and immutable. The StringBuffer class is used to represent characters that can be modified. –The significant performance difference between these two classes is sometimes StringBuffer is faster than String when you manipulate string values.  PP

30 Use Case 1  public void hexascStr2String(String hexascstr){  StringBuffer sb = new StringBuffer();  StringBuffer sb1 = new StringBuffer();  for(int i = 0 ;i < hexascstr.length();i=i+2){  sb.append(hexascstr.charAt(i));  sb.append(hexascstr.charAt(i+1));  if(sb.length() == 2){  char c = hexasc2String(sb);   sb1.append(c);  sb = new StringBuffer();  }  if((i+2)%20==0){  System.out.println(sb1);  sb1 = new StringBuffer();  }

31 Use Case - 2  Question: What is the time complexity of this method  Answer: O(n)  PP: –The two level loop’s time complexity will be much more than one level loop –Why use HashTable here

32 Use Case -3  Question: how do you think of good coding style  Answer: –According to standard –Write comments  PP: –Variable name,function name, Class name –Several sentences in one line.

33 Use Case - 4  Question: Can you think logically?  Answer:!#$!@#$!@#  PP –Where to set the breakpoint –Watch/dump which variable’s value –

34 Use case - 5  Question:How you test your code?  Answer:coverage  PP –When he test? –Test what?

35 Use case 6  Question: What’s your understanding of OO  Answer: –Inheritance –Encapsulation –Polymorphism  PP: –All static method –More than one class –Modular and Encapsulation

36 Use Case - 7  Question: are you an effective person?  Answer: of course  PP: –Short cut key –Familiar with tool –How to make code clean to easily find bug

37 End  Thank you!

Download ppt "“Pair Programming” for successful Job Interview Abel Shen May 12th, 2010."

Similar presentations

Ads by Google