How do you battle against (self-inflicted) anxiety/paralysis when you are attempting to tackle a problem you are not sure has a solution? I have a very open mind to solving problems but it can make it difficult to come to conclusions. Anyone know what I'm talking about here? Have any advice?
[+] [-] gms7777|2 years ago|reply
Before spending far too much time on the first question, it’s worth it to spend a little bit of time on the second: what’s the quickest way to show that this can’t possibly work? Often this takes the form of looking for statements such as “If X worked, then Y would work too”, and then you go test Y. Just because Y holds, doesn’t mean X does… but if it doesn’t, you know X doesn’t.
It can feel like a bit of a diversion in the moment (“why am I wasting my time with Y, when I really care about X?”) but it has saved me months, possibly years of going down rabbit holes in my career. Likewise, it definitely helps with that anxiety you mention, because it means I at least have some motivation that my idea isn’t completely crazy.
[+] [-] bbertelsen|2 years ago|reply
[+] [-] bell-cot|2 years ago|reply
[+] [-] hinkley|2 years ago|reply
There comes a point where explaining why we can’t have something is more painful than just fixing it.
[+] [-] kqr|2 years ago|reply
[+] [-] muzani|2 years ago|reply
A bug can't be reproduced? Take a video of it working fine, and show the logical path for how the bug couldn't happen.
Can't build X in 3 months? What's the minimum for X? What's the missing component that takes 2 months? We can't have a partnership with A, but why wouldn't it be possible to have a partnership with A's competitor?
[+] [-] tbihl|2 years ago|reply
[+] [-] srcreigh|2 years ago|reply
[+] [-] cliff_badger|2 years ago|reply
If X, then Y.
To test X works you first you start on Y?
If Y succeeds then you don't know if X failed or not && if Y fails then you know that X failed too?
[+] [-] alberth|2 years ago|reply
[+] [-] ants_everywhere|2 years ago|reply
Anxiety about problems often leads to rumination, which causes more anxiety. It can be a bad feedback loop. In a rumination cycle, people generally don't seek out new information, so their mind spends time analyzing and re-analyzing the same incomplete information. Lots of tricks on this thread really come down to ways to trick yourself into systematically getting more information.
But I think it's also worth taking a step back and looking at the anxiety as a "problem" in itself that can be solved. And as a psychological problem it's amenable to all sorts of treatments like exercise, therapy, etc. So don't forget to take care of your brain!
That said, one of my personal favorite strategies when I find myself ruminating is to put the problem aside and do some curiosity-driven learning that's adjacent to the problem. It both gives me more information and makes my brain feel less antagonism toward the topic. I usually find this is enough to get unstuck.
[+] [-] phkahler|2 years ago|reply
I once got in that cycle, ruminating on possible interpretations of a situation. It can really bring you down. I noticed that each of my possible interpretations produced a different (strong) emotional response and concluded that was driving a "need to know". There is a thing in psychology called "intolerance of uncertainty" and for me the emotional uncertainty was driving the rumination.
So when ruminating, ask yourself "why is this so important to me?" If you can't answer that, get some distance from it before the rumination bring you down. In my case I knew that the answer to "why is this important to me?" was itself very important to understand so I kept at it until I had my answer to that.
[+] [-] m463|2 years ago|reply
https://en.wikipedia.org/wiki/Analysis_paralysis
[+] [-] bell-cot|2 years ago|reply
- Documentation: Write up the history of the problem, when it occurs, which users are affected, what previous work has been done toward solving the problem, etc.
- Reduction: Only look for limited solutions - proving a few of the "easy" cases for some difficult mathematical theorem. Patches or work-arounds that only reduce the impact of a computer program failing. Chemical synthesis of a less-tricky part of a complex organic molecule.
- Counter-example: A counter-example can be literal - the problem was to prove a mathematical theorem, and your counter-example proves that the theorem is wrong. Or, it can be a proof that the problem is impossibly difficult. The mathematical theorem you were told to prove is equivalent to the Axiom of Choice. The computer programming challenge is equivalent to P vs. NP. The physical theory/device you need to create would violate the laws of thermodynamics.
[+] [-] dmn322|2 years ago|reply
- Define a very clear target. Include quantities. If the goal is "speed up the api endpoint"... measure the current performance and define a target. The goal must become tangible and measurable in an objective way. Otherwise, it's just up to someone's opinion whether the goal was reached.
- Get stakeholder buy-in on that target. Also communicate your estimate of the probability of success.
[+] [-] soupflavor|2 years ago|reply
- “The difference between screwing around and science is writing it down.” ― Adam Savage (via Good Reads)
- "Divide and Conquer" ― Many
[+] [-] moffkalast|2 years ago|reply
Boss: "Hey how are you getting on? You said this'll take two weeks tops, we've got so many clients asking for this thing."
It's most problematic when something looks simple and easy at first glance but then ends up with corner cases upon corner cases and the damn thing refuses to work properly while you sink into a pit of despair amidst calls to deliver already.
[+] [-] kamphey|2 years ago|reply
Over the past few years when I have had problems that pop up or what really happens is that I go looking for problems, the most often solution has been to literally do nothing.
And having that as an active option when I first start looking at the problem and listing solutions ends up having far more options to me for the problem than if I was like "I MUST SOLVE THIS".
It could also mean "wait" is the best possible action I can take now. And instead of being perturbed by waiting it is an active decision to wait.
[+] [-] hypertele-Xii|2 years ago|reply
E.g. mulling for weeks over optimizing some code until you realize to measure it as-is and it isn't even slow!
Or maybe there's room in the underlying design to shift the weight off the problem, thus "solving" it laterally (by solving some other, easier, problem instead).
[+] [-] lloeki|2 years ago|reply
> Il est urgent d'attendre
which loosely translates to:
> waiting is of utmost urgency
The french quote can be traced to a translation of Asimov's Foundation, but I can't seem to find the original version :/
[+] [-] chriswarbo|2 years ago|reply
As an example: I worked on a PhD in applying machine learning to certain tasks in programming and mathematics. I ended up burning-out and had to quit.
When I started in 2014, most cutting-edge ML research was on image processing like convolutional neural networks. That's a very bad fit for the sorts of tree-structures and text sequences I wanted to use. The state of the art for the latter were RNNs which are notoriously slow (hard to parallelise), suffer exploding/vanishing gradients (needing e.g. LSTM), etc.
Transformers and LLMs solve the issues I was facing; so in hindsight it would have been better to wait a few years (I believe the Attention Is All You Need paper came out in 2017?)
[+] [-] 2devnull|2 years ago|reply
[+] [-] bakul|2 years ago|reply
Look at it from different angles to understand the problem better. Understand its properties better.
Look for its underlying causes. That is, may be you need to solve different problems!
Nibble at it. That is, solve sub problems so that you are left with a smaller (but possibly harder) problem.
Work on them subconsciously. That is, when you learn something new, let it sink in by walking away and doing something else.
Conversely, focus on the problem 100% when you are working it. If necessary, block out all distractions, including mental ones.
Look at it from a potential solution point of view. That is, if there is a solution, think of what properties it must have.
Never give up! Assuming the problem is worth solving.
Conversely, try to prove it is unsolvable so that you give up on it ASAP!
Keep notes and review them often. You may find clues in something you have already noted.
Try to explain the problem, what you have learned and your attempts to an interested person who can act as your sounding board. The process of explaining will force you to organize your thoughts and the other person can ask questions that will force you to think about cases you may not have considered. Without a sounding board and without writing down your observations you may end up going in circles.
[+] [-] hliyan|2 years ago|reply
I once explained this to an audience using a riddle: "How far can you walk into a forest?" That type of riddle has no method or algorithm for solution. The answer usually "comes to you" or doesn't. But knowing that riddles depend on a play on words or different meanings of words in different contexts, I suggested that one can analyse each word at a time: e.g. "you vs. someone else?", "walk vs. some other way of moving?", "into vs. out of?", "why specifically a forest?" etc. The answer, of course, comes from "into vs. out of" -- you can only walk into a forest till the mid point. After that you're walking out. Not an ideal example, but I always remember it when I'm faced with an intractable problem.
The method also helps stay motivated because there's a sense of progress: you're racking up a count of things that are definitely not the cause of the problem.
[+] [-] Reflecticon|2 years ago|reply
[+] [-] resiros|2 years ago|reply
- Determine what is the problem. Easier said than done. You most likely don't understand the problem. Finding the right abstractions to understand what is the problem is half the work. Focus on that a lot early on.
- You will not solve the problem by sitting for two hours and trying to think of a solution. Accept that. If it is a hard problem, it will take you months of thinking, writing prototypes/solutions, trying different angles. And then, at a random moment it will click, and the solution will feel obvious.
- Iterate a lot. Start with something small, solve it, and do it again and again. Accept that you will fail hundreds of times until finding the right solution. Try to make the process enjoyable. If it is a research project, break it into parts, where the solution of each small part provides value (a paper), so that you can enjoy some success that keep you working. If it is a startup, build products that provide value and are in the road to solving the big product.
- Some problems can be solved in a phd, some in a career, some in a generation. If you are targeting poverty, accept that you will spend your life on that with the hope of making small progress.
[+] [-] xorvoid|2 years ago|reply
The human brain is usually quite adapted to iterating on some existing thing vs summoning a novel solution from the void of unexistance. So, just find Some starting point.
Polya even talks about this in his famous book “How To Solve It”: “If you cannot solve the proposed problem”
[+] [-] abhayhegde|2 years ago|reply
Essentially, the advice boils down to:
1. use the defining features of the set up
2. give things/variables meaningful names
3. leverage symmetry
4. try describing one object in two different ways
5. draw a picture, flowchart to visually represent
6. ask a simpler version of the problem by removing some constraints or considering very specific cases
7. read a lot and think about problems a lot
[+] [-] gzer0|2 years ago|reply
Prompts that I use that significantly aid the process:
[+] [-] tazjin|2 years ago|reply
[+] [-] talkingtab|2 years ago|reply
There is another factor that causes problems for many people. They don't really give a <insert-obscentity-here> for what they are doing. Bad jobs, stupid ways of doing things, senseless tasks. Just say no. :-)
And finally, we often forget how physically competent we are. Humans can run and walk for hours and hours once they get use to it. Go walk 10 miles. Or better yet run. It helps.
[+] [-] ghoshbishakh|2 years ago|reply
In case of scientific research also, it depends on the situation. A PhD student's approach to a difficult problem with apparantly no solution would be and should be different from someone who does not have a deliverable. If you are a student, you need to deliver some result for a degree. So after some time it would be better to forget about a seemingly unsolvable problem and focus on a new problem which you can solve in perhaps a better way.
A senior researcher however in my opinion should persistently try to solve the harder problems. As I feel it is their job.
Coming back to different problems than scientific research, I can only think of one approach. Ask the question, how important is this problem to you and your life? If it is as important as the the well being of you, or your close ones, then you have no choice but to focus and fight to find a solution.
[+] [-] intellectronica|2 years ago|reply
Minimise work on problems with an obvious solution and identify working on the ones that are more mysterious as the most valuable work there is to do. Make a habit of extracting the most from the process, even if it didn't end up in a solution. For example: writing down (and sharing with others) what was learned.
Psychologically, you need enough repeated positive reinforcement, where you work on a problem, end up not solving it, extract the most learning, get recognition from yourself and from others that it was worth the effort. After enough itterations it starts feeling better.
[+] [-] politelemon|2 years ago|reply
[+] [-] hliyan|2 years ago|reply
[+] [-] fernandohur|2 years ago|reply
1. Try to solve the smallest (but similar) problem you can think of. You'll learn a lot along the way and might figure out if it is doable or not. As a reminder, just because a problem is solvable doesn't mean it's solvable at an acceptable level of cost/time/effort. Solving a similar, but smaller problem will help you estimate the feasibility of the larger problem.
2. If the problem is worth solving, it's probably affecting people who in turn have tried to solve it before and are using either approximations or imperfect solutions. Talk to them, understand what they've tried, what works and what doesn't. If the problem affects enough people It's very likely that a solution exists already, it just hasn't been generalised, productised, or automated yet.
[+] [-] fallous|2 years ago|reply
Evaluate the severity of the problem first. This usually falls into a bell-curve with the X axis starting at "not a problem" to "armageddon." Attempt to gauge the timeliness of the problem. This tends to fall between "already happened" to "years in the future."
Comparing the severity with the timeliness will give you a good idea of the urgency of the situation, which is then compared to current priorities.
Gather the information you can given the urgency constraints that can give you the best understanding of the problem and accept that this information may necessarily be incomplete.
Recognize that many times you don't have to solve a high-urgency problem but can instead pursue a partial course of action that increases the timeliness, which reduces the urgency as well as provides you more time to gather information to reduce the unknowns.
When deciding a course of action with incomplete information you need to commit to that decision strongly, but always be looking for evidence that the decision is incorrect. Until you have such evidence, stay with your decision. If you find such evidence, re-evaluate since you have the ability to make a more informed decision now. This is generally referred to as "strong opinions, weakly held."
One thing I very much try to do when executing a plan that is based on incomplete information is to have an exit strategy. Try to make choices that give you the ability to roll back changes and restore to the previous state if things go wrong. This will give you more confidence in committing to action.
Always remember that discovering a choice you've made is incorrect is valuable because it increases your knowledge and often leads to greater understanding in an environment in which you lack sufficient information. Don't fear learning this way, it's too valuable to avoid.
[+] [-] didgetmaster|2 years ago|reply
Today's mantra of 'fail fast' discourages the kind of steady work required to solve some problems. If a solution can't be found in a very short time, they tell you to give up. This can be beneficial in some cases, but some problems are just not easily solved.
How you deal with this, really is dependent on what kind of person you are. If you are patient and willing to stick with something over a long time, then you could create something truly unique. If you get too anxious when a quick solution eludes you, maybe go with the fail fast method.
[+] [-] evanwise|2 years ago|reply
[+] [-] dumpHero2|2 years ago|reply
[+] [-] Vanclief|2 years ago|reply
If I solve that problem, that normally allows me to build from there, otherwise I may have to re-frame the problem. But by just starting, I get more information and ideas on how to tackle it.
[+] [-] blisterpeanuts|2 years ago|reply
When faced with what sounds like an insurmountable,"where the heck do I even begin?" type of challenge, I like to slice it up and get the obvious bits working, just to build confidence & domain knowledge, while my brain autonomously digests the main problem.
[+] [-] hinkley|2 years ago|reply
When you see a seemingly impossible question in an interview. You know there’s a trick. You’ve been handed a riddle to be solved.
When my boss hands me a seemingly impossible problem, it might actually be impossible. At best it’s a mystery, at worst an enigma, or a paradox. It’s a very different skill set to go searching for a solution that is not obvious and not found in the literature (because nobody wrote it down or they used jargon nobody else knows).
I have a coworker who says things like, “we can do anything in software” if he says it again I’m getting him a biography of Claude Shannon, because apparently he did not learn about Information Theory in school.
[+] [-] geocrasher|2 years ago|reply
[+] [-] ly3xqhl8g9|2 years ago|reply
[+] [-] asplake|2 years ago|reply
One thing I would add is the perspectives and ideally the participation of other people. Absolutely essential if the challenge has any kind of social dimension.