My advice to the 2012 class

I feel sad at graduations. When I graduated college in 1997, all I felt was sadness and melancholy, rather than joy. I chose not to attend my MS and PhD graduation ceremonies, but I remember I felt sad after both defenses. It turns out, I also feel sad at my students' graduations. I graduated 3 PhD students and a couple MS students with the thesis option. It was always sad to see them depart.

This semester, I have been teaching distributed systems to the graduating class (seniors) at my sabbatical institute, Bilkent University. They are bright and talented (for example, Ollaa was developed by 3 of them). For the last class of their semester and their college lives as well, instead of discussing yet more about distributed systems, we walked out of the classroom, sat on the grass outside, and had a nice chat together.

I gave my students some parting advice. I tried to convey what I thought would be most useful to them as they pursue careers as knowledge/IT workers and researchers. Here is that advice in 3 stories and lessons.

1st Story: How I almost flunked the differential equations course

I was taking differential equations course in the first year of college. I was feeling comfortable with the course because I had seen some of the content in high school. I had gotten an A in the first midterm, so I didn't pay attention to the course until the finals. For the finals I had to go through a lot of content. I read/followed the practice questions in the textbook rather than solving questions on my own. As I followed the solutions of the practice questions, they seemed obvious and easy to do. Of course, when I took the final exam I was baffled since I couldn't solve any of the questions on my own. What seemed obvious when I was following the book turned out to be not obvious at all when I had to come up with them myself. I did so bad that I almost flunked the course. I retook the course in the summer, this time I didn't repeat the same mistake and got an A.

1st Lesson: The best way of learning is by doing

There are different levels of knowing. The first level is "knowing by word". With passive learning (like I did for studying for the diff final), you get the most limited form of understanding/knowing. It is ephemeral, and you are not able to reconstruct that on your own. The second level is "knowing by first hand experience". At this level, you are able to understand/witness and if necessary rediscover the knowledge on your own. Finally, the third level is "knowing by heart". At this level, you internalized the knowledge so that it becomes part of your nature. (See Grok).

The best way of learning is by doing. You need to work hands-on, make a lot of mistakes so you can start to internalize that knowledge. That means you should make, and produce things continuously. For this to work in a sustainable manner, you need to change your default mode from the consumer mode to the producer mode. Always have a side-project to sharpen the saw. Start your day by working for an hour or so on your side-project, instead of browsing news/twitter/etc. At night, spare some time for your side-project as well.

2nd Story: (Ok, a quotation actually, not a story)

Once you get a B.S., you think "you know everything". Once you get an M.S., you realize "you know nothing". Once you get a Ph.D., you realize that "yes, you know nothing, but that is not a problem, because nobody knows anything!"

2nd Lesson: We are all equally stupid

This is the summary of the PhD experience, so this bears repeating: "you know nothing, but that is not a problem, because nobody knows anything!"

We are all equally stupid. Our brains consist of 1.3 kg (3pounds) of gooey material. It is hard to hold 10 variables in our brains simultaneously. Our brains are very poor at reasoning about even very short concurrent programs (I know from first-hand experience :-). Our brains are also very susceptible to biases and fallacies.

The people you see as experts/geniuses are that way because they have been working/thinking/internalizing these topics for more than a decade. Those experts become baffled if you ask them a question a little bit outside of the frame they are accustomed to.

So here is the trick, "you can level the playing field by work on new things/technologies".

3rd Story: Kung-fu master and his student

M: You must pass one more test: What is the meaning of the Black Belt?
S: The end of my journey, a well-deserved reward for my hard work.
M: You are not ready for the Black Belt. Return in one year.

One year passes...
S: It is a symbol of distinction and the highest achievement in our art
M: You are not ready for the Black Belt. Return in one year.

Another year passes...
S: The Black Belt represents not the end, but the beginning, the start of a never-ending journey of discipline, work and the pursuit of an ever higher standard.
M: You are now ready to receive the Black Belt and begin your work.

3rd Lesson: Just ask

There are actually two lessons to this story. The first one is that, like the black belt, the Ph.D. is the beginning, not the culmination, of your career. But the more important second lesson is: If you bother to talk to and learn from the people who have already gone through this process, you might graduate two years earlier :-) :-)

So, for whatever goal you are chasing, be effective. Learn the criteria for the next step and optimize for it. This again connects back to the first lesson. A shortcut to getting the first-hand knowledge is to ask to the people with the first-hand knowledge. This is of course not the same thing as first-hand knowledge, but it is the closest it gets to that. (Steve Jobs also has the following advice about asking.)

I will write another blog post specifically about how to succeed in PhD, but that may take some time.


Anonymous said…
Those tips are great! A little upset because I didn't get to read about them earlier in my undergraduate life.
Anonymous said…
Much wisdom here Murat.
Kiran Kondru said…
Thanks, Murat, for sharing the wisdom... Hope I had learned these lessons much earlier in life

Popular posts from this blog

Graviton2 and Graviton3

Foundational distributed systems papers

Learning a technical subject

Learning about distributed systems: where to start?

Strict-serializability, but at what cost, for what purpose?

CockroachDB: The Resilient Geo-Distributed SQL Database

Amazon Aurora: Design Considerations + On Avoiding Distributed Consensus for I/Os, Commits, and Membership Changes

Warp: Lightweight Multi-Key Transactions for Key-Value Stores

Anna: A Key-Value Store For Any Scale

Your attitude determines your success