Tech

Why iOS?

Why iOS // Mimi Chenyao // Asian Barbie

A question I’ve been asked a lot is: why did I choose iOS development in particular?

There are a couple answers I usually give. Swift is a really beautiful language (I actually think its verbosity is one of its stronger traits), I’m always astounded of the amount of meticulous thought that has been put into the design of iOS, an app is a program that you can take on the go … the list goes on.

But those reasons all start sounding shallow after a while. Why did I really want to pursue iOS development? It’s important to step back and re-assess these big life choices every now and then. I thought about it for a long time, and realized that the one reason that all the others stem from is this:

(more…)

Mimi x the Bae Area

Silicon Valley // Mimi Chenyao // Asian Barbie

I’ll be in San Francisco this winter working as an iOS engineer for Motiv, a company that makes fitness-, heart rate-, and sleep-tracking rings designed to be on your finger 24/7.

I’m really stoked. It’s terribly hard to concentrate on finals right now (if this post reads really choppily, it’s because I’ve been at it all day and should really sleep).

Since I’ll be working full-time, I most likely won’t be able to post as frequently. That being said, I have a ton of cool stuff planned for every single series and I literally can’t wait to bring them all into reality. I’m going to try my best to release an article at least once a week. If I’m being super slow and unresponsive on here, you can check out what I’m up to on Twitter!

Mimi Chenyao // Asian Barbie

Counting Sort

Counting Sort // Data Structures and Algorithms // Mimi Chenyao // Asian Barbie

Counting Sort // Data Structures and Algorithms // Mimi Chenyao // Asian Barbie

Earlier today, I was doing a coding challenge that asked me to sort an array of integers in better than O(n log n) time.

I wondered briefly whether or not it was a trick question. The sorting algorithms I knew were all O(n log n) algorithms — could there be something faster?

It turns out that there was. Counting Sort, one of the more sophisticated sorting algorithms I’ve seen, takes constant time, and it sorts elements in a really cool way.

(more…)

Announcing Asian Barbie Version 3.0

Mimi Chenyao // Asian Barbie // Version 3.0

When I first started studying computer science, everything felt like an uphill climb.

Conceptual terms were confusing, my code didn’t compile half the time, and it seemed like I was in my advisor’s office every other week. I had never programmed before in my life; it took hours to complete assignments because I would have to Google and wade my way through pages and pages of condescending Stack Overflow threads to find the answer to a single one of my questions.

I had many questions.

Every time I finally understood what I was doing, I felt an overwhelming sense of triumph that made all the hours of struggle worth it. I wished that there were resources that explained things to me in a simple manner — to a beginner, language documentation is tricky and intimidating, and half the answers on the Internet don’t help, either.

My lucky break came the first semester of third year, when one of my professors took the time to teach me the Java programming language one-on-one every Monday, Wednesday, and Friday. Within three months, I went from a struggling, frustrated student to a competent programmer who could help debug others’ code. Suddenly, class assignments that asked me to implement things in code were a lot more fun. I became more involved outside the classroom, too, and was a lot more comfortable challenging myself. If not for that professor (and the endless encouragement of my advisor), I would have left the computer science area of concentration — who knows what my life would be like now.

I know that there are many students who have a hard time making sense of convoluted explanations offered by textbooks. I’ve spent the last four years of college poring over every resource I could find and simplifying it for myself so that I could understand it. It’s time to share that knowledge and pay it forward. I’m thrilled to announce that, in addition to my current series on Data Structures and Algorithms, I’ll be creating a few more tutorial series on various topics in computer science over the next week or so. Stay tuned!

With new additions come new changes. Here are some of the other things coming to the site:

A completely updated site design, ft. simplified navigation

Before, this site featured newest posts first. It was cool to visit and see constantly updated content, but older posts that were still relevant would get buried fairly quickly. The new site design is a compromise: You’ll still be able to see newest content first, but things will be a lot easier to find, thanks to the grid view at the top.

Series-based approach

Rather than creating random posts, Asian Barbie will take a series-based approach to content. This way, things will be more organized, and you won’t have to sift through pages and pages of irrelevant posts to find the one you want.

Cartoons!

I’ve always loved to draw, and realized that drawings would be a cool way to accentuate my posts and explain otherwise dry concepts.

Mimi Chenyao // Asian Barbie // Merge SortHere’s to these changes and all the cool stuff coming up! I hope you enjoy them as much as I’ve enjoyed putting everything together.

Mimi Chenyao // Asian Barbie

Trees

Trees // Data Structures and Algorithms // Mimi Chenyao // Asian Barbie

Trees — they’re all around us in real life, providing us with fresh oxygen, giving us comfortable places to sit under and read, and acting as cool backgrounds to pose by.

(Okay, maybe that last one’s a me thing.)

As it turns out, trees are also all around us in the digital world. They’re the underlying data structures behind most file systems, library catalogs, 3D video games, network routers, music compression algorithms, and more. We just can’t see them, so we often don’t know that they’re there.

(more…)