Maybe look around for an active open source project you'd like to contribute to, and ask around its community and propose a regular pair/group coding session?
Edit: Crucially, we all took turns "driving", even during a single meeting. Sometimes someone wanted help on a branch, and they started driving and then someone else "took the wheel" for a few minutes then passed it back.
I found our interactions were similar to session-style sports, like skateboarding or bouldering. We all attempted a challenge together and could see how each other approached the problem. As in sports, sometimes even knowing something is possible is all you need.
As far as excitement and collaboration goes: this is a culture and communication problem. If your company hasn't done a good job of training people to use the proper tools of collaboration they're not doing it right.
Same with mentorship, it should be done as a (possibly rotating) thing by people who are trained to do just that: be good mentors. This is not a burden that should fall on the uninitiated. This should also have concrete expectations for everyone involved. Its a job in and of itself, after all.
All of these things point to cultural company deficits, they're not an inherently immutable thing that is a downside of remote work.
Some remote workers here dismisses even that, because it disallows them to take residence at the other side of the world from the office. Mileage truly may vary.
I'm sure it's useful for training and mentorship, but that's frankly not your employer's problem these days. People switch jobs every year, and if you train up staff only their next company is really going to reap the benefits. If learning on the job raises retention then it's only marginal. If anything it makes people "worth more" and they more easily find the next gig that comes with a pay bump
You can easily skill up by:
- watching conference videos on YouTube
- during code review
- go on your lang subreddit or forums and read about how other people skin their cats
What you want is basically unstructured interruption based code review ~ which is nice for the junior but horrible for productivity over all
I had the luck of working with a dude who was extremely good at analyzing data, simply by loading json files in sublime text, doing a mix of pretty-printing, multi-cursors changes (with usually 1000+ cursors), regex-foo, playing with buffers and other linux commands. It was a weird set of skills that was truly magic to behold, and not amount of Youtube conference or code review could have replaced that.
There are some coding livestream that can help with that, but it's not as efficient as being in the room as talented peoples.
I can't even count how many times I had to tell other engineers, that they have to run a clean build locally...
Not to mention, that mentorship can be useful just for the processes that are present within the company.
It may be a bit harder now because as programming became more high level, the cadence of development went up. However I think the skill set that you gain when you are force to work at a lower cadence (and spend more time "sharpening the axe") is still valuable.
That said, I can attribute one positive effect in my career to having worked in an open office. Early in my career, I happened to overhear someone on the phone dealing with an Open Source licensing issue (and I genuinely do find Open Source licensing interesting), went over to chat with them afterwards, ended up finding out about the company's Open Source review process, one thing led to another, and not long afterwards I co-ran that process company-wide (for a 100k+ person company), which I really enjoyed and which provided a great deal of visibility into all the work happening in the company.
I don't think "happened to overhear one side of someone's phonecall and strike up a good conversation about it" is a "benefit" I'd say is worth the pain of an open office, but I still want to acknowledge it.
At IBM working in a satellite office, I wanted to contribute to Jenkins. The fact that any person with the authority to allow me to do that was "behind an office door". Multiple emails back and forth - I ended up ditching the idea of getting the approval and quit IBM.
Closed doors should be for focus time, which should not be "all the time". Having small team offices and quiet rooms - can contribute to people's ability to focus. But personal offices is just another door that stops people from collaborating will inevitably stop a lot of valuable collaboration.
Everyone's different, you wanted a mentor next to you, many don't enjoy that relationship. To answer your question, looking at the fresh graduates we take, extremely detailed code reviews, a lot of chat and some pair coding on the overly difficult parts seems to be working good enough for them to reach a decent level within about half a year.
Like an open zoom meeting where people unmute themselves only they need to ask something?
With the additional focus-aiding utility provided by services like focusmate?
Similar to people gaming online with audio chat but more disciplined.
Combining home office with virtual open floor communication on demand.
I'm curious to see if there's been studies on its efficacy, and whether or not those studies agree with my entirely anecdotal experience.
The bad: it's a little too cutesy, a little too "gamer" targeted. It's a little tiresome.
The fantastic: In a call, you get individual volume sliders (and mute buttons) for every single participant. I cannot use Zoom after experiencing this, it's simply intolerable to be at the mercy of the person with the loudest and most obnoxious mike/background noise
You're confusing collaboration with physicality. Too many people make the mistake of thinking that they need to be sitting next to somebody in order to ask them questions, or have a quick chat, or get them to teach you about a project. Those are all things you should be doing in remote work as well.
They consistently happen at greater frequency with proximity.
Three years of wfh with terrible results before we started returning to the office one day a week, has shown me that proximity is a deal breaker for anyone who wants to progress into roles that require mentorship of others.
I also probably helped him brainstorm ideas with me and debugging, since he would just say what's on his mind while doing it, and I'd do the same, and sometimes this kind of ping pong debugging/brainstorming together yields way better results than solo work. I really like one time he was trying to see how to open the chrome debugger to debug the chrome debugger, and I just knew how to do it (same shortcut while focussed on open debugger) since I had done it by mistake :D
I am convinced that you get more in a collaborative environment having a few devs sitting next to each other in pairs/small groups that they enjoy being with than anything else. IMO with remote work you get hidden inefficiencies that the company can attempt to fix by just hiring more people in the team (and a culture of let's do less meeting, less face to face, more work) takes over and that 1+1=more than 2 environment I was very excited about is gone..
Can someone who is a fan of remote work tell me how a new grad excited about writing code could find a mentor and really up their game in the remote world with what's becoming "standard" way of doing meetings etc?
A counterargument to what I describe is how successful open source projects have always been remote with passionate people working on them