Jongmin Kim on Embracing ‘the Essence of Programming’


I see myself as a designer/developer hybrid. As a developer, I used Flash for the past five years to build interactive websites. Currently, I am a Senior UX Engineer at Google and mainly use HTML5 and Javascript. A few aspects of my professional philosophy were of great assistance in my transition from Flash to HTML5.

First, I tried to develop my own skillset and not merely focus on Flash. A lot of people are proficient in Flash, but not many can use it to create attractive designs. Instead of trying to become an expert in Flash, I tried to become a designer that could create quality output with great design, animation, transitions, and user interaction. Thus, my focus was on the content and not the platform. The technologies demanded by the market constantly change, so I thought it would be dangerous to depend on a single technology. Flash would someday become obsolete, and I wanted to develop a unique set of abilities that would not become outdated. These abilities allowed me thrive when creating things with HTML5.

Second, when I was about to graduate high school, my dream was to become a model maker that makes miniature models used in movies. At that time, I coldly appraised my talent for such work. I realized that expert model makers had to create models from scratch, but I was only capable of assembling and painting model kits. I was good enough to be a hobbyist but not a professional. In my opinion, to be an expert, one needs to be able to work at the most basic level. In programming, this consists of using code to design program structure and write one’s own programs. If one doesn’t understand code and merely uses tools or libraries to create things, this is like a hobbyist putting together and painting store-bought models.

Flash provides timeline-based authoring tools that allow anyone to create animations, even if they don’t know how to code. This is why Flash is popular among designers who can’t program. This has resulted in many designers using Flash tools to create button movements or detailed animations. While most people did things the easy way, I wrote my own code to make animations, even though this method was much harder and more time-consuming.

I did this because I thought I needed to understand the essence of programming, i.e., coding, and not be dependent on tools provided by Flash. This ability to code my own animations helped me create interactive designs using JavaScript in HTML, which does not provide authoring tools.

The same principle holds true for libraries. Libraries are “source files that can execute specific functions needed in programming”. The use of libraries is not a problem in itself. The problem arises when one uses a library and thinks the end product is entirely due to their own ability. This is a self-deception, and the designer may end up becoming a “collector”: someone who spends more time collecting libraries than honing their craft. This tendency may be acceptable in the early stages but as time passes it becomes a trap.

My emphasis on the basics has benefited me at Google. My first project at Google was to make a prototype for a new and improved Google homepage. The usual approach in such projects is to use prototyping tools or libraries created by other designers. However, I did not use any tools or libraries and only used JavaScript to make a prototype. I improved efficiency by writing code optimized for each design and not using premade code. Thanks to this approach, I created a solution allowing for smooth animation in mobile devices, and as a result, I was featured in the 2014 Google I/O.

Beginners often use prototyping tools when learning how to program. Although tools are helpful to beginners, one must eventually go beyond them to make progress. Once you gain experience in programming, you should write your own code and stop using tools. Tools and libraries are convenient, but they prevent you from understanding code, and you are restricted to the functions they provide. Even if the tools are good and you understand them completely, the results will be limited. We must remember that tools and libraries themselves consist of code. Writing code—and not using tools—to create designs might be difficult, but it will give you a broader perspective and help you when transitioning to other programming languages.

❔ Whois

Jongmin Kim is an international award-winning Interactive Developer & Designer, currently working as a senior UX engineer in Google’s Design Collective Team, developing futuristic ideas and creative works. He always tries to “pursue a minus design rather than plus designs” and keeps in mind that “form follows function.” His personal works reflect his approach to design.

Twitter / Instagram / LinkedIn

❤️ Favorite Emoji


Enter your email address to follow this blog and receive notifications of new posts by email.

One Comment

  1. can u explain for me what is the whole essence of writing programs

Comments are closed.