The most important lesson I ever learned

I recently read an article by Steven Pressfield titled “The most important writing lesson I ever learned”. In short, the lesson is this: no one wants to read your shit. I’ve just begun writing, but hopefully over time people won’t mind reading my shit. In any case, here’s some more shit.

This got me thinking more broadly about the most important lesson I ever learned. The lesson is quite simple, and may sound familiar:

Just do it.

Simple right? I would like to think so too, but it took me 23 years to properly apply it outside of just having fun.

The backstory.

I’ve never been good at doing what I’m “supposed” to do.

I was never the model Asian child. I talked back to my parents. I listened to 2pac during class at Chinese school. I cut summer school classes to bike around and explore. This exploring had a few negative consequences: I was caught for stealing a few times*, and put on probation for 2 years after accidentally setting a brush fire.

Despite having a PhD, I was never the model student. I didn’t do homework if it was boring. In college, I stopped copying homework because it took too much time (even with a good friend often offering to give me the answers). I skipped labs to play basketball. It wasn’t long until I brought home my first B, and then my first C, and then D.**

How I felt about doing what I was supposed to do as a kid. I don’t suppose much has changed.

Now this is all fine and dandy, except for when there is something you actually want to do! When you have bad grades, you look like crap on paper. When you look like crap on paper, people don’t take you seriously. It turns out there are tons of people that don’t look like crap on paper, and many that look awesome on paper. And when people don’t take you seriously, it can be hard to get started on whatever you want to do.

The lesson.

At the end of my junior year, I found something I wanted to do. I took a course on computer architecture and found it fascinating. I decided that I wanted to do research in computer architecture.

When I arrived at the M.S. program at the University of Colorado, I was very excited. It was time to start doing research! There was just one problem. I didn’t have an advisor. My friends that looked awesome on paper (and who actually are awesome) started with an advisor funding them. Unfortunately, I started without an advisor and without funding.

I began bugging professors to be my advisor. I went door-to-door, introduced myself, talked with them about their research, and asked if there was something I could help with. All of the professors rejected me in some form. I continued bugging a few professors every week. Each time, I was rejected. This continued for months, and I began to feel hopeless about the situation.

One night, over a few Jack+Cokes, I told one of my good friends about my problem. I told him about the professors I was bugging. I told him about the months of rejection. I told him about how hopeless I felt.

And then I heard perhaps the best advice I will hear in my lifetime:

“What are you doing? Why don’t you just start doing research?”

This blew my mind. I thought I needed an advisor. I thought I needed guidance to begin research. But all of that was wrong. The only person stopping me from doing research was myself.

I began going into a research lab every day. Without a summer internship, I went through the summer. I set my own research agenda. I learned, coded, and collected preliminary data all summer. I also connected with one of the senior students in that lab and he began mentoring me. By the end of summer, I showed a professor the preliminary data, and soon became a funded graduate student. Years later, I completed a PhD in computer architecture, and landed a great industry research job in computer architecture (which I recently quit, but that is a different story).

Lesson learned.

We all have goals. We all have things that we want. No one is going to hand you what you want on a silver platter. The flip side to it is that no one is there to stop you from getting started. So just do it! Whether you reach the goal or not is irrelevant. Most likely you will gain a lot along the journey.

I’ve found this lesson broadly applicable. If you want to learn anything, just do it. No one will stop you. If you want to do anything, just do it. Just make sure you can live with the consequences. If you see a cute girl/guy and want to talk to them, just do it. You may get rejected, but no one is stopping you from trying. It applies to just about everything.

I’m not saying I’ve always followed this lesson. But, when I have, it has paid off. And, when I haven’t, I have often regretted it.

There is a reason Nike is so iconic: they have a damn good company mantra.

* I haven’t stolen in years. When you get caught as a minor (and if you do it enough, it is inevitable), you only get slapped on the wrist with a phone call to your parents. As an adult, it’s a stupid way to seriously mess up your life.

** I never got an F in my life. It is actually pretty hard to get an F. With a little bit of work, a D- is very attainable. And, I’m still a horrible student. My PhD advisor once told me, “you are bad at school, but could be a good researcher.”

Write a compiler, then you will be good at computer architecture. The whole time I was writing my compiler, I kept thinking “Dang, this would make a good instruction set!” My intermediate code started simple and I worked-on it until it used complex instructions. I was pissed because I put that effort into CISC, but the x86 was breaking it back down into RISC, so I gained no benefit by making my compiler more complicated with CISC.

I did my compiler with a reverse polish stack machine. I thought it might make an interesting CPU if you did integers like the x86 does floats — with a stack. However, use the system stack. You might need 16 instructions and three modes signed int, unsigned int and float. The applications must adapt programming style if you cache the top of stack. Don’t use much local variable space, allocated off of a heap. LoseThos, my operating system is ring-0-only and identity-mapped and has a fixed stack size, so I alloc off a heap.

I don’t think my idea of making a machine with int/float stack on the system stack would be so good. My thought was that the top of the system stack would be automatically placed into, basically, registers. I think a standard machine is better, after I’ve thought about it, but it would have made for a simple and elegant compiler that worked almost 1-to-1 intermediate code to machine code.

“F”‘s are easier to get than you think, even if you try – really hard. You just take the hardest class you can find in EE, over the summer semester, when you have no aptitude for or interest in the subject, and make sure the professor’s accent is hard to understand, and that only really smart people who knew how hard the class would be are in it with you. Oh, and then work 40hrs/week at your unrelated job, lead a ministry at your church in the evenings, and then stay up too late doing your homework so you fall asleep in the 8AM lecture.

Oh, but this is great advice – probably the most important thing I’ve learned, even during and after being a bad student, this helped me achieve what I did do. And you are part of the reason I learned it my friend!

Bang on. I was in a “lost” period in my life while working for a big corporate when I was 21, and I had a conversation in a bar with a stranger, that ended up going along the lines of:

“Man, I wish I could do something different. How do you think I could go about starting a company?”

“Well, start by starting a company.”

And that was more or less it. It applies to everything in life – don’t wait around for it to happen, because it never will, unless you make it so. When you realise this, you realise that you can do *anything*, so long as you’re willing to take the plunge, and take your share of scars.

I still have no idea who he was, but it’s a piece of blunt, rather sarkily delivered advice that’s stuck with me since, that I now preach to everyone stuck in a valley of deliberation.

I am an immigrant to the US and had to raise my two kids on my own. I didn’t have a lot of options b/c I wanted to put them through college. But now that my youngest one graduated in May, I quite my absolutely secure, pretty good job of 17 years and moved to LA to break into screen writing. Even though I have been telling people for years that this is what I will do, everyone as shocked that I went through with it. :-) I know I gave up a lot but I also know that I would have always regretted if I didn’t just do it.

Excellent pieces. Keep writing such kind of information on your page.
Im really impressed by your site.
Hey there, You have performed an incredible job. I’ll certainly digg it and individually suggest to my friends. I am sure they will be benefited from this site.