ChatGPT catapulted AI tools to the forefront of the public consciousness when it reached 100+ million weekly users last year. Several more apps like ChatGPT have since been launched, such as Bing Copilot and Bard. Although these services can be helpful for software developers, most of the time they’ll use other tools or work with technologies that are in a completely different category.
Over 70% of developers are already using or plan to use AI tools in their development process according to the 2023 StackOverflow survey. The same survey shows that the overwhelming majority of developers (75%+) have a favorable or highly favorable view towards using AI tools as part of their development workflow.
In this blog post we will be going over what developers are using these tools for, which tools they are using, and how machine learning fits into the development process in companies.
Artificial Intelligence and Machine Learning
Before we dive into what kind of technologies and processes developers use in their day-to-day work, it’s important to understand the difference between artificial intelligence (AI) and machine learning (ML).
Artificial Intelligence
Artificial intelligence describes any computer program that performs tasks that require human intelligence, such as speech recognition, reasoning, perception, and problem solving. John McCarthy, a Turing Award-winning computer scientist and one of the founders of the AI field, said, “AI is the science and engineering of making intelligent machines, especially intelligent computer programs.”
Machine Learning
Machine learning is a more specific term that describes a field of study concerned with the development of algorithms and statistical models that enable computer programs to perform human-like tasks. The core idea behind ML is to use large datasets to identify patterns and learn from them to perform specific tasks. IBM has a good video on the differences between AI and ML that will provide further clarification.
You may also come across the term “Deep Learning” which is a subset of machine learning. We won’t go into it here but if you’re curious, 3Blue1Brown has an excellent video on how neural networks work.
AI in Software Engineering
Software engineers or developers work with AI based technologies in two key areas: development workflow and product feature development.
Development Workflow
Development workflow refers to the processes used to plan, develop, test, deploy, and maintain software products and services. Tools like GitHub Copilot can significantly speed up these processes since they can be trained on specific codebases on top of having insights from billions of lines of publicly available repositories. Having a tool that can provide suggestions and answer questions based on the current project and context can drastically improve the developer experience. In fact, over 70% of developers say AI coding tools will allow them to write better quality code, produce more code, resolve incidents faster, and collaborate more effectively according to a 2023 GitHub Survey.
The AI tools used for improving developer experience are usually available off-the-shelf. These tools still need to be trained on the existing codebase for the best results but they don’t require a significant amount of developer work hours. Developers can quickly get up to speed on the basics of these tools and start incorporating them into their workflow to boost productivity since they don’t require any specialized skills.
Product Feature Development
Companies are constantly looking to improve their products by offering novel features. Product features that incorporate advanced ML algorithms can give companies a competitive edge by providing a better customer experience.
For example, the following diagram gives an overview of how Netflix incorporated an ML model to improve search results for users:
You can read about how this model works in the “Augmenting Netflix Search with In-Session Adapted Recommendations” research paper.
A team needs to have people with various skills in order to develop and maintain a system like this since the feature may require custom algorithms, infrastructure, and code. Working on these systems usually requires knowledge of machine learning and MLOps.
Where to Go From Here?
If you want to build AI systems and not just use AI tools, you’ll need a solid theoretical foundation and practice building applications or creating infrastructure. Here are a few free courses to get you started on your journey:
Courses for Beginners:
- AI for Everyone by DeepLearning.ai
- Elements of AI by the University of Helsinki
Courses on AI Ethics:
- Ethics in AI by the University of Helsinki
- AI for Good by DeepLearning.ai
Practical Courses:
- Machine Learning Zoomcamp by DataTalksClub
- MLOps Zoomcamp by DataTalksClub
These should be enough to keep you busy for a while and give you a solid AI and ML foundation for building your own AI/ML products or services.
Ready to Learn Software Engineering Foundations?
Any ML role requires a foundational knowledge of software engineering. If you are not a bootcamp grad but are ready to start your journey as a software engineer, apply now to Flatiron’s program.
Not ready to apply? Try out our Free Software Engineering Prep. Or, review the Software Engineering Course Syllabus that will set you up for success and can help launch you into a new and fulfilling career.
You can also read more stories about successful career changes on the Flatiron School blog.