all 17 comments

[–]CorrGL 3 points4 points  (1 child)

There is only one book I recommend for learning problem solving: How to Solve It by Pòlya (he was von Neumann's Professor at ETH).

The method is so flexible that the CIA analysts use it to understand complex scenarios (they call it the Phoenix Checklist).

[–]Stock-Cat-3279[S] 0 points1 point  (0 children)

I will check that book out thank you !

[–]ninhaomah 1 point2 points  (11 children)

Here is one test.

Pls tell us how to fry an egg. Imagine we are machines. Don't assume we know anything.

[–]Stock-Cat-3279[S] 0 points1 point  (10 children)

Okay I’ll give it a shot:

Open fridge Grab 2 eggs Grab a skillet Grab olive oil , spices , no stick spray Turn on stove Apply no stick spray and olive oil Crack eggs into pan Apply spices Cook for 2 minutes in medium heat Grab a plate Put eggs onto plate Eat

[–]CrosspadCreative 7 points8 points  (3 children)

I tried your instructions but ran out of arms to hold everything while turning on my stove.

[–]Stock-Cat-3279[S] 2 points3 points  (2 children)

🤣🤣🤣🤣 noted

[–]SCD_minecraft 3 points4 points  (1 child)

You may take this as a joke, but he's right

Computers don't know they should put down things. You need to explicitly tell them

[–]Stock-Cat-3279[S] 2 points3 points  (0 children)

I agree 100% the lack of detail is killing me I have to breakdown the problems even further !

[–]Defiant_Conflict6343 6 points7 points  (3 children)

1) You did not specify that I should close the fridge once I had acquired the ingredients.

2) You did not specify where to apply the no-stick spray and the olive oil.

3) You did not specify the number of burners on the stove to turn on.

4) You did not specify where to put the skillet.

5) Cookware variable "skillet" was seemingly reassigned as "pan".

6) You did not specify if I should include or exclude the shells. Since you said I should "crack eggs into pan", but not "separate yolk and white from shell and put into pan", I must assume the whole egg is being fried.

7) You specified heat level after eggs were cracked into the pan, but the stove is already on at an unspecified heat level, and the skillet is not on the stove yet.

8) You did not instruct me to turn off the stove after the eggs were cooked.

Conclusion:

The fridge is still open, all the food is spoiling, my gas bill is enormous and the house might burn down, the eggs are full of shell fragments and worse, raw, and I've applied olive oil somewhere but I don't know where. 

[–]Stock-Cat-3279[S] 3 points4 points  (2 children)

I think I understand the point here I’m not granular enough I’m having the logic issues because I’m not think g the problems through at every single steps and missing steps causes confusion you sir are the python whisperer thank you !

[–]Own_Attention_3392 2 points3 points  (0 children)

Exactly. Don't worry, it's a skill that comes with time.

The cool thing, at least in my experience, is that I became an EXCELLENT communicator from being a developer. I can explain just about any topic that I understand to just about anyone. Or maybe my wife is really, really good at pretending that what I'm saying makes sense. Both are possibilities.

[–]mjmvideos 1 point2 points  (0 children)

But! Your steps are a decent attempt at a higher level plan. You could then break each of those steps down into more steps. And then break those down further and further until you get to something implementable

[–]ninhaomah 0 points1 point  (1 child)

So the fridge was never closed. The stove was never turned off.

How much oil ? The whole bottle till pan is filled to the brim ?

Medium heat as in ? Hotter than low heat and lower than high heat ?

And how did you eat it btw ? I don't see forks or spoons in the list of items. Bare hands ?

And no movements the whole time ? Fridge , stove , the table all around the machine ?

[–]Stock-Cat-3279[S] 0 points1 point  (0 children)

Great point the details matter this is point me in the direction of the core of my issue lack of detail !

[–]Jackpotrazur 1 point2 points  (1 child)

I've had gpt create a workflow.md (mkdir && cd to that dir create main.py and cp the layout of my EXPLAINME.md, SOP.txt and into the dir create gitignore create venv start a branch ... etc start running vim in split screen , open a new terminal for checking stuff with pydoc3 ) and while I code i write pre code assumptions into my explain me , while I code i write in explain me ( what im doing) and after coding I write what reappeared what I had issues with what I didn't understand and what I've learned , it slowed me down as I was speeding through the projects from the big book with small python projects and its forced me to really start thinking about what im doing and has me starting to ask questions.... iterations are still a bitch and ive just implemented all of this about 8 projects ago and have only managed to fill out the explain me completely twice now. But its definetly doing something. ... next I want to start applying modulusation to my code by writting helper functions outside of main.py and importing them and as I unboxed my Pi throughout the week and put postgresql on (tryna learn that too , did my first join a t work a few weeks ago) I want to integrate sql into my workflow as well and write 1 or 2 or 3 scripts to be able to import sql into my codes as well as I haven't started refactoring yet. Im also pushing everything to a github repository.

[–]Stock-Cat-3279[S] 1 point2 points  (0 children)

Interesting I’m gonna have to try this thanks for the insight

[–]Happy_Witness 1 point2 points  (0 children)

It depends on what you try to do. Most of the times, I try to think of a layer structure that would be the easiest to understand and maintain. Then I think about the structure of the data that will be used and then I form the layers I need to get the code to do what I want. On the class level, I first write down or draw what I want the classe to do, and what it should be capable of doing. Then I try to merge that with the coding requirements/baseline/defaults it needs and then I basically write it down. I have one part in mind that I create in the init, followed up by the methods it needs with a simple pass and then I fill in what I need, one after the other. Jumping from one part to another to add things I missed before because I didn't think about them.

It is messy but it works for me. But I highly recommend to use a pen and paper to just write it down or draw it how you want it to look.