[MUSIC] It's not hard to convince students of the merit of technical skills. They know that if they don't know what a dynamic data structure is, they're going to be in trouble in the interview. But some students overlook the importance of soft skills, and I'm not really sure why that is. I'm not sure if it's that they generally lack experience working on teams, or if it's because soft skills could seem a bit too vague. Whatever the reason, these students are missing out on the fact that soft skills play a significant role in software engineering jobs and during the interview. So our goals here are to understand which essential job skills are soft skills and appreciate the large role that they play in interviews. And we already saw in the last video that both soft skills and technical skills are necessary to achieve your goals on the job as a software engineer, and during the software engineering interview. But what exactly do we mean by soft skills? One definition comes from Wikipedia. This definition includes social graces, communication, language, personal habits, interpersonal skills, managing people, and leadership. In this definition, we see soft skills as critical interpersonal skills focused on relationships with others. It's not hard to see how these are absolutely essential for working on a software team. Let's look at one other definition. Although this definition is what's referred to as practical intelligence of IT professionals, we can see this as soft skills in a technical workplace. Here we see interpersonal skills and managerial skills reappearing, but we also now see intrapersonal skills included here. And these may include things like your willingness to learn new things or to persevere when things get hard. I actually like this latter definition a bit more, as it's more broad. Perhaps the easiest definition is that soft skills are all those skills you bring with you other than your technical. So let's think a bit about what kind of benefits come from some of these soft skills. Your ability to work with others. Your interpersonal skills are pretty clearly important for successful teamwork, but they also lend to your creating both larger social networks and stronger relationships. This creates a key support network which you'll be able to use to find answers quicker by seeking out the appropriate expertise and will also give you support if you're struggling. Your ability to communicate is again key for working on a team, but it goes beyond that. Communication skills allow you to do things like convey the value of your work to people outside your team, and that includes management and customers and so on. Leadership skills knowing how to manage products and lead people is essential for advancement really in any company. Perseverance allows you to overcome adversity and succeed. This interpersonal, intrapersonal skill has been tied to success in a wide varieties of areas of life. So James Heckmann is a professor at the University of Chicago who's written articles summarizing research on soft skills. Here we see him saying cognitive and personality traits are equally predictive across a great variety of labor markets and social outcomes. Let's think about this. Your cognitive and personality traits are equally predictive of success. That's a huge endorsement of soft skills, in fact professor Heckmann's findings were recently used in a popular book that you may have read. How Children Succeed is a New York Times best seller, and I have personally enjoyed the book. Here the author examines how soft skills, like grit and personality, can determine a person's success in life. Now, as a researcher it's really tempting to go on and on about the research and dive into individual studies, but the truth is that this is really just common sense. We've all had that teacher who's dull and drones on in monotone without making eye contact, and conversely we've had that teacher that's animated and clearly cares about learning. We've also had that teammate who seems great when you first form the team, but then turns out to be somebody who's always sure they're right and won't listen to anyone else. Beyond that, we often here stories in the sports news of great individual athletes who get cut from their teams just because of their attitude. All of these are failings in soft skills. Now, that you have an intuition for what we mean by soft skills, I want to give you a couple concrete examples of how soft skills can impact a software engineering interview. What I'll show you next is an example from a bad interview. The actors in the video are actually successful software engineers role playing what a bad interview commonly looks like. In this clip, the interview has already begun, and the candidate is being asked to write a data structure capable of insertion, deletion, and random retrieval. The details of the question actually aren't that important for right now. What is critical is that the candidate has already made a fairly common mistake of diving into the code before discussing the problem and its proposed solution with the interviewer. Let's look how the interviewer tries to get him back on track. >> Okay, so, before you start coding, can we kind of pause for a second and can you just go over your high level approach? >> So what I was thinking is have an array. >> Okay. >> Where I can start putting the values. And then, so get random would be returning a random element from the array. >> Okay. >> And so, yeah, I guess I need an array. Start. >> Okay, so. Okay, so you're allocating 10,000 element. But what happens if you have more than 10,000 elements in this array? >> Are they going to fit in memory? >> Yeah, you can assume they fit in memory, but you don't know how many elements you're going to have. >> So I can't just like reallocate? >> What we saw here is an interviewee missing a hint. Even after prompting we see the candidate continue to dive back into his draft code whether than stepping back at a high level. The interviewer's trying to get the candidate to step back and see that his present choice of data structure may not be the best, so they'll have time to explore other options before actually coding. This may seem like a minor mistake, just missing a hint, but if you watch the whole mock interview, you'll see that going down the wrong path because of a missed hint ultimately costs the candidate so much time the candidate never arrives at either a fully working solution, or a highly efficient solution. But if you're thinking right now that missing a hint isn't a job skill, that's not fair. Recognize that communication with your teammates is an essential job skill. The interviewer's hint and the candidate's response is partially there to test whether the candidate will be a good communicator with teammates and colleagues. Let me show you one more example. In the next video clip from the same bad interview, focus on the candidate's demeanor during this exchange. >> Okay, so what, do you know the run time of binary search? >> [SOUND] So it's like, I think it's, I don't know, like log? I mean it's better than linear, right? >> The interviewee actually knows the answer, but does his answer instill confidence in you? It may be that his technical knowledge is weak and he's just guessing, or it might be that his confidence is failing during the interview and he's not conveying his understanding very well. But either way, this is going to be seen as a weakness by the interviewer. Now certainly practicing on problems like these, which you'll do in week four along with brushing up on your technical skills can help with your confidence. But we'll also be discussing nontechnical strategies throughout the course which can help you with interviewing jitters and help you better present your understanding with confidence. As you've seen in these examples, soft skills can make or break an interview. That's why a central aim of this course is to help improve them so to help you succeed.