Several industries are getting disrupted because of recent AI advancements in the tech world. The way we perform the same tasks has been reimagined to seek better designs and solutions. One of the use cases that is actively utilizing Gen AI is “Software Programming”, commonly referred to as “Coding”. Coding is the backbone of software, tech, and other industries. There are more than 28 million software developers writing computer programs while spending significant time on coding as part of their core work [1][2]. Today, with Gen AI, people can use assistance from Gen AI tools such as Github Copilot, AWS Code whisperer to write, explain, and modify blocks or functions of code, including large chunks of code. The prompt window and token size in chatbots have been increased significantly over the last year to tackle and generate copious amounts of code, e.g., 2 million tokens by Google [3] in contrast to ~4K tokens from ChatGPT 3.5 released 18 months ago.  

Multiple articles and studies have reported the productivity gains ranging from 30-60% by utilizing the AI tools [4][5]. If the claims on 30-60% productivity gains are held true, you can imagine the scale and impact of this technology on millions of people. This will include people and industries that are coding not only today but also in the future as the technology advances. Nvidia CEO recently indicated that coding might be dead for the next generation [6].  Ongoing trends, activities, and predictions in this space raise several questions:

  1. Can anyone be a programmer? 
  2. Should we not teach our kids programming? 
  3. Is now the best time for someone to switch to programming? 
  4. Should we expect higher penetration of software products in the market? 
  5. And many more…

To seek answers to the questions first-hand, I decided to conduct a short time-bound experiment on myself. Please note that the experiment is intended for learning purposes. The experiment entails developing and launching a small functional iPhone app from scratch. It includes the frameworks, tools, and programming language (Flutter, Xcode, App Store) that were not familiar to me. Automated testing and maintenance of the app for long-term purposes is not with in the scope. Therefore, the app was tested manually in a sandbox environment. Ad integration is included in the app, but push notification is not incorporated in the app.  Multiple AI chatbots were used for not only developing and debugging the code but also generating parts of the content needed to release the app. Web search engines and videos on the Internet were used to get myself familiar with certain types of high-level concepts in Flutter. The name of the app is Paint Color Splash and below are the screenshots launched on the app store:


1. Flexible Approach

Initially, I started with a big step hoping that the LLMs or ChatBots can code the entire app, or at least a major portion of the app if provided with detailed and precise set of requirements through prompts. After playing around with the AI tools and different input strategies, it was quickly realized that the results were not close to solving the entire problem, i.e., writing the code for the entire app. Therefore, the problem was broken down into smaller chunks and the results were much better. The chunks were based on classes, methods, and logical functions, similar to what is typically available on the Internet.  Although a working version of code was generated for smaller components or chunks, two problems emerged on 1) connecting or integrating the chunks of code into the main code, and 2) debugging the code efficiently in case of errors.

My approach changed further multiple times to ensure I can generate the code that can integrate with the existing code with minimal disruptions. A separate app was set up just to check if there were no errors in the components’ code before integrating it into the main code. Organization of code was another challenge as the codebase expanded. It was interesting to see how my approach, including some of the initial requirements, had evolved significantly from start to finish of the project.  No “LLM (large language model) agents” were used in the entire process.

2. Right Mindset and Expectations

The mindset and expectations must be right from the beginning to get value out of AI. With a rigid mindset and unrealistic expectations, people might be either setting themselves up for failure or feeling failure even in cases of success. Consider the AI tools – the one used in this experiment – as “potential on-demand help”. Another way to think about AI is that there is someone “virtual” that can assist when you are stuck. Did the AI tools always fix my problem? Of course, not. If I expected the perfect results every time, as we normally expect from machines, I would not be able to go that far in such short period of time.

The number of times, level of help, and the type of assistance received from the AI tools changed significantly as my knowledge-base on the programming language and framework expanded. With the on-demand help from AI tools, I was able to code something in a few days and launch the app in a couple of weeks; achieving the same objective without the AI would have taken me several weeks if not months. It is important to note that efficient coding does not only mean typing scripts that can communicate with machines but also requires other skill sets (problem-solving, logical reasoning, organizational, etc.) that could be applied across different domains and functions [7][8]. 

3. Deeper Understanding

