
Amazon Q from a Developer Lens
A developer’s journey is accompanied by skills that goes beyond coding. This post explains some possibilities of Amazon Q and how it fits into an ideal developer world.
- I asked Amazon Q an AWS question. Q answered the question, explained key things, and pointed me to the right sources. An interesting observation here is how Q went one step ahead to explain me how I can use the scenario in my existing code. Developers will find this extremely beneficial within the scope of their IDE. In the broader context this might look simple but imagine switching windows, reading the documentation, getting lost in your open tabs, chat conversations and coming back to the IDE. You would have lost track of the time and task in midst of finding an answer. We all have done it. So, it’s a great time saver to get an instant answer with sources to fact check. As per my observation, Amazon Q also raised the bar in answering AWS questions. To verify this further, I asked a question about a feature that was released in re:Invent 2023. And as expected Q gave me fantastic results.
- Imagine that you need to understand a piece of code written by a developer who recently left the organization. Sounds like you have done it before? If my guess is right, in most cases there wouldn't be a README file or a documentation that explains the code. Another scenario would be to understand a programming language that you are not familiar with. Imagine going through numerous developer forums, code samples, and learning paths to accomplish a simple task. This feature is the powerhouse of the service that explains the code flow in no time. You can also highlight a specific block of code and ask Q to explain it for you. To make this more useful, I also asked Q to write a README file for the highlighted code and it gave me an amazing script. Here you learn the code as well as improvise documentation.
- Anyone heard of the term “pair programming”?, the technique where two developers collaborate on a code to achieve a common goal thus increasing efficiency and reducing delivery time. The value-add this technique provides is questionable for various reasons like matching pairs, complexity of the code etc. Although there is always a merit in human interactions to solve really complex problem, tools like Amazon Q should be viewed as an efficient pair programmer assisting you with a broad range of tasks. In a slightly different angle, how about Q being a great learning platform. Q provides a platform to learn hands-on through creation and explanation. Another viewpoint, I feel the most important one is how developers are not only pertained to a specific industry. How about a student trying to learn programming for the first time, a person with no programming background trying to accomplish a programming task, etc. All of them have one thing in common, i.e. their idea or the series of steps (logic) they want the program to perform. So, they put it down in writing (a prompt), and Q takes care of the completion. In other words, you still draw the flowchart but Q does the implementation although you have to explain your flowchart step by step to Q while prompting. So, code generation in general is going to foster coding amongst wide range of developers and non-developers across many industries.
- I took an example code and intentionally induced few errors, and with no surprise Q was able to fix the code instantly. How would a typical debugging journey look like for developers? You see an unknown error, search for the error, find relevant posts, iterate, and fix it. Again, a time-consuming journey where Q can come in handy. Highlight the code and prompt Q to fix the error, and see the output for yourself. It's all about practice. The more you interact and get used to prompting, it’s going to be a great plug and play tool.