4. Interview for Software Engineers - Starting an IT Job

58
Interview for a Software Engeneer What to Do and What to Avoid? Nikolay Kostov Telerik Software Academy academy.telerik.com Technical Trainer emy.telerik.com/seminars/it-job-interview Job Interview http://nikolay.it

description

This is a guide how to pass an interview for software engeneer from the seminar "Starting an IT Job" in Telerik Academy. Telerik Software Academy: academy.telerik.com/seminars/it-job-interview The website and all video materials are in Bulgarian Table of contents: What is a Job Interview?; Preparation for an Interview; Typical Interview Questions and Answers for Software Engeeers; Clasical Questions; Technical Questions; Non-Technical (Personlity) Questions; Questions to Ask; Typical Mistakes and How to Avoid Them? Starting an IT Job Seminar @ Telerik Academy academy.telerik.com/seminars/it-job-interview

Transcript of 4. Interview for Software Engineers - Starting an IT Job

Page 1: 4. Interview for Software Engineers - Starting an IT Job

Interview for a Software Engeneer

What to Do and What to Avoid?

Nikolay Kostov

Telerik Software Academyacademy.telerik.com

Technical Trainer

academy.telerik.com/seminars/it-job-interview

Job

Interviewhttp://nikolay.it

Page 2: 4. Interview for Software Engineers - Starting an IT Job

Table of Contents

1. What is a Job Interview?

2. Preparation for an Interview

3. Typical Interview Questions andAnswers for Software Engineers

Classical Questions

Technical Questions

Non-Technical (Personality) Questions

Questions to Ask

4. Typical Mistakes and How to Avoid Them?

2

Page 3: 4. Interview for Software Engineers - Starting an IT Job

What is a Job Interview?A Stressful Situation or a Chance

to Demonstrate Your Knowledge and Skills?

Page 4: 4. Interview for Software Engineers - Starting an IT Job

What is a Job Interview?

A job interview is a meeting aimed to assess a candidate for a certain job position The candidate should prove he or

she is the right person for the offered position

The interviewers asses the skills of the candidate and his or her personality By questions and small tasks

The candidate tries to prove his or her skills

The candidate demonstrates his or her personal character

4

Page 5: 4. Interview for Software Engineers - Starting an IT Job

How to Overcome the Stress?

The job interview is a stressful situation!

You need to present yourself in the best way

In most cases candidates fail to demonstrate their skills due to stress

How to overcome the stress?

Just be well prepared!

Prepare yourself for the technicaland non-technical questions

Expect the questions and have good answers

5

Page 6: 4. Interview for Software Engineers - Starting an IT Job

Interview PreparationWhat is the Best Way to

Prepare Yourself for an Upcoming Interview?

Page 7: 4. Interview for Software Engineers - Starting an IT Job

Steps to Prepare for an Interview

Once you have scheduled and interview, be sure to prepare yourself for it It is important to put enough effort in

your interview preparation

Half an hour is not enough, invest at least few days

Steps to prepare for an interview Research the company and the HRs

Research the offered position

Prepare for technical questions

Prepare for personality questions7

Page 8: 4. Interview for Software Engineers - Starting an IT Job

Research the Company Always research the company you apply for

You should expect a question at the interview like "What do you know about our company?" If you answer "Nothing", you will

fail If you say something incorrect, it is

even worse How to find information?

Obligatory explore in details the company Web site, brochures, publications, ads, etc.

Look for articles, blogs, forums, etc. Ask your friends what do they know

8

Page 9: 4. Interview for Software Engineers - Starting an IT Job

Research the Company (2)

What information you should know? The company products / services

portfolio The target market and customers The technologies used in the

