Here's a little background that inspired this piece. My cousin had just moved back to the USA when the virus hit, and now he's stuck at his aunt's house in Texas with no job and nothing to do. Also, he's almost broke and without a car.
His aunt is letting him stay without paying rent until he can start applying for jobs again, so he's going to be okay. Still, I don't think it will be easy for him to find a good job once the lockdown has been lifted or the pandemic curbed as unemployment is increasing across the country.
My cousin is bright, so I suggested that he start learning programming skills while the lockdown is on. This way, when he begins job search, he has a higher chance of getting a well-paying job and expanding his search to include remote technical roles.
But here is the problem, my cousin is intimidated by the sight of code. It is daunting because he has never programmed before, and I want to show him that he can learn by practicing consistently every day.
Looking for a way to encourage him to build this habit in a simple remote programming setup, I came across HackerRank pair programming, a software system used by companies to interview remote candidates with a built-in terminal and Integrated Development Environment (IDE). Given its common use as a hiring tool, however, it costs a lot of money for just me and my cousin to use as a learning tool.
I searched the internet for other good, free alternative remote pair programming tools and came across the list below. They are not ordered on a scale of preference but consist of thirteen of the best tools I came across. I hope this helps you and all others who are looking to learn, teach, or collaborate while programming in virtual settings.
Most of my software developer friends suggested we use the tmux terminal option, but while going through its process, I realized my cousin would be confused, just trying to set up the Linux environment. It is a robust tool to navigate for a programming beginner. Here is a helpful cheat sheet I came across to help you understand tmux terminal. I continued my search for other remote pair programming tools.
The second most recurring option I was referred to is much cheaper but less intuitive and challenging to learn with, especially for a beginner. This option was to use a shared Google doc and Codeshare with copied and pasted code that is run locally.
It wasn’t a suitable option, so I spent the next three hours in a deep dive looking for the best remote pair programming tools I could find. I share 13 of these below.
Motepair syncs up two or more Atom editors making actions like opening and closing files, switching tabs, selecting, moving your mouse, inserting and deleting, and getting replies from other editors possible. I tried an integration with Share.js to allow concurrent editing via Operational Transformation, which is the technology behind Google Docs.
Tuple is a Mac-only remote pair programming tool. I have worked with Tuple every day for months while pair-programming with a coworker in South Korea. It has zero lag, great audio, and seamless user experience.
Every time I’ve had to email Tuple support regarding an issue, they respond promptly and fix the problem in an update within a week or a few days more. It is a truly great product. If you liked Screenhero, you will love Tuple as well. It’s a good investment that makes screen-sharing enjoyable.
Teletype for Atom was created by GitHub. It was built to serve as a concept of real-time "portals" for sharing workspaces.
If you are worried about your code being spied on, this tool solves that. Teletype uses WebRTC to encrypt all communication between collaborators, so everything written or programmed is secured and private. Here's a look at how the sharing process for Teletype for Atom works in the diagram below.
Getting started with this tool is incredibly easy. You simply download and install Atom to start collaborating. It is a free, open-source, and cross-platform tool. You can use it on Windows, macOS, or Linux.
Microsoft Visual Studio Live Share is in the game of versatility. Everything about this tool is made to be inclusive and customized by you for your needs. When you start a live share session in Visual Studio Visual, your teammates get instant, secure access to your code in their own tools. You do not need to clone, copy, or configure it.
Microsoft Visual Studio Live Share allows you to co-edit, co-debug, have audio calls, chat, share terminals, servers, and even review comments so that your team knows what next steps need to be taken to bring the project to an end.
This tool is created to work on multiple use-cases, but also has an extensibility model that allows you to add preferred customizations to it, making your work easier and faster.
CodePen is a popular social coding program used by designers and developers. It allows you access "Collab Mode," where multiple users can edit and modify a single Pen simultaneously. The number of collaborators allowed varies depending on the paid plan.
In Collab Mode, programmers can join as collaborators. All collaborators can chat, fork, type, and edit at the same time. CodePen is an excellent tool for learning, brainstorming, and collaborating.
Codeanywhere is a smooth code-editing platform that enables developers work and collaborate in real-time. Collaborators can share their files and code from any device as they work on it. Codeanywhere also enables revision tracking and live pair programming with unlimited collaborators. While collaborating, you can click on your collaborator's icon and be taken to their current code position.
USE Together is a remote pair programming and team collaboration tool. When you share your screen with USE Together, all the participants get a mouse, type, and interact with your apps. For now, it is only available for Windows and macOS. A Linux version is coming next.
Your teammate's mouse cursors appear on your screen, and they can interact with you simultaneously or any app and data on your screen. You can also share a link for other guests to access your shared screen from a web browser without installing USE Together, third-party software or plugin.
Remote Collab is an open-source SublimeText plugin that can be installed through Package Control and found under RemoteCollab. The plugin plays the role of a bridge, allowing multiple developers to collaborate in real-time on the same project. This tool is ideal for users and developers who already use Sublime Text as a primary text editor, and requires no difficult, extra steps to host or join a remote collaboration session.
With this tool, you can share your sandbox for real-time collaboration. You can think of it like Google Docs, but for coding. You and other developer collaborators can simultaneously create, delete, edit and move files and code in a sandbox, as well as chat about your changes and move these files.
The added bonus of The Sandbox Live is that you can use it to teach code. The tool has a Classroom Mode, where students can see everything you’re doing, but you control who can edit it. Just like a teacher calling students to the blackboard one at a time, to share what they’ve learned.
Cloud9 was acquired by Amazon in 2016, and because Amazon's main business is selling, Cloud9 is now integrated with AWS CodeStar which provides their users with the tools to deploy applications to Amazon Web Services (AWS).
Another nice touch and time-saving feature is their browser-based editor which makes it easy to write, run, and debug your projects. Its in-editor code completion and code hinting suggestions also helps you code faster and avoid errors. Cloud9 also has a zen coding mode that removes all distractions and allows you focus on coding which is great.
Much like the other platforms in this article, Codeshare is an online code editor where collaborators can share their code in real-time with no registration required. However, work done on Codeshare is only available for 24 hours.
Brackets is an Adobe founded open-source code editor. It offers visual tools and preprocessor support in an easy in-browser design for designers and developers to collaborate.
Coda is most popular for its cool and easy-to-use features. It has a collaborative tool called SubEthaEdit which is overlooked by most of its user base. SubEthaEdit makes it possible for developers to collaborate and share files over a LAN or via IP addresses or special sharing URLs. With this, collaborators in various locations can code and modify multiple lines at the same time. SubEthaEdit is also free and open-source.
And there you have it. Thirteen (13) great and easy-to-use remote pair programming tools you can use in 2020.
Whether you are learning, teaching or working in a remote team, one of these options on the list is sure to satisfy all your requirements.
Here they are once again, in no particular order:
1. Motepair by Atom
3. Teletype for Atom
4. Microsoft Visual Studio Live
7. USE Together
8. Remote Collab for Sublime
9. CodeSandbox Live