AI tools accelerated many parts of the app development and launching process, but not every part of the process. Other than the code generation for both front-end and backend development, AI tools were also utilized in the content generation for the app launch, understanding and reviewing legal documents, and for metadata purposes. There are several other activities, which required manual implementation and took a significant amount of time, e.g., developer license purchase, app authorization and authentication, launching sandbox, ad authorization and validation, environment setup, and many more.  Therefore, understanding AI technologies at a deeper level is critical for utilizing the tools efficiently, which strengthen my hypothesis in my previous article [9]. Deeper understanding of AI tools helps make effective decisions upfront to reduce the risk and improve the chances of success.

Despite the number of tools launched in the last decade to help and improve the efficiencies of software developers, the numbers of software developers have increased over time [1]. AI may lower the barrier to entry and lower the cost of learning new skills much further. Therefore, the number of coders (people involved in coding, not necessarily software engineers by training) may drastically increase over the upcoming years. A similar trend in other industries, domains and tasks have been illustrated in the article [10], where efficiency gains do not equate to the reduction of the resources in question. It means that people from non-coding backgrounds may be able to learn programming easier and overcome the initial hurdle of entering the coding world. New companies may emerge to make the coding process much more convenient by targeting niche areas or integrating those efficiencies into the coding environments. 

Summary

Hands-on learning, especially using a completely new programming language and a set of tools utilizing AI, while developing and launching an iOS app utilizing AI tools across the journey has been a great experience. With the help of AI, the development and launching of the app was completed in a couple of weeks. Without AI, it would have taken several weeks if not months. Successful utilization of such AI tools for your use case depends on the approach and the mindset adopted during the process. Deeper understanding of the AI subject and tools can not only accelerate your learning journey but also reduce the number of experiments needed to succeed.

Use of AI certainly opens new opportunities and possibilities in the programming world by lowering the learning cost, reducing the barriers to entry for new coders, improving the efficiency of existing coders, etc. It does not imply that coding will be dead in upcoming years, i.e., human involvement will be critical from a quality and accountability point of view.  Now we have a growing number of easily accessible AI tools in our learning toolkits. It will be quite exciting to see how coders will evolve their approach to adopt AI into their daily workflow. Furthermore, the approach varies based on the coder’s learning style, work environment, geography, expert level, industry, business functions, tech stack, and other factors.  

Keep learning and keep moving forward!!


References

  1. Vailshery, Lionel Sujay. “Global Developer Population 2024.” Statista, 29 Aug. 2023, www.statista.com/statistics/627312/worldwide-developer-population/
  2. Inc., CodeNinja. “How Many Software Developers Are There in World?” LinkedIn, 9 Oct. 2023, www.linkedin.com/pulse/how-many-software-developers-world-codeninjainc. 
  3. Pichai, Sundar. “Google I/O 2024: An I/O for a New Generation.” Google, Google, 14 May 2024, blog.google/intl/en-africa/products/explore-get-answers/google-io-2024-an-io-for-a-new-generation/.
  4. Dell’Acqua, Fabrizio, et al. “Navigating the jagged technological frontier: Field experimental evidence of the effects of AI on knowledge worker productivity and quality.” Harvard Business School Technology & Operations Mgt. Unit Working Paper 24-013 (2023). 
  5. Meyer, André N., et al. “Software developers’ perceptions of productivity.” Proceedings of the 22nd ACM SIGSOFT International Symposium on Foundations of Software Engineering. 2014.
  6. “Nvidia CEO Says Coding Is Dead but Reiterates the Importance of Human Intervention in the Biggest Technology Revolution with AI.” Yahoo! Tech, Yahoo!, 2024, www.yahoo.com/tech/nvidia-ceo-says-coding-dead-212146634.html.
  7. “Why Learn Programming? Here Are 10 Reasons.” University of the Potomac, 29 Feb. 2024, potomac.edu/why-learn-programming/. 
  8. “6 Ways Coding Encourages Logical Thinking.” Euka, 3 May 2022, euka.edu.au/all-resources/6-ways-coding-encourages-logical-thinking/. 
  9. Siddharth Goyal. “Future of AI and Data Scientists: Thinking beyond Models .” Siddharth Goyal, 20 Nov. 2023, www.siddgoyal.com/2023/11/20/future-of-ai-and-data-scientists-thinking-beyond-models/career/.
  10. Siddharth Goyal. “Can Technology Negate Efficiency Gains?”  25 Jan. 2023, www.siddgoyal.com/2023/01/25/when-can-technology-negate-efficiency-gains/technology/.

* Original Content: AI (Gen AI, LLM, etc.) was NOT used in creating the content of this article.
** This experiment was performed a few months back.

Leave a Reply