Monday, February 23, 2015

a thank you note

Alhamdulellah, I was recently awarded the Google PhD fellowship award. I'd like to take this opportunity to express my gratitude to people who invested a significant time and effort in my career. Ordered by the date we met, and mentioning just one of the many things they did for me, I dedicate this award to:
  • Mama, Mabroka Ammar, who taught me empathy.
  • Baba, AbdelMottaleb Ammar, who taught me persistence.
  • Khaled Ammar, my brother, who made me a computer engineer.
  • Amany Shehata, my wife, who sacrificed her best interests so that I can pursue my passion.
  • Kareem Darwish, who transformed me into a curious researcher.
  • Noah A. Smith, who taught me writing and critical thinking.
  • Chris Dyer, who gave me confidence and great ideas.
While we are at it, and since this is likely to be the last award I get (I don't know how I got it in the first place :D), I'd like to also say thank you to each of: my daughter Salma Ammar who makes me smile; my role model ElDesouky Ammar; my loving siblings and relatives Khaled Ammar, Samia Ammar, Walaa Ammar, Mohamed Amir, Mohamed Ghazy, Hesham Ghazy, Mohamed Ammar, Ahmed Ammar, Ibrahim Ammar, Abdelrahman Ammar, Hassan Ammar, Ali ElTamalawi; my high school math teacher Mostafa ElShantoury; my professors Larry Wasserman, Ryan Tibshirani, Soheir Bassiouny, Lori Levin, Tom Mitchell, Mostafa Youssif, Salah Selim, Mohamed Nazieh, Mohamed Ismail; people who wrote me recommended letters D. Sculley, David McClosky, Kuzman Ganchev, Motaz ElSabban, Nayer Wanas, Tarek ElAbbady, Soheir Bassiouny, Kareem Darwish, Ayman Kaheel; my helpful (ex-)colleagues and ex-managers Ahmed Ramadan, Ahmed AbdulHamid, Mahmoud Refaat, Ahmed Morsy, Ahmed Sabry, Hani Salem, Kareem Darwish, Hamdy Khalil, Mohamed Ali, Nayer Wanas, Ayman Kaheel, Tarek ElAbbady, Ahmed ElShimi, Federico Garcea, Takako Aikawa, Arul Menezes, Kristina Toutanova, Hoifung Poon, Chris Quirk, Vikram Dendi, D. Sculley, Brendan O'Connor, Ali ElKahki, Walid Magdy, Swabha Swayamdipta, Lingpeng Kong, Chu-Cheng Lin, Dani Yogatama, Ankur Parikh, Daniel Golovin, Julian Grady, Lirida, Ahmed Hefny, Manaal Faruqui, Shay Cohen, Kevin Gimpel, Andre Martins, Avneesh Saluja, Hany Hassan, David Bamman, Sam Thomson, Tarek Hefny, Austin Matthews, Dipanjan Das, Jesse Dodge, Matt Gardner, Mohammad Gowayyed, David Pellow, Avi Dubey, Yan Chuan Sim, Eva Schlinger, Victor Chahuneau; my friends who made life more tolerable Ashraf Gamal, Mohamed Darwish, Ahmed Hefny, Ahmed AbouTaleb, Mohamed ElShatnawy, Taher Gomaa, Ahmed Mounir, Islam Gohar, Ada Iosif, Ahmed Abdelgawad, Hatem Kassab, Ezzeldeen Qasim, Osama Sharkas, Abdalla Musmar, Hany Hassan, Vikram Dendi, Ahmed ElBeshir, Justin Chiu, Yubin Kim, Prasanna Kumar, Meghana Kshirsagar, Wang Ling, Subhodeep Moitra, Leah Nicolich-Henkin, Kenneth Huang, Reyyan Yeniterzi, Shoou-I Yu, Amr ElAlfy, Mohamed Diab; and, of course, my lifelong friends Hesham Zakareyya, Mahmoud Refaat, Mohamed Saleh, Haitham Gabr, Amr Ebaid, Hani Desouky Ammar, Hany Abdelrahman Ammar, Mohamed Ghareeb, Mohamed Ibrahim, Mostafa ElMarasi, Mohamed Mokhtar.

P.S. You may find this hard to believe, but I actually am indebted to each and every one in this long list. I'm just worried I may have forgotten someone.

Monday, January 21, 2013

The pomodoro technique

If you are the kind of person who easily gets distracted with emails, phone calls and minor tasks, you may find the Pomodoro Technique useful.

  1. get a count-down timer
  2. pick a task
  3. set the timer to 25 minutes (aka. a pomodoro)
  4. work on the task, with no interruptions until the pomodoro ends.
  5. add an(other) 'X' mark next to the task (even if it's not completed).
  6. take a short break (3-5 minutes). after four pomodoros, take a longer break.
  7. while task not complete, go to step 3.
  8. after a task is completed, count the number of X's to get a sense of the time spent on it.

  • time management should be simple
  • frequent breaks improve mental agility [ref which I don't really understand :-)]
  • increased awareness of the time spent
  • reduce the time spent on distractions

I've been following the pomodoro technique for a little over a month now, and I think it did help me spend the time more efficiently (at least when I'm serious about it). I'd like to highlight a few problems and how I attempted to fix them:

problem: just because you shouldn't be distracted in the middle of a pomodoro doesn't mean you won't. 
solution: every time I get unnecessarily distracted, I punish myself by resetting the pomodoro.

problem: the short break is too short.
solution: make it a little longer. I found 10 minutes to be a reasonable time.

problem: when tasks take too many pomodoros, I lose any sense of achievement.
solution: spend the first couple minutes of a pomodoro thinking about the focus in this pomodoros. then, spend the last couple minutes of a pomodoro documenting what you have accomplished (regardless of how little/insignificant it was).

complementary tools:
While I found this technique to be quite effective, it doesn't address all time management problems. I use rememberthemilk and github issues to track my tasks and prioritize. I keep all my time-constrained commitments on the calendar to make sure I'm not double booked. ...etc

Sunday, September 9, 2012

Choosing an advisor

Recently, I've been in touch with many students in the process of finding a PhD advisor. While it's not impossible to change advisors, it usually comes at the cost of more time spent in the PhD program. Here's a list of things you can do to improve your chances of finding a good match:

For each potential advisor X, do the following:
  1. Make sure you don't have a problem with X's research interests.
  2. Make sure you can get along with X.
  3. Talk to X's current students about X's pros and cons. Ask clever questions since many students refrain from discussing the downside of their advisors with a stranger. Don't forget to ask if X is too (dis)engaged with his students. This step also helps you find out more about your potential academic siblings.
  4. Find out what project would fund you. Is it a long-term or a short-term project. If it's a long-term project, make sure you like it.
  5. Find out if X has a tenure, in tenure track, or neither. Non-tenure (track) faculty are more inclined to leave their academic institution and find a better position somewhere else, which is -usually- a bad thing for their students. Tenure-track faculty are more inclined to work harder, and tend to be more demanding (which can be good or bad, depending on who you are). 
  6. Collect some statistics about X's research group. How many students does X advise? A very large number (e.g. fifteen) usually means X won't have time to interact with you, and a very small number (e.g. zero/one) usually means X has problem with funding (or a new hire). Find out what's the average lifetime of X's students in the PhD program; the variance is usually small. 
  7. Find out if X collaborates with other academics (inside or outside the department/school). More collaborators usually mean a well-connected advisor, which can be very useful for your marketability.
  8. Find out where does X's graduates go.
  9. Meet with X. Ask smart questions. Be ready to talk about your previous work.

If feasible, do a research project (e.g. in a lab or a regular course) with your preferred advisor before committing to be his student. You might change your opinion after working with him/her for a while.

Monday, September 26, 2011

The evolution of intellectual freedom

I thought I would joke about this before it becomes a bitter reality!

ref: PhD Comics

Wednesday, April 27, 2011

The seven secrets of highly successful PhD students

Vitae is an organisation championing the personal, professional and career development of doctoral researchers and research staff in higher education institutions and research institutes.

Their website has a number of useful resources for graduate students. One of them is a document titled "The seven secrets of highly successful PhD students". Here's my summary:

1. Keep in touch with your supervisors.
2. Write often.
3. Be realistic about your contribution and yourself (being different than your PhD).
4. Avoid distractions.
5. Treat PhD as a job.
6. Ask for help.
7. Understand it's all about persistence.

Many thanks to Dina Said who let me know about this resource.

Saturday, March 19, 2011

[metapost] Apology

I apologize for being away for a while. A number of significant events in my personal and professional life kept me busy for the past few months.

First and foremost, as of today, I'm the proud father of a sweet baby girl. She got beautiful eyes, minute fingers, loud cries, lovely smile and she has got a name: Salma. I'm planning to make friends with her, but she doesn't seem to be an easy girl. She seems to know her mother very well, though.

Another significant event that occurred to me of late is the Egyptian revolution. I didn't feel so much pride being Egyptian until that day! Although I was thousands of miles away from the Tahrir Square (center of the Egyptian revolution), I was honored to participate with my voice to form the international pressure on Mubarak's regime.

On the professional level, I have recently joined the Machine Translation team in Microsoft Research, Redmond. This team is a blend of talented researchers and engineers working together to push the boundaries in this field AND shipping that to create a competitive solution. I'm definitely proud of belonging to this team.

The last piece of news I'd like to share with you today is that I got offers from CMU, UMD, UBC and Purdue graduate schools. I'm planning to visit a couple of them before deciding where I'm gonna spend the next 5 years of my life.

I'm back!

Friday, October 15, 2010

How to be on top of your field

Most computer science fields are fast moving. There’s a lot going on all the time at universities and research labs. Hundreds of publications appear every year through the few major conferences and journals of a field, not to mention venues with lower ranking. It is particularly important to keep a close eye on the advances going on in your field because research is –usually- incremental. You start where others left off. If you don’t know the recent findings of other scientists in the field, you will have hard time figuring out what topics are important, what approaches are popular, what the state of the art solving a particular problem is, etc.

Problem is: we spend a lot of time working on a particular project, taking care of our day-to-day job responsibilities, and trying to meet deadlines. It’s not uncommon for such activities to take up all the time we have, leaving no time for expanding our knowledge learning about recent findings in the field.

One way to solve this problem is to attend related major conferences. In addition to learning about new advances presented in the conference, you will have the opportunity to mingle with other researchers working on similar/related problems which may lead to collaboration projects. Unfortunately, this is not always a viable solution. Who got the bandwidth and resources to attend all related conferences!

Another solution that’s more affordable for research groups in universities as well as research labs was described by Prof. Azer Bestavros as follows:
  • Each member in the group maintains a list of interesting papers s/he would like to read, covering last year’s proceedings of the major conferences and journals in the field.
  • Schedule a recurrent 15-minutes meeting (frequency depends on the group size) in which one of the group members gives an overview on a paper in his list.
For example, a group of size 10 may choose to hold this meeting every other day. This way, every member gives 0.5 talk per week and listens to 2.5 talks per week. Good deal, huh?