Placeholder Image

字幕列表 影片播放

  • Hey, welcome back to coffee time with their host, ex Google ex Facebook tackle it And they occur to me that I never really explained how I got my job at Facebook as a staff software engineer making $500,000 per year today.

  • I thought I would tell you about how that interview process went.

  • I landed this offer about one and 1/2 years ago when I was working over at Google as attack lead.

  • I might remind you before all the drama about my wife leaving me happened before I became unemployable for passion Facebook.

  • But this may be a path that you would like to pursue as well at some point in your future.

  • Maybe not now.

  • Maybe not ever.

  • Really.

  • I wanted to explain.

  • Why am I even give you onto?

  • Suffice if you know the information.

  • If you know knowledge, if you can pass these interviews, you should be qualified for the job.

  • It would otherwise be like saying students s a Harvard somehow have some secret bit of information that is non public, and then they only tell that information to their friends and their only those people are able to get into Harvard, and I feel that this information disparity is not fair.

  • It's not fair for people who don't have those professional network connections who, maybe from underprivileged communities.

  • So that's my perspective about giving you guys as much information as you can to pass these Cody interviews.

  • All right, so Facebook generally has three different types of interviews.

  • You can usually tell which one you, maybe it.

  • They have coding systems, design and behavior.

  • So the coding focuses on just your average sale, eat code type of questions and what you have to solve some coding exercise.

  • And that's really what say I'll go pro, which I talked about is going to help you get through and a lot of junior engineers.

  • They stumble on this portion or they just miss out on a lot of these problems.

  • The system's designed interview is not so focused on Cody, and in fact, there probably get a little bit mad.

  • If you start coding too much, they want you to talk about how these pieces of code in tract with each other and that over architecture of it.

  • And then there's the behavior portion in which they tend to value your ability to handle conflict, build consensus, lead projects, push impact and overall, have good collaboration and communication skills.

  • Because overall programming as a team sport for myself.

  • Since I was interviewing for a senior role, I had one clothing question, two systems design interviews and then one behavior a portion.

  • And in each of these that generally do continue to ask you some coding questions.

  • So it's not like that, just as your one.

  • Let me tell you about the coding questions that I had, though, and there's a good thing I took notes on these so I can tell you the exact questions I was asked.

  • And you can think about how you may solve some of these as well.

  • You can just positive video as we go along here.

  • The first question is given to duplicate Byner trees, so you got tree A and tree B, and you are given a note in tree A.

  • Find that same corresponding note in the B so you can think about how you may solve this.

  • By remember, my approach was I would try to traverse one tree, finding though, and then traverse the second tree and see if I can find that same note.

  • But then I realized that there was no good way to compare the two nodes.

  • The interview.

  • We kind of stopped me.

  • At that point, I had to step back and think about it.

  • And the ultimate approach, which I think is the right one.

  • That's just rivers both at the same time.

  • And when you reach the know than a then you know you've reached that same note in the second binary tree as well.

  • But the main trick here is that even though most people may have been touched rivers, one binary tree at the time doing both treat reversals at the same time sort of test your mastery of this area.

  • Now the funny thing is for a standard interview, I think this would be the only question, but I actually ended up solving like three questions in the single session.

  • So the second question that, as was given in the ray like 100250 move all of the zeroes to the right to the end of the array.

  • And again, this isn't necessarily so difficult, but the challenge is to do it in like a single past linear time algorithm, make it very efficient and come up with the proper time.

  • Space analysis and one brute force technique is you can go through the array, find the 1st 0 and move it to the end.

  • Go through the array, find the next hero, move it to the end, and you just keep moving these values.

  • And that's probably going to take quadratic time and score time because you've got to go through ended rations.

  • And for each iteration you may have to shift and more elements.

  • The more optimal solution can be done in linear time and constant space.

  • You keep in the index to the last item in the array, and any time you find this year you just drop that element with the last item.

  • And then you move that last index one left and you just kept going like that, and then you can process through the whole race.

  • It's a pretty ridiculous question, but you just got to play that game.

  • The next question is check of a string of Prentiss E is valid.

  • Very common question.

  • You always get asked this type of thing.

  • You can either solve that using like a counter But if there are multiple different types of Prentiss Ethan, you can use like a stack.

  • And when you encounter and open the em prentiss, see you push that onto the stack.

  • We encounter a closing prentiss.

  • See you pop that off of the stack and you check that they match.

  • And then there was a follow up question, which was to remove all unbalanced parentheses.

  • Another question was your given to binary strings, and you need to add them manually.

  • Essentially, just do a duration using a carryover variable that can be done the linear time, constant space and weak over a question similar to this over now go pro, except that they're linked less instead.

  • So it's a little bit trickier that way.

  • And then the last question is, you're given an array of objects small, medium and large, and then you have to sort them in place.

  • And, you know, this was a mix of using the proper data structures because they weren't numbers.

  • There's like small, medium and large objects in there and then coming up with the algorithm to sort this efficiently.

  • The optimal algorithm would use no space, and it would be linear time just do the entire sort in one iteration one past I remember the original approach I did was first.

  • I had a bucket of small items and then medium and large items combined, and I would first go through in one pass and move all the small items to the beginning and then go through a second past.

  • I move all the large items to the end and just sort the medium and large items.

  • So this is actually a to pass algorithm, so that covers the coding and all software engineers Junior third senior needs in the coding.

  • You're going to be smoked on this no matter what level you're at, we're just y.

  • It's important to keep your skills sharp with al go pro dot com Now the two systems designed questions I got were both pretty similar, and it's totally going to depend on the area that you're in right for me.

  • I'm on IOS Mobile developer.

  • So it was about building the IOS up.

  • Specifically, it was number one design, a flight booking app, and number two designed a simple version of Instagram.

  • So both of these questions are about having multiple pages or surfaces and then that there could be dozens of teams working on these and an architect ing the AB structure in the way that multiple people can be working on this and the handling things like cashing offline usage events, navigation scroll performance layout, removing interdependencies between different pages for the flight booking application.

  • The idea is that you first search for set flights.

  • You see a list, you choose a flight, and then you can buy the flight.

  • Similarly, for the Instagram, one is like you have a bunch of photos.

  • Then you can click on the further you see the details, and it's like a two page app.

  • You can really go in any direction that you want in these systems.

  • I interviews is super open for me, the areas I dove into talking more about we're handling offline usage scenarios.

  • How do you cash that stuff separating dependencies between surfaces?

  • So, for example, the flight booking up.

  • You may have a payment steamed as handling the payment view for buying the airplane ticket, but then you have another team does handling search, and then another team that handles display nde Elissa flights and is like, How do you structure the application in the way such that all of these can be independent of one another, and yet they're able to function together.

  • And here I would talk about having different event handlers separating modules out such that they're not dependent upon one another and coming up with that moderate dependency graph.

  • And I had to sort of back step.

  • They're taking their feet back and during the interview actually realized uneven, better architectural solution that we had them figured out over Google that Facebook had been implementing, and they probably just appreciate it that I was able to collaborate with them to solve that right there.

  • And then There are also questions about holistically structuring the app in the way that could be suitable for both offline and online use, and then making the right abstractions that say the network layer.

  • And then I also talked up up the U.

  • Y.

  • As well, so that covers what a mobile systems design interview may look like for a Web.

  • It'll probably be very different.

  • For example, they'll probably be about load balancers, databases, master slave replication, shard ing, see the ends and all of that.

  • I think what really helped me, though, was really being more interested in other parts of the Kobe's rather than whatever.

  • I have been the signed right.

  • Like usually, people are sent to work on one small feature, and they never take a step back and look at how they're feature, interacts with everything else and get overview of the entire code base that they're working on.

  • If you can take a step back and take a look at that, that could prepare you well for any systems design interview that may be coming your way at some point, maybe now or in the future.

  • And then last of all, there were the behavior questions which we cover and far more death over in our other programs.

  • Tech interview pro dot com Were we covered the entire interview process start to finish, but the behavior questions they really dig and they don't accept your first answer, in fact, are trained not to.

  • So if they ask you like what's the most challenging part about this?

  • And you give some shallow answer like Oh yeah, working with this person and then overcame this challenge, they know that that first answer it's probably like a B s answer that you have prepared, so they really dig deep, and this is where it helps to really have good examples.

  • I prepared a number of stories myself about dealing with conflict, tough situations at work, And I think that for this area also helps to just have some good concrete examples, which is another reason that in whatever role you're in, it still helps to be pushing yourself, challenging yourself to do more such that it could be something you can talk about as you're interviewing for your future roles.

  • So there have I remember leaving the interview feeling quite positive about it, and then two weeks later I will receive the offer $500,000 salary.

  • And there was still kind of a hard decision for me to leave Google to take up the offer because I was quite comfortable over Google.

  • In fact, I felt I was probably getting a little bit too comfortable just sitting back.

  • Did you have learning a whole new Kobe's new technologies?

  • It just seemed really exciting to me at the time, so I made that switch turned out later to be one of the biggest mistakes of my life.

  • But That's another story.

  • So that there for me it was a little bit more of a technical video.

  • But I gotta keep my street cred up as the tech lead.

  • If you like the video, give the like and subscribe.

  • And that was you next time.

  • Thanks.

  • Bye.

Hey, welcome back to coffee time with their host, ex Google ex Facebook tackle it And they occur to me that I never really explained how I got my job at Facebook as a staff software engineer making $500,000 per year today.

字幕與單字

單字即點即查 點擊單字可以查詢單字解釋

A2 初級

我是如何在Facebook獲得一份50萬美元的工作(作為一名軟件工程師)。 (How I got a $500K job at Facebook (as a software engineer).)

  • 3 1
    林宜悉 發佈於 2021 年 01 月 14 日
影片單字