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.

A magical digital image. A purple sky with golden stars and a little purple cottage. Text reads: Problem solving - Like the Seniors do it

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

Chat GPT's main thoughts on the solution - text reads:  My Takeaway from This The main difference lies in the approach to the problem. Junior engineers often focus on fixing the immediate issue, whereas senior engineers have a broader view—they aim to design for the outcome. This means they not only solve the problem at hand but also consider the impact of their solution on the rest of the system and whether it truly meets the larger goal.  The key takeaway for you: start by thinking about the goal first, then design your solution to fit that outcome, rather than getting caught up in the individual problems you encounter along the way.

 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

Popular posts from this blog

Hello World

Yosemite

Two Lines of Thought, Makes Me Wonder What I'm Missing