Skip to main content

Seven Secrets of Highly Successful Research Student

Seminar Notes written by
Dina Said (Phd Student, Database Lab at University of Calgary)

1) Care & maintenance of Supervisor:
Know yourself and your supervisor. People are either do'ers or thinkers. If your supervisor is a thinker, always ask them multi-choice questions. Do u think (a) or (b) is better? They will probably tell you and there are also (c) and (d) and (e). Limit them always to tell you one direction rather than thinking and thinking and thinking without an action.
On the other hand, if you supervisor is a do'er and they always tell you do stuff because they think it is just good to try them out. Try to always ask how this is aligned with your thesis question.

Also, it is good to prepare an agenda for meeting with your supervisor, be clear on what to ask, at the end of the meeting tell them what you are going to do next, clearly specify your problems, and have meetings on a regular/frequent basis..Additionally, it is always good to send emails before and after the meeting and print out the agenda and bring it with you.

If you didn't do anything, go to the meeting to discuss why you don't do anything. Are you stuck in something? Do you have problems? It is always good to have meetings on a regular base.

Remember supervisors are busy. Your thesis may be on the top priority of your A List but it may be on the bottom of their priority C list after teaching, administration, etc... However, it's their job to supervise you. But, u should remember that you are the driver of the car not them.

(2) Write and show as you may go

Write journals (log files) of what you have done, write summaries of papers you are reading, it doesn't have in the final shape of the thesis. Remember that it is a "draft and you are develop your writing skills along the way.

(3) Be realistic in your goals ( I' m not a Nobel Prize) *replication in different context
PhD is like adding a grain of sand to one beach. It won't change the world

The issue is that through doing a PhD, u learn to do research and u help your research brain grow so that u can proceed later

(4) Say no to distractions (esp checking e-mails early in the morning, going with friends for coffee break for 2 hrs, social networking, reading news for 2 hrs.. Newton's 3rd Law of Dissertation states that for every action there is an equal and opposite distraction :) ..

An advice that will increase your productivity by at least 10% is to start with your work the first thing in the morning. Postpone emails, FB, etc... for at least 2 hours. Start with the real work, get into the mood, this should motivate you to continue even if you get distracted later.

(5) It's a job ( it's working time..know when to work and when not to work!)

Time for work is time for work. Time for vacation is a time for vacation. Graduate students are feeling guilty all the time because they think they should be working 24/7 but the issue is that they don't really work nor enjoy their lives.

Commit yourself to certain amount of time along the day to work and then enjoy your life after that without any guilty feeling :)

(6) Get help (such as formatting, editing, transcribing, collecting data, technology, baby sitter, cleaner etc)

PhD is a hard thing to do. It is OK to ask people to help or even pay for them to do so.

It is also ok to accept that your home wouldn't be the cleanest home in Canada. Accept the reality that you can't be everything perfectly.

It is ok also to buy ready-made or half ready-made food instead of wasting the whole weekend cooking (additional tip from Dina Said to Arab ladies including herself;) ).

(7) You can do it (90% Persistence & 10% intelligence).

The good news is that 1% of people fail to get PhD (at least in Australia). So, you can do it if you are persist enough :)

Summarized by Sivaramakrishnan Iyer and Dina Said

More resources at


Towhid said…
Nice thing . Thx for sharing!

Popular posts from this blog

Creating dynamic email templates using C# and Office Outlook

It is quite common for many applications to send automated email notifications. Couple of months ago, I have worked on improving our old email template format to make it more user friendly . In this tutorial I will walk you though regarding how I took advantage of Microsoft Outlook to quickly generate custom email template and later using the html template for building an automated custom email application using C#. Steps: Creating Templates: Using the rich text editor support  in Outlook create a nicely formatted email. Use placeholder text for the values you like to change dynamically based on your task completion status. To keep this tutorial simple, I have created a  simple table with placeholder text inside the third bracket  [place holder text]. However, you can use anything supported by outlook editor. Figure: Email Template Getting HTML code: Send the created email to your own address. After that, open the sent email and right click to view source . It

Why using XOR might not be a good hash code implementation?

Using XOR for computing hash codes works great for most of the cases specially when order of computation does not matter. It also has the following benefits: XOR has the best bit shuffling properties of all bit-operations and provides better distributions of hash values. It is a quick single cycle operation in most computer  Order of computation does not matter. i.e. a^b = b^a However, if ordering of elements matter then it is often not a good choice. Example For simplicity consider you have a class with two string properties named Prop1 and Prop2  and your GetHashCode returns the xor of their hash code. It will work fine for most of the cases except cases where same values are assigned to different properties. It will generate same hash-code i.e. collision in that case as can be seen in the below example . However, using the modified approach as recommenced by Joshua Bloch's in Effective Java which uses prime multiplication and hash chaining provides more unif

SQL Performance improvement for User defined table types

Recently, I have dealt with an interesting performance issue with one of my SQL query and thought I will share the experience here. Context: We had a legacy stored procedure responsible for saving large amount of excel row data to our database tables. It was using   User Defined Table Types as one of the parameter to get a list of row data from excel. However, the stored procedure was taking very long time to save the large data set. Root Cause: After quite a bit of investigation using execution plan in SSMS, I was able to narrow down the performance issue to the following: Joining with User defined table type was taking >90 percent of the time A custom hash function which has been used multiple times as a join criteria was also quite expensive to compute. After doing additional research using stack overflow , I was able to figure out that the primary reason for the poor performance doing a  JOIN on Table Valued parameters is that : it does not keep statistics and a