Do Developers REALLY Need to Know Framework Method Implementations?

Do Developers REALLY Need to Know Framework Method Implementations?

• 574 views
vlogvloggervloggingmercedesmercedes AMGMercedes AMG GTAMG GTbig techsoftware engineeringsoftware engineercar vlogvlogssoftware developmentsoftware engineersmicrosoftprogrammingtips for developerscareer in techfaangwork vlogdevleaderdev leadernick cosentinoengineering managerleadershipmsftsoftware developercode commutecodecommutecommuteinterviewinterviewingframeworkjavascript frameworksreact nativevue jsnext jsangular

A viewer wrote in to ask if they need to be able to know and understand the implementation details of framework methods. There are a few different scenarios and some context to think through to answer this though, so... let's dive into it!

📄 Auto-Generated Transcript

Transcript is auto-generated and may contain errors.

Hey folks, I am headed to the office on Wednesday. Um, I'm at Whole Foods. So, we finished up our uh big project, the thing that's been causing me all the burnout in the universe. And uh I actually I filmed a video on the drive home after it. And I haven't posted it. I didn't delete it. I haven't posted it. I'm like not it's pretty rare like on code commute I like basically just film and post whatever but I I was kind of like I don't know if I want to post this. It might be something I just post like way later after I've had some time to sit on it. Um but things went really well. Uh so like and it's done. Uh there's going to be some lingering like work that kind of comes after just because um but the project itself we've been able to successfully complete.

So that's really cool. So I was just at Whole Foods. I went to Crumble Cookie to get cookies to bring in uh and then Whole Foods for some gluten-free vegan options cuz I have no idea what I'm doing for that. Anyway, I got uh some messages from Instagram I'm going to go through. So, this video and the next one if you watch them in the order they're uploaded will be a little bit shorter depending on how long my drive is. Um, but I'm going to like cut it halfway through the drive. So, just a friendly reminder for folks that uh if you're new to the channel, if you want questions answered, leave them below in the comments. Anything about software engineering or career development, happy to try and answer. Or like this person did, you can send me a message on social media. Just look for dev leader.

Um, so this person messaged me on Instagram. Uh you can message me at Nick Cosantino on LinkedIn and uh when you message me then I can keep you anonymous. So if you want to write more details and stuff like that then that works but if you write a comment it's it's public everyone can see it. So don't forget that. Um okay so the topic the first question was around frameworks and I don't have the full question pulled up in front of me to read through because I'm driving a vehicle but um the idea was around like what is especially for interviewing like what's the expectation around um like understanding fundamentals versus using frameworks and stuff like that. So, if you can write code and you're calling like APIs on like built-in framework methods and stuff, do you are you expected to know all of the inner workings for how how these things operate?

Right? And it's um it's a bit of a loaded question, but I think it's a good question. So, um, I say it's loaded because I think there's a handful of different ways that one could try to answer this. And depending on the situation, you could have like, you know, complete opposite ends of the spectrum for answering this. So, in some situations, you might say, "Hey, not at all." And in other situations, you might say, "Yeah, you probably should really be able to explain what's going on under the hood." Um, so I wanted to try and kind of walk through through that like why can it be a bit more of a spectrum terms of answers here. Um, if the let's start by saying like if you're in an interview and the framing of the question is is around data structures and algorithms and you're talking about API methods and stuff for a framework.

I think this is setting you up to be able to answer the details, right? So, for example, um I'm just going to make up something off the top of my head, so this might be a little rough, but if I'm a .NET and C# developer, so um if you wanted to have a sorting algorithm, okay, so you could do a sort that is um like you take a collection or an innumerable, so just a sequence of items. Um, and you could go write a sorting algorithm. If you have a an actual collection, then you have a count associated with it. If you don't, then you can only enumerate through. But you could go write a sorting algorithm. There's lots of them. And based on what you have, you can go implement that. And what that would likely do, and there's different variations of this, but most times people are implementing sort of like a a new collection that will be sorted.

