Do all the things like ++ or -- rants, post your own rants, comment on others' rants and build your customized dev avatarSign Up
Get a devDuck
Rubber duck debugging has never been so cute! Get your favorite coding language devDuckBuy Now
Search - "pair programming"
Me: Sometimes I talk to myself while debugging.
Me: OMG 😱, me too..
Me: Lets try pair programming next time.9
My dad picked up programming in Java as a hobby when I started my own dev company. We pair program on the weekends! 😁8
New devRant cartoon now live on YouYube! Experience the perils of pair programming! https://youtu.be/vjr_9xKUlYA If you enjoy, please share!22
"Let's do some pair programming! It will be fun!"
... Fuck no.
Either I start coding and you open a beer, or the other way around. And sure, I do not mind doing each other's code reviews. I respect your feedback.
But I can't look over your shoulder while you misspell keywords. When I write code, I search, try, debug and play at a high speed.
I'm an impressionist/surrealist writing messy passionate functions, breaking lots of things with broad paintbrush strokes before finishing it into detailed perfection. I remember all the places in the code I need to work on, and cover everything with tests.
You're a baroque coder, sometimes even a hyperrealist, with your two-finger 10 wpm typing, writing code strictly line-by-line, decorating every statement with the right checks & typehints in advance. You can not keep two functions in your head at the same time. You write tests reluctantly, but you hate that I barely plan. You plan everything, including your pee breaks.
As a coworker I respect you.
But there is no bigger hell than pair programming with you.14
IF PROGRAMMING LANGUAGES WERE DRUGS:
Anyone can cook some up at home but only pros can make the good stuff without blowing everything up.
Under the influence it tries to do everything at once, in seemingly no specific order before running off and making plenty of promises - but you have no clue if it kept any until it returns.
C = Heroin:
It takes some prep before you can take a hit but when you do it's far more potent than expected. When prepped (compiled) correctly it will induce complete and utter ecstasy but any error or abuse may kill you, leave you on the floor, in a coma or wishing you were dead.
HTML = Paracetamol(Panado):
Some don't think it's a real drug and others do. Either way you should grow a pair and try something a little more hardcore.
I came up with these after I randomly explained asynchronous js to a junior as synchronous code on meth. These were just off the top of my head, please feel free to correct or expand on them :-)26
Let's get rid of the developer training: Pair Programming
Let's get rid of the software testers: Test First Programming
Let's get rid of the project managers: Agile
Let's get rid of the project planners: Scrum
Let's get rid of the system admins: DevOps
Let's get rid of the security guys: DevOpsSec
Let's get rid of the hardware budget: Bring Your Own Device
Let's get rid of the servers: Cloud Computing
Let's get rid of the other scruffy guys: Outsourcing
Let's get rid of the office space: Home Office
Let's get rid of the whole fucking company: Takeover7
New job (first CS job).
Day 1: Install Ubuntu
Day 2: Dev said "it was so cute when he asked if he could uninstall windows." Also, first pair programming with engineer of 12 years. First commit (he did all the work, I just tried keeping up."
Day 3: "Here, try this bug " nearly get there. Have to leave early. Team event (Group VR experience, was wicked fun with drinks afterwards. Turns out boss man is a total bad ass. Swam with sharks and giant Wales)
Day 4: Fix bug. Notice odd behaviour. Fix that too. (All on my own). Code review: "This, that but works and is good." Get asked if I want to go to customer to do A, B and C. Tell Boss I only know B. He said "Tell me what you need for A and C."
I'm so God damn happy.8
Coworker: "Hey do you have 30 minutes? We should debug my broken code together."
Me: *slightly interested in the project he's working on* "Sure, let's do it."
Coworker: *explains the problem for 10 mins*
Coworker: "OH here's the problem!" *type type type* *git commit -am 'Fixed'* "Done."
Me: *wants 10 minutes of life back*9
"Ok, the site looks fine. Now let's move the style tag into it's own file."
*makes css file*
"WHY DOES IT HARDLY EVER LOAD!?!?, I checked the syntax trice"
*Spends 20 min. Asking friends for help, but none of them knows a reason*
"Time to ask the teacher, I guess"
*Teacher comes over, but has no clue either*
Teacher: "Give me the files, let's test it on my laptop"
*Css doesn't load there either*
*Teachers pair programming and trying some serious debugging technics. No progress*
*I decided to look at the sourcecode while refreshing the site*
1. Refresh: Css is loaded properly
2. Refresh: Css is gone, and source turned into various asian symbols.
Looks at the (default) file encoding: UCS-2
WTF NOTEPAD++, I SPEND 2 HOURS OF MY LIFE BECAUSE YOU DECIDED THIS WAS A PROPER ENCODING!
Web programming seems fun.12
I once had a manager who would, at every stand up, ask everyone if there was a better way to solve their problem. She did this even if the team had already decided on a solution or even if there was no problem at all. She wouldn't let us continue the stand up until we had proposed a new 'solution' that was close to her 'suggestions'.
Some of my favorite suggestions were: "Are you doing everything you can to not make it too 'spiffy' ?". If you said yes the follow up was always: "can you tell me how?"
Then when you said you hit a bit of a bump yesterday due to something unexpected she always demanded that you pair programmed today. Now I don't have anything against pair programming, I even think it's useful from time to time, but being forced to sit next to someone or have someone sit next to me every time someone encountered something unexpected annoyed the shit out of me. Needless to say no one had any problems to speak of during stand ups after a while.
Whenever I was sparring with one of my colleagues she would always join in and start proposing 'solutions' about technical problems she didn't even understand. Again, she wouldn't back down until we had accepted her 'solution'. We would then go to a different room and hope she wouldn't find us there.
This went on for months, until several people had disagreed with her so much that it ended in shouting matches.
It still makes me angry when I think of one person crippling a team that much. I took my issues to her, to HR and finally to the CEO directly, but no one did anything about it.
Finally one of my colleagues decided to quit. After he handed in his two weeks notice our manager came to me and asked if she could talk to me in private.
She told me that she didn't understand why our colleague quit and she thought everything was going great. This was after just about everyone had told her that they hated how she acted and that if she wouldn't stop they'd quit. I had told her that myself twice.
She then proceeded to tell me that I was the most valuable employee and that the company couldn't go on without me. As a gesture of their appreciation for my invaluable effort, she was so generous to offer a salary increase of 50 euro, before taxes.
I laughed, said no and handed in my two week notice the next morning.
I vowed never to work with fucktards again, and I haven't since.7
Pair programming seemed awesome, until I started mentoring the guy who doesn't believe in holding farts.
I mean, I know everyone needs some relief now and then, but when I'm leaning over your shoulder to point out a bug in your code?
Fuck you, dude. You're on your own5
Pair programming with boss, on my computer...
me: $: ls -la
Boss: "use ls -lah"
me: $: ls -lah
A few moments later...
me: $: ls -la
Boss: "Why don't you use ls -lah?!"
me: "My note, my rules"11
You can believe or not but it’s just one of those stories. It’s long and crazy and it probably happened.
A few years ago I was interviewed by this big insurance company. They asked me on linkedin and were interested. They didn’t specify who they were so I didn’t specify who I am either.
After they revealed who they are I was just curious how they fuck they want to spend those billions of dollars they claimed in their press notes about this fucking digital transformation everyone is talking about. The numbers were big.
I got into 3 or 4 phone/skype interviews without technical questions and I was invited to see them by person.
I know that it would be funny because they didn’t asked me for CV so they didn’t know anything about me and I was just more curious how far I can get without revealing myself.
They canceled interview at midnight and I was in the middle of Louis de Funès comedies marathon so I didn’t sleep whole night. I assumed they would just reschedule but then they phoned me at 8 am if I can come because they made mistake.
So at first talk I was just interviewed by some manager I knowed after 5 minutes he would be shitty as fuck and demand stupid things in no time because he is not technical. He was trying to explain me that they got so great people and they do everything so fast.
From my experience speed and programming are not the things that match. ( for reference of my thought see three virtues of a GREAT programmer )
So I just pissed them off by asking what they would do with me when I finish this transformation thingy next year. ( Probably get rid off and fire at some point were my thoughts )
Then I got this technical interview on newest gold color MacBook pro - pair programming ( they were showing off how much money they have all the time ).
Really that was the thing and I was so bored and tired that I just asked in what ES standard I can code.
The problem was despite he told me I can do anything and they are using newest standards ( yeah right ) the “for of” loop didn’t worked and he even didn’t know that syntax existed. So I explained him it’s the newest syntax pointing mozilla page and that he need to adjust his configuration. Because we didn’t have time for that I just did it using var an function by writing bunch of code.
When he was asking me if I want to write some tests probably because my code looked ugly as fuck ( I didn’t sleep for more then 24 hours at that point and wanted to live the building as fast as I can) I told I finished and there is no time for tests because it’s so simple and dumb task. The code worked.
After showing me how awesome their office is ( yeah please I work from home so I don’t care ) I got into the talk with VP of engineering and he was the only person who asked me where is my CV because he didn’t know what to talk about. I just laughed at him and told him that I got here just by talking how awesome I am so we can talk about whatever he wants.
After quick talk about 4 different problems where I introduced 4 different languages and bunch of libraries just because I can and I worked with those he was mine.
He told me about this awesome stack they’re building with kubernetes and micro services and the shitty future where they want to put IOT into peoples ass to sell them insurance and suddenly I got awake and started to want that job but behind that all awesomeness there was just .NET bridge with stack of mainframes running COBOL that they want to get rid off and move company to the cloud.
They needed mostly people who would dump code to different technology stack and get rid of old stack ( and probably those old people ) and I was bored again because I work more in r&d field where you sometimes need to think about something that don’t exist and be creative.
I asked him why it would take so much time so he explained me how they would do the transformation by consolidating bunch of companies and how much money they would make by probably firing people that don’t know about it to this day.
I didn’t met any person working permanently there but only consultants from corporations and people hired in some 3rd party company created by this mother company.
They didn’t responded with any decision after me wasting so much time and they asked me for interview for another position year after.
I just explained HR person how they treat people and I don’t want to work there for any money.
If You reached this point it is the end and if it was entertaining thank YOU I did my best.
Have a nice day.5
Once I had to do a 'hands on' pair programming session for a position I applied for... Together with the lead dev we would switch coding every 15 minutes It was somewhat of a horror story...
The assignment was to implement an password reset flow, connecting it to the api and then handling the entire password reset flow, in Angular becahs ye know has to be Angular...
After drafting the ui and setting up the click events, I wanted to hookup the api calls, but then it was time to switch around...
The fucktard dev first started to adjust my classmappings to be more in line with his preference, without touching the css classnames... Ok... Micro managing ... Check...
So after breaking the styles, he wrote the fetches to the api endpoints and that was his 15 minutes of shame...
I continued only to find out the endpoints we were using had errors in them and would not return anything workable...
The dev said he'd tested the endpoint before and it worked, but clearly it didn't...
After about an hour of going back and forth trying to get this to work he got a call from a client because server was down (surprise), he excused himself and had to prioritize on this, running out and leaving me there for the remaining morning ...
I just sat there waiting for the HR checkout talk, only to lean towards rejecting the position...
Fucking waste of time, and in the end the feedback was they doubted MY TECHNICAL SKILLS ... And wouldn't make me an offer 😂👍 nice story bro...
K THX BAI!7
I've been working exclusively from home for over 2 years now. I've been seeing several posts from people talking about adjusting to working from home, so I figured I would compile a list of tips I've learned over the years to help make the adjustment easier for some people.
1) Limit as many distractions as possible. WFH makes it much easier to get distracted. If you have roommates/family members at home, ask them politely to leave you alone while you're working. Make sure the TV is turned off, put your phone on silent, etc.
2) Take regular breaks. I find it easier to accidentally go hours without taking a real break from work. Try working in half hour intervals, and then taking 5-10 minute breaks. Read an article, watch a youtube video, grab some coffee/tea, etc.
3) When you eat lunch, eat it away from your computer. I often find myself eating lunch trying to wrap up fixing a bug, which makes it feel like I never really "took a lunch." Lately I've been trying to step away and do something else completely unrelated to work.
4) Get ready for work like you normally would. It's very easy to wake up, throw on your favorite pair of sweats and sit at the computer with messy hair half awake "ready" to start the day. Instead try doing your normal morning routine before sitting at your computer. It will help your mind and body go into "it's time to work" mode.
5) Keep your work area clean. I find it very difficult to work when my workspace is cluttered. Studies have shown working in a messy place tend to make us less efficient.
6) Keep your work area work related. Try to only have the things you need for work in your workspace. If you're working from your personal computer this can be difficult. I always end up with camera/music equipment left over from the previous night's photo editing/jam sessions. So try to clean off your desk when you're done for the night so it's ready for work in the morning.
7) Prepare for meetings. I have alarms set 10 minutes in advance so I can go from programming mode to meeting mode. During this time I'll go to the bathroom, grab a snack, water, mute all my email notifications, close any non essential programs, get my code ready if I need to present it.
Stuff is hard & stressful right now, but hopefully these tips will make it a bit easier. If anyone else has any good tips please share them.5
Does anyone else not enjoy pair programming? As an introvert who prefers to "work alone" and someone who has to look stuff up frequently, even things I "should know by now", I find pair programming very anxiety-inducing. I'm always wondering if the person I'm programming with thinks I'm an idiot/imposter.8
Okay, story time.
This rant is about the many mistakes I made at the time, specifically the biggest – but not the first – of which: publishing some preliminary results very early on.
So I posted a sarcastic question to the Software Engineering Stack Exchange, which was originally worded differently to reflect my frustration, but was later edited by mods to be more serious.
You can see the responses for yourself here: https://goo.gl/poHKpK
Most of the serious answers were along the lines of "multithreading is hard". The top voted response started with this statement: "1) Multithreading is extremely hard, and unfortunately the way you've presented this idea so far implies you're severely underestimating how hard it is."
While I'll admit that my presentation was initially lacking, I later made an entire page to explain the synchronisation mechanism in place, and you can read more about it here, if you're interested:
But what really shocked me was that I had never understood the mindset that all the naysayers adopted until I read that response.
Because the bottom-line of that entire response is an argument: an argument against change.
Nexus does not and will not hold your hand. It will not repeat Node's mistakes and give you nice ways to shoot yourself in the foot later, like `process.on('uncaughtException', ...)` for a catch-all global error handling solution.
No, an uncaught exception will be dealt with like any other self-respecting language: by not ignoring the problem and pretending it doesn't exist. If you write bad code, your program will crash, and you can't rectify a bug in your code by ignoring its presence entirely and using duct tape to scrape something together.
Back on the topic of multithreading, though. Multithreading is known to be hard, that's true. But how do you deal with a difficult solution? You simplify it and break it down, not just disregard it completely; because multithreading has its great advantages, too.
Like, how about we talk performance?
How about distributed algorithms that don't waste 40% of their computing power on agent communication and pointless overhead (like the serialisation/deserialisation of messages across the execution boundary for every single call)?
How about vertical scaling without forking the entire address space (and thus multiplying your application's memory consumption by the number of cores you wish to use)?
Some will say that the performance gains aren't worth the risk. That the possibility of race conditions and deadlocks aren't worth it.
That's the point of cooperative multithreading. It is a way to smartly work around these issues.
If you use promises, they will execute in parallel, to the best of the scheduler's abilities, and if you chain them then they will run consecutively as planned according to their dependency graph.
If your code doesn't access global variables or shared closure variables, or your promises only deal with their provided inputs without side-effects, then no contention will *ever* occur.
If you only read and never modify globals, no contention will ever occur.
Are you seeing the same trend I'm seeing?
When someone says we shouldn't use multithreading because it's hard, do you know what I like to say to that?
"To multithread, you need a pair."18
Nothing quite like spending a day coding with a friend on a project way over your head and actually making progress and learning shit. That feel when you run your script and it gives a DIFFERENT error? Or when it doesn't even crash at all?? Or when it ACTUALLY WORKS?!
Once went for an interview for a senior web developer role. The first interview was a coding test ( not a problem, been coding for years and know I can do it). The company boasted that it supported pair programming.
I was sat at in an open plan office In front of a machine and given a question sheet of 10 code questions/puzzles and asked to solve them. Then out of nowhere 5 other senior devs appeared and stood behind me and proceeded to comment /question every single line I typed (so no pressure then).
I did questions 1-5 (fairly easy tbh) but all the devs behind me critiquing every single line started to drive me crazy so I asked if it was normal for them to interview this way and was told 'yes' and that after a year of trying to find someone they had been unsuccessful.
I told them that I wanted to leave the interview at that point; I don't mind my code being critiqued just prefer it when I've at least finished the line. Forcing you into a pair programming scenario in the interview really didn't feel right.
To this day (2years later) I still see ads for that very same job3
Try pair programming! I've never had an official pair programming session, but I'll be damned if my best code and quickest solutions didn't come from having a bitch session with my coworker. Just having to talk it out or having that second set of eyes can work wonders. Plus you have a built-in de-stressing outlet to help you sleep at night.3
My first work was a paid internship.
My first couple weeks on the job I was supposed to be working on the same machine with another dev to get the gist of the process and everything. Kind of pair programming mixed with mentorship. Sounds cool?
Yeah... Problem is my fellow dev was more interested in spending around 80% of her time chatting around with her boyfriend and friends on Microsoft Chat.
Anyway, I soon got bored of having to look to the other side all the time, and went to our boss and asked for some other stuff to do "because I'm better learning by doing than by example".
Almost 20 years later, I'm still in touch with this dev... But she soon left the job and pursued a career as a translator and interpreter. She was always more interested in talking than programming 😃1
On the screen: four text boxes cycling through rainbow color backgrounds and spinning wildly in circles.
Manager walks in.
Here's the context.
We were pair programming and working on a simple form. We were just finishing up the style, and I suggested we use a CSS3 animation to make the invalid fields pulsate a light red once.
I'm the young guy in the office, so I am most familiar with the "new" front end stuff like flex and CSS3.
My colleague was unfamiliar with CSS3 animations, so I implemented the red flash quickly and showed him.
He was curious what else you could do with CSS3 animations, so I changed my "to/ from" to a "0%/ 25%/ 75%/ 100%" style animation to show how keyframes worked. Then I made the animation iterations infinite so it went on forever. Of course, I didn't have any normal colors on hand so I just went with my debug colors: red, green, blue, yellow, etc.
We submitted the form with invalid inputs and sure enough, they flashed rainbow colors. It looked pretty funny so I thought "haha, lets quickly add rotation while we're at it"
That's the point where the education turned to a little fun but it wasn't going to take more than a second.
So we did it and it looked pretty funny and it actually made me laugh. Then we started discussing next steps on the form (back-end). Discussion lasted maybe five minutes before our manager visited to update us.
As we were discussing, the invalid controls were still spinning and rainbow colored in the background. Whoops.
The words we managed to say were just "It's invalid" and then we broke out laughing.3
when you go to a coworker for pair programming and he insists that you write on his very very dirty and since 10 years never cleaned keyboard...5
We have a developer that is known for rejecting PR during code reviews.
He sent me a message and asked me to come to his desk to discuss my PR.
He mentioned that he didn't like my solution and suggested to rewrite the code together.
So far so good, he is a senior developer and I'm sure I'll pick something from the pair programming session. He went with his approach and faced some issues that led us to my solution after nearly 2 hours.
I'm not angry because this scenario happened at least 3 times but how do you guys deal with senior developers that are stubborn?7
Hate Pair Programming. You either have an over smart sob who'll just keep blazin through things without giving a fuck whether the other person is able to catch up, or you get a lazy asshole who just keeps checking facebook on his phone!! Fuck pair programming!!7
> Young dev apprentice me pair programming with another developer
> Dude checks bug report of a customer, saying something about a "Blind SQL Injection"
> Young me asking what that "Blind" part means
> "Dunno man, maybe u gotta close your eyes when hacking this"
Guess what, the issue was never fixed
Pair-programming... I can't pin-point an exact time, but nearly every time I do pair up and program with someone I have a blast.
Programming with a best friend. Knocked out a project in no time. Just a friendly race between friends.
36 hours here.
It wasn't really work, but I went to FOSDEM 2 years ago with a friend of mine that's also a hacker (hardware stuff mostly). So on Saturday we went to all the talks fully energised, when that was done we got back to his home to "sleep", but there's so many other projects to do!! At the time we felt like we really needed a weather fetching thingy in our IRC client (I think it was Hexchat) but that didn't exist yet. So we built it, kinda in a pair programming way, all night long. Oh, it's morning already?! Time to go to the Sunday talks! We were both complete zombies by then, but somehow I still remember a little bit of it.. some ass who was showing oh-my-vagrant (boring as shit) and some other stuff. All in all, 36 hours on the counter when I got in bed completely wasted, but it was so worth it ♥️
I really miss putting on some headphones and getting shit done while listening to some rock.
I like pair programming, but doing it all the time is starting to feel exhausting. I need some "me" time, ya know?2
Pair programming is cool but please... if you're done with your work and nobody ask you for help or a pair programming session.. don't go to the most busy collegue and start working on his problem.. maybe he is debugging/trying some special and ultra complex functionality on his own! Try to ask if someone needs help before jumping to the next desk!
I was pair programming today with one of the seniors in VS. He thought it was weird that I had docked solution explorer to the left side instead of the default right. This makes me wonder, why is solution explorer docked to the right side by default when in almost every other editor (even VS Code), the "document overview" is always on the left?5
I long for the day I get a job with an actual developer team, where I can do things like getting my code reviewed or pair programming or being forced to write better tests.
Working as the only developer (or a team of 2) sucks :(4
JuniorDev ignores every advice, writes bad code and complains about other people not working because he does not see their result because he looks at the wrong places.
Okay, so I am really fed up right now.
We have this Junior Dev, who is now with us for circa 8 months, so ca. a year less than me. Our first job for both of us.
He is mostly doing stuff nobody in the team cares about because he is doing his own projects.
But now there's a project where we need to work with him. He got a small part and did implement that. Then parts of the main project got changed and he included stuff which was not there anymore. It was like this for weeks until someone needed to tell him to fix it.
His code is a huge mess (confirmed by senior dev and all the other people working at the project).
Another colleague and me mostly did (mostly) pair programming the past 1-2 weeks because we were fixing and improving (adding functionality) libraries which we are going to use in the project. Furthermore we discussed the overall structure and each of us built some proof-of-concept applications to check if some techniques would work like we planned it.
So in short: We did a lot of preparation to have the project cleaner and faster done in the next few weeks/months and to have our code base updated for the future. Plus there were a few things about technical problems which we need to solve which was already done in that time.
Side note: All of this was done not in the repository of the main project but of side projects, test projects and libraries.
Now it seems that this idiot complained at another coworker (in our team but another project) that we were sitting there for 2 weeks, just talking and that we made no progress in the project as we did not really commit much to the repository.
Side note: My colleague and me are talking in another language when working together and nobody else joins, as we have the same mother tongue, but we switch to the team language as soon as somebody joins, so that other colleague did not even know what we were talking about the whole day.
So, we are nearly the same level experience wise (the other colleague I work with has just one year more professional experience than me) and his work is confirmed to be a mess, ugly and totally bad structured, also not documented. Whereas our code is, at least most of it, there is always space for improvement, clean, readable and re-useable (confirmed by senior and other team members as well).
And this idiot who could implement his (far smaller part) so fast because he does not care about structure or any style convention, pattern or anything complains about us not doing our work.
I just hope, that after this project, I don't have to work with him again soon.
He is also one of those people who think that they know everything because he studied computer science (as everybody in the team, by the way). So he listens to nothing anybody explains to him, not even the senior. You have to explain everything multiple times (which is fine in general) and at some points he just says that he understood, although you can clearly see that he didn't really understand but just wants to go on coding his stuff.
So you explain him stuff and also explain why something does not work or is not a good thing, he just says "yes, okay", changes something completely different and moves on like he used to.
How do you cope with something like this?6
Once I was pairing with a colleague on his box. His setup is three screens; two large monitors and his MacBook. On the Mac, he has a messaging service that syncs his texts. Unbeknownst to him, his wife sends some dirty pictures to him. I don't know how long they were there, but once I saw them I politely tried to ignore them with no avail. I lost my train of thought and just laughed. He figured out the issue and quickly closed the chat. He was cool about it, saying our build times wouldn't feel nearly as long if he left it open.
Pair programming gone wrong? More like "gone right".1
Don't be afraid that pair programming will show up your inexperience, embrace it as the quickest way to build that experience!
My senior and I started pair programming to improve my code quality. He likes it and I find it fun (and convenient that he helps me) but it feels like I'm making him do my work. I also fear that I am too horrible to be trusted with code alone but if that was the case they would kick me out right?5
I worked at a startup that indulged in pair programming thing. Where as a junior, you'd be partnered with a senior developer.
My mentor, always insisted on having shortest variable names possible, so that the "size of codebase" will be very small.
It was a nightmare going through his code and understanding what's he's done. Best part, no comments as well.
In a way it has primed me to go through any codebase possible.5
About a year ago, the organization I work for decided we don't really need team leads. We would be more self organizing if we didn't have technical leads. Now, one of those former leads who feels out of place can't get over it. She is constantly trying to add her two cents -- which is totally cool -- but in such a way as to make it sound/seem like we need to do what she says. Also, based on everything I've seen from her coding ability, I'm not sure how she ever became a tech lead. That's coming from me, and let me tell you, I feel SUPER junior sometimes. Like how the hell did they ever offer me a job junior. Well anyway, another dude was working with her the other day (we do pair programming) and snapped. He flipped out for like a solid 3 minutes on her. It was the most awkward thing I think I've ever experienced.3
Never knew VS live share can do so much! Pair programming becomes so much easier now!
In case you are a VS code peasant like me:
Visual Studio Live Share Can Do That? https://smashingmagazine.com/2018/...
Just started a new job three weeks ago. I was doing pair programming with another developer that has been there two years; I was assigned an issue and wanted his opinion on it. He implemented a fix that involved multiple complex if statements.
He was surprised after I went ahead and showed him that the variable in question could be used (it was either 0, null, or > 0) like a boolean. I brought it down to 3 lines; a single if statement. Felt like a boss.
What do you think of pair programming?
Does it automatically allow for (much) higher quality code?
Is there truth and practicality in it?
Have you applied this in your company?
I think it's a bit of a dogma and its benefits depend on whom you're working with. Sometimes two incompatible people will waste each other's time, or a person who works much better alone will instead work in a worse manner.
I know for a fact there are colleagues (including myself) who can't stand it when someone else is looking at their screen.
Visual Studio Live Share is finally available for the general public! I beta tested this, it's great. Check it out:
Much better than pushing and pulling with git for pair programming.3
If you're stuck with something and just cannot figure out where the issue is in your code, there is nothing that helps you more than talking the problem out with someone.
Most of the time you'll end up figuring out the solution yourself while describing the problem to him/her. =)2
Pair programming, hands down. I enjoy the hell out of it but it leaves me mentally and emotionally drained by the end of the day. My co-workers echo this sentiment so I know it's not just me.2
Logging work in Jira, because it goes against the whole ethos of trusting people to get the work done when they have to log exactly how much time they spent on each individual story. It also doesnt account for pair programming. so 2 people log the same time and it looks like the story took twice as long. I’ll stop now because I’m precariously close to opening the “time based estimates” can of worms and thats for another rant.4
I've known about ligature fonts for about two years now. First thoughts where "ewh Im not gonna get used to it".
Kinda forgot about it until someone mentioned it to me. I tried it out since it was built in IntelliJ and don't want anything else anymore. But when pair programming I do get some confused looks.
What is your opinion on ligature fonts like Fira Code?2
Pair programming/debugging with the new dev is like pulling teeth. OMG he is slow. He wants to write down Every. Single. Thing. Point. By. Tedious. Point. I wouldn't usually mind (after all, everybody has their own preferred method of learning) but I've currently got a to-do list longer than Kanye West's List of Rediculous Lyrics to Work Into My Next Song.
Agile coach Agiling: We shouldn't need code reviews as long as there is pair programming.
Me Internally: bad code + bad code doesn't make good code :(
Pair programming a major refactoring, colleague tries to change _everything_ simultaneously. Spent hours fixing compiler errors, now it's not linking. ¯\_(ツ)_/¯
could lego please make this a thing? as there are several small kits available something like this would make for a nice pair programmer 😄2
A few years ago I worked at company specialized in Magento(eCommerce) and Magento was changing their licensing model. At the time they had 3 Versions. Community(free), Pro and Enterprise.
They decided to ditch Pro and either make all migrate to Enterprise(with a discount) or go community which wasn’t really compatible. So some shops were in need of a more or less complete rewrite.
My hdd crashed literally the day before but hey no big deal everything is 99% done and on staging. So I had a Trainee at that Time and thought the last few crappy things could be done in pair programming so he can learn a few things.
But fuck him! That motherfucker! He managed to WIPE the staging server and no that was at a time without gut and no SVN. That dipshit just deleted 2 months of work because he thought it was a good idea to SYNC his empty project to the staging system.
Oh god I nearly stabbed him. He did that shit out of his own mind even though I told him a dozen times what would happen... we had to do the whole thing again with me sitting next to him watching every stroke he made.
Guess he learned something while inward silently raging the next weeks.1
My first time doing a pair-programming for uni assignment.
My partner is actually smart (a Mechanical Engineering guy), except when it comes to programming :
1. Don't know how to spell FALSE
2. Don't know how to create array in Matlab
3. Poor variable naming
4. Redundant code everywhere
5. Not using tabs
6. Stealing my idea and spit it again in my face after claiming it as his idea
7. Mansplaining every line of his code like I am a stupid person who never sees a computer before.
He said he has an experience in Matlab, wants to specialize in Robotics and taking several ML classes. What did they teach anyway in class to produce a shitty programmer like him?
Thankfully despite his being an arrogant shitty guy, he still manage to get our code to works.
That's good because if not, then I will happily push his head under water while slowly watching him drown.
Our company fails the Joel test so badly, most strongly on the question 'Do you use the best tools money can buy?'
I've got the best laptop in the company, which is why I'm not allowed to complain (even though I do, see image), but some of my co-workers have dreadfully slow machines. I pity them so much, especially whenever I sit next to them to do some pair programming e.g.41
The main benefit of an office environment for me is - conversely - the best part of working from home. It's super useful to be able to just summon someone for a 7 minute pair programming session, but i have a much greater focus at home when I know I won't be interrupted during work hours.
This whole situation is definitely making me want to work more from home and I'll probably try to make it a regular occasional thing in the future.1
Let's see how many of us can use programming skill outside in real world.
Pair socks from a pile efficiently?11
First day developing in Rust. First day developing using the actor model in Actix. First line in a new production codebase.
Learning programming, networking, robotics, and other technical skills are very important but do not forget that these are future working software developers.
They will need to know a lot more intangibles. Like effective pair programming, performing proper git pull requests and code reviews, estimating work, and general problem-solving skills and more.
These people will be learning technical skills for the rest of their life (if they are smart about it) but what can really get them ahead is the ability to have good foundational skills and then build the technical skills around them over time.
Doing pair programming while I was navigating on somebody else's computer, we hit a weird behavior that our code changes weren't reflected.
Trying everything it turned out: I forgot to save.
Yet: Why though would you make me save? And why did the IDE not warn me about compiling unsaved changes? I think it was eclipse for Java, oh well. What can I expect ...
Anyways, I have gotten so used to my editors autosaving content for me as I write it, that I completely forget about doing Ctrl + S myself.
I never understood the need to hit that key combination manually as if I break something: `get reset --hard` will help to get me to a working state. (And even if I mess it up differently, my IDE's local history also let me restore recent changes.) And if it is a workign state, then I like to commit early and often. and
I am really dumbfounded why people insist on hitting save themselves.8
Trying to convince the class that test-driven development + DTSTTMPW ("do the simplest thing that might possibly work") + pair programming is the way to go, our software dev prof had us split in groups of two that would each get a turn to
1. add a unit test
2. edit the code so it passes the test
3. commit the change
The goal was to write a java class that converts integers to roman numerals.
Each group had only 2 minutes before the prof made them revert their changes.
After 45 minutes the code was just 10 lines of this:
if ( n == 1 )
else if ( n == 2 )
else if ( n == 3 ) ...
I love listening to music when programming. It's not something I started because I wanted to, but it just kinda happened.
In my first job as an intern, they followed concept of open office, a very shitty strategy as it led to chaos and noise all the time around my desk. To move away from that, bought a pair of Sony headphones, which I still consider as my best investment.
Started listening to songs since they're a better choice in the cacophony of chaos present around. These days, even though I work in a regular and calm environment still can't seem to get rid of the practice of listening to songs.
Anyone here have similar experience??
P.S. Suggest some good songs to listen to while programming!!1
I was having some trouble accelerating the delivery of a new feature and so my team leader joined me for some pair programming (awesome!). Five minutes later I was selecting some, text while explaining some problems, and he stops me.
Team leader: you know, you can select all that text by double clicking it;
Me: ok (continuing to explain)
Team leader: you have to be faster with that;
Me: That's not the point right now;
Why do people focus so much on these little things?! I really like pair programming, or just pairing to think about a problem, but this kind of things really get under my skin...
(Silver lining: Cool team leader that didn't snap after I told him to focus 😅)2
I'm considering switching to a tiling windows manager. The main thing drawing me back is that in my job we work a lot on each others computers (helping, debugging, pair programming...).
Will using a tiling WM make my workspace hard to use for somebody else ? It would be disqualifying7
Raise your hand if you legitimately pair-program at least once a week or more!
Your some rad cats!
Put this as a comment but felt that it needed a post of its own.
I ducking love my fuck (see what I did there ;P) He my little coding buddy, I gave him a little back story and everything.
This is Francis (although he insists its Frankie) He transpecied (a duck in a penguins body) so he always has a "short-man complex" little attitude all the time (unless its because he never gets a word in before I figure out the bug myself =S )
My team is forcing pair programming. From past experience, it's never worked for me, it slows down my work by 10x because of my sporadic programming style.
Seniors and Architects, what are your thoughts? I've seen it do wonders for novice devs, but the return seems to decline with experience.1
Rant here... Consistent daily Mob or pair pair programming is for noobs, non-competent programmers that delay deadlines and cannot hold their own in corporate development environments4
Isn't pair programming kind of stupid in a workplace environment when you pair a junior and senior?
In that you that you pair someone that would be able to solve the task himself and one that needs still help to solve the task.
Why shouldn't the junior struggle on his own a bit before asking questions?6
tomorrow i will (finally) get a new teammate,
was working solo for 8 weeks now and in 2 months i will become parent and will take some time off
i wonder what's the best way for onboarding
i think i will try to do some pair programming until he gets the basic architecture and feels safe enough to work on his own
what's your experience on this, best onboarding you had?6
Pair programming. I noticed my productivity and motivation skyrocketed when I found about VS LiveShare, so now I share all of my code sessions. even if nobody's there, i still work more because I like showing my progress to others.1
It is ok to fail and commit mistakes, that's part of the game, specially for beginner devs. Just avoid failing alone, the most you can!
- Ask people to review your code before pushing to the source repository.
- If you are not sure how to do, ask.
- Never work in production environments without supervision. Pair with someone.
- Have a desk mate for rubberducking (https://en.wikipedia.org/wiki/...) and blame it in case you need
I need to find a remote job... or want to... had been thinking about the benefits re: annoying coworkers, however I'm teleworking today and realize another pro: cat pair programming ;-) and con: readily available snacks. Hm...3
Bruh, tbh, this is kind of going to be a sad rant.
tl;dr: LEETCODE THE FUCK UP AND GET INTO FANG.
For all the people out there, just stop fucking around with small companies/startups early in your career. Leetcode up and get into FANG. Once you have that validation, these startups will be much easier to get into.
I have gone through this first hand.
After amazing on-sites with multiple startups, where everyone said that I'm the kind of person they're looking for (background wise: CS grad, startup experience, 2+ YOE as a fullstack Dev using Java, py, js and all the famous frameworks you could name), they rejected me.
Heck, a company flew me out to SF from Seattle where I think I had had my best on-site ever. They rejected me today. The sad part is that I actually for once really believed in the mission of the company.
At this point, I have wasted so much time reading about the xyz startup that's about to disrupt pqr industry (to prepare for behavioral/cultural interview), practiced for such shitty interviews like pair programming etc., worked on numerous take home projects (completing all those "bonus" parts) and deploying it and spending money out of my own pocket for that.
I'M JUST FUCKING DONE WITH THIS SHIT.
I have given mock interviews with ex bosses and friends and they told me that I'm good. Heck, I even solved a LC medium in 20 minutes (optimal solution) but still got rejected.
I'm kind of writing this for myself and people who are on the same boat as I am:
Get into FANG and then think about other shit. STOP looking for smaller companies and being scared of getting your ass kicked by a Leetcode interview. Any company who would not take LC interviews will prefer someone from FANG unless you're lucky as fuck. You don't want your career to be based on luck, man. That shit's not gonna take you anywhere.4
Getting an interview tomorrow with a pair programming test. I've never done pair programming (they know it), any tip?4
The 20 minute rule:
If you are unsure about a problem, you MUST spend 20 minutes trying to solve it yourself. If you havent solved it in those 20 minutes, you MUST ask someone for help.
Never tried this in practice but it sounds decent in theory. 2 heads are usually better than 12
Learning a new programming language is a lot like putting on a new pair of underpants. At first it's restrictive but then it becomes a part of you!4
Working on a feature on my pair partner's machine with a completely different hotkey layout = instant disorientation and usually a persistent stream of "shit!", "no!", and "wtf why do you use this layout??"
What is a good start in go?
My wife wants to upgrade her coding skills from „I heard it at college“ to „I actually did something with it“.
I want to learn Go and start coding a bit more. My background is mostly C++ (Backend) and a bit Java (Fronted) some years ago before I went more into testing. For test automation I always use the language that makes the project happy, often Java.
We want want to join forces now, take a vacation and implement a small microservice in Go for my wife’s product (she is a PO) using pair programming.
I want to prepare that a bit. What is a good course or web tutorial to start, that some of you took and can recommend?
Thank you very much!!6
When you're getting roasted and given tasks of fixing and changing some code you didn't write trying to get a PR in, and the person you paired with who wrote it has moved on to other work.
Moreover you'll be stuck taking the blame down the road if they don't fire you, as the policy is to rebase squash merged in PR's so it will all unfortunately be under your name.1
When you've been pair programming to help solve a collegue's problem, only to come back to a cold chair again.2
Had so much fun doing crowd-programming to troubleshoot an issue at work yesterday! Because, you know, three is a crowd. ;-)
Not to sound self centric, but a cyborg clone of myself with close to but not fully true consciousness.
Would always have something to talk about and would probably be a great pair programming partner as we'd be almost in sync and on same wavelengths ;p
I started this one project as hobby, later on becomes we and we search for client. He assisted upto 30% only ui design. Now I am working 18,19 hours just to complete 2 project simultaneously. horrible experience taught me make sure you make written agreement before working as pair or partner
Today, I discovered a new software development methodology being used by co-workers. No, no, it's neither agile nor pair programming. It's called disruptive programming:
A methodology where it's ok to make sure your part of coffee works. Fuck the rest and let them go figure.
Was having a look on some videos about Vim and discovered the tmux+vim IDE like workflow. Why isnt this more popular? I find it insanely awesome. Especially the pair programming part. Drivez me crazy for not having programmer friends.6
wow I have never seen a female developer pair programming with another female developer! Maybe something Is changing...
then again female dev rate at my company still is extremely low3
Well my PO introduced the concept of owning stories (which we naturally used to do) in our pairing environment. After we gave names, we started seeing each other like seven different kingdoms. Suddenly my PO looks like Cersei. And I am looking like Theon Greyjoy, hardly worried about other stories and stuck with no pair to complete my stories. That's how pair programming died a casual death.
P.S : Tomorrow is my (our) demo !! 😭😭4
!rant && silly
Well so I was thinking of ways to proposing to my non existent geek gf, so far I thought of
Would you do pair life programming with me?
How would you do it?4
I once had a colleague ranting about my variable naming because it went out of bounds on his IDE's printmargin. To please him i wrote minified code while pair programming
As it seems to me like only a few people seem to learn something about TDD, and XP is reduced to pair programming: who has learned more about these topics?4
My vague naive extreme understanding of interview questions are on a spectrum from situation a to situation b.
But what should the industry be doing? Is the industry just going wrong blindly copying big N companies hiring process without the same rationale? (e.g. they need computer scientists able to deal with problems specific to them at their size and that often means creating new tech, unreal problem solving abilities and cuh-rayzee knowledge)
a) stupid fucking theoretical shit that some people argue you won't ever need to be doing in practice for most companies, while giving you no ability to google, leetcode hard problems kind of stuff
b) practical work similar to what you'd be doing on the job, small bugs, tasks, pair programming on site with your potential future coworkers
Lots of people hate option a because it's puzzle/problem solving that isn't always closely related to what's on the job. Whiteboarding is arguably very much a separate skill. (Arguably unless it's like a big N company where you want computer scientists to deal with specific problems that aren't seen elsewhere, and you're making new tech to deal with your specific problems.)
We could go to the extreme of Option b, but it tends to trigger people into shitfits of "NO, HOW DARE YOU MAKE ME DO REAL WORK, BUT NOT PAY ME FOR IT AT THE INTERVIEW STAGE"
That's before we get into how to execute option b whether or not it's being given as a take home assignment (which is a huge pain in the ass and time sink, among other issues) vs a few hours at the potential workplace working with some of the future potential coworkers and soaking in the work environment (you have to figure out how to take the time off then)
Is it really just poor execution overall for the wrong use cases for the majority of the industry? What should the industry be doing in which cases.
Then this is all before HR screening with shit like where they might ask for more years of swift experience than its existed.
Has anyone had experience in an exclusive pair programming environment? Do you feel you can still be creative? How does it affect your individualism? How can you grab some headspace when you need it?1
If I had dev superpowers I would build a program to do pair programming with you. When it spots a mistake it let's you know and shows the best possible solution you should be using instead. #keepOnDreaming
Do you speak it?
We are a community of motherfucking programmers who have been humiliated by software development methodologies for years.
We are tired of XP, Scrum, Kanban, Waterfall, Software Craftsmanship (aka XP-Lite) and anything else getting in the way of...Programming, Motherfucker.
We are tired of being told we're socialy awkward idiots who need to be manipulated to work in a Forced Pair Programming chain gang without any time to be creative because none of the 10 managers on the project can do... Programming, Motherfucker.
We must destroy these methodologies that get in the way of...Programming, Motherfucker.3
How do I create a Collab..
Well, I'm looking to form a team of 2 - 4 members. We will be devoted to learning machine learning through books, Kaggle, self assignments and various group discussions and pair programming. We will form a group name, open a GitHub account and upload our projects there. Am looking up to extending it to build projects together. This can also help us build our portfolios.
There are no tight requirements. But some good programming skills especially in Python will be great and a good understanding of high school math. We will be learning together.3
Side projects, also, when I read something interesting I make a small example using it myself to understand it, well some other things too like: attend meetups, pair programming, helping buddies with their issues (you don't have to know everything to give a hand), read blogs/books