Column | chapter nine algorithm

Url | www.jiuzhang.com

Let me start with my background. National 211 non 985 university CS graduation, in the East of the United States of a university to read graduate. Since it was a one-year program, there was no internship, so I had to start looking for a full-time job, Alexander!!

I just heard that I had to brush LintCode when I was about to graduate, but I felt even the easy question was difficult. Later, when my classmate said that nine chapters algorithm could check the answer, I started to use this website and signed up for the algorithm intensive class. After three weeks of listening, I immediately signed up for the algorithm class.

1. Job hunting schedule

My schedule looks something like this:

  • In September, I met with Jane Street and Microsoft’s first round. Jane Street was regarded as technical in the first round, and of course I failed. Microsoft is on-campus. I had already completed nine chapters of the algorithmclass before I joined Microsoft, and then completed half of the algorithmclass Ladder. Microsoft school enrollment is easy. Check if a string is a palindrome. Two weeks later, I was invited to onsite.

  • Face Microsoft, I continue to brush algorithmic class Ladder, slowly finish. We met Apple’s Siri team, Zillow, Square, and Morgan Stanley’s Desk Strats in October. They’re on their knees, so LET me give you a lesson here. First of all, do not write a project you are not sure about on your resume. At that time, I wrote Machine Learning Independent Study on my resume, and the interviewer in the second Apple interview happened to be in the field of Machine Learning, so he singled out this project and asked a lot of profound questions. I can’t type a lot of them. Secondly, if you have a phone interview, and you want to think quietly, be sure to say to the interviewer, “Can I have one to two minutes to think about this?” “Or the other party would be embarrassed to be left there.

  • At that time, I was a little frustrated to be rejected by three companies in a row, but I still have Microsoft Onsite. After I finished the ladder of my LintCode algorithm class, I started to swipe the ladder by company on LC. At that time, there was a Facebook side, so it was all about Facebook and Microsoft. Talk about Facebook. I started with two rounds of Skype calls. HR has notified me to go to Onsite after 2 days. Onsite is a few Onsite algorithms and variations from LintCode, but I’ve already done about 190 Onsite questions, so I’ve basically answered them all. Now, I have received an offer after a week’s onsite work. Neck surprise!

2. Facebook interview preparation

During the interview process, engineers and software developers go through several rounds of coding skills. So, before you interview for a job as a software engineer at Facebook, prepare:

  • Basic data structures and algorithms: lists, arrays, hash tables, protocol stacks, queues, heaps, tree graphs, traversal (BFS, DFS), etc. These are the most basic knowledge of the software engineer interview, if you can not master these basic data structures, then the interview will not have a chance to pass.

  • Work experience and career interests: Familiarize yourself with your resume, be ready to talk about the details, achievements and impacts of the project, and think about your future work expectations, possible problems and solutions.

  • Facebook culture: To be a top programmer, in addition to being proficient in data structures and algorithms and having a clear career plan, you need to understand Facebook’s culture and be a person who fits Facebook’s goals and work pace. So before you interview for a job as a software engineer at Facebook, make sure you like the culture Mark Zuckerberg has created.

With that in mind, you’re ready to start the interview process for a Facebook software engineer.

Three, HR electrical surface

No matter which job you’re applying for at Facebook, the first step is to get a call from an HR person.

Prepare proposal

  • Choose a quiet place to answer the phone: Treat your phone interview the way you treat Mark Zuckerberg, and find a quiet place other than Starbucks to make sure your phone is ringing.

  • Check out the HR profile on LinkedIn in advance: It’s not only polite to learn about the HR’s school, work history, and hobbies, but it also helps build rapport.

  • Try asking for advice on follow-up interviews: When appropriate, ask if the HR person would be willing to share interview tips and tricks.

Iv. Engineer’s electrical surface

During this phase, a Facebook engineer will be the interviewer, and the interview will cover coding.

The interview process

Introduce yourself: The interviewer will ask you to introduce yourself and state the position you are applying for.

Career Expectations: For 5-10 minutes, the interviewer will ask questions about your work experience and career expectations.

Coding: 30-35 minutes of coding is an important part of getting the interviewer to know how you solve problems.

