Programming Is About Data First, Code Second

Dr. Kai Dupe • July 28, 2026

The truth is that most software applications exist to manage information.

Ask someone what skills an aspiring software developer should learn, and you'll likely hear a familiar list: Python, Java, C#, JavaScript, Git, cloud computing, or perhaps AI-assisted coding. Rarely does someone say, "Learn databases." Yet I would argue that understanding databases is no longer optional—it is a core competency for every modern programmer.


The truth is that most software applications exist to manage information. Whether you're building a banking system, an e-commerce website, a healthcare application, or an AI-powered chatbot, the software's primary purpose is to collect, organize, protect, and retrieve data. The code is simply the mechanism that makes that happen.


This is why I believe we need to rethink how we prepare the next generation of software developers. Programming teaches us how to instruct a computer. Database design teaches us how to model the real world. Great software engineers must be able to do both.


In recent years, many developers have come to rely on Object-Relational Mapping (ORM) frameworks and AI coding assistants to generate SQL queries and database access code. These tools are incredibly valuable, but they don't replace the need to understand how information should be structured. AI can generate a CRUD application in seconds, but it cannot reliably determine what entities should exist, how they relate to one another, what business rules should be enforced, or how to design a database that will remain effective as an application grows.


Poor database design leads to poor software. Duplicate data, missing relationships, inefficient queries, and inconsistent information cannot be solved simply by writing better code. They are architectural problems that require an understanding of data modeling and information design.


Perhaps the most overlooked benefit of studying databases is that they teach developers how to think. Designing a database requires abstraction, categorization, systems thinking, and an understanding of relationships between concepts. These are the very same skills that distinguish experienced software engineers from those who simply know how to write syntax.


As AI continues to transform software development, the ability to generate code will become increasingly common. The ability to design sound information systems will remain a distinctly human skill.


Maybe it's time we stop treating databases as a specialized topic taught after programming and start recognizing them for what they truly are: one of the fundamental building blocks of software engineering. Programming isn't just about writing code. It's about understanding information—and that begins with databases.


By Dr. Kai Dupe • October 12, 2026
I have spent much of my career in technology learning, teaching, and staying current.
By Dr. Kai Dupe • September 18, 2026
A mentor gives you advice. A sponsor creates opportunities.
By Dr. Kai Dupe • August 20, 2026
Representation alone will not solve the persistent racial disparities in computing.
By Dr. Kai Dupe • July 1, 2026
Artificial intelligence has become the newest member of nearly every software development team.
By Dr. Kai Dupe • June 17, 2026
The true promise of computing is not found in the machines we build, but in the human potential we unlock when knowledge becomes accessible to everyone.
By Dr. Kai Dupe • June 3, 2026
One of the reasons I value the MCT program so highly is that it represents more than technical knowledge.
By Dr. Kai Dupe • May 22, 2026
Software engineering is not simply coding.
By Dr. Kai Dupe • May 15, 2026
Companies often promote the idea that technical skill alone determines success.
By Dr. Kai Dupe • May 3, 2026
Hackathons also strengthen teamwork and communication skills.
By Dr. Kai Dupe • April 22, 2026
Stepping onto the campus of Morehouse College this past weekend for Admitted Students Day was more than a visit—it was a moment of reflection. As I watched young Black men walk with purpose across the yard, I found myself asking a simple but profound question: What would it have been like for me to study computer science here? My journey into computing was shaped in environments where I was often the only Black man in the room. That reality brings with it an unspoken weight—the need to prove you belong, the awareness of being watched, and sometimes, the quiet isolation that comes with underrepresentation. Standing at Morehouse, I realized that this burden is not a given. It is a condition of the environment. At Morehouse, the environment is different by design. Here, Black men are not anomalies—they are the standard. I imagined what it would feel like to learn algorithms, data structures, and software development in a space where my identity was not questioned but affirmed. Where excellence is expected, not in spite of who you are, but because of it. As a computer science professor, I understand the academic rigor required to succeed in this field. There is no shortcut through recursion, no bypass around debugging, no substitute for disciplined problem-solving. But what struck me during my visit is how much context matters. When students are free from the psychological burden of proving they belong, they can redirect that energy toward mastering the material. They can collaborate more openly, ask questions more freely, and take intellectual risks without fear. I also thought about legacy. At Morehouse, students walk the same grounds as Martin Luther King Jr.. That kind of history does something to a person. It raises the bar—not just academically, but personally. It invites students to see their education not just as a pathway to a career, but as preparation for impact. Leaving campus, I felt inspired—but also reflective. I cannot rewrite my journey, but I can appreciate what spaces like Morehouse offer the next generation. For a Black male pursuing computer science, it is more than a degree. It is an opportunity to develop skill, confidence, and identity in alignment. And that combination is powerful.