DEV Community

What do you do when StackOverflow and the internet fails you?

edA‑qa mort‑ora‑y on February 06, 2018

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 ...
Collapse
 
jfrankcarr profile image
Frank Carr

1) First of all, blame Microsoft (works even if you're using a non-Microsoft stack)

2) Break the problem down into small, testable, parts. This can be helpful in revealing bugs in problematic third party libraries, especially those where you don't have the source code. If you use test-driven development, it makes this easier.

3) Back up and look at the design as a whole. Perhaps there's a "you can't get there from here" design issue more than a coding issue.

4) Find other developers to brainstorm with. This might be difficult if you're working solo but sometimes even bouncing ideas off a non-programmer might help you discover some insight.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

And when that fails as well?

My step 1 typically includes Apple and Google lately, not Microsoft.

Collapse
 
jfrankcarr profile image
Frank Carr

Blaming Microsoft is handy for when your web app works great in Chrome but fails in IE and Edge. I guess if you're doing apps for devices, blaming Apple and Google is just as good though.

However, in 30 years, I haven't found a coding problem that couldn't be solved by working through it much like I described. It was more difficult in the early, pre-Internet, 90's when I had to fly out to customer sites to figure out tricky software-hardware interface issues.

Thread Thread
 
mortoray profile image
edA‑qa mort‑ora‑y

I vaguely recall pre-web coding... they weren't pleasant. Lots of focus, sure, but few avenues for help.

Today, like many time in my experience, I've often resorted to good workarounds, acceptable workarounds, or at times abandoning features due to problems. It isn't pleasant, but I think it's necessary sometimes.

Collapse
 
dmfay profile image
Dian Fay

That's when I start reading source code, assuming it's available. Next recourse is to open an issue on their tracker and hope someone gets around to it.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I wish public issue trackers all had bounties on them. There's been so many times I'd pay for support if I knew I'd actually get an answer.

Collapse
 
ben profile image
Ben Halpern

Never underestimate the value of stepping away from the problem and coming back in a while. All the answers in this thread so far are on point. Since we're on dev.to, I'll add that this is the type of case we are trying to tackle with this site/community. @codemouse92 and others have requested chat-oriented stuff in the past and we're definitely listening but trying not to spread ourselves too.

I had a good phone call the other day with my brother @mikeydorje , who has become a self-taught developer and we had a really productive chat about where to go on a project to work through the current issues. I've had a few similarly productive times in the past that lead to great aha moments and solutions. It's certainly easier to cover a lot of ground with a junior-but-not-too-junior developer than folks with more specific advanced needs but we're really motivated to keep working on the little things which can result in a lot more aha moments.

Anyway, my 2 cents about what goes through my head when this type of thing comes up.

P.S. I happened to see that @dmfay was the Stack Overflow answerer on a question that helped me out. Fun to see familiar profile pics across the web. 🙂

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y • Edited

I have an idea: a frustration button. I'll sell a big red USB connected button.

Press it once/lightly and all your code is marked read-only for 30 minutes.

Press it twice, or hard, and your github privileges are removed for the day, and your browser blocks all coding URLS.

Smash the button and your project is completely locked until you manage to get a first-page posting on /r/earthporn.

Collapse
 
ben profile image
Ben Halpern

Collapse
 
alephnaught2tog profile image
Max Cerrina

I help out a lot in my classes and am helping in an intro class this semester. I think a few of the students thought I was kidding, but I totally told them that when I get to a Certain Level of frustrated, I zip up the whole thing, email it to a friend and save a copy on Google Drive or wherever. (Also basic versioning stuff.)

Then no matter how pissed or frustrated I get, if I get to the Very Dangerous Spot of "Screw this I'm deleting all of it" (after which, inevitably, ten minutes later you remember the One Thing that would have fixed it) there are copies you literally could not destroy.

...I also got so frustrated at an assignment last semester that I literally wrote a script locking me out of the cloud-based editor we were using, and ended up having so much fun locking myself out that it cured my bad mood until I actually got to office hours to ask the teacher the next day.

Thread Thread
 
hrmny profile image
Leah

Well, I'm glad that I'm not the type of person who deletes all of my work when I get mad, I just abandon it

Collapse
 
mikeydorje profile image
Mikey Dorje • Edited

Great phone call @ben . I'll be posting some thoughts, questions, and whatnot about what I'm working on when I have some free time.

Collapse
 
codemouse92 profile image
Jason C. McDonald

Turn to IRC.

If all else fails, weep openly for a while, and then start hacking the problem.

Collapse
 
alephnaught2tog profile image
Max Cerrina