Okay? So you will have um not in place sorting and that means that you start with one collection it's not sorted you end up with a second collection that is sorted which means you have two collections you've doubled the amount of memory that you need at least to be able to hold that um to hold those items. So the uh actually that's not quite true. Um I take that back. But you have you have two collections of things and depending on your implementation of those collections that will that will change your memory constraints. Point is you have a second um you have a second collection. Now if you use a list in C and it has a dot sort on it and I am pretty sure that what you get back is a void which means it sorted the list in place.

Now, I actually don't know under the hood if it does an in place sort or if it just does a sort with a new collection and then like sort of reassigns the internals to it so you end up with one. I actually don't know. Um, but if if I were prepping for an interview and someone were to ask me that, I would want to make sure that I understand like, hey, an in place, sorry, a dots sort method on a list type. I do know that that's not giving me back a new collection, but under the hood, I actually don't know what it's doing. Um, so I would probably want to go like look into that kind of stuff.

Uh but the the reality is like I think for a lot of a lot of questions if you're like writing code in a coding interview and like if they're giving you like a lead code style problem the reality is that they're they don't want you to be like sitting there just like saying oh well I'm going to pick Python as my language and I'm going to import this module and then just call this one method and like therefore it's solved. Like you can't do that because it's just defeating the whole point of the problem, right? It's um yes, that might be a great answer in actual production code, but they're trying to get you to explain like how things work. So, it's not going to help answer the question.

Um now you could start off by saying hey like if I know that there is a module that does this and it has a method and the way that that method looks is like this and so you understand the details of that method that's how you know how to answer that question. Uh but in those types of questions like you like basically need to go implement from scratch generally. Um, now it gets a little bit gray because depending on what the coding question is, like I would say most lead code style questions using anything or mostly anything that's built in is like kind of like it's not even cheating. They'll just be like most interviews will be like, "Well, no, you can't just can't just do that.

Like we're trying to get you to build that." Um but you might be building depending on the coding question maybe something more complicated and you know you are talking about using some method call and you're like yeah this is built into the framework I'm just going to use it because that's not the focal point of what the question is but I think it's always a good opportunity like when you are doing that to call it out like that's my recommendation in the interview right hey like there's a library method uh I'm considering using for you might have them say like actually no I don't think that's okay and that's maybe a bit of a hint that they want you to go explain that which is great because if you know it and you can explain it go do that. Uh if you don't maybe not such a great great spot.

Uh I am sitting in the most traffic I just realized so I got on the highway at a different point and I'm not in the fast lane yet and I feel like that's never going to happen. We got to slowly make our way over. This is brutal. Um, yeah. And I I'm just trying to think there's probably especially if you're getting into more like system design stuff. So there's interview questions where instead of mostly instead of writing code, you'll be describing components of the system. However, what sometimes happens is someone will say, "Great, you have a lot of these pieces. That's really cool. Let's pick a couple of them and let let's go talk a little bit about what that could look like." So, it's not like you're going to code every single line of it, but let's talk about, you know, um that hashing

function that you might use or let's go talk about how um you know, you were saying that you have database records and you wanted to do this type of querying, but you're going to do some other type of filtering in memory. Let's talk about what that looks like. Right? So depending on those types of questions, you might be in a situation where you're just like you're using framework methods because they exist. And again, that's not really the point or the focus of the question. So, um I think my overall recommendation is just like try not to I I wouldn't try to go memorize like every framework method and like know what it does under the hood. Um but I would know about tradeoffs I think is what I would recommend as much as possible. Especially if you have things that like in big frameworks there might be several ways to do things like they accomplish generally the same goal but like why are there different ways?

In my opinion that's the most beneficial thing to be focusing on. I'm trying to think of a a good example like um so in C if you are uh concatenating strings if that word sounds weird it's just like when you append strings together it's called concatenation um if you have a lot of strings and you are concatenating them every time if it's not just a constant and done ahead of time um if you're doing that at runtime what it's doing is actually making copies of those things. So, you might have a loop. Oh, it's the police. Um, you might have a loop and you're appending strings and what's actually happening is that it looks really simple to you, but you're like, I'm you don't realize like every time it's going through it's technically doing like a copy and it's basically not very memory friendly. So there are other things you can do and there's a lot more advancement in C for this kind of stuff over the past few years with like spans.

