Check out a free preview of the full JavaScript: The Hard Parts of Object Oriented JavaScript course:
The "Course Introduction" Lesson is part of the full, JavaScript: The Hard Parts of Object Oriented JavaScript course featured in this preview video. Here's what you'd learn in this lesson:

Will Sentance introduces the ideology of the course, what makes a great software engineer, Codesmith, and how to get the most out of what is taught.

Get Unlimited Access Now

Transcript from the "Course Introduction" Lesson

[00:00:00]
>> Will Sentance: It is lovely to be here for JavaScript, the hard parts, Object Oriented Programming. We are gonna be here all day. What more could you ask? We're gonna be here all day for some wonderful material. There's me with people looking, some looking excited, some looking not so excited.

[00:00:23] And there you go, doing stuff at Frontend Masters that I love doing so much. As I said already, thank you so much for having me back. Today, this, I run Codesmith. Codesmith is in the category I guess of coding boot camps. Think of it more though as, we sort of call it a residency to try and delineate between coding boot camps.

[00:00:47] We have a bunch of folk who come to Codesmith, who've done a coding boot camp. I love coding boot camps, they're wonderful. Typically, Codesmith tries to take folk who are a bit further along. And kind of accelerate them through to middle senior roles. This is the wonderful team that does it with me.

[00:01:04] That's Phil who heads up in New York. Snow, who heads up LA. Samantha, there, who's a lead engineer. A wonderful team to be on. I'm very, very, lucky to work with. I just want to say about Codesmith. I started it three years ago, grads work at all these fantastic companies.

[00:01:24] Actually, in the last two weeks, three Google offers which I was very proud of those folk. First offer to Riot Games, which is surprising, Codesmith is based in Los Angeles, and New York City. And there had never been a grad who got through the Riot Games interview process.

[00:01:42] And now, thrilled that Pauline, she will now be a software engineer at Riot Games, very proud of her, as well. Yep, I mean, actually, Codesmith graduate salaries range from 95, [SOUND] I've seen offers below 95, maybe 80 sometimes. So there you go. That's the pitch, [LAUGH] all the way up to a 190.

[00:02:00] Good, there's the pitch. What we look for in Codesmith candidates, I say this only, because for everybody here, this is what makes a great software engineer. It isn't maybe what you think of as being collect and accumulate technical knowledge. That is not what makes a great software engineer.

[00:02:16] The wonderful thing about software engineering, people. The bless thing about software engineering, is that the knowledge is always evolving and changing. The only measure an engineer turns out to be how able, how capable are you at taking on that new knowledge? How capable are you at hitting a block in your understanding of something new, and then pushing through it.

[00:02:42] That is what we call Analytical Problem Solving. The ability when you hit a block, as you try and do a new thing that you haven't do before, to come out the other side successfully. That is it, that's the number one most important thing. That makes for a hard pedagogy.

[00:02:59] That means the pedagogy at Codesmith has to essentially be not teach you tons of knowledge, but put you through tons of blocks. But we gotta give you first principles, and this is what I like to do at Frontend Masters. Give you the first principles, understanding of JavaScript, such that you autonomously can pursue those blocks.

[00:03:23]
>> Will Sentance: Part of that, both to give you clarity of your own mind. But, also to ensure you become an enabler of other team members, technical communication. We're gonna spend the whole of, if you like diagramming online audience. If that was a thing you liked in hard parts, prepare to be thrilled.

[00:03:41] If you didn't like that aspect of hard parts, prepare for more diagramming, a lot. Look, this beautiful whiteboard that we're gonna cover, we're gonna cover with diagrams. To me, that is technical communication. But I'm also gonna be calling on everybody here, again, and again, and again, to verbalize the code as we go.

[00:04:06] That turns out to be the most effective way to A, improve your technical communication. And just to be clear what technical communication is. The ability for somebody else to implement your code, your solution to a problem, without ever seeing your code. Just from your ability to verbalize it.

[00:04:26] That turns out to be an extraordinary measure. Traditionally, when you add an engineer to a team, they do not add full engineer capacity to productivity. In fact, sometimes them may even slow the team down. Because, now you've got to get your mental model of the code base, and make it epistemically accessible to somebody else.

[00:04:46] That can slow the team down.
>> Will Sentance: Are people noting down that word? I recently learned that word. That can slow the team down. I like to try it out. Please do not look it up. It almost certainly does not mean what I think it means. That can slow the team down.

[00:05:05] Versus, if you are able to perfectly communicate your understanding of the code base to that other person. And now you can become enhancers of each other. But, also technical communication clears up your own approach to problem solving. It makes you have a cleaner way of thinking about it.

[00:05:24] So these two things, we look for them in candidates for Codesmith as it happens. But, of course, they're the very things that companies dream of in their engineers. So all of you, look to today not just as being developing an under the hood understanding of an aspect of JavaScript.

[00:05:39] But, also, probably, more importantly, an opportunity to focus on technical communication, all right.
>> Will Sentance: Even here, supporting each other, I know why it say it, cuz, I mean, it's in Frontend Masters. Frontend Masters is run by deeply empathetic people, and I think we would all be playing that out here.

[00:05:57] That means, here, being that a supporter, who's looking to see the growth of others. You folk are gonna be pair programming. We're gonna have some time to pair program together. That will all be about, how can I grow the person to my left?