Development

How our Associates are using AI tools: Advice for early-career developers

August 13, 2024
How our Associates are using AI tools: Advice for early-career developers

At Michi­gan Labs, our Asso­ciate pro­gram offers col­lege stu­dents and ear­ly-career devel­op­ers the chance to work with a tech­ni­cal men­tor on real projects — usu­al­ly dur­ing the summer.

Our men­tor­ship goes beyond teach­ing pro­gram­ming; it’s about learn­ing how to work effec­tive­ly. Our hybrid work struc­ture helps ear­ly-career devel­op­ers build good habits and a strong col­lab­o­ra­tive foun­da­tion. For devel­op­ers, this includes learn­ing how to research prob­lems, com­mu­ni­cate progress, and iden­ti­fy next steps.

Devel­op­ers have relied on tools like Google and Stack Over­flow for answers. But now there are faster, AI-pow­ered options. Using arti­fi­cial intel­li­gence (AI) tools well isn’t some­thing typ­i­cal­ly taught in school; it’s learned through hands-on experience.

This year, I ensured our Asso­ciates had access to these tools and encour­aged them to exper­i­ment with them. While I’ve been using AI tools for sev­er­al years, our Asso­ciates are at an ear­li­er stage, fac­ing dif­fer­ent chal­lenges and dis­cov­er­ing unique benefits.

In the post that fol­lows, Nick and Ash­lyn (two of our 2024 Asso­ciates) reflect on their expe­ri­ence with AI tools in soft­ware devel­op­ment. Togeth­er, we hope to help oth­ers ear­ly in their careers under­stand and embrace these tools from a beginner’s perspective.

Here are the ques­tions that Ash­lyn and Nick have respond­ed to:

  • What ways have you found suc­cess with AI tools?

  • How have they impact­ed how you research problems?

  • How have they been a chal­lenge or hin­drance to your work?

  • What advice would you give some­one using them?

  • Any over­all thoughts or obser­va­tions you’ve found interesting?

Ashlyn DeVries

Ashlyn’s respons­es #

With most tech­no­log­i­cal advance­ments there are two extremes: some believe it will be a ​“sal­va­tion” that solves many prob­lems, while oth­ers fear it will lead to dis­as­ter. How­ev­er, I’ve found that the truth, espe­cial­ly with AI, usu­al­ly lies some­where in between.

AI has quick­ly become part of my dai­ly work as a soft­ware devel­op­er — main­ly through con­ver­sa­tions with col­leagues and clients, and by using tools like GitHub Copi­lot and some­times Chat­G­PT. I’ve had great suc­cess with Copi­lot, which dif­fers from Chat­G­PT by pro­vid­ing con­tex­tu­al answers based on active tabs and spe­cif­ic code snip­pets. It’s like a ​“Google for soft­ware devel­op­ers,” but more effi­cient because it elim­i­nates the need to sift through search results — focus­ing on rel­e­vant solu­tions with­in the project’s context.

Copi­lot also offers code imple­men­ta­tions or pseudocode along­side its expla­na­tions. I find it most effec­tive when com­bined with Google — using Copi­lot as a start­ing point and then deep­en­ing my research through Google’s vast doc­u­men­ta­tion and resources like Stack Overflow.

In addi­tion to its chat fea­ture, GitHub Copilot’s auto­com­plete and sug­ges­tion tool is incred­i­bly use­ful. As devel­op­ers, we often need to cre­ate repet­i­tive func­tions or expand on com­plex struc­tures. Copi­lot excels at rec­og­niz­ing pat­terns, allow­ing it to com­plete these tedious tasks in sec­onds with just a tab. Since time is mon­ey in any field, this fea­ture can be invalu­able when used effectively.

The chal­lenge with AI tools (like GitHub Copi­lot) lies in how we use them. As I men­tioned before, AI is nei­ther a sav­ior nor a threat; it’s sim­ply a tool.

Like any tool, its val­ue depends on how it’s used and the skill of the user. Copi­lot isn’t per­fect — it won’t always pro­vide a cor­rect answer, and some­times it won’t have an answer at all. The biggest risks are depen­den­cy and lazi­ness. Depen­den­cy means giv­ing up when Copi­lot doesn’t have a response, instead of turn­ing to oth­er resources like Google, doc­u­men­ta­tion, or col­leagues. Lazi­ness refers to neglect­ing code review. Copilot’s solu­tions might con­tain errors, both sim­ple and com­plex, that require care­ful review to catch.

My best advice for using AI tools is to under­stand the code before using it. Don’t just copy and paste. Research and ful­ly grasp the code until you can explain it. This approach helps you grow as a devel­op­er instead of rely­ing too heav­i­ly on AI.

Nick Karns

Nick’s respons­es #

When I first start­ed learn­ing React Native, AI tools like Copi­lot and Chat­G­PT were incred­i­bly help­ful. They’ve helped me learn new things, fix my code, and write sim­pler code.

When I know what I want to do but don’t know how to do it, I ask the AI for sug­ges­tions. If the response isn’t quite right, I ask fol­low-up ques­tions until it fits my needs. The tools also save me time by quick­ly find­ing and fix­ing syn­tax errors, like miss­ing brack­ets or semi­colons. Addi­tion­al­ly, when I know how to code some­thing but that it will take a lot of time, I can ask the AI tool to do it, and it gen­er­ates the code in seconds.

The biggest ben­e­fit has been the time saved. Instead of search­ing the inter­net for solu­tions or debug­ging for hours, I can move through tasks faster and focus on the big­ger pic­ture val­ue of a project.

How­ev­er, AI isn’t per­fect. It might not always under­stand what you’re ask­ing or the full con­text of your project, lead­ing to incor­rect results. While this can be frus­trat­ing, you can usu­al­ly keep refin­ing your request until it gets it right. Or you can still turn to the inter­net — or col­leagues — for help.

It’s impor­tant that you per­son­al­ly under­stand any AI-gen­er­at­ed code before using it in your project. The worst mis­take is copy­ing code with­out under­stand­ing it, only to face issues lat­er and not know how to fix them. This can waste more time than it saves.

Over­all, I think that AI is a great tool for boost­ing pro­duc­tiv­i­ty, but you must under­stand how the AI-gen­er­at­ed code fits into your project. If you don’t, it might actu­al­ly reduce your pro­duc­tiv­i­ty by cre­at­ing more prob­lems down the line.


We hope Ash­lyn and Nick’s insights help you eval­u­ate AI tools for soft­ware devel­op­ment. If you’re inter­est­ed in learn­ing more about our Asso­ciate pro­gram, we’ve includ­ed reflec­tions from 2023 below:

David Crawford
David Crawford
Software Developer

Looking for more like this?

Sign up for our monthly newsletter to receive helpful articles, case studies, and stories from our team.

How to Bring Order to the Chaos of Job Applications
Team

How to Bring Order to the Chaos of Job Applications

August 8, 2023

We discuss some tips & tricks for the job application process

Read more
Product Strategy
Business Design Process

Product Strategy

November 22, 2022

A look at Product Strategy at MichiganLabs. Why we do it, what it is, what it is not, and how we approach it.

Read more
Why I use NextJS
Development Web

Why I use NextJS

December 21, 2022

Is NextJS right for your next project? In this post, David discusses three core functionalities that NextJS excels at, so that you can make a well-informed decision on your project’s major framework.

Read more
View more articles