Uh but there's something called a string builder and a string builder is generally not always but generally a better solution for this because it is designed such that you can tell it like here's all of the strings I want to go kind of a pen together and then at the end it doesn't. So you don't have you don't incur this cost of like every time you're going through this loop of like appending things and stuff. So it can be significantly more effective, but that's two different ways to do a similar thing. You're building up a string. Oh, there was an accident and everyone has to watch. Oh, I'm on a different highway than normal. I didn't even pay attention. I'm like, where am I? like this is I was in the uh that's so funny. I was because I was stuck in traffic in the far lane.

I wasn't paying attention to like what's around me like so it's not even like the fast lane beside me. It's the carpool lane and it's technically different. So I was about to merge into it and I'm like wait a second it doesn't have the two double solid lines. Like what? And then I realized I'm not where I think I am. It's very funny. Um, oops. So, that's I think probably maybe I'll summarize that and I'll switch over to the other video. Um, but in general, I would say no, like you don't need to go memorizing everything. You don't need to know all the internals of every method. I would say the more senior you are, if you're claiming I know like uh on a scale of 1 to 10, 10 being like ultimate grandmaster, level 99 wizard in some language or framework, if you're claiming that you're like at a 10, like you better be able to explain absolutely everything.

And the reality is basically most people are not that. Most people will never be like that. So don't say that. Um, and that's okay, right? Like you can still be inc like I wouldn't even say that for myself about C and I've been using it for whatever like 13 years now daily. Like I still wouldn't say I'm a 10 out of 10 on that. Like I'm probably up there, but I've seen like even at Microsoft I reached out to someone to ask for help on something that was not workrelated and they sent me some code and I was like holy like like I didn't even know this kind of stuff like existed and it was like not even that complicated, but they just had there was like a whole other tier of like power they had. I was like, "Oh my god." So yeah, especially if you're more junior, don't think it's expected, but I would kind of take the framing of the question to try and direct that a little bit.

If you're doing like a lead code style thing, you probably expected to know um the algorithms and data structures. Um sorry, my boss just messaged me. Um try not to read messages, but my map is there, so I was trying to check. But uh yeah, if you're doing like lead code style things, you're going to want to explain the details. So even if you're like, "Hey, I know there's a framework method that does this." like no. Uh and then if you're more zoomed out in the question and um I would say bring it up if you're like hey there's a framework method or something I I can use here. Uh interviewer should try and direct you otherwise if they're like no I want you to explain it. So hope that helps overall. I think it's a really great question and um it's tricky right because context is everything and it could change across the scenario.

So thanks for submitting that. I'll jump into the next video. And a friendly reminder, if you want questions answered, leave them below in the comments or message Dev Leader on social media. I'll see you next time.

Frequently Asked Questions

These Q&A summaries are AI-generated from the video transcript and may not reflect my exact wording. Watch the video for the full context.

Do developers need to know the inner workings of framework methods for coding interviews?
In coding interviews, especially those focused on data structures and algorithms, I believe you should be prepared to explain how things work under the hood rather than just calling built-in framework methods. Interviewers typically want you to implement solutions from scratch to demonstrate your understanding, so relying solely on framework methods might not be sufficient.
Should I memorize every framework method and its internal implementation to be a good developer?
No, I don't recommend memorizing every framework method or knowing all their internals. Instead, I focus on understanding the tradeoffs and reasons why different methods or approaches exist within a framework. This knowledge helps me make better decisions without needing to know every detail by heart.
How does the expectation to know framework internals change with seniority?
The more senior you are, the more you are expected to understand and explain the internals of the frameworks you use. However, even at a senior level, I don't claim to know everything perfectly. Most people, including myself, won't be experts on every detail, and that's okay. It's important to be honest about your knowledge level and focus on continuous learning.