Reflection and New Meaning

Note on the Reflection series.

Preface #

In my final semester at NUS, I took module on reflection, based loosely on John Dewey’s work. Dewey first proposed the importance of reflection in the pedagogical process as a way to promote learning. He outlined criteria for reflection to take place and how meaning can be generated from past experiences, in both a solitary and communal manner. In the class, we were tasked to write a series of reflective posts based on our experiences in the four years of university.

The key to proper reflection is to first shift the focus away from the choice of experience, towards the meaning from the experience. It is important not to invalidate our own experiences as “not being worthy of learning” and instead focus on what the experiences tell about ourselves. More importantly, reflection for Dewey is active. It is not just about revealing the past, but also about bringing the reflective meanings to new experiences in our lives.

Hello, World #

I’m Joyce, a Computer Scientist by Training.

I’ve always loved logic puzzles and mathematics, because they reveal innovative ways of looking at problems. This love for problem-solving nudged me to major in Computer Science, where I learnt how to apply my analytical skills in writing software.

At the same time, my experience in puzzles taught me that lateral thinking was an important skill. While learning about the ways of Computer Science, I was also concurrently pursuing multi-disciplinary studies at the University Scholars Program (USP). At USP, I had the opportunity to work closely with individuals trained differently in various majors at NUS, and it was enjoyable to both share my perspectives and hear about theirs.

I came into university not fully knowing what being a “Computer Scientist” would entail. Over the past four years, through the numerous chances I took and mistakes I made, I’m now at a clearer position of what this title means for me in the future. In particular, I’ve used multi-disciplinary lenses from my time at USP to think about Computer Science, which I hope will be a refreshing take for you.

It is a common thread to hear that university education is not useful for being a software engineer. In The Computer Science Tutorial, I reflect on how independent learning can best be done for computer scientists. More importantly, I walk away from this piece with the acknowledgement that the structured in-class guidance was important in giving gave me a big push to pursue passion projects in my free time.

Often, in these various passion projects that we do, we are spoilt for choice with the number of programming languages that exist. Recently, I tried to learn one of the most popular programming languages now, Golang, but felt that my progress was slow. In A Better Way to Learn Programming, I applied what I learnt about human languages to programming languages, elucidating the mistakes I made in learning Golang.

Lastly, the scale of software seen today makes working in large teams unavoidable. In The Collaborative Nature of Computer Science, I reflect on the relevance of the Separation of Concerns principle to software engineering teams. By considering a concept from neuroscience, I gained a new perspective of thinking about software architecture. In the end, I walk away with a greater appreciation for the collaborative nature of programming.

Besides documenting the mentality changes I went through over the last four years, I also hope that this portfolio will be encourage my fellow Computer Scientists to think about this profession using lenses from other areas of their life. Feel free to check out any of my posts; they don’t have to be read in any particular order :)