You're happily coding and hit a small technical snag. You focus on your search box and trawl the internet looking for answers. StackOverflow et al have some related things, but not exactly. You spend a few more hours using that knowledge, looking for new solutions. But alas, it's not working. Rinse, repeat: more net crawling.
At some point you hit a dead end. There's no more relevant information online. You've gone through the docs, the examples, the issue systems, and the Q&A sites, but nothing has helped.
You may even up the ante and start asking questions. And should the comments on StackOverflow not completely demotivate you, you clarify the question, cross-reference and continue to hope somebody can help.
Alas, no answers appear.
What do you do now?
Latest comments (40)
1 - Ask for help to other devs
2 - It's your turn to use the best of your skills to find a solution on your own and share it with the internet
The internet has never failed me!
That's where all the documentation is.
Speaking for myself, i try a different approach, if it doesnt work, then change everything to make it work, takes some time xD but at the end if it works then its great hehe :)
It's unlikely Knuth or SICP doesn't cover it or similar small snags.
If they fail me Cormen's Intro to Algorithms will have to suffice.
First: I always think somebody in the world has faced the same problem and I keep looking not longer than a day or two ( as said - dead end)
Decompose my problem into smaller parts as possible
Provide alternatives - I always have a few of them. The best one always kills me until I get a solution
Check Microsoft documentation if related to MS in my case
If no solution found yet, I use an old code 'goto: 1'
If internet fails, Pair programming or rubber duck debugging are good options.
1) Take a break from looking at the code. Oftentimes, taking a shower helps me solve problems.
2) Discuss it with a non-coder. Having to explain the problem to someone in layman's terms often helps me realize what is going wrong.
3) Break it down into sections to figure out exactly what is working and what isn't.
4) Start thinking outside the box.
If you're on a dead end, ask someone else. If no one can answer you, start to break into the source, if you still can't fix it then wait, someone else will fix it. If you're on a deadline, buy more time or offer some alternative.
You should always consider how big the problem is. If stackoverflow or google can't help you, maybe it's not that big of a problem and no one cares about it. Maybe there's a better solution without having to deal with that problem.
Sometimes all you need is a different perspective from another dev ☺
This is usually my process:
Try to isolate the problem. If possible, replicate the issue in a CodePen, jsbin, etc. The act of doing this can sometimes help you find a solution.
Search Github issues. This is actually my first stop instead of stack-overflow.
Read the source code, look at code comments, sometimes there are examples in the repo and maybe there is a wiki.
Google for blog posts, examples, tutorials. Be specific in your search. Pick the appropriate part of the stack trace instead of searching for the whole thing.
Explain the problem to a co-worker. So often I will answer my own question just by saying the problem out loud. Try pairing on it.
File a github issue and attach the example replicating the problem. Consider re-evaluating your mental model. When I'm new to something I find that this is often a challenge. I'm asking the wrong question or things aren't quite what I expect them to be.
I take a break. Thank I look at the problem again. If I still can't find the solution it I look for similar situations online. Then I ask around, coz some people may have a good idea or few tips that point me in the right direction :D If internet fails, ask the people around. There's usually someone smarter than you in the room. (If there's not, than change a room ;))
Computers are no magical boxes, when they fail us, it is for a reason. Possible reasons are:
You are defective. This is the most likely. In that case, get another set of (hopefully less defective) eyeballs or repair yourself. The other comments have enough suggestions on how to do it.
Your hardware is defective. This also happens quite often (at least to me). Can the issue be reproduced on other similar devices?
Your toolchain is defective. Depending on which toolchain you use, this may or may not be likely. How much can you reduce the project with the issue still present? Does the byte code do what you told it to do in high-level language?
Did I miss any?
Options:
git checkout -b f-it-i-dunno
these look pretty snarky, but this is what I do. :)
Strangely enough, don't get a rubber duck. Get a plushie toy duck, plonk it down somewhere away from your desk, label it "Level 0 Technical Support".
When you get something that completely frustrates you, get up, go to the duck, and tell it your problem.
If you somehow realize the answer to the problem, the duck worked. :)
Yeah...my dog and cat both have this role. The cat is better for the role, though, because she talks back less.
Sometimes taking a nap helps.