how to pass an interview for a software engineer? what to do and what to avoid? softuni team...

58
How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? Job Interview SoftUni Team Technical Trainers Software University http:// softuni.bg

Upload: jewel-hamilton

Post on 04-Jan-2016

221 views

Category:

Documents


4 download

TRANSCRIPT

Page 1: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

How to Pass an Interview for a Software Engineer?

What to Do and What to Avoid?

JobInterview

SoftUni TeamTechnical TrainersSoftware Universityhttp://softuni.bg

Page 2: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

2

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?

Table of Contents

Page 3: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

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

Demonstrate Your Knowledge and Skills?

Page 4: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

4

A job interview is a formal meeting: candidate vs. employer Aimed to assess a candidate for a certain job position The candidate should convince he or she is the right person for

the offered position The interviewers assess the skills and personality

By questions and small tasks The candidate tries to prove his or her skills The candidate demonstrates his or her personal character

What is a Job Interview?

Page 5: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

5

The job interview is a stressful situation! You need to present yourself in the best way Many candidates fail to demonstrate their skills due to stress

How to overcome the stress? Just be well prepared! Prepare yourself for the technical

and non-technical questions Expect the questions and have good answers Practice going to interviews

How to Overcome the Stress?

Page 6: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

Interview PreparationWhat is the Best Way to Prepare Yourself

for an Upcoming Interview?

Page 7: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

7

Once you have scheduled and interview Put enough effort in your interview preparation Half an hour is not enough, invest a 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 questions

Steps to Prepare for an Interview

Page 8: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

8

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? Explore the company Web site, brochures, publications, ads, etc. Look for articles, blogs, forums, etc. Ask your friends what do they know

Research the Company

Page 9: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

9

What information you should know? The company products / services portfolio

Download the company's products and play with them The target market and customers The technologies used in the development

E.g. PHP, JavaScript, Angular.js, MySQL, jQuery, etc. The company mission, vision, projects, etc. The corporate culture, corporate values

Research the Company (2)

Page 10: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

10

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

Research the Offered Position

Page 11: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

11

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

Prepare for Technical Questions

Page 12: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

12

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 using

the technology and play with it This is the only way to get some

real-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

Prepare for Technical Questions (2)

Page 13: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

The Interview ProcessTypical Scenario for a Technical Interview

Page 14: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

14

Typical interview steps for a technical position:

1. The candidate presents himself or herself

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

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

4. Personal character assessment

5. Negotiation – salary expectations, start date, etc.

6. The candidate asks questions

Technical Interview: The Process

Page 15: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

15

Typical interview start:

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, current / upcoming projects, technologies involved, etc. Some companies skip this step, expect the candidate to know this

Presenting the Company / Position

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: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

16

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 SoftUni / FMI / NBU) How did you learn about the position and your motivation to apply

Presenting Yourself

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

Page 17: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

17

The technical assessment is critical for passing the interview You will be given technical questions to answer And small technical problems 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

Technical Assessment

Page 18: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

18

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!

Technical Questions – ExamplesIn C# 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 if 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 parallel LINQ.I can use a Customer class and either implement own comparer or use a lambda function to sort by the FirstName property.

Page 19: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

19

Suppose you are given a simple problem like:

The first thing to do is to get the writing pad and draw an example!

This shows a correct and serious way of thinking By using the pen explain how you could shuffle the cards Explain how you will represent a single card and a deck of cards

(data structures) Explain how you could test your solution

Technical Problem – Example

How can you shuffle a deck of playing cards?

Page 20: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

20

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 irrelevant questions that reveal your character

Personal Character Assessment

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: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

21

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

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 team

Personal Character Assessment (2)

Page 22: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

22

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 Money should not be the primary focus for your first job

Negotiation

Page 23: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

23

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. Avoid asking about salary raises, bonuses, parking space, fitness

and sport facilities, etc. You should demonstrate motivation to work hard, not claims

Your Questions

Page 24: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

Typical InterviewQuestions and Answers

(for Junior Soft ware Development Positions)

Page 25: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

25

At a technical interview you will be given questions from several categories: General questions Technical questions Abstract thinking questions Personal character questions The "salary" question

Typical Interview Questions Categories

Page 26: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

General QuestionsExperience, Education, Future Plans

Page 27: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

27

Typical General QuestionsWhere 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: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

28

Typical General Questions (2)

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: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

29

Why did you leave your last employer? Be positive, be mild, avoid hating Never say "they were fools, idiots, stupid, …" Explain that you are looking for a better career

If you hate your former employer, you will hate your next employer too Companies don't like haters

