Ken Nguyen

Programming Blog

View project on GitHub

Identity and Craftsmanship

27 Oct 2018
rants

A thought came to me in such a force that I felt the need to express it. There were times before when I had an idea in my mind, only to push it back because it was not a good time for me to put it down. These first few lines I put down are just reminder to myself of the thought before I fail to catch the tail end of it.

Identity

The question I had in my mind was: Why do I do the things I do? It seems like such a rhetorical question but it really comes down to who I am as a person. I created this blog as a way for me to reflect and share my journey into programming with others. The funny thing is that as I start to write, I began to see it as a creative platform for me to express my ideas and opinions. This goes hand in hand with the concept of identity. I enjoy the process of writing a blog post.

It starts with an idea in my head. Then I sit down in front of the computer and try to flesh out the idea, only to see some of it not being able to be clearly expressed. I think the hardest thing about writing for me is the actual process of writing. Sometimes when I have an idea that sounds good in my head, then as I start to write, the structure and flow just do not mesh well together. The final product is something of a compromise between the original idea and the idea on paper.

I think that it’s the same with my identity. There is person inside me who enjoys video games, novels, and spending time with friends. Then there’s another side of me that keeps telling me that I need to spend more time studying programming, that I already wasted too much time playing video games before. That I could have used that time to learn something practical and being able to actually make money with it. I am a compromise between the two.

And I actually started to realize that the compromise is not a bad thing. It’s the first step for me to be able to merge both sides together. Of course in the back of my head the practical side is way more practical. If I just cut out all the other activities and focus solely only studying programming, I would get it done in way less time. I talked to my dad about this and he yelled at me. He told me that a person needs to be dynamic. He basically told me that I need to go out and experience the world more instead of shutting myself in.

I had that talk with him a while back and it’s only now that I realize the wisdom behind his words. And I slowly see the links of the chain coming together. Without all the experiences I had, I would not be the same person I am today. While there are things in my past that I’d rather not have experienced, the fact of the matter is that there’s no such thing as a reset button. I have to live with the life I was dealt with. It’s a messy life full of ups and downs but it’s still my life.

Craftsmanship

My identity is the reason why I do what I do. It sounds so simple on paper but as I write this, it’s a good reminder for myself as I grow older. Maybe in five, ten, or twenty years later, I can look back and see my own thought process when I was twenty-six. This ties in with the reason why I want to pick programming as a career to pursue. Programmer is inherently a craft. And as I make my way from a beginner to a craftsman, I learned to enjoy the process more.

That’s why I think programming is one of the closest thing a technical person has to art. Learning how to write the mandatory “Hello World!” to print on the screen is similar to how a painter picks up his paintbrush for the first time. And one of the best thing about it is that it’s a lifelong craft. Just like there are multiple styles of painting, there are multiple programming languages that are best for different purposes.

It used to baffle me that there are just so many programming languages. I asked myself which one is the best language for me to learn? Now I can say with confident that there is no best programming language. Each language was designed with a different identity. I started with Python because it was an easy language to learn. Then I picked up C and saw the necessity of a low level language on resource constraints. Each language I learned added a new tool to my toolbox. At the same time, the new language also expanded my mind to other possibilities, other ways of doing things more efficiently with the right tool.

Enjoy the Process

As I write these last few lines, I remind myself to enjoy the process more. Learning programming is not a race. There are no other people I have to beat except myself. When I move on to the next programming project, I can take a look at my own code and see how far I came during the journey. It’s still a long way to mastery but as long as it was better than before, then it’s alright. Incremental improvement is how an apprentice becomes a master. Even Mozart and Leonardo Da Vinci do not wake up one day with all the skills and knowledge they mastered over the years.

Finally, just being able to sit back and enjoy my creation is a wonderful feeling. I don’t have to rush to the next project right away. There are plenty of things in older projects that I could improve upon. I think there are always small pieces of my identity laced together in the projects I create. Being able to see why I made the project or why I think it was worth my time is a revealing experience. Maybe one day I can see where all my experiences will lead me. For now, I’m happy with just writing code.

Back to top