Disclaimer: Parts of this blog are generated with ChatGPT and Bing AI Chat. More details towards the end.
As an Engineer, learning new things is important no matter where you are in your Engineering Career. With the recent advances in GenAI and easy to use tools, it has already become part of my day to day workflows.
What is GenAI?
I originally thought GenAI is the same as AGI — Artificial general intelligence, which is the ability of an Artificially Intelligent System to learn any task, how humans and other cognitive beings learn, but actually GenAI is a category of AI which can generate new content of different media (textual, image are the most popular right now) by training using ridiculously large language models, these are called LLMs.
I will discuss more generally about GenAI in other articles, so follow on Medium mrsauravsahu.medium.com to get notified. Also, even though the combination of space exploration and Artificial general intelligence could be the pinnacle of Human Made Technology, it could also be a threat to our existence. (IMHO) Thankfully, we aren’t there yet. That’s a big discussion in and of itself, but one we need to have in the very near future as things are moving very quickly.
Software Engineering without GenAI
For us in the field of Software Engineering, our day to day work revolves around Code, which is used to fulfil a real-world purpose. Even though GenAI can be used in most of the roles in a Software Product’s Lifecycle, I’m going to focus on the ‘Software Engineer’ role in this article.
Let’s see how our Software Engineering workflow used to look like before these, on a very high level.
- We decide on the feature to be built
- We write the code for the feature (additionally coordinating with other Engineers, writing tests and documenting what we did to help others take it forward, in the future)
- We integrate this feature to an environment for testing by Stakeholders of the product.
- We deploy the tested feature to be use by the designated users of the product.
With GenAI in the picture, and two of the most easy to use and available tools in the market right now — ChatGPT and Bing AI Chat (also built on ChatGPT but customized to also use Bing Search), we can improve and streamline our dev workflows.
Before I discuss these important skills, it’s important to note, that, just like any tool, you shouldn’t create a really strong dependency on anything. An Engineer’s most important skill is still Problem Solving (using your very Human Brain).
Aight, enough lecture, let’s see the three skills that are crucial to new as well as seasoned Software Engineers going forward —
The first step with GenAI is to understand how to use it and make it part of your toolkit. Prompt Engineering is the ability to design and implement efficient and effective prompts for AI systems to generate desired outputs.
Software Engineers have a head start because code is the most detailed description of what you want a machine to do. It’s just that that way of instructing the machine has switched over to a general language like English or your native language.
I found this is really cool website to help you learn Prompt Engineering — https://learnprompting.org/ but I also think you should experiment and see what sort of prompts give you the best results.
Because you’re generating code, documentation, and tests even, with these tools, it’s important to learn Code Review so that you can understand and decide if the generated code is optimal, readable and follows best standards.
Code Review is an art, and it’s usually done by Senior members. But with GenAI, now that’s changing and it is important for every Engineer.
Note that is Code Review is the first of many. It’s a review of the code these GenAI tools generated for you; and a more thorough code review should still happen when merging your code to the codebase through Pull Requests.
I was really scared when I first saw the code generation ability of these tools. After having used them however, I saw that it’s not always the case that the code generated is perfect — some refactoring is needed, some changes is needed if the Model is trained long back and things have changed now.
Code debugging is probably the most important skill to learn regardless of GenAI. Software Engineers have to work on codebases originally written by others and understanding the code and being able to modify it to improve it without introducing regression defects is a key skill for all Engineers.
This means sharpening your knowledge about ways to easily debug your code (Also, don’t rely on
console.log please 😂, use debuggers — making a YouTube video about this)
How I used ChatGPT and Bing AI Chat — The results
Let’s quickly discuss how I used ChatGPT and Bing AI Chat for this blog.
I started with ChatGPT as I didn’t want to include new results from the Internet connected Bing AI Chat. This was my original prompt.
Assume you’re a technical writer who works as a software engineer. I want you to write a 5 minute article about three skills to hone as a software engineer (who has worked with Web development and cloud) in a world with GenAI. First suggest me three skills you think are crucial, and then also write the article with these skills — prompt engineering, code review and code debugging.
As you can see I wanted to learn about what ChatGPT thinks are the crucial skills. But you’ll see, in the response, it combined the two and gave me the same list 😂
As a software engineer working in the world of web development and cloud computing, it's essential to stay up-to-date with the latest trends and technologies. One of the most significant trends in recent years has been the rise of GenAI, which is the use of artificial intelligence and machine learning to create intelligent and autonomous software systems. To succeed in this new world, there are three key skills that you should focus on honing: prompt engineering, code review, and code debugging.Skill #1: Prompt EngineeringPrompt engineering involves writing high-quality code that is both efficient and effective. This skill is particularly important when working with GenAI because it requires you to be able to quickly and accurately write code that can be processed by these intelligent systems. To improve your prompt engineering skills, it's essential to practice writing code on a regular basis and to keep up-to-date with the latest programming languages and development tools.Skill #2: Code Review
Code review is the process of examining and analyzing the code written by yourself or your team members to identify potential errors or areas for improvement. This skill is essential for anyone working with GenAI because it helps to ensure that the code is high-quality and error-free, which is crucial for the success of any intelligent software system. To improve your code review skills, it's essential to develop a strong understanding of the programming language being used and to regularly practice reviewing and analyzing code.Skill #3: Code Debugging
Code debugging is the process of identifying and fixing errors or bugs in software code. This skill is particularly important when working with GenAI because these intelligent systems are often complex and can be difficult to debug. To improve your code debugging skills, it's essential to develop a strong understanding of the programming language being used and to regularly practice debugging code. It's also important to stay up-to-date with the latest debugging tools and techniques.In conclusion, as a software engineer working in the world of web development and cloud computing, it's essential to focus on developing your skills in prompt engineering, code review, and code debugging to succeed in the era of GenAI. By honing these skills, you'll be better equipped to write high-quality, efficient code, identify potential errors or areas for improvement in code, and quickly and effectively debug any issues that arise. With the right skills and mindset, you can thrive in the ever-changing world of software development.
This response is decent but looks more like the notes for a one-page presentation. So I re-wrote the article myself.
At this point in time, GenAI tools like ChatGPT and Bing AI Chat aren’t perfect, at least for Software Engineering related tasks, but they’re pretty darn good. So until then, we can build our skills to use them in our workflows to increase our productivity.
Problem solving skills still remain at the top, so that should remain your top priority in terms of skills.