Guide

Guide to GitHub Copilot for Software Engineers

Jess Feldman

Written By Jess Feldman

Liz Eggleston

Edited By Liz Eggleston

Last updated on July 25, 2023

Course Report strives to create the most trust-worthy content about coding bootcamps. Read more about Course Report’s Editorial Policy and How We Make Money.

We often hear that AI could replace human software engineers — but GitHub Copilot is a tool that developers can use to be more effective. Curtis Schlak, the Vice President of Academics at Hack Reactor by Galvanize, explains just how GitHub Copilot can be integrated into a software engineer’s workflow. With his big picture perspective on how new tools like AI affect tech careers, Curtis offers his insights on how Copilot may affect new coders. Plus, learn how Hack Reactor is adding GitHub Copilot into the curriculum as of June 2023!

Meet the Expert: Curtis Schlak

  • Curtis Schlak is the Vice President of Academics and Infrastructure at Hack Reactor by Galvanize. He’s had the opportunity to share his 25+ years of software development experience with instructors and engineers at Galvanize. 
  • Curtis helps shape the different courses at Hack Reactor, as well as guest lectures when schedules align.

What is GitHub Copilot?

GitHub Copilot is a productivity-enhancing tool. You’re probably familiar with smart auto-complete tools on your phone that auto-completes your thoughts one word at a time. Copilot does that same thing, but a lot more.

Since the launch of our first coding program in 2012, we’ve practiced a concept called pair programming. Pair programming is when two programmers take on different roles to solve one problem. One person is the Navigator who comes up with the ideas about how to solve the problem, and the other is the Driver who types the code from the Navigator’s ideas.

GitHub Copilot is the AI version of the Driver, automatically writing code from the ideas that a programmer asks it to create. Copilot has the knowledge of billions of lines of code and can create working code when given good technical descriptions. Now, both students who are practicing pair programming can be working to solve the problem, while Copilot will do the majority of the typing.

Will an AI tool like GitHub Copilot replace some programmers?

Back in the 90s, Microsoft introduced a tool called IntelliSense into their editor, which gave programmers auto-complete in your code, and everybody was like, “Oh no, this is going to ruin coding. We won’t even need a human to do it.” And here we are 30 years later, still in the same place.

New tools like Copilot can generate more code than IntelliSense, but even if they’re generating code, there are some aspects that we need from human developers as a layer between the tool and what is actually then deployed into production.

  1. We need long-term maintainability from humans. What most people don’t realize is that the code we write is actually written for humans to read. It’s not written for computers to read. So if we rely on these tools to create code, and then it creates code that’s obfuscated or difficult to understand, that maintainability factor goes way up, and that’s not a good thing for coders.
  2. Another thing we need from humans is to understand the effect of the code because it can introduce subtle bugs. If I copy a code snippet from one of the gazillion code sites out there, like Stack Overflow, and I put it in my code, I still have to understand what that code does before I feel comfortable committing the code.

I really believe that AI-powered tools are going to ramp up productivity, but at the end of the day, developers will still have to understand how to code. So I consider these things to be productivity-enhancement tools as opposed to replacements for software developers.

Why is GitHub Copilot an effective tool? What data has it been trained on?

The Open Source movement has encouraged many companies and software developers to share their code without needing to pay for it. Popular hosting services such as GitHub and GitLab now host hundreds of thousands of projects that provide public access to the source code. GitHub Copilot was trained on those open projects to learn the patterns in source code. In the same way that a person may type “Good morning” every day into their text messages, your phone learns that “morning” often comes after “Good” and prioritizes that suggestion. GitHub Copilot has done the same thing with computer source code.

How Software Engineers Will Use GitHub CoPilot

For any software engineer to start using GitHub Copilot, they have to have a paid license for it. Sometimes this comes from the company that they work for. Some software engineers even pay for it out of their own pocket. At Hack Reactor, we have a partnership with GitHub, so we can offer that license during the learning journey!

Once a software engineer has a license, they can install some kind of plugin to the tools that they use to write computer source code. Once the plugin is installed, they log into their GitHub account, and that’s it! GitHub Copilot now can start making suggestions for lines of code in whatever app they’re writing.

Right now, is GitHub Copilot primarily for back-end development or front-end development? Or can it be used for both?

It can be used for both, but that comes with some very strong warnings. Most big companies will write their own frameworks for both the front end and back end. These are frameworks that GitHub Copilot knows nothing about because they’re special to that company, part of their secret sauce. In those coding environments, GitHub Copilot may be a bigger distraction than helper.

In Hack Reactor courses, because we don’t use customized frameworks or private code, GitHub Copilot works very well for our students when they’re introduced to it.

Is GitHub Copilot a tool for students who are learning to code?

There are a lot of exciting things that we are bringing into the Software Engineering curriculum that can help prepare students and give them a leg up in terms of the job search. One is the use of GitHub Copilot in coding.

It has been shown in more than one study that GitHub Copilot is primarily beneficial for those early in their career. This productivity enhancement allows new software engineers to have the same level of productivity as mid-career software engineers while on the job. Right now is actually a good time to join this field because so many people are new to using these AI-based tools. Beginners can position themselves where they can gain expertise and do it in a way that’s on pace with the field itself, which is a really exciting opportunity. 