development (e.g. C#, Silverlight, SQL Server, RIA Services, etc.) Download the products and play with

them

You will be asked what you know about the products related to your prospective job

The company mission, vision, projects, etc.

The corporate culture, corporate values

9

Page 10: 4. Interview for Software Engineers - Starting an IT Job

Research the Offered Position

Obligatory research the offered position, requirements, advantages and responsibilities You should research all mentioned

products, services and technologies in the job description E.g. if you see "Experience with

Selenium is a plus", be sure to install and play with Selenium

Be sure to know all "unknown words and acronyms" in the job description

Be ready to demonstrate skills and experience in the fields from the job description

10

Page 11: 4. Interview for Software Engineers - Starting an IT Job

Prepare for Technical Questions

How to prepare for the technical questions? Typical general technical questions

Data structures and algorithms

Logical thinking and puzzles

Software engineering questions

Object-oriented programming (OOP)

Specific questions for the offered position If the job description says "JSF and

RichFaces", you should learn these technologies

11

Page 12: 4. Interview for Software Engineers - Starting an IT Job

Prepare for Technical Questions

How do you prepare for a certain technology? Pass a course / tutorial / read a

book / blog article about the unknown technology

Obligatory create a small project usingthe technology and play with it

This is the only way to get somereal-life experience, live in a project

If you have never used a certain technology (e.g. JSF) you cannot say you are prepared

The best way to learn it is by practicing

12

Page 13: 4. Interview for Software Engineers - Starting an IT Job

The Interview ProcessTypical Scenario for a Technical

Interview

Page 14: 4. Interview for Software Engineers - Starting an IT Job

Technical Interview: The Process

A technical interview for software engineer / IT professional consists of the following parts: The candidate presents himself or

herself

The interviewers present the company, its business, products, services, etc.

Technical assessment – solve few technical problems and demonstrate the way of thinking

Personal character assessment

Negotiation – salary expectations, start date, …

14

Page 15: 4. Interview for Software Engineers - Starting an IT Job

Presenting the Company / Position

Typical start of an interview:

The interviewers presents themselves Usually there is more than one

interviewer HR (or HRs) and senior devs and / or

team leaders The interviewer presents in short the

company, his department, his team, the current and upcoming projects, technologies used, etc. Some companies skip this step and

expect the candidate to know all this stuff

15

My name is … Our company is … bala-bla-bla … We are leader in … bla-bla-bla … Our products bla-bla-bla … Our projects … bla-bla-bla … We are the best!

Page 16: 4. Interview for Software Engineers - Starting an IT Job

Presenting Yourself Typical next step in an interview:

The candidate is expected to say few words about himself / herself

Be prepared to talk 3-5 minutes Explain how did you start

programming

Your last job and projects (if you have)

Your current occupation (e.g. student at NBU)

How did you learn about the position and your motivation to apply

16

Present yourself in short – your relevant experience, education, how did you start programming, etc.

Page 17: 4. Interview for Software Engineers - Starting an IT Job

Technical Assessment The technical assessment is one of the two most important parts of the interview You will be given technical

questions to answer and technical tasks to solve

Always come with a pen and writing pad

It is not so important whether you solve correctly the tasks or answer correctly You should demonstrate your way of

thinking!

The interviewer wants to know how you attack the problem, not whether the result is correct

17

Page 18: 4. Interview for Software Engineers - Starting an IT Job

Technical Question – Example

You should demonstrate your way of thinking by saying what you think at the moment, e.g.

Being silent for a minute while you think is evil!

18

In C# which explain the fastest algorithm to sort a list of customers by their first name?

… I know the build-in Array.Sort() method, but I am not sure it is the fastest.

If I had a computer I would perform a Google search.For multi-core CPUs I could try the parallel sorting using LINQ with parallel extensions.

I should either implement own comparer or use a lambda function to sort by the FirstName property.

Page 19: 4. Interview for Software Engineers - Starting an IT Job

Technical Task – Example Suppose you are given a simple problem like:

The first thing to do it to get the writing pad and write an example!

This shows a correct and serious way of thinking

By using the pen explain how you could randomize the sequence of cards

Explain how you will represent a single card and a sequence of cards (data structures)

Explain how you could test your solution

19

How do you can randomize a sequence of playing cards?

Page 20: 4. Interview for Software Engineers - Starting an IT Job

Personal Character Assessment

Assessment of your personal character qualities is very important for the company! Good software companies will

weight your personal skills more than your technical skills

You will be asked somehow irrelevant questions that reveal your character, e.g.

20

Do you have experience working in a team? What do you prefer – being a leader or a player?

Do you play some kind of sport? At what position?

How do you react if you are about to miss a deadline?

Page 21: 4. Interview for Software Engineers - Starting an IT Job

Personal Character Assessment (2)

At the personal assessment questions there is no correct or wrong answer Just be you

Don't recite some other's words

Very important: be positive! Negative people are not welcome

anywhere

Be confident Avoid saying "I don't know"

Demonstrate willingness and ability to work in a harmony and with pleasure with the others

21

Page 22: 4. Interview for Software Engineers - Starting an IT Job

Negotiation If your interview runs well, you will

reach the "negotiation" part Salary expectations – always have a

good answer

Eventual start date

Other terms of the contract (bonuses, holidays, working time, etc.)

Companies don't like "money-driven" employees You should demonstrate motivation to

work hard for long-term and continuously improve your skills

22

Page 23: 4. Interview for Software Engineers - Starting an IT Job

Your Questions Finally you will have a chance to ask your questions Having no questions is not good

Demonstrate interest to start working

Ask about your first project, about the development process, about your team, etc.

Never ask about salary raises, bonuses, parking space, fitness and sport facilities, etc.

You should demonstrate motivation to work hard, not claims

23

Page 24: 4. Interview for Software Engineers - Starting an IT Job

Typical Interview Questions and

Answers(for Junior Software Development Positions)

Page 25: 4. Interview for Software Engineers - Starting an IT Job

Typical Interview Questions

At a technical interview you will be given questions from several categories:

General questions

Technical questions

Abstract thinking questions

Personal character questions

The "salary" question25

Page 26: 4. Interview for Software Engineers - Starting an IT Job

General QuestionsExperience, Education, Future Plans

Page 27: 4. Interview for Software Engineers - Starting an IT Job

Typical General Questions

27

Where are you from?

What High school have you graduated?

What University have you graduated / studying now?When you started programming?

How many books about computer programming you have read? What was the name of the last?

Do you believe that computer programming is your passion and your future job?

Can you work on full time (8 hours/day)? If not how many hours a week you can work?

Page 28: 4. Interview for Software Engineers - Starting an IT Job

Typical General Questions (2)

28

What are your English skills? Can you freely talk on the telephone in English?

What are your plans for the next few years? How you see your career after 2 or 3 years?

How you inform yourself about new technologies? Do you read news or blogs? Which sites?

Shall you study more after you graduate your current University degree? Maybe abroad?

How will you describe your typical work day?

What do you know about our company?

Page 29: 4. Interview for Software Engineers - Starting an IT Job

Technical QuestionsAlgorithms, Databases, Web

Technologies, Etc.

Page 30: 4. Interview for Software Engineers - Starting an IT Job

Typical Technical Questions

Algorithms and data structures:

30

Explain what is a hash-table and how it works.

Explain how the QuickSort works. How fast is it?

You are given a set of words. Find all their subsets.

Can you draw a picture of a linked list?

You have to implement a Web spider which runs on a cluster of machines. How you will design it?

Explain how polymoprhism works in the object-oriented programming (OOP)?

What is typical for the Strings in C# / Java / PHP?

Page 31: 4. Interview for Software Engineers - Starting an IT Job

Typical Technical Questions (2)

Databases and SQL:

31

What is database constraint? How constraints work?You have a table consisting of: EmployeeId (PK), Name, Salary, ManagerId (FK), DeptId (FK).

Write a SQL query to find the name, salary and department of the employee that has minimal salary in his/her department. If many employees take the minimal salary, display just one of them.

How we implement one-to-many and many-to-many relationship in relational databases?

When we use "1 x 1" relationships in database modelling? Give an example.

Page 32: 4. Interview for Software Engineers - Starting an IT Job

Typical Technical Questions (3)

XML questions:

Multithreading questions:

32

How we execute multiple tasks in the same time in C#?

What is the difference between DOM, SAX and StAX parsers for XML? How you use DOM in C# / Java / PHP?What is XPath and how it works? Give an example. How you use Xpath in C# / Java / PHP?

You have to download 500 files from Internet but your network bandwidth is not too wide to handle 500 downloads simultaneously so you want to download the files by 10 at a time. How you implement this?

Page 33: 4. Interview for Software Engineers - Starting an IT Job

Typical Technical Questions (4)

Web development questions (front-end):

33

Explain the meaning of the following CSS rule:

.newscolumn { width: 400px; float: left; clear: both;}

Explain the difference between HTTP GET and POST requests.

We have a <div> element in a HTML page which is visible. How to hide the <div> with JavaScript?

How to do the above in jQuery?

Page 34: 4. Interview for Software Engineers - Starting an IT Job

Typical Technical Questions (5)

Web development questions (server side):

34

What is custom tag / user control in a ASP.NET / Java based Web application? How it works? When we need this technology?

How you could implement a shopping cart in ASP.NET / Java / PHP?

What is AJAX and how it works? How we use AJAX in ASP.NET / jQuery / PHP / Java based Web application?We have a list of products that have name, price and photo. We need to display them in a Web application. Describe the steps to do this in ASP.NET / Java / PHP.How we implement URL rewriting in ASP.NET / Java Web application / PHP?

Page 35: 4. Interview for Software Engineers - Starting an IT Job

Typical Technical Questions (6)

Software engineering questions:

35

What is source control repository? Which source control software you have used and when?

What is software requirements specification (SRS)? What is the typical structure of such document?

What is unit testing? When we need it? What unit testting frameworks you have used?

How the continous integration works?

Explain what is agile development. What is SCRUM? Explain the most important practices of SCRUM.

Page 36: 4. Interview for Software Engineers - Starting an IT Job

Abstract Thinking Questions

Puzzles, Unsolvable Problems, Etc.

Page 37: 4. Interview for Software Engineers - Starting an IT Job

Abstract Thinking Questions

Questions in the category "abstract thinking" aim to check the level of alertness, ability to think and to attack unsolvable problems In some cases there is no correct

answer and your task is to demonstrate your thinking

37

Estimate how many gas stations exist in Sofia.

Do you see the tree outside on the street? Can you calculate how many leaves it has?

You have 8 balls. One of them is defective and weighs less than others. You have a balance to measure balls against each other. In 2 weighings how do you find the defective one?

Page 38: 4. Interview for Software Engineers - Starting an IT Job

Personal Character QuestionsYour Best and Worst Qualities, Ability

to Work in a Team, How do you Handle a Stressful Situation?

Page 39: 4. Interview for Software Engineers - Starting an IT Job

Typical Personal Character

Assessment Questions Questions to assess your personal character:

39

Describe the ideal software company from your dreams.Can you describe an ideal collague / team member?

What are your 5 best personal character qualities?What are your 5 worst personal character qualities?What kind of sport do you practice? At which position do you play?

What shall you do if you have a deadline until tomorrow and your project is not completed?

How do you resolve a conflict with a colleague?

Page 40: 4. Interview for Software Engineers - Starting an IT Job

Typical Personal Character

Assessment Questions (2) Questions to assess your personal

character:

40

Do you prefer to work independently or in a team?

Give some examples of a team work from your experience.

Describe a difficult work situation / project you have experienced and how you overcame it.

What does motivate you and what does not?

How do you handle stress and pressure?

How you can evaluate your results. What is success?

Page 41: 4. Interview for Software Engineers - Starting an IT Job

Typical Personal Character

Assessment Questions (3) Questions to assess your personal

character:

41

What were your responsibilities at your last job / last project?

What major challenges and problems did you face? How did you handle them?

Why are you leaving your current job?

What interests you about this job?

What challenges are you looking for in this position?

Why we need to hire you, not someone else?

Page 42: 4. Interview for Software Engineers - Starting an IT Job

The "Salary" QuestionHow to Answer in the Best Way?

Page 43: 4. Interview for Software Engineers - Starting an IT Job

The "Salary" Question The typical salary question is like

this?

Your answer should demonstrate that your work is more important than the payment

Examples of possible answers:

43

What salary do you expect?

I don't care about the payment. I want to work at the company for long-term and I believe that if my results are good I will be paid accordingly.

I understand that I have to learn a lot. Thus now I think I could start with a salary of XXX leva and in a year I expect to become more skillful and get a pay rise of YYY (or be fired if I don't meet your expectations).

Page 44: 4. Interview for Software Engineers - Starting an IT Job

The "Salary" Question (2)

You always talk about a net salary (after all the taxes are deducted) for a full-time job (8 hours)

Some candidates will say:

Some companies have a policy for this case:

Most companies will force you to say a certain number and you should say something – be ready!

44

I don't know what salary to expect. Please make an offer for me.

You will be a junior developer (trainee). For this position our salary range is from XXX to YYY leva.

Page 45: 4. Interview for Software Engineers - Starting an IT Job

The "Salary" Question (3)

Typical net salary ranges (Sofia, January 2012) for full-time software engineer jobs: Junior .NET / Java developer – 900-1300 leva

Junior PHP / Web site developer – 600-900 leva

Junior QA engineer – 600-900 leva

Junior support officer – 400-700 leva

Junior system administrator – 600-900 leva

After a 1-1.5 years you could expect twice

Senior developer (4-5 years) – 2000-3000 leva

45

Page 46: 4. Interview for Software Engineers - Starting an IT Job

Typical Mistakes and How to Avoid

Them?One Wrong Word Could Spoil the Deal!

Page 47: 4. Interview for Software Engineers - Starting an IT Job

Typical Mistakes Never say bad words about former employers, colleagues, etc. (don’t hate anyone) Always be positive!

Typical "catch-you" question

Possible nice answer:

47

Did you have colleagues or classmates who you can't stand? What were they? Why you can't stand them?

Generally I can stand anyone. I don't like too much XXX kind of people but if I need to work in a team with such colleagues I will defenitely find a way.

Page 48: 4. Interview for Software Engineers - Starting an IT Job

Typical Mistakes Generally all kinds of inadequate claims or pretentions are evil Requesting too high salary, too high

position, too short work-time (less than 8 hours / day)

Being negative about something or someone Be positive, be successful, be

skillful, be professional, don't blame somebody else!

You should demonstrate high motivation to work hard for long-term Anything confirming the opposite is

harmful

48

Page 49: 4. Interview for Software Engineers - Starting an IT Job

Typical Mistakes (2) Requesting too high salary

Requesting too high position for a start

You should always show willingness to work for a long-term

49

This is my first job and I want to start with 1800 leva net salary because I am very smart and experienced.

I will work in your company for few months and will go abroad for a better job after I get some experience.

I want to start a job at some management position because I have graduated University in UK.

Page 50: 4. Interview for Software Engineers - Starting an IT Job

Typical Mistakes (3) Putting university / exams as your first priority

You could say the same in a better way

50

I want to start working but my University education is my first priority. Thus I will be unable to come at work each Tuesday and each Wednesday and when I have tests, exams and projects.

My first priority is my job. In the same time I have some commitments in the University but I am flexible to do my best to move them out of working time. Sometimes (e.g. once monthly) I will have to take tests / exams in the University and I hope we could find a way to avoid harmful consequences for my projects at work due to my eventual absence. Do you think this would be possible?

Page 51: 4. Interview for Software Engineers - Starting an IT Job

Other HintsDo not Come Late, Usual

Dressing, …

Page 52: 4. Interview for Software Engineers - Starting an IT Job

Other Hints Be sure to come exactly at the appointed time Not earlier, not later!

Eventually come 5 minutes ahead

Dressing code Be sure to come with clean dresses

and shoes

Dress yourself in your everyday style Software engineers do not need to

wear a suit

If you are nervous, train for the interview

52

Page 53: 4. Interview for Software Engineers - Starting an IT Job

Recommended Books

How to Answer Hard Interview Questions, Charlie Gibbs, 2nd Revised edition, 2009, ISBN: 1845283732 http://www.amazon.com/dp/1845283732

Programming Interviews Exposed: Secrets to Landing Your Next Job , John Mongan, Wrox, 2006, ISBN: 0935713425 http://www.amazon.com/dp/0935713425

53

Page 54: 4. Interview for Software Engineers - Starting an IT Job

форум програмиране, форум уеб дизайнкурсове и уроци по програмиране, уеб дизайн – безплатно

програмиране за деца – безплатни курсове и уроцибезплатен SEO курс - оптимизация за търсачки

уроци по уеб дизайн, HTML, CSS, JavaScript, Photoshop

уроци по програмиране и уеб дизайн за ученициASP.NET MVC курс – HTML, SQL, C#, .NET, ASP.NET MVC

безплатен курс "Разработка на софтуер в cloud среда"

BG Coder - онлайн състезателна система - online judge

курсове и уроци по програмиране, книги – безплатно от Наков

безплатен курс "Качествен програмен код"

алго академия – състезателно програмиране, състезания

ASP.NET курс - уеб програмиране, бази данни, C#, .NET, ASP.NETкурсове и уроци по програмиране – Телерик академия

курс мобилни приложения с iPhone, Android, WP7, PhoneGap

free C# book, безплатна книга C#, книга Java, книга C#Дончо Минков - сайт за програмиранеНиколай Костов - блог за програмиранеC# курс, програмиране, безплатно

?

? ? ??

?? ?

?

?

?

??

?

?

? ?

Questions?

?

Interview for Software Engeneer

http://academy.telerik.com

Page 55: 4. Interview for Software Engineers - Starting an IT Job

Homework1. Read the recommended IT interviews

book Find and read IT interview web sites in

Internet

2. Practice for a sample interview with friends Imagine you have applied for a certain

job position in certain company Prepare for the interview following our

guidelines Try to play the "interviewer" role Try to play the "candidate" role

55

Page 56: 4. Interview for Software Engineers - Starting an IT Job

Homework (2)3. Try to go to few interviews (just for

practicing) Find in Internet a job opening related

to you skills and interests, prepare and submit a job application

Choose a small company where you don't want really to work (some day)

Never say to the interviewer you are just practicing, just for fun

Practicing interview will reduce your stress, will increase your self-confidence and gain experience

56

Page 57: 4. Interview for Software Engineers - Starting an IT Job

Free Trainings @ Telerik Academy

Starting an IT Job seminar academy.telerik.com/

seminars/it-job-interview

Telerik Software Academy academy.telerik.com

Telerik Academy @ Facebook facebook.com/TelerikAcademy

Telerik Software Academy Forums forums.academy.telerik.com

Page 58: 4. Interview for Software Engineers - Starting an IT Job

Thank You!