I legit think the positive effects of intentionally (and safely!) losing your head about something are underrated. Sometimes the best thing you can do is be super honest about how massively frustrated you are, freak out and cry some, grab more coffee, and dive back in.

Collapse
 
codemouse92 profile image
Jason C. McDonald

Absolutely! I believe we learn more from those moments than from any other circumstance in coding....albeit, I still don't enjoy them by any measure. ;-)

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

Compiler-Warning 0000
: Code flip-flop detected
: You appear to be keep commenting in and out the same code? Have you tried weeping instead?

Collapse
 
alephnaught2tog profile image
Max Cerrina

I'm not sure I've ever wanted a "share this comment via Twitter" option more!

Collapse
 
alephnaught2tog profile image
Max Cerrina

Oh man, the harshest feature....

Collapse
 
jmsunseri profile image
Justin Sunseri

I can't tell you how many times this worked for me

Collapse
 
alephnaught2tog profile image
Max Cerrina

My first thought was roll for initiative.

My second thought was: take a break, get some sunshine if I can, get a new thing of coffee, work on an unrelated problem for a little if possible. Come back to the problem with a new eye, and read it out loud, line by line, literally--not what I want it to say, what it does say. If that doesn't help, and I don't have others I can ask help from, I refill my coffee, settle back in, put on some good music, and start writing out literal hypotheses and tests for each, running those, and recording my results.

Collapse
 
mortoray profile image
edA‑qa mort‑ora‑y

I rolled a 1 today I think.

Collapse
 
alephnaught2tog profile image
Max Cerrina

Ouch. :( Is it the kind of thing a fresh set of eyes would help? Have to run an errand quick but after that I'll be sitting around for a good while and would be happy to be a rubber duck, if that's useful at all!

Thread Thread
 
mortoray profile image
edA‑qa mort‑ora‑y

Not my code, thus I was the fresh eyeballs! :)

Thanks for the offer. It's entirely uncommon API fighting with iOS, so if you happen to know that well the question is open over at stackoverflow.com/questions/485681...

Collapse
 
jessachandler profile image
Jess Chandler

Options:

  • Consider quitting and doing something else.
  • Start over in a nice clean directory or branch git checkout -b f-it-i-dunno
  • Beg on twitter with lots of hashtags
  • Put the issue on SO, linking to the REAL issue (if it is on a repo or something)
  • Read a book instead...the problem won't be fixed, but you could be happier

these look pretty snarky, but this is what I do. :)

Collapse
 
martinbober profile image
Martin Bober

Computers are no magical boxes, when they fail us, it is for a reason. Possible reasons are:

  1. 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.

  2. Your hardware is defective. This also happens quite often (at least to me). Can the issue be reproduced on other similar devices?

  3. 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?

Collapse
 
agazaboklicka profile image
Aga Zaboklicka

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 ;))

Collapse
 
lancecontreras profile image
Lance Contreras • Edited

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.

Collapse
 
strredwolf profile image
STrRedWolf

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. :)

Collapse
 
jessachandler profile image
Jess Chandler

Yeah...my dog and cat both have this role. The cat is better for the role, though, because she talks back less.

Collapse
 
fatoshalilaj profile image
Fatos Halilaj
  1. 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)

  2. Decompose my problem into smaller parts as possible

  3. Provide alternatives - I always have a few of them. The best one always kills me until I get a solution

  4. Check Microsoft documentation if related to MS in my case

  5. If no solution found yet, I use an old code 'goto: 1'

Collapse
 
winkervsbecks profile image
Varun Vachhar

This is usually my process:

  1. 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.

  2. Search Github issues. This is actually my first stop instead of stack-overflow.

  3. Read the source code, look at code comments, sometimes there are examples in the repo and maybe there is a wiki.

  4. 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.

  5. 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.

  6. 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.

Collapse
 
kdavis profile image
Kim Davis • Edited

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.

Collapse
 
ullas0003 profile image
ullas0003

If internet fails, Pair programming or rubber duck debugging are good options.

Collapse
 
burdettelamar profile image
Burdette Lamar

Sometimes taking a nap helps.

Collapse
 
vinaypai profile image
Vinay Pai

Use the source, Luke!

Collapse
 
jjjjcccjjf profile image
endan

Sometimes all you need is a different perspective from another dev ☺

Collapse
 
rdmihov profile image
Radoslav Mihov

The internet has never failed me!

That's where all the documentation is.

Collapse
 
cess11 profile image
PNS11

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.

Collapse
 
_rodrigooliv profile image
Rodrigo Martins • Edited

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

Collapse
 
straleb profile image
Strahinja Babić

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 :)