Using AI responsibly for developers

Outline

It's crazy to think that just a little over a year ago, OpenAI released their first version of ChatGPT. Since then, we've seen significant growth in the AI space with other providers such as Anthropic, Google, X (i.e. Twitter), Meta, and others releasing their own generative AI models.
Some reports say that up to 99% of Fortune 500 companies are already using AI in their business and this usage will only continue to grow. With this rapid growth and company adoption of AI in mind, I want to take a step back and look at how we can use AI responsibly and ethically as developers.

How are developers using AI today?

ChatGPT was just the start. You open it up in your browser, type a few words explaining the code you want and presto! You have a "fully functional" code snippet. Now we don't even have to open our browsers - tools such as GitHub's Copilot and Google's DuetAI have brought
AI directly into our IDEs. With features such as inline code completion it can guess what you are trying to do and write the code for you. Beyond writing code for us, developers are often asked to integrate AI into existing tools to speed up processes, automate tasks, and make predictions.
From my own experience, RAG - AI mixed with your own company data - has been a key feature companies are looking for. Once you have a tailored AI system for your company, the possibilities of what to do with it explode!

What are the risks of using AI?

As developers, we are knowledge workers. Our value comes from our ability to solve problems and implement solutions. AI has the potential to speed up our day-to-day problem exploration and solution implementation, however it comes at a cost.
Below I have outlined a few areas I have seen AI negatively impact developers:

  1. Poor Code Quality: AI can write code for us, but it's not always the best code. If we ask AI to write a solution and blindly accept it, at best case we may be missing out on a potentially better solution and worst case be introducing security vulnerabilities and/or bugs into our codebase.
  2. Lack of Understanding: AI can help us think through decisions and write code, but unless we understand the ins and outs of the code ourselves, we are at risk of not understanding the implications of the code we are writing. For new developers, AI may seem like a golden goose, but they may not realize how much it is hurting their growth as a developer.
  3. Flashy Syndrome: AI is cool. It's new. It's exciting. It's easy to get caught up in the hype and start using AI for the sake of using AI. We need to be careful to not use AI just because it's the new shiny thing. We need to be thoughtful about when and where we use it. Check out the book "Deep Work" by Cal Newport for more on this topic.

Let's dive into this a bit more.

How AI can harm developers

When I started programming back in college, I was a Physics major and simply taking coding courses for fun (little did I know I would end up doing this full time). One course was a computational physics class where we would model different systems from projectile motion to traffic systems. I can clearly remember many long nights trying to figure out how to solve a differential equation needed for a project, reading resources, talking with friends and gaining insights. Through that course and several others I gained a deep appreciation and understanding of the code I was writing and how computers work. If I had simply opened up ChatGPT for those homework assignments and had it write me the solution, I probably would have received a decent grade but would have no understanding of what I was doing.

Without knowing the WHAT/WHY behind code (really a lot of things in life) you will not have the ability to think creatively to develop new solutions.

Let's take for example a new cook. They can follow a recipe and make a great meal, but if they don't understand the ingredients and how they interact with each other, they will never be able to create their own dishes. They will be left in the shallow work of life and miss the deeper aspects.

There are many possible pitfalls of using AI as a developer, but I believe this is the most important. I would go as far as to say a new developer shouldn't use AI for their first year to ensure they have a solid understanding of the basics and what they are actually doing. This may result in some productivity loss in the short term, but will pay dividends in the long term.

How can we use AI responsibly?

I will keep this brief:

  1. Use AI to research: Instead of using AI to write code for you, use it to help you understand a problem.
  2. Be Skeptical: Don't blindly accept AI's solutions. Always question and understand the code you are writing. Look for security vulnerabilities and bugs. Remember if something seems too convoluted, there is probably a simpler solution.
  3. Understand the basics: Make sure you have a solid understanding of the basics before using AI. This will help you understand the implications of the code you are writing and help you think creatively to develop new solutions.

A lot of this can be boiled down to common sense. Use AI as a tool, not as a crutch. Take the time to really understand your field, how things work, and how to solve problems. Only then can AI take you to the next level.

Comments

Login to Add comments.