As they don't yet know what care I drive... (Problem Solving, Part 1)
As they don't yet know what care I drive... (Problem Solving, Part 1)
Okay so technically I am off today but I have spent the whole morning off resting and relaxing and I have been watching some Sherlock Holmes and my brain has been spiked... so here are some ideas.
I've been meaning to do this for ages... I've been wanting to write this post. This post is about problem solving.
Problem Solving
Okay so apparently I have been too junior with my problem solving.
I need to think more like a Senior... or like an Engineer II... or like a higher-level Engineer I (an Engineer I is a high-junior/low-mid, btw). My main colleague gave me a really amazing clear technical lesson on how to solve problems better. It was so good I decided to write a blog post on it. In fact, two.
I decided one wouldn't be enough.
So here we go.
How doe a Senior solve a problem? Well, what I was told is this:
How a Senior solves problems
"When I change code now I think about what I want the outcome to be.
And I write the code to meet that outcome." This is what my amazing, phenomenal, and superhuman Senior said to me.
"I don't go - how do I solve the problem." I don't know if that makes sense.
I get told - please take a POST request to do this instead of a GET request. I get told - this JSON should do roughly ZYX instead of ABC. And I go about thinking about that. But I get bogged down in the minutiae.
It's a very junior thing to do. And very autistic. I'm trying to think of a good example.
I get so hung up on why doesn't this exact line of code work. I get so hung up on why are these two lines of code erroring? Why doesn't this function return exactly what I want it to do.
Nope, I don't get it please, sorry
I am going to need to ask my Senior about this one again please - sorry. Because I don't get it. I don't get it. I don't understand it please. Sorry. What is the difference?
What is the actual difference please? Sorry.
What is the difference between "writing code to meet the outcome" and "trying to solve the problem" as in just the technical problem, the coding problem? So for example - we want to take in a list of identifiers, use identifiers to find accounts and then contact all of those accounts.
What is the difference between writing the code to meet the outcome and only just solving the problem like a junior? Gonna ask Chat GPT for some hints.
Error-fix Mindset - Junior
Oh wow there is so much to unpack here.
Wow. Chat GPT has so much to say on this and it is amazing. WOW!
Okay so here goes
"A junior may approach the problem by trying to "solve" the issue with the least amount of information and may get caught in a loop of error-fixing without considering whether the solutions aligns with the final desired outcome."
OMG YES I GET THIS! I DO THIS TOO. OMG! So this is what we have been saying.
It's not about fixing error after error. It's about thinking about: what is the desired outcome. And am I doing the things to do this - to achieve this desired outcome. This is where I have been going wrong! Alan Turing would be proud OMG.
Big Picture Focus - Senior
A Senior engineer steps back and focuses on the overall outcome or goal. They look at where the end result should be.
The end result. The end result. The end result. They look at where the end result should be.
So for example - they don't look at "why isn't this line of code working." They don't look at "why is this line of code working - and this one not." They look at: what is the big picture here? And what am I trying to achieve? They think about: what is the final desired outcome here and is my coding meeting this? What are the inputs and outputs here that work to meet an actual goal? What is my actual code supposed to be doing here in terms of the actual product, in terms of the actual app?
Clarifying The Purpose - Senior
"Before diving into the code - a Senior engineer would ask 'What is the desired outcome here?'. They think about what needs to happen, rather than just solving isolated problems.
They think about the broader context - they think about what is the broader problem we are trying to solve, the wider one. But I still don't get it and can't do it myself. I still can't quite see the difference.
As soon as I have some code to practice with though I would like to - thanks.
Understanding The Context - Senior
The senior engineer thinks about "how the solution fits within the larger codebase and the project's objectives.
Chat GPT's main thoughts
Sorry too tired to do anymore - am still ill - but there will be a part two.
Thank you
Oh Alice, dear where have you been
Oh Alice dear, where have you been
So near so far so in between
What have you heard, what have you seen
Alice, Alice, Oh, Alice
Comments
Post a Comment