Appendix A

Preparing Your Cheat Sheets

Despite the name of this section, nothing is underhanded about preparing for an interview. Take advantage of the time you have available before the interview to think about questions you might be asked, how you would answer them, and what questions you will ask if given the opportunity. You should consider what you say when asked tough questions about (for example) gaps in your work history, why you've changed jobs twice in the past year, and so on.

Use the questions in this section to prepare your cheat sheets. Go through this list and think about how you would answer each question if you were asked it at a phone or in-person interview.

Some of these questions will not apply to you or your circumstance, so you can freely ignore those. Use the programming concepts section to quickly see whether areas exist in which you need to brush up.

Look in particular for questions that you might find difficult to answer during the phone interview. Make brief notes that you can quickly refer to during a phone interview. Remember not to write too much or you will tend to read your answer rather than speak it as you would naturally. You also want to avoid making notes that are cryptic or too brief. Personally, I find some of the questions listed in this appendix a bit clichéd and I (as the interviewer) would be unlikely to ask them at an interview. Many other interviewers have no such qualms and are likely to ask you (to pick a classic example) about your “main strength and your main weakness.” You should give these at least a moment's thought before an interview so that you don't burst out laughing when they are asked.

It is important that every claim of skill and expertise is supported by evidence. Interviewers love to ask the follow-up question “Can you give me an example?” Also note that verifiable outcomes are the best kind of evidence. Saying that you worked with C# since version 1.0 is all well and good, but saying that you wrote the core libraries for the successful AcmeWidgets product is even better.

As you work through these questions you might find reviewing the early chapters in this book for ideas and insight into the interviewer's motivation helpful.


Note
Before you begin answering some of the questions in this Appendix, you might consider reading or reviewing Chapters 2 and 3, which both have information on what to do in interview situations, both on the phone and in person.

General and Behavioral

This section contains question that you might encounter concerning your past programming experience, your personal goals, your attitude towards groups, and working with others as well as how you would handle certain work situations.

What do you know about this company?
Briefly talk me through your work history.
Describe your most recent role in more detail.
Tell me about the last team you worked with.
What motivates you?
Tell me about the most difficult project you've worked on.
What is your proudest achievement at work?
Describe a work situation where you had to resolve a conflict with a peer.
What kind of role do you typically play in a team?
Tell me about a time when you argued in favor of an unpopular decision.
Describe how you handled a situation where you disagreed with a decision for technical reasons, but were overruled for business reasons.
What would your previous boss say about you if I were to call her?
What aspects of your experience make you a good fit for this job?
What things have you learned from you last job?
Tell me about your most recent project experience.
What are you least skilled at (non-technical)?
Describe the best/worst team you've been part of.

Programming, General

The questions in this section are what you might call “soft ball” questions. The answers to these questions tend to be based more on your opinions and personal experience rather than on textbook facts or specific technical knowledge.

What is your favorite programming book?
Do you participate in any programming communities, either online or in person?
What makes you stand out from all the programmers we could interview?
How would you describe your approach to software development?
How do you rate yourself in each of the major technologies mentioned in the job description or advertisement?
Can you name someone, not necessarily someone well-known, who has influenced the way you approach software development?
Describe a bug or a problem that you couldn't resolve.
What is your worst technical skill?
What experience do you have that is relevant to building large-scale web applications?
What experience do you have of designing multi-threaded applications?
Describe some of the pros and cons of using a relational database rather than, say, an XML-based data store.
What do you like best about the _____ programming language?
Do you prefer to work on the front-end or back-end of applications?
Give me an example of a good coding standard for the _____ programming language.
What is your most-used command-line tool or utility?

Programming Concepts

This is a list of “pop-quiz” type questions that an interview might use for an initial phone interview. You should review this list to be sure you can confidently and succinctly answer each one.

What is the difference between overriding and overloading?
What is a critical section?
With is the difference between a value type and a reference type?
In terms of memory management, what is the stack, and what is the heap?
In SQL, what is the difference between an inner join and a left join?
What is a strongly typed programming language?
Describe the difference between valid and well-formed XML.
What is the relationship between threads and processes?
What does immutable mean?
What is revision/version control?
What does the V in MVC stand for, and what does it signify?
What is the difference between a class and an object?
Why would you ever want to create a mock object?
What is unit testing?
Name and briefly describe three different kinds of testing that might be performed on an application before it is released to live.
What is the Liskov substitution principle?
What is test-driven development?
What is the difference between iteration and recursion?
What is loose-coupling?
Can you give a practical example of a recursive algorithm?
What is time complexity?
What is an associative array?
What is a stateless system?
What is the difference between an interface and an abstract class?
What is SQL injection?
What is the result of 1 XOR 1?
What is a regular expression?
What is an undirected graph?
What are some important differences between a linked list and an array?
Why is code clarity important?

Work History

This section lists some questions about your work history that you might find difficult to answer unless you give them some thought before the interview. Answering these questions well—in a positive and honest way—will increase your chances of getting hired. Not all of these questions will apply to everyone.

Why are you looking to leave your current employer?
Why did you leave your last job?
Which is more important: getting things done or doing things properly?
You haven't been with your current employer for very long—why are you looking to move so soon?
You were in your last job for a long time, what prompted you to leave?
Can you explain this gap between jobs in your work history?
You were in your last job for a long time, why weren't you promoted in that time?
Can you explain why you have had a lot of jobs in a short space of time?
Why are you changing jobs so soon?
You have been looking for a job for some time, why haven't you found one yet?
Looking through your work history your career seems to have gone up and then down—what is the story behind that?
Don't you think this job is a step down from what you were doing previously?

Questions to Ask, If Given the Opportunity

Now it's your turn. You've answered all the questions your prospective employer will ask you for the time being and you have an opportunity to ask questions of your own. Remember that what you ask can say a lot about you. At the same time, you want to ensure that this job is the right one for you. The following questions might help you accomplish that:

How long has this job vacancy been open?
Why did the last person leave?
What is the best/worst thing about working for this company?
How long have you been with this company?
What does a typical day/week in this job involve?
What is the most/least enjoyable aspect of this job?
Would it be possible to see the working area?
Could you tell me a bit more about the team?
Could I meet someone (else) on the team?
What are the immediate challenges of this job?
What do you expect the challenges of this job will be over the next few months?
What are the most important day-to-day responsibilities of this job?
..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.223.111.118