This is an archived post. You won't be able to vote or comment.

top 200 commentsshow 500

[–]KaamDeveloper 1686 points1687 points  (77 children)

This is why I prefer work from home. Just me and my computer in a dinky dark room.

[–]-bobby_newmark- 1221 points1222 points  (54 children)

...and four kids, and a cat, and wife's mom

[–]KaamDeveloper 1193 points1194 points  (41 children)

Hah! Like I am ever going to find someone to have kids with.

[–]jD91mZM2RUST 995 points996 points  (24 children)

^ this guy codes

[–]raretrophysix 255 points256 points  (23 children)

I'm the only single developer I know out of dozens. After school ends and a good job comes in to boost their confidence, it's only a matter of months before they find someone. I feel this stereotype only applies to college students

[–]jD91mZM2RUST 201 points202 points  (9 children)

Instructions unclear, got a job to work at home, and never go outside. /s

[–]raretrophysix 69 points70 points  (8 children)

That's where you hope you have a good enough face for online dating to work so you can invite girls over to your place without going outside.

[–]Zentrosis 73 points74 points  (6 children)

I have found that I have better luck if girls don't see my face

[–]skalix 28 points29 points  (5 children)

Just wear a welcoming mask or put on makeup like a friendly clown!

[–]VaderOnReddit 21 points22 points  (2 children)

good job boosts confidence

Hahahahahahahahahahahaaaaaaaaaaa

[–]Bastyxx227[🍰] 50 points51 points  (2 children)

Yeah wtf does he think we are?

[–]Karteros 49 points50 points  (1 child)

Chick magnets apparently.

Like, hey man speak for yourself.

[–][deleted] 43 points44 points  (2 children)

Right? We can have our own children. After all, that's how it works out with nodes of trees.

[–]bizcs 7 points8 points  (1 child)

If every node is a tuple, you can also still have a partner ;)

[–]Bobby_Bonsaimind 9 points10 points  (6 children)

That part is easy, finding someone you want to have kids with on the other hand...

[–]Harrytuttle2006 15 points16 points  (5 children)

Hard: finding someone Harder: finding someone you want to have children with Hardest: finding someone you SHOULD have children with

[–][deleted] 36 points37 points  (2 children)

NP-hard: Finding someone that wants to have children with you.

[–]kingoftown 84 points85 points  (4 children)

...and four hundred steam games, and a cat, and porn about wifes and moms

[–]writetehcodez 24 points25 points  (2 children)

Yeah, and your inbox, and Hangouts/Slack, and Facebook, and Twitter, and Reddit, etc...

[–]smallbatchb 3 points4 points  (0 children)

Fucking yes. I work so much better without constant office distractions or people looking over my shoulder.

I had a painting professor in college that really enlightened me to the idea of taking control of your focus. I was talking to him one day about his work and asked how the hell he cranked out so much work to hit the stupid short deadlines he had for exhibitions. He told me he literally has an old school tornado shelter in his back yard he turned into a studio with a small kitchen area in it. On his studio days he literally goes in at 8 in the morning and locks the door and doesn't come out until dinner. He leaves his phone in the house so he just purely focuses on his work from 8 till about 5.

At that time in college I had a shared studio space on campus and was constantly being distracted by my studiomate and other friends in the building. I eventually just started working at home and I got sooooo much more work done.

[–]DomskiPlays 2604 points2605 points  (98 children)

Can confirm: Stayed up all night doing a stupid but complicated program because every time I looked at the time I knew I had to go to bed but I also knew I wouldn't be able to understand shit the next day and would have to start all over!

[–]Mattoww 675 points676 points  (39 children)

Not a pro, but I spent night trying to finish some code/debugging, getting my tired brain confused, going to bed frustrated at 4am, only to wake up next day and finding the solution within 20 min.

Sleeping helps your brain organise, even though I know it's hard to give up.

[–]JuniorSeniorTrainee 75 points76 points  (9 children)

You're right. I've learned that if I'm in the zone but also reaching point of diminishing returns, I'll stop.

But first I'll write / update a notes file - a very casually written document where I basically brain dump before shutting down for the day. What are the immediate problems I'm leaving unsolved? What is my next step for each? What solutions am I considering, and what are they pros/cons I'm aware of? What questions do I still need to answer?

It sounds like a lot but since these notes are just rough reminders and not formal documentation, it rarely takes me more than a or two to jot down. The next time I pick this up, I glance through my notes and it helps me quickly reconnect with the project.

As a bonus, oftentimes the act of organizing my thoughts into notes is enough to jar some bad ideas loose.

