“pair programming” for successful job interview abel shen may 12th, 2010

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

Upload: jamari-juster

Post on 15-Dec-2015

218 views

Category:

Documents


0 download

TRANSCRIPT

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

“Pair Programming” for successful Job Interview

Abel ShenMay 12th, 2010

Page 2: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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

Page 3: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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

Page 4: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

What we want

As a Colleague– honest– smart – easy to get along with– interesting– direct– reliable– warm hearted– a good team player

Page 5: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

What we want

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

Page 6: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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

Page 7: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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

Page 8: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

Data from mine

Do not Recommend

Recommend Wi thConcernsRecommend wi th NoconcernsSt rongl y Recommend

Do not Recommend

Recommend With Concerns

Recommend with No concerns

Strongly Recommend

total

total 9 20 5 4 38

Page 9: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

Goal and Attitude

You are cooperating to solve a problemHelp your partner show his best performanceSetup the environment and intimate atmosphereRemove those meaningless block issues

Page 10: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

Role of employer

ObserverUser/ClientPartnerCoach/ReminderTester

Page 11: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

Process

GreetingPreparationDiscussingWarm UpPair programmingRetrospective and estimationDeparting

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

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.

Page 13: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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

Page 14: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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

Page 15: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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

Page 16: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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?

Page 17: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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?

Page 18: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

Warm up

Candidate create a projectUsually 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.

Page 19: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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

Page 20: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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

Page 21: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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.

Page 22: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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?

Page 23: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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

Page 24: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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.

Page 25: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

Departing

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

Page 26: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

What value we want to tell our interviewee

Individuals and interactions over processes and tools Working software over comprehensive documentationResponding to change over following a plan Commitment Focus Openness Communication Simplicity Feedback Courage Respect

Page 27: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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?

Page 28: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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")))); }

Page 29: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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

Page 30: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

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(); } }

Page 31: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

Use Case - 2

Question: What is the time complexity of this methodAnswer: O(n)PP:

– The two level loop’s time complexity will be much more than one level loop

– Why use HashTable here

Page 32: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

Use Case -3

Question: how do you think of good coding styleAnswer:

– According to standard– Write comments

PP:– Variable name ,function name, Class name– Several sentences in one line.

Page 33: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

Use Case - 4

Question: Can you think logically?Answer:!#$!@#$!@#PP

– Where to set the breakpoint– Watch/dump which variable’s value–

Page 34: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

Use case - 5

Question:How you test your code?Answer:coveragePP

– When he test?– Test what?

Page 35: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

Use case 6

Question: What’s your understanding of OOAnswer:

– Inheritance– Encapsulation– Polymorphism

PP:– All static method– More than one class– Modular and Encapsulation

Page 36: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

Use Case - 7

Question: are you an effective person?Answer: of coursePP:

– Short cut key– Familiar with tool– How to make code clean to easily find bug

Page 37: “Pair Programming” for successful Job Interview Abel Shen May 12th, 2010

End

Thank you!