您的位置:首页 > 其它

cracking the coding interview 4th-笔记-Tips

2016-01-28 14:37 267 查看
Five Steps to a Technical Questions

A technical interview question can be solved utilizing a five step approach:

1 Ask your interviewer questions to resolve ambiguity

2 Design an Algorithm

3 Write pseudo-code first, but make sure to tell your interviewer that you’re writing pseudo-code! Otherwise, he/she may think that you’re never planning to write “real”code, and many interviewers
will hold that against you

4 Write your code, not too slow and not too fast

5 Test your code and
carefully
x any mistakes

Step 1: Ask Questions

to see if you ask good questions

Good questions might be things like: What are the data types? How much data is there?What assumptions do you need to solve the problem? Who is the user?

Step 2: Design an Algorithm

While you’re designing your algorithm, don’t forget to think about

» What are the space and time complexities?

» What happens if there is a lot of data?

» Does your design cause other issues? (i e , if you’re creating a modi ed version of a bi-nary search tree, did your design impact the time for insert / find / delete?)

» If there are other issues, did you make the right trade-o s?

» If they gave you specific data (e g , mentioned that the data is ages, or in sorted order),have you leveraged that information? There’s probably a reason that you’re given it

Step 3: Pseudo-Code

tell your interviewer that you’re writing pseudo-code first and that you’ll follow it up with “real” code

» Use Data Structures Generously: if you’re asked a problem involving finding the minimum age for a group of people, consider defining a data structure to represent a Person This shows
your interviewer that you care about good object oriented design

» Don’t Crowd Your Coding: When you’re writ-ing code on a whiteboard, start in the upper left hand corner – not in the middle This will give you plenty of space to write your answer

Step 5: Test

Consider testing for:

» Extreme cases: 0, negative, null, maximums, etc

» User error: What happens if the user passes in null or a negative value?

» General cases: Test the normal case

testing while you’re writing the code rather than just at the end:complicated or highly numerical (bit shifting, arithmetic, etc)

carefully think through
why the bug is occuring

For example, imagine a candidate writes a function that returns a number When he tests his code with the number ‘5’ he notices that it returns 0 when it should be returning 1

Five Algorithm Approaches

APPROACH I:
EXAMPLIFY

Description: Write out specific examples of the problem, and see if you can figure out a general rule

APPROACH II: PATTERN MATCHING

Description: Consider what problems the algorithm is similar to, and figure out if you can modify the solution to develop an algorithm for this problem

APPROACH IV:
BASE CASE AND BUILD

Description: Solve the algorithm rst for a base case (e g , just one element)

APPROACH V: DATA STRUCTURE BRAINSTORM

Description: This is hacky, but it often works Simply run through a list of data structures and try to apply each one

the more problems you do, the better instinct you will develop about which data structure to apply

What about your career options?

» Career Path: Make a plan for your career What do you want to do 5, 10 and 15 years out? What skills will you need to develop? Which company or position will
help you get there?

» Promotion Opportunity: Do you prefer to move into management, or would you prefer to become an increasingly senior developer?

» Money and Benefits: Of course, the money matters (but if you’re early in your career, it probably doesn’t matter much) As mentioned above, make sure you look at the full package

» Happiness: Did you like the people? The products? The location? It’s hard to tell, of course,before you work there What are the options to change teams if you’re
unhappy?

» Brand Name: The company’s brand name can mean a lot for your future career Some company names will open doors, while others will not as much

Before starting at a company, make a career plan What would you like your career to look like? What will it take to get there? Make sure you check in on your career plan regularly and are on track

Top Ten Mistakes Candidates Make

#1 | Practicing on a Computer

Put away the compiler and get out the old pen and paper Use a compiler only to verify your solutions
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: