DAWN of AI: Understanding System Thinking as a Developer

Chibuezeadeyemi
4 min readMar 18, 2024

--

“Everyone in this country should learn how to program because it teaches you how to think” — Steve Jobs.

I decided to start with my mentor’s quote — Mr. Jobs. To be honest once you starts coding it builds a thinking nature into us. We Programmers possess a unique way of thinking that allows us to break down complex challenges, design innovative solutions, and translate them into instructions a computer can understand. Thinking was emphatic in Mr. Jobs’ quote, and that’s what I’ll like to lay emphasis on how a programmer should think especially in this age of AI.

Don’t assume you know what I’m teaching you today

Whether you’re a budding programmer, a curious learner, or simply someone who wants to understand the minds behind the technology, this post will equip you with valuable insights on understanding system thinking.

Decoding the Old Programmer’s Mind

Let me sound like an average programmer explaining what he does:

We programmers don’t just write code; we possess a unique problem-solving toolkit. We excel at decomposition, breaking down complex challenges into smaller, more manageable steps. This allows us to analyze each step independently and then combine them into a working solution. Like master chefs, we develop algorithms, step-by-step recipes that a computer can follow to solve the problem. These recipes involve logic (if/else statements), repetition (loops), and data organization (arrays, lists) to manipulate data and achieve the desired outcome. Also we understand the art of debugging, finding out errors …. and so on like that.

Well, I’m sorry to burst you if this is what you think about what you do — I apologize again. But if you see programming like this you need a paradigm shift, I mean concentrated one — funny though, sorry about that.

The set of Programmers AI will replace

I was emphasizing on the quote of a dummy developer about explaining what he/she does — this is not limited to web, mobile, AI/ML, backend, DevOps, Cloud and so on. If anyone thinks like the above, he/she is replaceable by an Artificial Intelligence (I won’t speak for any AI Software engineer, just make your findings).

AI is making significant strides in automation, the idea of a complete takeover of the programming world is likely an exaggeration. However, there are certain programmer skill-sets that AI might potentially replace or significantly augment. Here’s what we can expect:

  • Code Generation and Repetitive Tasks: AI-powered code generators are already showing promise in automating the creation of boilerplate code, repetitive functions, and basic website layouts. This could free up programmers to focus on more complex tasks requiring creativity and problem-solving.
  • Testing and Debugging: AI can be trained on vast datasets of code and bugs, enabling it to identify potential errors and suggest fixes. This could streamline the testing and debugging process, especially for repetitive tasks.
  • Data-Driven Programming: As AI becomes adept at analyzing large datasets, it can potentially automate tasks like data cleaning, model training, and generating data-driven visualizations. This could be particularly helpful for programmers working on data-intensive projects.

If you still think the above are what certify you as a programmer, most likely you are born in the wrong time.

Understanding System Thinking

Unlike traditional, linear approaches that focus on isolated features, system thinking encourages a holistic view where technology integrates seamlessly with the existing ecosystem, something like domain specific programming — let’s sight healthcare as an example. Telemedicine is a complex organism, where patients, doctors, medical records, and technology platforms all interact. A developer solely focused on building a user-friendly appointment booking app might miss how it integrates with existing hospital software or how patient data flows securely within the system. Understanding these interdependencies is crucial. By thinking systemically, telemedicine developers can create solutions that address the needs of all stakeholders — ensuring a smooth patient experience, efficient workflows for doctors, and robust data security for the entire medical system. This proficiency in both technology and the nuances of our society is vital for developers to bridge the gap and provide truly impactful solutions in this ever-evolving landscape. This is applicable to sport, law, transport and so on.

Components of System Thinking

  • High-Level Design and System Architecture: Defining the overall structure and functionality of a software system requires a deep understanding of user needs, technical feasibility, and long-term scalability. This level of strategic thinking is still best left to humans.
  • Creativity and Innovation: Programming often involves creative problem-solving and coming up with innovative solutions. AI can be a powerful tool for programmers, but it lacks the human ability to think outside the box and develop novel approaches.
  • Human-Computer Interaction (HCI): Designing user interfaces and experiences that are intuitive and user-friendly requires an understanding of human psychology and interaction patterns. This is an area where human expertise will remain essential.

Closing Note

AI will likely transform the programming landscape, automating repetitive tasks and assisting with various aspects of the development process. However, the future belongs to a collaborative approach where AI empowers programmers to focus on what they do best — creative problem-solving, high-level design, and crafting innovative software solutions.

--

--