My coding journey started at 14, when I took computer science as an optional subject in school and learned BASIC. For my final project, I tried to build a simple car racing game. I got stuck trying to generate random obstacle positions and detect collisions and eventually switched to a Hangman game instead. Even then, something about programming clicked.
After school, I moved toward biology, but coding kept reappearing. I took a C++ course in college, then a bioinformatics course and a computational cognitive neuroscience course in graduate school. Over time, programming shifted from being an interest to a necessity. Modern biology, especially bioinformatics and large-scale data analysis, depends heavily on code.
I taught myself Python and R, and during my postdocs in computational biology, both became tools I used fluently. At that point, I was not just using them for my own work but also helping others. Coding had become a natural way for me to think and solve problems.
What has been more difficult to understand is the contrast with my experience in mathematics. Coding and math are often described as closely related. Both require precision, structure, and logical thinking. But my experience of learning them has been very different. Coding became usable and intuitive relatively quickly, while mathematics took much longer to develop into something I could work with comfortably.
My current view is that the difference lies in the type of abstraction involved. Programming often allows you to anchor ideas in concrete systems. You write code, run it, and observe what happens. The feedback loop is immediate, and even complex systems can be built incrementally from smaller, testable pieces.
Mathematics, especially in its more abstract forms, demands a different kind of engagement. The objects are less tangible, and the feedback loop is slower. Progress depends more heavily on internal consistency and precise reasoning without the same level of external grounding.
This difference became clearer when I encountered theoretical computer science. Topics like automata theory, formal languages, and the structure of computation felt much closer to mathematics than to programming. The ease I felt with coding did not carry over. Instead, I had to approach these subjects in the same deliberate way I approached math, building understanding step by step.
Looking back, the contrast is less about ability and more about where I started. Coding allowed me to operate effectively within concrete systems early on. Mathematics required me to develop a deeper level of abstraction over time.
That layer is something I am still building, but now with a clearer understanding of what it demands.
No comments:
Post a Comment