Friday, September 25, 2020

Programming with a Sense of Mission : (Mission + Expertise) × Understanding People

Have you ever thought deeply about the meaning of the work you do? Have you ever considered the impact your software could have on a larger scale beyond just the code itself? I often feel a sense of awe when I think about the scale at which global tech leaders think. While my concerns are often about code efficiency, operational ease, or building development pipelines, these leaders focus on humanity's future. They think about the environment, population, survival, and the well-being of future generations. For example, they invest heavily in reducing even 1 watt of CPU power consumption, knowing that while the difference may seem negligible for one person, it can significantly contribute to preserving the natural environment on a global scale.

When people realize the vastness of the universe, they may feel a sense of existential futility. Similarly, when faced with much larger problems, our own concerns often seem small and insignificant. But the reality is, the macro world is made up of micro components. If we fall into nihilism and fail to find meaning in what we do, even the larger existential questions lose their value.

As developers, we should approach programming with a sense of mission. We contribute to making a better humanity by solving problems, even if the immediate task at hand feels trivial. The skills and possibilities we are building today could have a significant impact on the world, even if we can’t see it yet. What's important is that computer programs already control many aspects of the world, and their role will continue to grow in the future.

The Importance of 'Mission' and 'Expertise'

While "mission" reflects our attitude towards our work, "expertise" is equally crucial. It’s clear that as developers, we must possess technical expertise. With "mission" and "expertise," we can become recognized professionals. Having technical expertise means understanding the computer and how it works, but we’re not just creating programs for computers; we’re creating them for people. While AI may be an exception, the ultimate purpose of the programs we write is to fulfill human desires. Thus, an understanding of human needs is essential to create meaningful contributions to humanity.

Programs created by schools, businesses, or development teams shape the lives and behaviors of many people. When designing such programs, we must consider diversity. The world’s nations are no longer geographically isolated, and once a program is released, it can be used across the globe.

Understanding the World

How much do we really know about the people of the world? Can we propose appropriate systems based on our understanding of their needs?

We need to ask ourselves these questions. What do people on the other side of the world think, what time zone do they live in, what climate do they experience, and what religions do they follow? To ask these questions, we must gain experience and acquire knowledge. This can be achieved through working with foreigners, engaging in volunteer work for marginalized communities, or traveling abroad. Acquiring this information means studying human behavior. Studying the humanities gives us a fundamental understanding of people, and learning about geography and history helps us understand others in the context of time.

We often hear about the importance of having a "global mindset." I interpret this as the ability to "think from their perspective." If we can understand the perspectives of our colleagues, the users of our programs, the investors funding our projects, and the students who learn from us, we can contribute to humanity’s quality of life without making significant mistakes.

Conclusion

As developers, we must approach our work with a sense of mission, constantly strive to improve our expertise, and always ask questions to understand people better. This mindset will not only help us grow individually but also enable us to contribute meaningfully to the progress of society.