I finally figured out why I always hesitate to tell other people about my projects. And the reason is, quite frankly, I’m not that proud of them.

I’m proud of the fact that I made things and they turned out to be useful. But that’s not enough. I came to realize, if I am ever to be proud of the things I make, they need to be better designed.

Just look at the tab bar of one of my iOS apps, Leetcoder.

That's terrible...

Quite obviously, the bookmark icon is noticably larger than the lists icon. In fact, all of these icons look like they are in different sizes.

Design is in the details.

There are more details like this in the app that I should get right.

It’s not like I don’t know better. I knew the toolbar didn’t look right all along. Nobody wrote me an angry email about it.

As a developer, I didn’t see myself as a designer. I see design as something entirely different from what I do. When I don’t see myself as a designer, I even become reluctant to put common sense in use: all the icons in the tab bar should be of the same sizes.

But as I read more about design and how it works, I gradually see myself as a designer –– a beginner designer.

I’m already designing. The things I made, they are not just products of programming, but programming and design. Every time I thought about what fonts to use in the app, what color to use as the primary color and what order should the interfaces be in, I was designing.

Realizing that puts things in perspective. You come to realize that there are probably better ways to do what you are already doing. Of course there are. Design is not magic. Design has its own rules. There is a whole field about design. There are great books about design. There are quality documentaries about design. There are also awesome designers, just like awesome developers from whom you can learn.

But like everything else, if you want to get better at design, first you learn the rules. You examine the rules and use them in your design accordingly. And someday, maybe someday, when you’ve mastered the rules, you might break some of them for good reasons. But right now, what I have is just good taste. (Be humble, okay?)

I like this quote from Ira Glass a lot,

Nobody tells this to people who are beginners, I wish someone told me. All of us who do creative work, we get into it because we have good taste. But there is this gap. For the first couple years you make stuff, it’s just not that good. It’s trying to be good, it has potential, but it’s not. But your taste, the thing that got you into the game, is still killer. And your taste is why your work disappoints you. A lot of people never get past this phase, they quit. Most people I know who do interesting, creative work went through years of this. We know our work doesn’t have this special thing that we want it to have. We all go through this. And if you are just starting out or you are still in this phase, you gotta know its normal and the most important thing you can do is do a lot of work. Put yourself on a deadline so that every week you will finish one story. It is only by going through a volume of work that you will close that gap, and your work will be as good as your ambitions. And I took longer to figure out how to do this than anyone I’ve ever met. It’s gonna take awhile. It’s normal to take awhile. You’ve just gotta fight your way through.

To get better at design, I’m re-designing my past projects and hopefully I can be truly proud of them after. Currently I’m re-designing my personal website, oh yes, the one you are currently looking at, and my app Leetcoder. I’ll write about things I learn along the way.

Have suggestions on how to make this blog better? Just head here and open an issue.