Pair Programming  “Employers not only recognize, but increasingly more often expect to see collaborative work on individual portfolios… This is quite simply because very few work individually in production, and nobody works without having to communicate on the job.” Julius Dobos, Cogswell Polytechnical College Collaboration skills are worth their weight in gold. As a professional, you will almost certainly work with other developers, designers, and businesspeople on every project, almost every day. A great way to learn these skills and improve your ability to communicate is through pair programming. Pair programming involves two people meeting together in person or online to share a screen and work on something together. This might include working on a project, building a quick demo, or completing a challenge on a site like freeCodeCamp. Depending on the setup, you might have two keyboards, mouses, and mirrored monitors connected to the same computer. This works well if you are pairing in person, although you could just as easily have one person observing while the other person controls the keyboard and mouse. Another way to partition responsibilities is to have screen sharing programs that virtually connect both users’ computers and allow them to simultaneously write and edit code without having to take turns. This chapter details how to find a partner and get started with pair programming.  Benefits of Pair Programming Here is a quick list of the common benefits of pair programming while you are learning and looking for your first job. Many em- ployers use pair programming on the job to help with on-boarding, training, and solving certain problems in the code (sometimes two heads are better than one! ). •Get help for problems you are struggling with •Receive support and encouragement •Learn faster through teaching and observing •Good for interview preparation •Write better code •Validate your ideas and solutions •Opportunity to build relationships  Finding a Partner You have a few options to find a partner for pair programming. The first is going to local meetups or tech events and asking the peo- ple you meet if they would like to pair with you. Working together in person is great for building personal connections and helps with improving communication skills. In my experience, it is also a good way to find someone with more experience than you who is willing to mentor you as well as pair program. A second option is to post on a coding forum or chatroom that you are looking for a pair programming partner. This is the eas- iest way to find a peer at a similar level as you and enable the two of you to push each other to grow. Some good websites for finding a partner are the freeCodeCamp forum and Code Newbies chatroom or Facebook groups. You can also try the ”programming” and ”learnprogramming” subreddits (forums on Reddit.com); they both have large, active communities. Note: There are websites like Code- Mentor.com that allow you to pay to pair program and receive coaching from senior software developers. If you feel like you need a mentor and cannot find one locally, it might be a good option. Getting Started Start by collectively choosing a project or problem to work on. If it is your first time with a partner, it is best to select a programming exercise that can be completed within a few hours. freeCodeCamp or Hackerrank (hackerrank.com) challenges are perfect for this. You can also try to build small features like a menu or shopping page directly in Glitch.com, Codepen.io, or JSFiddle.net so there is no time lost from having to set things up locally. This will let you see how well you work together and, if there is a connection, you can pair on some more complex problems or applications in the future. How to Screen Share Fortunately, there are many free platforms available for screen sharing. If you do not have a solution already, I recommend checking out these options: Glitch, Visual Studio Code, Zoom, Skype, and Discord. As of the writing of this book, Glitch is my favorite option to virtually collaborate with others on small projects. It allows you to work in the same virtual codebase and add, edit, save, and display HTML, CSS, and JavaScript files. They even have an option for building a back-end with Node.js in their browser-based interface. The only catch is that there isn’t a voice chat yet so you will prob- ably want to use Skype or another platform to make a voice call and then work on the code inside Glitch.com. Zoom, Discord, and Skype all have similar functionality. They let one participant share their screen with the other people on the call. I have used all three of these and they work well for collaborating. Discord is a bit more finicky than the other two because you have to be “friends” and start a private chat to use video calling and screen sharing features. Zoom limits you to calls that last 50 minutes for the free plan, so it might not be the best option for longer calls. Visual Studio Code is a great free code editor that has a live sharing feature for screen sharing and working in the same codebase simultaneously. This option works well for any size of project. There is also an extra plugin that allows you to make a voice call directly from the VS Code interface (Live Share Audio plugin). You can also use virtual desktop software or other tools, as long as they do not take too long to set up. The tools I list above are battle-tested, simple, and free to use. They also work on all major operating systems: Linux, Mac, and Windows. Since available screen sharing options seem to change frequently, please check my website for current recommendations: gwenfaraday.com/learn-to-code-book. TIP: What to do about Imposter Syndrome Imposter Syndrome is term you will encounter many times as you are learning to code. What exactly is it and why is it relevant? Wikipedia defines Imposter Syndrome as “a psychological pattern in which an individual doubts their accomplishments and… despite external evidence of their competence, those experiencing this phenomenon remain convinced that they are frauds, and do not deserve all they have achieved.” In other words, it means that you see other people around you as being more intelligent or as better programmers while downplaying your own abilities. While it is completely normal to feel inexperienced when you are learn- ing something new, impostor syndrome involves an inferiority complex where you “incorrectly attribute [your] success to luck, or as a result of deceiving others into thinking [you] are more intelligent than [you] perceive [yourself] to be (Wikipedia).” This complex can come up at any stage of your learning: while you are just starting out with pair programming, giving a tech- nical talk, or even years down the road in your career. It also happens to nearly everyone when they start a new job. When you’re new to a role, it is easy to view the people who are already working at a company as smarter or more advanced than you just because they have had time to learn the tech stack ahead of you. Everyone needs ramp up time at a new company or on a new project, and anyone who shames you for not understanding or asking questions is out of touch. When you experience these feelings, try to catch yourself and remember how far you have come in your journey. Think about all of your accomplishments— all of the coding challenges you completed or apps you built. Many people desire to learn but never start. You are already ahead of them because you are reading this book and taking the first steps to becoming a software engineer. That is something you should be proud of! Remember what Bob Ross said: “Talent is just a pursued interest.” Anyone that you perceive to be more talented than you now has had the opportunity to pursue and perfect their programming skills longer than you have up to this point. You can get there if you continue to push yourself. Conclusion Pair programming is a very useful practice while you are learning to code. Start pair programming as early as possible – within your first month or two – and set a goal to do it on a regular basis. Action Steps:  1.Find a partner. 2.Schedule a pair programming session. 3.Reflect on how to make it better in the future. 4.Set a recurring date to do it every week or two if you can. 5.Repeat: Stick with the same partner or find a new one!