Maximising the Power of AI Tools like ChatGPT in Your Development Journey
I'd like to share some insights on harnessing the power of AI tools like ChatGPT to their fullest potential. I've been diligently crafting a tutorial on Continuous Integration/Continuous Deployment (CI/CD) principles. In the process, I've had to develop a simple application to demonstrate the ideas. My objective is to guide my readers towards establishing automated workflows in their software development processes, thereby boosting efficiency.
The centrepiece of this tutorial is a minimalist web application. It's straightforward, serving users with an engaging quote each day. Despite the apparent simplicity, the underlying mechanisms tap into a lot of hidden knowledge. We must address various challenges that are not easy to see on the surface, such as ensuring the application is always available to users (avoiding any unforeseen termination), preserving the integrity of existing logic when introducing new features, and guaranteeing smooth performance during high user traffic.
When encountering roadblocks in application development, it may seem intuitive to ask ChatGPT for help nowadays. However, while the answers provided might seem helpful, they often require a keen eye and sufficient knowledge to evaluate their validity. I faced a similar challenge when preparing this tutorial, particularly when dealing with AWS cloud services, which I hadn't touched for several years. I knew I needed components like a database, a Docker image, and a load balancer, but the exact implementation on AWS was a bit fuzzy.
After pinning down the required elements, I turned to ChatGPT for advice on tackling these specific challenges. The answers I got were effective, enabling me to bring my small program to life swiftly. And that’s really a great experience, the suggestions normally work perfectly if I know where to put them.
Another interesting application of ChatGPT came into play while designing the front end of the application. Requirements included a responsive page design, a stunning CSS gradient effect, and a few CSS tips for making a quotation symbol as decoration. In these scenarios, ChatGPT's responses were typically accurate and spot-on, but it was critical to have the ability to judge their reliability.
For example, I wanted to add a button to the page that, when cliekd, would download the current quote to local. ChatGPT suggested employing canvas and even provided some handy code snippet. This basic code was functional but overlooked CSS styles for some reason. I asked again, and ChatGPT recommended the html2canvas library, I felt the need to cross-check its advice. A quick search using keywords from the suggestion led me to recent blog posts that helped me quickly implement the function.
I didn’t know html2canvas in the beginning, but I was looking for something like that in my mind even before I asked. And I think that’s the key here. The most effective way of using an AI tool is for you, as a human being, to have something in your mind already, and the details can be uncertain. I mean sometimes we don’t have to remember all the details, like, in which version you can use which API to do what.
This experience provided intriguing takeaways. ChatGPT proved incredibly useful for those with a clear objective but uncertain methods. It served as a top-tier information provider. Yet, for tasks that required the understanding of knowledge structures and task decomposition, the human experience remained indispensable. Simply knowing what is needed but lacking a clear direction can lead to under-utilizing the tool, primarily because discerning the quality of advice requires significant effort.
AI may well overtake the role of experienced professionals in the future. Currently, however, a team comprising a task-decomposition expert, a discerning professional, and an AI tool like ChatGPT can easily replace a traditional team (a much larger one). Where an experienced individual might have previously struggled with certain details or best practices, AI now takes up the mantle, delivering the execution power once reserved for an entire code-writing team.