Going gaga over ChatGPT and beyond

I am not sure if AI will steal jobs in the future, but it is definitely stealing everybody’s attention right now.

Are you fascinated by the magic of ChatGPT and AI in general? Trust me, as a software engineer, this technology still blows my mind whenever I see its use cases, from code generation to making informative videos.

Brilliant minds of researchers, scientists, and engineers have created intricate algorithms weaving into deep, complex learning layers that have culminated into a brain-like product. This is indeed fascinating in itself.

So, I finally got some time to try OpenAI’s ChatGPT, and the first thing I asked was to write this article. I know ethics and all, but I am only human. Humans will do whatever it takes to improve their life. We have been using machines to make our life easier since the invention of machines; it has only gotten better over time.

  • Google search was the first invention we used to find information online. It changed how we communicate, learn and seek help.

  • Then we got auto-completion. Write a few words, and the machine will suggest how to finish the sentence.

  • The recommendation algorithms used on YouTube, Instagram, Netflix, and others know what we want to watch, read and hear.

And many more examples like this can go from way before Google till now.

I wanted to see how well ChatGPT generates code. It does a good job at it, but the code is not perfect. And it does not need to be perfect. The point is to give you a start.

No matter how evolved humans are, we still procrastinate. We often put off tasks until a later date and time.

The effort that goes into starting something new is often the most difficult part. And if someone or something can take that big step for us, we welcome it with open arms and deep pockets. We want our effort to start something to go down.

AI tools are meant to do those things for us. Performing mundane, repetitive, and exhausting tasks for us. ChatGPT and similar AI tools are currently biased and provide upright wrong information. But nonetheless, they provide a great starting point.

Interesting Projects

I recently stumbled upon the following interesting projects:

Develop an app

I came across this article, From Zero to App Store With ChatGPT, where the author explained the steps for developing an app not from an idea but from the thought of doing it. He asked ChatGPT to generate ideas for him. This lowers the process of coming up with ideas which can take days to years. I am still thinking. I should ask ChatGPT.

Create a video

Then we have this, How to Make AI YouTube Videos with ChatGPT in Minutes!, which shows step by step process to create youtube videos. The presenter uses ChatGPT to create a script, Pictory.ai to generate a video from the script, and Murf.ai to add audio to the video. Though this makes a good informational video, not a cinematic one, it is still a huge saving in content creation.

Sell digital products

This guide shows how to Create a Passive Income Stream with ChatGPT Ai. A step-by-step guide on creating digital products that you can sell online to generate passive income. If this works even for a short time, it is worth spending time on because the effort to do has gone down. This is nothing new. There are tons of digital products out there that date back to the infancy of AI.

Many similar videos and articles show you how AI can help you speed up learning, earn money, and generate ideas.

Lower the barrier

This information tells us that the barrier to entry has been diminishing daily. Anyone can be a creator, and anyone can be a developer. So what about the ones who are professionals? Will they lose their job?

It is easy to instantly think about the downside of any AI tools because the general public does not understand how to use them properly.

Sure, there will be a huge burst in content and app creation which can be flat, boring, repetitive, and might give upright wrong information unless there is human involvement in the process of creation.

Software Development

Developers will no longer have to write boilerplate code, Gupta said. Instead, they can focus on areas such as complex application architecture or cybersecurity. — Abhishek Gupta, founder and principal researcher at the Montreal AI Ethics Institute.

I completely agree. It takes more to be a great software professional than copy-pasting code from some code generator.

Many developers don’t know what are SOLID principles or Clean architecture, and that too after quite a few years of development experience gaining a Sr. title. This is the first thing they should learn.

Generating boilerplate code

You can ask AI tools like ChatGPT to generate boilerplate code to speed up the development. ChatGPT can create pretty good code in the language you mentioned.

I asked ChatGPT to create a code for loading images asynchronously in SwiftUI using the Combine framework. I copied the code and tried it out. It worked.

Now I can continue with my other tasks to add complex routing in the app, setup data models, create view models, etc…

Write Complex Algorithm

A good software engineer should know algorithms and data structures. These not only form the basics of most interview questions but are the core of learning user behavior, optimizing performance, or transforming data from the real world to the virtual.

I asked ChatGPT to write an A* algorithm, to find the shortest path in a maze. I remember during my capstone project we created maze solving robot and writing these algorithms was a pain.

Generate Complex Regex

This is a great example of where tools like ChatGPT can be super useful. You just express what you want in simple English. There are snippets available online covering almost every possibility but in case you have a very specific need it can save a lot of time.

Optimize and refactor

Software developers are not known to always write beautiful, structured, and easy-to-understand code.

ChatGPT can help analyze complex logic and break it down into smaller units that are easy to comprehend.

Code optimization does not take place right away. Developers generally write code in the natural flow of the language using primitive data types and available patterns. Optimization will follow when the need to improve space and time complexity arises for better performance. AI tools can help optimize even without human interventions by becoming part of the CI/CD process.

Write Unit Tests

TDD is a hot topic, everyone wants to apply it but many never end up doing it. Writing a good unit test takes time and effort. But as the result of unit tests are visible right away and are not customer-centric, they mostly get the backseat and are often forgotten about.

AI tools can write test cases for us. Give it a piece of code and ask it to write test cases. For eg: I gave a random function to extract substrings from a String and it gave me a good amount of test cases to start with.

Generate Code documentation

Another major part of any software is proper documentation. Software developers do add comments to the code base often they are not properly structured or do not provide the required explanation.

AI tools can help write proper comments and in turn produce useful documentation when connected with document generator tools like Doxygen or DocC for Swift.

Tech debt

Many software products have a huge problem of mounting tech debt. This is inevitable due to the complex hierarchy of decision-making and the urgency to lead the market to capture the customers.

AI can help reduce tech debt by applying some of the above processes or can help developers focus on resolving tech debt which they never got a chance to do so.

Cybersecurity

With the rise in climate change and geopolitical and economic tensions, securing software applications is getting heights attention.

There has been a lot of independent research conducted on how ChatGPT answers security-related questions.

In one research we can learn about what security is, how to find vulnerabilities, analyze malware, and steps on how to prevent a cyber-attack.

In another research, novice cybercriminals have reported how they use ChatGPT to create new Trojans, create Phishing emails, and also answer critical social engineering questions.

I am not an expert in cybersecurity but you can follow lots of articles and videos online.

Conclusion

In conclusion, all these new fancy AI tools are useful in many ways. It can help speed up development without adding cost to the process. It can help solve major world problems like climate change, detect and prevent new viruses, prevent global food crisis, etc… if used in the right way. It is a collaborative effort of tech companies, governments, and individuals to use these properly and ethically by creating the right governance and regulations.

The thought process has to be changed, and new skills need to be acquired but no jobs should be lost.