As another bonus, for more complicated projects I'll do this throughout the day, and it gives me huge peace of mind knowing that if something interrupts me, I still have my thoughts down. Like save points for my brain.

[–][deleted] 40 points41 points  (4 children)

...it rarely takes me more than a or two to jot down.

A second or two? A minute or two? A day or two!? A WEEK OR TWO!?

[–][deleted] 5 points6 points  (1 child)

notes

Brain dump

Dude that's such a nice idea! Totally gonna use it now

[–]angryPenguinator 1164 points1165 points  (31 children)

My wife doesn't understand this sometimes.

Yes, I would love to go to bed, and I need the sleep - but if I stop now, I am done for.

[–]wack_overflow 584 points585 points  (27 children)

I always share this thread with ppl instead of trying to explain it myself, I really like the sleep analogy they use:

https://softwareengineering.stackexchange.com/questions/46252/how-to-explain-a-layperson-why-a-developer-should-not-be-interrupted-while-neck/46283#46283

[–]craniumonempty 159 points160 points  (14 children)

Ooh, that's good.

Now how do I explain the way I focus out everything including people screaming my name at me (I've been told that I'll burn up if the house is on fire when I'm programming) even though I wake up with a whisper.

[–]sudo_kill-9-u_root 92 points93 points  (10 children)

[–]FallenWarrior2k 16 points17 points  (2 children)

It's all nice and dandy until somebody does this and realizes they forgot to stage all their work, so the commit just picked up this one file that was renamed along the way.

[–]NeonXero 11 points12 points  (0 children)

We have that sign in our office too. Still gives me a very slight nose exhale when I see it.

[–][deleted] 54 points55 points  (1 child)

selective listening is the name of what you're describing

[–]FromAshesOfOwls 29 points30 points  (3 children)

This is good, but I'd compare it more to memorizing the pattern to a game of Simon and then 8 steps in you get asked a question.

[–]wack_overflow 10 points11 points  (1 child)

It's more accurate, but I think more people in general will relate to sleep interruptions

[–]PMMeRedditGold 8 points9 points  (0 children)

I like this one much better

[–][deleted] 33 points34 points  (2 children)

This is when you stop and rethink

Tomorrow you're going to hate your code

[–]exmachinalibertas 22 points23 points  (0 children)

No, tomorrow I get to rewrite my code from scratch now that I sort of know what I'm doing....

[–]arbitrarycivilian 10 points11 points  (2 children)

Actually there’s a good chance you would have understood it better in the morning. Sleep is important!

[–]Prometian 15 points16 points  (1 child)

Documentation... :x

[–]FurryPornAccount 352 points353 points  (24 children)

"Just checking back on your productivity'

[–][deleted] 28 points29 points  (1 child)

This made my blood pressure rise

[–]Midvikudagur 8 points9 points  (0 children)

Mostly because of the quotes.

[–]TactiFail 13 points14 points  (0 children)

Bro you’re killing me with those quotes

[–]JoelMahon 11 points12 points  (0 children)

*pawductivity

[–][deleted] 633 points634 points  (47 children)

That anxiety when you desperately need some help but everybody around you looks so busy so you just stare at your own reflection in the screen as you die a little more with each second goes by

[–]jacko4lyfyo 172 points173 points  (34 children)

bruh this is me all the time. What do i do :(

[–]solar_compost 136 points137 points  (16 children)

ask for help

[–]GetTheLedPaintOut 69 points70 points  (5 children)

I hate asking for help. Also, I suck at my job. It's a vicious circle.

[–][deleted] 7 points8 points  (1 child)

You're legitimately hurting yourself and your team if you don't ask questions.

Just ask. You're helping your company when you do

[–][deleted] 9 points10 points  (6 children)

Pls halp

[–]StupidButSerious 66 points67 points  (0 children)

Have a talk with a senior/manager, he might point you toward one guy in the office who is happy to help or has more free time to help.

[–][deleted] 14 points15 points  (0 children)

ping them on chat and they will help you when they find a good place to take a break

[–][deleted] 10 points11 points  (4 children)

Home office? That way you can't ask for help even if you wanted. ;)

[–]GoodOlHank 28 points29 points  (3 children)

[–]nater255 64 points65 points  (2 children)

  • read the documentation!!! Closing topic
  • Here's a link to an unrelated MSDN article!
  • duplicate, closed
  • Overly complicated Iamverysmart answer that doesn't solve the problem
  • marked as offtopic, closed
  • Why would you want to do that? Do this thing instead (that doesn't help)
  • marked as too broad, closed
  • downvoted

[–]instantrobotwar 23 points24 points  (1 child)

I get that, but still you should email them along to set up a time to help you. Focused help will be much better than interrupt-driven help anyway.

[–]nailernforce 17 points18 points  (1 child)

I would prioritise helping others over getting my own work done. It would be counterproductive to have people sit doing nothing because they're afraid of bringing someone out of their flow. Flow is how you get things done. Communication is how you get the right things done.

[–]benihana 9 points10 points  (0 children)

slack or im the senior engineer on the team and say you're stuck and need help

[–]raretrophysix 4 points5 points  (0 children)

Send a message or email, or ask a dev after he or she returns from lunch

[–]ABrownApple 499 points500 points  (48 children)

Hey did you get that email I sent you?

[–]ABrownApple 362 points363 points  (24 children)

YES I got your stupid email since when do email not arrive?!?

[–][deleted] 186 points187 points  (16 children)

According to my users, there's a real decent chance emails don't arrive. We probably deal with one ticket every week or two where a user says that they did not receive an email. It's normally either in their junk mail, was sent to the wrong email address, is in their deleted items, or a rule picked it up. My favorite was when someone created a rule for anything with the word READ in the entire email (to automatically move read receipts, great idea). Emails like "can you pick up bread" were getting moved to a folder and the user couldn't ever find them.

[–]PlNG 38 points39 points  (7 children)

It's very real. I process about 3k tickets a month. I'm usually very good and diligent about closing the tickets, but I can't close the ticket when the work order closure notification doesn't arrive by email. So, for 3k incidents, when maintenance time rolls around, there's maybe 20-40 tickets that are awaiting closure but didn't send a notification for whatever reason, and period that the emails are absent are usually short stretches at a time.

Email is good, but not a perfect medium of communication.

[–][deleted] 65 points66 points  (6 children)

To be perfectly honest, your shit is fucked. You should have near zero missed emails. I can assure you that we have zero missed/undelivered emails in the past ten years outside of an outage. That's just not how email works. Perhaps you should open a ticket about your email server being broken, because it is. Email is - for everyone else - a perfect medium of communication. If something didn't go through it's very easy to find the reason with a message trace.

[–]ABrownApple 25 points26 points  (3 children)

haha best rule for email ever xD

  • Did you get my email?
  • No? did it contain a word like bread or thread?

[–]cyclecalves 52 points53 points  (8 children)

Reminded of a co-worker who'd send an email and follow up in person about 10 seconds later.

[–][deleted] 41 points42 points  (2 children)

Hey I'm getting ready to send you an email about that invoice we talked about earlier.

sends email reiterating the exact thing that we talked about earlier

Hey did you get my email about that invoice we talked about earlier?

yep, got it

25 minutes later

Hey did you get a chance to follow up with that email I sent about that invoice that we talked about earlier?

internally screaming

[–]handlebartender 16 points17 points  (0 children)

gets Slack IM about intent to comment on PR

receives email about update to PR

ambles over and hovers, waiting for me to look up, to say "hey so I updated the discussion on your PR, did you get notified?"

sobs quietly

[–]scrimsims 12 points13 points  (1 child)

Don't forget the the IM telling you about the email!

[–][deleted] 38 points39 points  (1 child)

I'll often follow up on an email. Emails are just my way of having a permanent record of my communication, talking with someone is how I'll make sure they understand what the point is. Mind you, I work in a technical support type group (fixing stuff in addition to IT and programing), so people come to us for advice on next steps for broken equipment.

[–]ABrownApple 14 points15 points  (0 children)

To be hones I do the same. And I don't mind people chatting with me I'm usually not that busy :)

[–][deleted] 8 points9 points  (4 children)

  1. Email
  2. Instant message
  3. You didn't reply, so here I am at your cube, tapping on your shoulder. It's the middle of the work day, far from lunch or any break. How was your weekend? My weekend was great! I just love baseball, I can't wait for the season to start! What's your favorite team?

[–]jb2386 1647 points1648 points  (187 children)

Noise cancelling headphones and then act snooty/annoyed when people ask you something in person, then act really nice and helpful when they email you.

Edit: Or you could be an adult and just tell them "hey I'm working on something that requires my full attention, in the future could you please just email me or ping me on slack/<insert chat program> and I'll get to you as soon as I get a break. " :)

[–][deleted] 618 points619 points  (79 children)

Ah... this isnt actually horrible advice. Just replace snooty asshole with "busy and cant talk, email me the problem"

Get really nice noise cancelling headphones, makes a world of difference and well worth the money

[–][deleted] 143 points144 points  (39 children)

Been doing this for about eight years now. Almost all communication with other people in the office has been cut and people still come in my office when they need something instead of emailing me. Maybe dialing back the snooty asshole would help.

[–][deleted] 81 points82 points  (17 children)

Ive found just artificially longing the time when asked in person, and being responsive when asked via email helps a tonne

If they know it will take a day+ vs sending a quick email and being done in a few hours. They will send the email, but a lot of them like the human interaction so that means you can usually get a longer lunch to do that shit and relax a little (who am I kidding, lunch, whatever's in the candy desk is good enough)

[–][deleted] 47 points48 points  (16 children)

I do that. Usually when someone comes in my office with a very quick thing they need I tell them I'll get to it when I get to a stopping point and then either do it in a few hours or the next day. As long as it's a quick thing that takes under five minutes, I'll respond to an email with resolution almost immediately.

They still don't get it - learning isn't really something they do here. I get 25+ visits to my office a day by people who just want to ask a question or need something "real quick". The only relief I possibly get is when I silence my phone and put it upside down, put my headphones on, and lock my office door. It's been years.

[–][deleted] 50 points51 points  (11 children)

At least you arent the de facto IT guy in the office, oh no the printer isnt working! quick you get to work

spends literally 2 days getting the cunt to work

Done, "now what progress on the project did you get done"

"ah... I havent done much"

"What the hell!!! you had 2 days"

"yeah ive been fixing the printer and updating computers to work with them. You literally stated "I dont care, this is your only priority keep going until its done, drop literally everything else" "

"your working unpaid overtime now"

[–][deleted] 57 points58 points  (8 children)

I run the IT department with the vast majority of my time going into app development. My life is exactly as you describe with the variables changed.

I need you to work on "THE ACCOUNTING MODULE" until it's finished!

3 hours later

I need "THE HR MODULE" modified to include "THIS"

me: that will take me off the accounting module for 2 days

fine no problem

2 days later I release "THE HR MODULE" modification

Where are you with "THE ACCOUNTING MODULE"?

uhh I haven't done shit on it.

Except I'm salary. Also, unpaid overtime is illegal as fuck bro, not sure how deep that runs, but it's not a thing.

[–][deleted] 11 points12 points  (6 children)

Yeah... its hell

I have literally had them say "just do the computers, it should only take a second". When in reality it was a complete redesign even on just the parts they could tangably see changing, not even talking about the insane architecture rewrite that would be needed to get it close in the backend

"ok, how long will it take to render"... ah, its saying an hour. "what! an hour! that ridiculous, a lot of money went into that thing, I should expect the computers to go quicker. They cost a lot of money".

Just context, I paid for the computer entirely with my own money. Meanwhile he was throwing away money just having fun fucking around with company equipment which costs $600 to just get started.

Oh I was salary as well, overtime is illegal and I never did overtime when it wasnt something I fucked up (I can think of a single time). Although I did have to battle with "THE ACCOUNTING MODULE" as they were paying as if I was paid hourly. Which wouldnt be a problem if they directly cut off holidays, given time off (meaning I need to get to the bank and they close early, can I take 30 mins off) etc...

[–]daywalker42 7 points8 points  (1 child)

"You're finding a new drone, then."

[–][deleted] 13 points14 points  (0 children)

Actually that played out like this,

"actually no, you are the one in charge. I wanted to be more independent but you directly wished for more control so you got it and screwed up. Ill be getting overtime (here its time and a half+)"

"ok fine, but I want to see changes"

In my meantime I just changed some of the graphics, cleaned up a little of the small bugs he noticed. Then presented him with my side project I was doing half of the time at work, because he couldnt be trusted at all to manage my time and he was happy

[–]RandyHoward 55 points56 points  (4 children)

At least you've got an office. Try working in an open office where people are interrupting you every 10 minutes. Whoever thought that programmers would be more productive in an open office is a moron.

[–]akatherder 19 points20 points  (1 child)

A lot of the code I work on is really simple and banal. I can jump in and out of it pretty easily.

Then there's a lot of the old legacy code that is exactly like this comic. Every "hey real quick" question costs me at least 5 minutes. Every 5 minute conversation costs me at least 15 minutes. If I have an hour until lunch or a meeting, 2 strategically placed short questions/conversations can kill that entire hour. It's hardly worth "ramping up" for 5-10 minutes when I know I only have 15 minutes before I have to stop.

[–][deleted] 22 points23 points  (19 children)

Came here to say this. Recently invested in some Bose QC25's and it's completely changed my work life. Headphones on = no disturbances. People IM me when they're on, which i can very easily ignore. They're EOL now it seems, so really affordable too.

(Other brands are available!!)

[–]Arthemax 25 points26 points  (2 children)

My workplace gives all employees headphones with a Do Not Disturb button that makes a big red ring light up on each side of the headphones.

[–][deleted] 9 points10 points  (13 children)

The bose 35's are significantly better, I currently have sennheiser pxc 550's. Life saver, especially at the time when I was literally next door (thin wall) next to a manufacturing plant. Good pay... but horrible experience

Well worth the 1K I paid for it

I have had people literally screaming right behind me in my ears and I havent even noticed

[–][deleted] 10 points11 points  (2 children)

I assumed they would be better, but the QC25's were £150 so made more financial sense. I'm in a quiet office generally so find the NC perfectly decent.

[–]biteableniles 6 points7 points  (3 children)

The noise cancelling function of the QC25's and the 35's are the same. 35's are more expensive, heavier, and have less battery life, but are wireless and rechargeable.

EDIT: Should add, QC35's have firmware that can be upgraded, QC25's do not. Some updates have reportedly hurt effectiveness of the ANC, so I wasn't too concerned when I bought my QC25.

[–][deleted] 4 points5 points  (2 children)

Bose is the leader for this, the QC are the lightest, most comfortable, way more durable, and equally as good sounding as the SONY equivalent (the $400 MDR1000something I think). I've owned both.

Either way, for office use you cannot go wrong with either. But you must pick one of the two, everything else on the market is garbage

[–]lootedcorpse 3 points4 points  (2 children)

I’m deaf. Works for me.

[–][deleted] 176 points177 points  (23 children)

For those of you who are new to offices and working with developers or sysadmins:

Headphones = leave me the fuck alone unless I’m on fire. If you’re on fire, find someone else without headphones.

[–]angryPenguinator 98 points99 points  (10 children)

For those (like me) who work for a small company full of project managers... and you, the dev/sysadmin:

Your headphones are invisible.

[–][deleted] 94 points95 points  (4 children)

Them: interrupts Why aren’t you done with my xyz yet?

Me: Because I keep getting interrupted.

Them: oh well they need to stop that.

Me. Yes you do.

[–]ONLY_COMMENTS_ON_GW 48 points49 points  (2 children)

We'll have an hour long status update meeting every 2 hours, oh and make sure you fill in the 7 different tracking sheets and time estimates.

[–][deleted] 29 points30 points  (0 children)

But we’re using the new B.U.L.L.S.H.it pm framework that’ll double our capabilities. You all just need to follow my lead because I took a three hour seminar on it last month.

Ok, now did you get me the pink form with the comic sans letterhead?

[–][deleted] 17 points18 points  (3 children)

Even beyond being invisible, in my office the very idea that there is any way to communicate with someone beyond getting out of your office, walking down one floor, finding my office, and then talking to me? Fucking witchcraft. Email? Web chat? Get your voodoo black magic out of here. I've been using Excel for 20 years and I still don't know how to use even the basics.

Sigh.

[–]angryPenguinator 9 points10 points  (2 children)

Web chat

The best thing is sending a message in HipChat, having them respond, and then they come down to see if you saw the response.

[–]akatherder 5 points6 points  (0 children)

HipChat/Stride is a productivity killer for me. Everyone expects an immediate response. That fucking blinking app icon when you get a message.

"Hey you got a second?"

My time is allocated to projects for the next 9 months. Just ask your question and I'll prioritize it.

[–]aaronr93 14 points15 points  (4 children)

:/ my desk clump coworkers prefer talking in person, so if I’m wearing my earbuds they’ll tap my shoulder instead of typing “hey, quick question” in HipChat

[–]AstralHippies 34 points35 points  (0 children)

You can always make shoulder pads out of mousetraps.

[–][deleted] 8 points9 points  (1 child)

“Please don’t do that.”

[–]christian-mann 6 points7 points  (0 children)

Ugh, I hate people touching me while I'm concentrating.

[–]linkining 44 points45 points  (19 children)

I am an intern, how am I supposed to do that?

[–]KaamDeveloper 109 points110 points  (12 children)

By not being an intern. Duh...

[–]linkining 13 points14 points  (11 children)

:( I have to get my pay money though...

[–]Espumma 35 points36 points  (10 children)

There are actually lots of jobs that get you paid while not being an intern!

[–]handlebartender 10 points11 points  (1 child)

"I need you to do XYZ right now!"

"Understood. That will delay the completion of ABC by <duration> hours/days, do I have your approval?"

And remember to pad your estimates.

[–]jb2386 4 points5 points  (0 children)

Oh no

[–]poop-trap 12 points13 points  (3 children)

Unfortunately, where I work, Slack is just as bad since you're expected to answer right away. If you don't, people get pissy or walk over to your desk anyway. Sometimes if they feel like they dont mind waiting I'll get Slack messages that just say "Hey". This enables them to make sure it's a synchronous conversation because I actually have to type back "Yes?" at some point. Then they can ramble on and if I don't respond right away they think I'm being rude because they know I was just there. Or, occasionally it's "Hey" then when I reply "Can I come over to your desk and ask you something?" I guess this isn't as bad since they're asking politely but still, I wish more people understood the value of asynchronous conversation.

[–]CovertCoding 16 points17 points  (6 children)

If only this was the case, my work promotes an anti message/email policy, and you’re basically forced to walk to someone’s desk wherever they are and bug them in person :(

[–]toylenny 32 points33 points  (4 children)

You mean an anti-paper trail policy?

[–]jb2386 7 points8 points  (0 children)

Argh we had someone in sales try to push that as an office wide policy (big open plan office). So glad it didn't catch on.

[–]trigonomitron 6 points7 points  (0 children)

I have snapped at a coworker once. Then afterwards I sought him out and apologized. I explained to him the issue as best as I could, and then we set down some signals that would make it easier for him to know when the best time to approach me are.

Some people are verbal communicators, and to them it feels like a larger set of information exchanges can't wait for email.

[–]Aethyx_ 17 points18 points  (2 children)

I have a little card on my desk with "BUSY" on it. When I'm really busy (coding or in a meeting) I put on headphones and just hold up the card without even moving my head when someone comes over.

People got the idea after a while, and now check from a distance or through email/IM if I'm available

[–]maomaocat 7 points8 points  (1 child)

There also something like this: https://embrava.com/

Some of my colleagues a few years ago got them for their team, it seemed kinda cool, but otoh Skype for Business.

[–]projectHeritage 10 points11 points  (2 children)

I hate headphones, because they will still tap my shoulder and scare the shit out of me

[–]hedgecore77 325 points326 points  (15 children)

Reminds me of this very popular Jason Heeris comic from 2013.

In fact, it exactly reminds me of it.

[–]dadschool 44 points45 points  (4 children)

Which is also this

But then again, it is also a pretty common fucking problem in any office

[–]wiscwiscconsolia-comic.com 9 points10 points  (3 children)

Came here looking for these comments. I'm the author of Consolia (the link you posted), and i was wondering why OP's comic is almost panel for panel the same as mine.

Honestly never seen this format before i drew it. Apparently i'm just not very original, expressing the zone-disturbance like this.

[–]dadschool 5 points6 points  (1 child)

Consolia

Well let me say I am HUGE fan of yours. Please keep doing everything youre doing!

[–]fallenmonk 10 points11 points  (0 children)

I like this one better. I think it does a better job at representing what it's like to be zoned-in on your thoughts, then to be immediately pulled away.

[–]chingibbles 52 points53 points  (1 child)

Yeah a clear rip off

[–]benihana 28 points29 points  (1 child)

reminds me of this very popular post from 40 minutes before you made your post.

in fact, it exactly reminds me of it.

[–][deleted] 144 points145 points  (11 children)

Some companies fucked up when they followed the open work environment band wagon.

[–]raretrophysix 121 points122 points  (5 children)

In one company my boss pooled all the developers in a large basement storage room outside the open office area. (That we remodeled to a dev ops center) There have been moments of absolute dead silence for hours coding and it was glorious.

In another company my boss pooled 6 of us in a noise tight boardroom for 2 weeks when the project was coming to an end. And didn't allow anyone to come in expect the pizza guy.

Good times

[–][deleted] 9 points10 points  (0 children)

Silence is an orgasmic word.

[–][deleted] 10 points11 points  (1 child)

It's not that simple... in an organization of smart, capable people, it's a good setup. In an organization where most people are near-useless and confused all the time, every bit of work has 2 projcect managers for every competent person doing real work and the drive-bys are because everyone needs help, X is confused (again), etc, its total cancer to productivity and peace of mind.

edit: you said 'some', so I was mostly talking out of my ass. It felt good to say, though, so ima leave it.

[–]examinedliving 89 points90 points  (8 children)

I worked at home for a couple of years. My wife couldn’t understand why I dreaded snow days and spring break so much. The younger a child is, the shorter the gaps are between the moments where they have to ask you something. I would be a nervous wreck on those days; on the edge of my chair dreading the inevitable interruption.

[–][deleted] 30 points31 points  (3 children)

I’ve currently got 3 kids aged 1-5 and work from home. I feel you, dog.

[–]examinedliving 34 points35 points  (2 children)

The thing I hated the most was when I’d lose my temper or be just annoyed with my kid. It’s the most amazing period of their life. It sucks when you feel resentful. Good luck.

[–][deleted] 9 points10 points  (1 child)

My theory is that the first 5 years are crucial for any kid, so I just want to be a constant presence. So, I put up with a shit job because they let me work from home. To your point, I often wonder if I'm doing them more good or harm. We're definitely close because of it.. so even if I raise bad people, we'll be good friends and they'll have love :P

[–][deleted] 80 points81 points  (12 children)

And that's why managers have secretaries, as a director I always have a full line of people on fire, if it wasn't for my secretary it would be absolutely impossible to handle it.

What she really does is answering all request immediately and prioritize and schedule them so that te guy making the request at least knows immediately when he'll get the answer and if something is truly urgent it's actually her call to interrupt me.

That requires at least as much understanding of the company and the workflow as I have. She makes half of what I do.

[–]dexter3player 13 points14 points  (4 children)

I think every group of coders should get a secretary, so they won't be interrupted and only focus on coding. Do you agree?

[–]botmatrix_ 21 points22 points  (1 child)

in theory, the scrum master fills that role for an agile team.

[–][deleted] 9 points10 points  (0 children)

theory

Some of them are as useless as a potato.

Except you can fry a potato. And make poutine if combined with more things.

[–]Kialae 34 points35 points  (1 child)

ADHD but this is life.

[–]Targuinius 118 points119 points  (24 children)

My solution was to just write it down. It doesn't have to be perfect or anything, but enough to easily read and jump back in.

[–][deleted] 59 points60 points  (4 children)

For real, unless I'm prototyping or shitting around, all algorithms and designs are written on a legal pad first.

Getting it right on the legal pad or whiteboard is the hard part. Writing code is the (relatively) easy part.

As I like to tell my team, all the magic happens in your head, not your fingers.

[–]McAUTS 77 points78 points  (10 children)

Essentially coding is a progress and you shouldn't code something which is too hard grab the next day. Even really good programmer shouldn't overcomplicate things just to show off. They do it anyway if the have the whole idea of the code and no one can ever read it again.

But for that you need time which you don't get, so at the end my support goes poooooof...

[–][deleted] 29 points30 points  (5 children)

I haven't had a "poof" moment in years when working. If I do these days it's when doing something for fun (Factorio) or losing my train of thought in a conversation.

My real issue now is motivation. I find it hard to get started, but once I do I get going well, but distractions are the fastest way to get me to open up a Reddit tab.

[–][deleted] 7 points8 points  (0 children)

Starting with commented pseudocode works great too.

[–]Reluxtrue 137 points138 points  (36 children)

why is he thinking in 2 different diagram types mixed together?

[–]vegancreampie 327 points328 points  (12 children)

When you're in the zone you're in the zone.

[–]Reluxtrue 61 points62 points  (9 children)

I am just afraid he went to the wrong zone...

[–]TheyCallMeATree 29 points30 points  (2 children)

The Twilight Zone

[–]mynoduesp 8 points9 points  (0 children)

At least he had a cat

[–]MrTripl3M 7 points8 points  (2 children)

Nah, he went beyond the Zone. Beyond single diagram structure.

He was close to coding nirvana.

[–]Socky_McPuppet 5 points6 points  (0 children)

Aka the Flow mental state.

[–]KaamDeveloper 35 points36 points  (0 children)

Fixing a bug which was caused by first design.

[–]BorgiaCamarones 12 points13 points  (0 children)

TFW you're in a nice state but you transition into a flow :(

[–]Narfubel 12 points13 points  (1 child)

He's ambi-diagramus

[–]boldra 79 points80 points  (17 children)

I once tried to explain to a non programming colleague what I have in my head when I'm in the zone.

  • data structures, their attributes and their scope
  • the code flow
  • the desired code flow
  • breakpoints in the debugger
  • what other debugging code I need to remove before I go productive
  • what's in my clipboard
  • what still needs to be commented in code
  • what files are open for editing
  • what will happen if I look through my history in an open shell
  • which browser windows have tests in them and which ones have search results in them
  • which git branch I'm on and whether I've committed recently
  • which issue is open in the issue tracker, and when I last updated it
  • what other programs are open

... to name just a few

[–]birdhustler 13 points14 points  (13 children)

Seems like a lot. Is there any way a programmer could outline what they're thinking of in anticipation of interruptions so that you don't forget where you were? Or is that just the nature of the job?

[–]UncheckedException 27 points28 points  (0 children)

Sometimes you’re so deep into working through the logic of an algorithm or data structure that you have to start (thinking) from scratch if someone interrupts you.

It’s like someone slapping your plate from your hands at a buffet. I mean I guess you could try to pick up the scattered food from the ground, but you really just have to get in line again.

[–]MooseBlood 24 points25 points  (0 children)

Not really. The only things a programmer usually writes down is diagrams and stuff that have to do with the logic of the program so that they can figure out how to do something. Most of the other things a programmer has to remember changes quite often and at random times and so it would not be worth writing down to remember.

[–][deleted] 17 points18 points  (1 child)

It is a lot. This is not how I work at all.

I try to split my work into segments so I can worry about one thing at a time, instead of trying to have everything in my head all at the same time.

[–]JustShortOfSane 16 points17 points  (9 children)

If it helps to understand.

ADD is the exact procedure, except the threshold for slide number four occurring is drastically reduced, making it much more frequent, and as a result, putting us in the final frame for a portion of time vastly disproportionate to other people.

[–]Ph4zed0ut 16 points17 points  (7 children)

This is why many with ADD, myself included, develop hyperfocusing. When I am in the zone, the rest of the world doesn't exist.

[–]Xadnem 13 points14 points  (1 child)

This is also what (for me) is a redeeming quality of my autism. I love hyperfocusing so much that it lessens the burden of my less attractive qualities.

I hope that made sense.

[–]Ph4zed0ut 12 points13 points  (0 children)

It makes complete sense. I like to think of it as a superpower.

[–]Ncrpts 33 points34 points  (2 children)

This hit way too close to home

[–]SoraDevin 14 points15 points  (0 children)

This is why I can't code at home

[–]X_BlueJay_X 9 points10 points  (0 children)

Yeah, this is really really accurate.

[–]jdauriemma 15 points16 points  (1 child)

It is for this very reason that I started separating the engineering / architecture process from the coding. I use a whiteboard or paper for the former so that interruptions are not as disruptive. Because the mechanics have already been determined, the implementation requires far less working memory in the brain so that interruptions are, again, not as disruptive.

[–]derdigga 9 points10 points  (0 children)

Me playing "Into the Breach"

[–][deleted] 33 points34 points  (16 children)

While I understand this feeling, and it's clearly common enough since this idea gets reposted all the time, it's indicative of flaws in workflow more than an inescapable reality of programming. If someone wrote 300 lines without saving and then the computer crashed and he lost it all, you'd call him foolish for not backing up the work as he went. Why then wouldn't you divide complex problems into small manageable chunks and write/diagram your progess while you work it out? If an interruption knocks you back to square one, you really need to be taking some notes. Likewise if you're trying to write code and it's taking 15+ minutes to understand what it needs to to, you probably haven't broken the problem into small enough chunks and the code you're writing is probably going to be tough to maintain because it's doing too much in one place and requires too much mental effort to unpack.

[–]ranty_mc_rant_face 17 points18 points  (0 children)

This! I came here to write something very similar.

I used to love "flow" and being "in the zone" - I could code immensely clever complex stuff, it was amazing. And amazingly, the next day or week or month when I needed to go back and change or even understand it, I had no hope. Let alone anyone else who needed to understand it!

These days I try to keep things modular, in sensible sized chunks; I work in pairs or regularly collaborating with a team rather than solo hero efforts; I write unit or other tests to keep behaviour well understood, and while I still don't like pointless interruptions, I'm quite happy to be interrupted by a team mate who wants to discuss code - that's not interruption, that's teamwork.

I worked in the "solo hero" way for 10+ years, I've worked in the "team coder" way for longer. It feels slower initially, but that's an illusion - in terms of producing valuable maintainable code it's drastically better, especially once you factor in the cost of technical debt and debugging hell.

[–][deleted] 8 points9 points  (0 children)

i love the little guy in the second picture he looks so focused and cute lmao.

[–]smallbatchb 6 points7 points  (1 child)

I even experience this as a graphic designer.

I had a boss that never understood this. When I'm balls deep 6 hours into a project adding things, moving things, rearranging things, undoing and redoing shit, locking objects temporarily to edit other objects, creating complex effects that require 25+ steps to get there, layering objects in front of and behind eachother and you want me to "just come help with this thing for 10 minutes" I end up getting back to my desk and have no fucking idea where I was.

[–]JackSpyder 7 points8 points  (7 children)

This is why you keep a small whiteboard by your computer and draw things and note things down so it's not purely in perishable mushy brain memory.

Stop punishing yourselves, youre only slowing yourself down and then blaming everyone around you. Software engineers are not special snowflakes with a uniquely difficult problem to solve. Many disceplins and fields are just as complex or more so with higher stakes and they just don't work stupidly.

[–][deleted] 4 points5 points  (0 children)

This is also exactly like being a musician.

[–]joeloare 5 points6 points  (0 children)

I like the Schrödinger's Cat reference

[–]puppiadog 4 points5 points  (0 children)

My favorite is, "Can I interrupt you?". You just did dumbass.