Question the interviewer: The last 5 minutes of question time is a great opportunity to get an inside look at Facebook’s software engineers.

  • The coding interview takes place on an online editor that you share with the interviewer.
  • There are one or more coding questions. The length of the questions is appropriate. It can be explained in a few minutes and answered in 10-30 minutes.
  • There are no technical or estimation questions — for example, interviewers don’t care how many ping-pong balls can fit in the ocean.
  • You may choose your own solution, but the interviewer may impose further restrictions or requirements.

Coding interview preparation tips

  • Brush problems: Practice solving algorithm problems on Lintcode in the most efficient and bug-free way possible.

  • Code with a simple editor: Interviews may be coded with tools (such as CoderPad) that don’t have syntax highlighting and auto-padding.

  • There is a limited amount of time for coding interviews, so it is important to complete them on time. Practice interviewing with a friend.

  • Think about your career expectations in two to five years: The interviewer may ask about your interests and strengths as an engineer.

  • Prepare 1-2 questions to ask the interviewer: The last 5 minutes are for asking questions, so be prepared with 1-2 questions that will help build goodwill with the interviewer.

5. On-site interview

When interviewing for a position as a Software engineer at Facebook, you will go through 4-5 rounds of interviews in one day. These are divided into three types:

  • Coding interview: Solve some basic Coding problems

  • Design interview: Demonstrate design skills. Design questions are based on your background

  • Behavioral interview: Behavioral questions about work experience and motivation

With the exception of early/late interviewers, everyone else will be taken to lunch by HR or engineering staff, which is a good opportunity to ask questions to staff other than the interviewer.

1. The coding interview

The coding interview was more difficult than the engineer’s phone interview: the interviewer asked more difficult questions and the evaluation criteria were more stringent. The interview will last about 45 minutes.

The interview process

  • Self introduction: 5 minutes for self introduction, maybe a few questions about your background.

  • Coding: 30 minutes, 1 or more coding questions, mostly algorithmic interview questions.

  • Question the interviewer: The last 5 minutes of question time is a great opportunity to learn more about Facebook and the things you’re interested in from an in-house engineer’s perspective.

Prepare proposal

Coding interview preparation advice as mentioned in the engineer’s telephone section

  • Practice writing coding: The coding interview will be done on a whiteboard and you can use whiteboard/pen and paper to practice problem solving as you prepare.

2. Design Interview

There are two types of design interviews: system design and product design. The purpose of the design interview is to assess the applicant’s ability to solve important engineering design problems. The design interview is 45 minutes long and you will spend the entire interview speaking or writing. The interviewer will ask you a wide range of design questions and ask you to suggest and evaluate your proposal. As with all interviews, the last five minutes are time to ask questions of the interviewer.

Prepare proposal

(1) System design

  • Mock system design interview: Have an engineer conduct a mock interview and ask him a system design question, especially if the engineer is working on a project.

  • Dig deeper into the operating characteristics of open source systems: for example, look at levelDB and read the execution commands to learn how to store data on disk and compress it into different layers. Think more about what kind of data and size is optimal? In what cases does read/write speed decrease?

(2) Product design

  • Reflect on your projects: What were the easy/difficult parts of the projects you worked on?

  • The interviewer might ask, “How would you design an email server?”

  • Consider these questions: How do you store mail when the system grows too large for a single machine? How do I handle mailing lists with a large number of recipients? How to deal with people abusing the spam system? How to ensure system reliability in the face of potential system failure? Interviewers may also ask, “How would you design a client-server API for building rich document editors?”

  • Think about these questions: How does a client request document data from a server? Especially if the document is so large that we don’t want to download it on a single request? How do I display elements like bold and italic in a document in an API response? How do you design your system to add new features to the server without breaking the existing client?

3. Behavioral Interview

In fact, behavioral interviewing includes part behavioral interview and part coding interview. The behavior section examines the applicant’s personality, work experience and motivation. The purpose of the behavioral interview is to assess how well the candidate will fit into Facebook’s engineering culture.

Prepare proposal

  • Learn about yourself: Take the time to review your resume, and the interviewer will likely ask you about important things from your work experience. For example, tell me about a time when you pressed ahead with a project even though someone opposed your idea.

  • Clarify your motivations: What are your motivations for finding a job? Why Facebook? Why become a software engineer?

  • Think about how you get along with your colleagues: Figure out how you will work with your colleagues? How do you resolve conflict? How do you like to give and receive feedback?

  • Welcome to follow my wechat official account: Ninechapter.

    Elite programmer exchange community, regular release of interview questions, interview skills, job information, etc