I did it!
For the past two years, I worked very hard to be good at Software Engineering. I wanted very badly to come to San Francisco where lots of smart people are and work for a big company. It has been a crazy roller coaster ride so far...
My friend Angie pointed out right after we watched the movie Neighbors - It went too fast. One day, it was the graduation ceremony and the next day, we were all out of college. I didn't even have my degree certificate then and yet a bunch of self-claimed engineers stand here, away from our hometown in this strange and foreign city hoping to do what we can to change the world.
I can still remember very clearly the one afternoon at the CAEN computer lab in the Mechanical Engineering Department where I sat down by a friend of mine Zongchang and I told him jokingly of the idea - "I might go study Computer Science". At the time, although being super bored in my IOE classes I was only 10% serious about this.
And then momentarily I was questioning myself as to why I thought the idea was so absurd. Why can't it happen? I was already a in the second semester of my junior year. It would have probably been too late to declare as a CS major. Studying a dual major in Mechanical Engineering and Computer Science Engineering sounds like a lot of work in only four years and nobody from the same program I went through took such dramatic major choices/swapping yet I still went to talk to Professor David Chesney about transferring my major. After all, what did I have to lose? Professor Chesney evaluated my credits and he told me that I had to spend an extra semester in college to finish a CS degree. After a careful and meticulous debate I took another seemingly absurd step: I declared it.
My CSE career began where I did well in classes, participated in various internships, and worked as a teaching assistant for the Fundamentals of Data Structures class which included making exam questions, proctoring exams, holding discussion sections, and running office hours.
I went back from China from the summer of 2013 and started searching for a full time job. I traveled to lots of places for interviews and was rejected in most. With a dream to go to San Francisco I tried and tried and then I finally got offers from a handful of companies.
As a 22-year-old senior college student, with only two years of programming experience, I feel very glad to have received such a welcome from the CS industry.
Less than a month after my graduation from University of Michigan I started a job as a Software Engineer at Yahoo, Inc.
When I first started the job I promised myself that I would keep my motivation going. I wanted to make the company better with all of my effort. I had lots of energy and crazy ideas but not enough experience nor the skills necessary.
Now that I am five months into my career I want to take the time to do some self-introspection.
Lesson 1: "Think big" is not enough; think HUGE.
On my first day at Yahoo's orientation one thing stuck in my head: "Never say it is impossible to do something". Literally anything is possible and it is the developers job to make things happen. If you do not know how to make it happen, learn.
During the first few weeks my manager would occasionally come up to me and tell me to do things that I questioned the possibility of doing. And yet I was able to accomplish them which taught me a lesson: it is crazy how much human accomplishments are limited by what our brain think we can accomplish. Without my manager, or a mentor, I would just be doing all my work in my comfort zone. How can we be successful if we spend our entire lives in our comfort zones?
This is reiterated in my life to be true where a good friend of mine Ari did something completely crazy (in my head) with the LLDB debugger - a Facebook open-source project called Chisel.
Lesson 2: Focus while going broad
Distractions - distractions will exist in your life. They aren't just simply good or bad. They seem to be good but end up to be bad or vice versa. You realize them and you don't.
My major distraction is that I have too many goals. I want to learn about medicine and the human body in general. I want to help people in areas where they need most. I want to learn how to paint, sing, skydive, scuba dive, play the piano, and so much more.
I want to be a musician, an artist, a doctor, or a dentist. Some days I want to be an opera singer. and on others I want to be a dancer. Some days leave me feeling like I have accomplished nothing because I look at that list and I see no progress.
My time is spread out working on different goals. I lack consistency and the persistence needed to finish all of my goals. When I first joined Yahoo. I wanted to do so many things that weren't necessarily my responsibility. I quickly learned that what the company wanted most from me was not the extra things that I wanted to do. Instead, I found that what I can do to help the most, which is doing what I do well, is mobile engineering. Therefore, lately, I have been focusing more on my technical skills and trying to be more technical savvy.
I asked my friend Ari how he could be such an expert on iOS while remaining so knowledgeable in other parts of programming and the world. His response was, "You've got to be good at something or you are just going nowhere."
I spend most weekends programming and I am amused at how astonished people are when I tell them. :P
Every morning I stare outside the shuttle on my commute to work. Life is too short to spend each breath focused on the future and I find the view along the 101 is just too beautiful to ignore. The mountains and the bay surround us forming a landscape likely only to be found in a dream. Yet it seems that most of the others don't even notice. I feel bad for most of the other people riding with their faces glued to their computer screens working every second of the commute. They each have their own goals that they strive to accomplish and there just isn't enough time to even glance out the window. So, while I do all that I can to focus on my work and my growth I also make time each and every day to embrace the beauty and richness of life and find within it the strength and momentum to keep accelerating forward.
Lesson 3: Take the time to find out where the resistance is and apply force and velocity. (momentum)
Lesson 4: Worrying is a waste of time. Spend time to be awesome. Then you will be worry-free. And then be more awesome.