That said, GitHub CoPilot can offer a danger to actually learning how to be a software engineer. For students just learning how to code, I worry about having access to tools like this as they learn because they won’t yet know what’s the right thing and what’s the wrong thing. 

What are the downsides of an AI tool like GitHub Copilot?

Even before GitHub Copilot, when I hired software engineers for my teams, there were candidates who could not write correct code on a whiteboard during the interview process. They had become so dependent on their tools that they forgot how to do basic things without the help of those tools. This is why we challenge our students to become proficient with the programming language in their course before we introduce a tool like GitHub Copilot.

Pair programming has always been the idea that two brains solving a problem is better than one. Integrating GitHub Copilot into the pair programming dynamic can lead to the same problem described above: programmers forgetting how to program. While we still have two brains trying to solve the problem, when programmers forget what to type and let a tool do it for them, that’s like forgetting how to write the human languages you know. Therefore, we introduce a new step into the pair programming technique that encourages the criticism of generated code to help learners build higher levels of understanding.

Overall, does Copilot make you a better programmer or is it more like a crutch?

Any software engineer can become so reliant on a tool that they cannot effectively do their job without it. As mentioned above, I have seen that in interviews during my career spanning back to the late 1990s. A thoughtful software engineer relies on a tool like GitHub Copilot to add to their workflow, not take total control of it. Humans still need to be the gatekeepers for what source code makes it into any app.

As an example, in some software that I’m writing with the team for Galvanize, I have integrated GitHub Copilot into my workflow. It makes some guesses at what it thinks I want to write next. Sometimes, it’s exactly what I want, and it saves me the time of typing out the code, but around 35% of the time, it’s not what I want. I still have to read its suggestion and evaluate it for correctness.

Learning GitHub Copilot at Hack Reactor

In our curriculum, we’re actively acknowledging that these tools exist and that they can provide explanations for you in terms of the code you’re writing and the code you’re looking at. But you still have to understand coding. You really need to be the person who’s writing the code during our exercises and projects, so you understand the code such that you can have a better, more rich career once you graduate from the bootcamp.

In our updated curriculum, we use Copilot so we can show how often tools like this can be wrong, and we also explain that this tool can help you learn things about software engineering and can definitely help you in some situations. We’re facing this tool head-on, explaining what it is, what it does, its shortcomings, and how it can be useful.

We teach students how to integrate Copilot into their software development workflow during the later modules of all of our coding bootcamps, after proficiency in programming has been obtained. Students will use this tool to build a portfolio project (a non-trivial application) to demonstrate their ability to evaluate and blend AI-generated code with their own.

The addition of GitHub Copilot will ensure that our students have the foundation to thrive with or without AI tools and are able to integrate into any organization with software engineering needs. Our instructional teams, which are composed of industry veterans, have managed the responsible use of productivity enhancement tools throughout their careers and are well-equipped to teach this newest tool.

In what ways will students be using this new AI tool?

As of June 2023, we have integrated GitHub Copilot into the curriculum of all of our coding bootcamps. Students will have specific learning activities to show them how best to leverage a tool like GitHub Copilot, expanding what they can do very quickly. Then, once students have become proficient in the new workflow, we allow them to use the tool in their projects for the remainder of the course.

Can GitHub Copilot be used in different languages other than English?

Many software developers leave comments in their source code that help to describe what’s going on. GitHub Copilot is built on the same language model as ChatGPT, so can help software engineers generate comments in languages other than English.

Also, because GitHub Copilot has training with many languages, software engineers can write the description of what they want to do in their own language. Then, GitHub Copilot can try to generate code based on those descriptions. Of course, it does this with all of the success and failure that has been reported in the media about these types of AI.

Since GitHub Copilot is new, how can users contribute to its improvement?

GitHub Copilot integrations can monitor how well its suggestions are performing by watching how many are accepted by software engineers. But GitHub Copilot is not an open source initiative; GitHub is not soliciting direct feedback on how it can make Copilot better.

What is your advice for incoming bootcampers who are interested in using this AI tool right now?

There is no magic in software engineering. Learn how these tools work so that you have a better understanding of how you can use them, but don’t learn to rely on them as a substitute for learning the craft of software engineering yourself.

Find out more and read Hack Reactor reviews on Course Report. This article was produced by the Course Report team in partnership with Hack Reactor.

About The Author

Jess Feldman

Jess Feldman

Jess Feldman is an accomplished writer and the Content Manager at Course Report, the leading platform for career changers who are exploring coding bootcamps. With a background in writing, teaching, and social media management, Jess plays a pivotal role in helping Course Report readers make informed decisions about their educational journey.

Also on Course Report

Get Free Bootcamp Advice

Sign up for our newsletter and receive our free guide to paying for a bootcamp.

By submitting this form, you agree to receive email marketing from Course Report.

Get Matched in Minutes

Just tell us who you are and what you’re searching for, we’ll handle the rest.

Match Me