Our coding bootcamp curriculum includes the use of GitHub Copilot, the artificial intelligence-powered tool that enhances coder productivity. The popularity of tools like Copilot and ChatGPT have skyrocketed recently, opening up new possibilities for software engineers.
To dive into these tools and the impacts of AI on software engineering, we sat down with a trio of Galvanize in-house experts. Hear from Galvanize Head of Curriculum Curtis Schlak and Instructors Kaitlin Cort and Bart Dorsey to find out how learning these tools right now can positively impact your software engineering career, making it all the more effective, efficient, and exciting.
How would you describe what these AI-powered tools can (and cannot) do?
Curtis: I lump things like ChatGPT and GitHub Copilot (or Copilot X, which is the next version) together with tools that have come out ever since software developers existed. These are productivity-enhancing tools. They are really smart auto-complete tools in the same way that you get auto-complete on your phone one word at a time. ChatGPT and Copilot do that same thing, but a lot more.
Back in the 90s, Microsoft introduced something called IntelliSense into their editor, and it gave you 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.
These new tools 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.
What are some of those aspects of coding that we need from actual humans?
Curtis: 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.
Another thing we need from humans is to understand the effect of the code because it can introduce subtle bugs. If I go and 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, you’ll still have to understand how to code.
I consider these things to be productivity-enhancement tools as opposed to replacements for software developers.
Bart: I’d add a note about human creativity here. These tools can be useful for finding ways to do things that everybody does the same way because there’s only one way to do it. But when you start getting into building an application and it needs to be a specific thing and nobody’s ever really done it before, that’s when it’s going to fall apart because the tools can’t be creative. They can’t come up with new ideas because they don’t think.
Kaitlin: Humans who want to code need to learn the skills that are necessary for every engineer: constant learning and constant adaptation.
I think what bootcamps do best is teach students how to learn and how to have the competence to be able to approach any new topic or technology with the efficiency and confidence to figure out how it works and build something with it.
That bootcamp model will not change, regardless of what the technology is. We’ll incorporate artificial intelligence as it develops, as we are already doing now. Going forward, there are always going to be new languages and new frameworks. Everything has to change; everything always changes. You just have to learn to embrace the change.
There’s a lot of excitement about these AI tools, and there’s also some concern. How do you feel right now?
Kaitlin: I’m definitely excited. I think AI in general could be a really big shift, a big change. It’s something that, like the introduction of the iPhone, could be a very large change in the way that we run our society and do our work. And with that comes a lot of trepidation and reasonable worry about how that will take place, whether it will happen in an equitable way, and whether people will be financially secure and safe during the transition.
That said, I think from the software engineering curriculum development standpoint, there are a lot of exciting things that we’re bringing into the curriculum that can help prepare students and give them a leg up in terms of the job search. We’re addressing the use of GitHub Copilot in coding. We want students to know where the pitfalls are, and recognize where these tools can be helpful as a way to learn, but also recognize that, at this point in time, these tools make mistakes.
Right now is actually a good time to join this field because everybody will be new to AI-based tools. You can position yourself where you can gain expertise and do it in a way that’s on pace with the field itself, which is a really exciting opportunity.
Bart: I think these tools could be helpful for getting rid of a lot of the mundane, boring work that people have to do. These are tools that can help us build better stuff, but you have to know how to use the tool in order for the tool to produce something good.
For students just learning how to code, I do 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. This is where we come in as a bootcamp. In our updated curriculum, we’re using Copilot so we can show how often tools like this can be wrong, but we can also explain that this tool can help you learn things about software engineering, and can definitely help you in some situations.
So instead of putting our fingers in our ears and ignoring AI and pretending it doesn’t exist, we’re facing it head-on, explaining what it is, what it does, its shortcomings, and how it can be useful.
But it isn’t a replacement for learning how to code in the first place, and I’m very skeptical about whether it ever will be.
There’s a lot of fear about the machines coming to take our jobs. I don’t think that’s going to happen. Instead, I think that the tools are just going to make our jobs easier.
Curtis: I’m excited, as I’ve always been excited about it. I did some graduate work in artificial intelligence back in the 2000s, and I’ve taught artificial intelligence workshops. I’m a big fan of machine learning and artificial intelligence.
But I’m also concerned, like Bart mentioned, because it’s easy to misuse these tools and just blindly accept the answers that are given to you. Being able to evaluate what tools like these are giving to us in response to our prompts is really important.
With AI in mind, how does Galvanize prepare students for a rapidly-evolving job market?
Curtis: 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 that way you understand the code such that you can have a better, more rich career once you get out of the bootcamp.
Kaitlin: We recognize the importance of preparing students with the technical skills, as well as interview skills they need, especially considering recent Big Tech layoffs and concerns about competitiveness in the overall marketplace.
Knowing how to use Copilot and other tools can be beneficial to make you a more productive coder and maybe even help you learn, as a junior developer, a little more quickly than you would otherwise. This is a good skill set to have and could potentially lead to other employment opportunities because a lot of companies – startups as well as bigger companies – are trying to figure out how to incorporate these large language models. We want to stay a little ahead of the curve and show students how to use it.
But in preparing students for the engineering job itself, I don’t think there’s going to be a huge change in terms of what the requirements and expectations of a junior engineer are. A lot of companies will still expect you to know your technical fundamentals, which we of course focus on.
As I mentioned before, it’s so important for all engineers to learn how to learn in order to stay nimble in an evolving market.
A big part of what our bootcamps provide is a dedicated space to come do that foundational learning – a place where we make it easy for you to be accountable to yourself. Trying to do this on your own would be more challenging. Some people have amazing discipline and can just focus and get things done, but I think for most people, it’s really hard to push yourself emotionally to make those commitments and keep them.
After the bootcamp, you’ll have a much better understanding of how web technologies work and you will be in place to be able to apply for a junior developer job. Our team and Career Services will be here to help you and take away some of the friction of preparing for the job market.