Your Last Employer

Page 30: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

Technical QuestionsAlgorithms, Databases, Web Technologies, Etc.

Page 31: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

31

Algorithms, data structures, OOP:

Typical Technical Questions

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.

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

Page 32: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

32

Databases and SQL:

Typical Technical Questions (2)

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.

What is typical for the NoSQL databases? Give examples.

Page 33: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

33

Web development questions (front-end):

Typical Technical Questions (3)

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: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

34

Web development questions (front-end):

Typical Technical Questions (3)

How do you implement a HTML form with variable number of fields (with [Add row] / [Remove row] functionaliry)?

How will you create a responsive Web site of 4 columns, which shrinks to 2 columns and 1 column on smaller devices?Explain how SASS works.

Explain what is a "closure" in JavaScript.

How do you color the odd / even table rows in a HTML table?

Page 35: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

35

Web development questions (server side):

Typical Technical Questions (4)

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

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

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 PHP / ASP.NET / Java Web app?

Page 36: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

36

XML questions:

Multithreading questions:

Typical Technical Questions (5)

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

What is the difference between DOM, SAX and StAX parsers for XML? How do 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 to do this?

Page 37: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

37

Software engineering questions:

Typical Technical Questions (6)

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 testing 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 38: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

Abstract Thinking QuestionsPuzzles, Unsolvable Problems, Etc.

Page 39: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

39

Questions in the category "abstract thinking" aim to check your ability to think and to attack unsolvable problems Sometime no correct answer exist Your task is to demonstrate your thinking

Abstract Thinking Questions

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 40: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

Personal Character QuestionsYour Best and Worst Qualities, Ability to Work

in a Team, Handling a Stressful Situation

Page 41: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

41

Questions to assess your personal character:

Personal Character Questions

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 42: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

42

Questions to assess your personal character:

Personal Character Questions (2)

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 43: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

43

Questions to assess your personal character:

Personal Character Questions (3)

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 44: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

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

Page 45: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

45

The typical salary question is like this?

Demonstrate that your work is more important than the payment Examples of possible answers:

The "Salary" Question

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 46: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

46

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!

The "Salary" Question (2)

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 47: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

Typical MistakesOne Wrong Word Could Spoil the Deal!

Page 48: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

48

Don't hate your former employers, colleagues, etc. Always be positive!

Typical "catch-you" question

Possible nice answer:

Typical Mistakes

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 49: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

49

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 motivation to work hard for long-term Anything confirming the opposite is harmful

Typical Mistakes

Page 50: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

50

Requesting too high salary

Requesting too high position for a start

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

Typical Mistakes (2)

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 a University in UK.

Page 51: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

51

Putting university / exams as your first priority

You could say the same in a better way

Typical Mistakes (3)

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 52: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

Other HintsDo not Come Late, Usual Dressing, …

Page 53: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

53

Be sure to come exactly at the appointed time Don't come later! Eventually come 5-10 minutes ahead (not too early)

Dressing code: everyday style Software engineers do not need to wear a suit Typical interview clothes: shirt + jeans

If you are nervous, train for the interview After 5-6 interviews, you will feel comfortable

Other Hints

Page 54: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

54

Some developers are not hired due to bad hygiene Take a bath every day, especially before the interview Clean regularly your teeth

Use toothbrush and toothpaste Use dental floss, visit dentist, use mouthwash

Deodorant sticks exist Just use them after taking a bath

Use clean, new clothes and shoes

Personal Hygiene

Page 55: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

55

Recommended Books

Programming Interviews Exposed: Secrets to Landing Your Next Job, Noah Suojanen, John Mongan, Noah Kindler, Eric Giguere, 3rd edition, Wrox, 2012, ISBN: 1118261364http://www.amazon.com/dp/0935713425

Cracking the Coding Interview: 150 Programming Questions and Solutions, Gayle Laakmann McDowell, 5th edition, 2011, ISBN 098478280Xhttp://www.amazon.com/dp/098478280X/

Page 57: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

License

This course (slides, examples, demos, videos, homework, etc.)is licensed under the "Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International" license

57

Page 58: How to Pass an Interview for a Software Engineer? What to Do and What to Avoid? SoftUni Team Technical Trainers Software University

Free Trainings @ Software University Software University Foundation – softuni.org Software University – High-Quality Education,

Profession and Job for Software Developers softuni.bg

Software University @ Facebook facebook.com/SoftwareUniversity

Software University @ YouTube youtube.com/SoftwareUniversity

Software University Forums – forum.softuni.bg