Showing posts with label time. Show all posts
Showing posts with label time. Show all posts

2009/04/19

Time management: how to get things done (if lists doesn't help you)


Although this blog is supposed to be mostly about programming, I decided to post one "self-improvement" tip which was useful for me.

Standard approach



Everyone(or most people know) know that normal way to deal with tons of things you should do today is to make a "to do" list for every day. In ideal case you should have several lists - list of long-term goals (lifetime), mid-term goals (several years), short-term goals(several months) and list of things that should be done right now (today, during this week, etc). Every day your to do list should contain several items from each list (or items that will bring you closer to reaching goal from each list), that should be written down according to their priority. I.e. if your mid-term goal is to learn new language, and immediate goal is to buy food, your daily to-do list should have one item for each of those goals. This looks neat, easy enough, however as I found out, there will be several problems.

Problems


Typically with standard to-do list, following problems arise:

  • One item from the list takes too much time or even all your time.
  • You don't really want to do that right now.
  • One of the items on the list looks like it will take too much time today, so you decide to do it tomorrow. Tomorrow, same things happens again. As a result task is not being completed within weeks or months.
  • You have too many long-term goals, and can finish anything, because they all take too much time, and can't be finished during one day.

Part of those problems arise from natural laziness - your consciousness (or subconsciousness) will invent various excuses to prevent you from doing anything useful. It is hard to understand why your own mind is against you, but this thing happens. Another part of problems will happen when you will incorrectly estimate time required to finish the task. Also, life is full of surprises, and it is quite possible that something will get in your way and you won't be able to finish some important task today because of external events.

Solution


There is a very easy solution for those problems (I haven't seen it written anywhere, which is why I've decided to post this thing here): when you make your daily "to-do" list, for each task write down how much time you will spend on it today. For example, if you are learning new language, (to my opinion) you will learn a lot if you will exercise for 30 minutes every day.
When you start your day, for each task spend as much time as you wrote down in your to do list (Unless you finish the task faster than you expected). Of course, this time you should seriously work on the problem without fooling around, without being distracted, etc. If you won't finish task in time, proceed to the next task, and put unfinished task on tomorrow's "to do" list (you might want to adjust time according to today's experience). If you have a lot of tasks for today, you can spend 30 minutes for each. 30 minutes isn't much, but you still can do a lot during this time.
This approach is incredibly useful for a very long goals (write a large program, learn language, study something huge, etc). At least it works for me, so I think it will be useful for someone else.

2009/03/06

How to answer questions without wasting too much time


This text was originally posted on www.linuxquestions.org (here). It was created because there is already famous "How to ask questions the right way", but I don't remember any document for those answering questions.
Information should be useful for people that hang out on various forums/newsgroups answering questions and solving other people problems (mostly useful for linux users).




Okay, I've just got through another flamewar, so I decided to write a some info about answering questions without wasting too much time in the process. The content is based on personal experience, my own point of view, and isn't supposed to be absolute truth or something. I also don't expect someone to agree with me. Recommendations are written in random order, and are supposed to prevent wasting too much time typing replies, or breaking your keyboard too quickly.
Beware! Some people probably might find this thing offensive.

The recommendations are based on following assumptions:
  1. You want to help other people to solve their problem.
  2. You don't want to spend many hours per day doing that.
  3. You want to get satisfaction from giving out info - i.e. people should be grateful, or discussion should be interesting.
  4. You do not want to live on the forum, just post answers to some threads.
  5. You don't want to have a bad mood after helping someone.

Here are recommendations:

  1. Always remember that you can ignore other people instead of trying to reason with them. By "ignoring" I mean ignore list, which is located at this page on linuxquestions and often present in other forums. Ignore list is a very handy feature.
  2. Never participate in threads about religion. There were many of those, and when there is a clash between believers and atheists (or simply followers of different religions), no matter which side you take, you'll never prove to "them" that you are right. Also, your opponents will never prove you that you are wrong. The thread will eventually degrade into pillow-fight, and someone will close it.
  3. Never post in "Linux vs Windows" threads. Yes, this is tempting, but should be avoided. Such threads either never ends or many of them eventually degrade into flamewar. Which side "wins" in case of flamewar depends on forum, but in most cases, moderators win. Providing non-biased info in such threads is difficult, and sometimes leads to disappointment - especially when you discover that someone asked the question you already answered in details one year ago in the same thread.
  4. If are feeling too emotional while typing a reply, do not type a reply. If you were offended, report incident to moderators. If you are angry, go outside and take a walk. If you don't like someone, ignore him or her (by adding into ignore list). Being furious or simply emotional causes too much typing. And too much typing means too much time wasted.
  5. When someone posts something that doesn't fit into your system of beliefs, and it enrages you, do not try to explain something to that guy/girl, ignore him/her. If he posted something gross, then report it to moderators. To my experience, trying to explain something to someone who don't want to listen is #1 cause of wasting time on the internet. This applies to the choice of distribution, operating system, religion, some questions about women, and so on. Same principle applies to trolls or any person that pisses your off.
  6. Do not reply in the threads started by spammers. They don't read it.
  7. When replying to "newbie" section, try to keep your replies extremely short, but informational. It is tempting to overwhelm newbie with the amount of things you know, but this guy might not need it. He might be simply interested how to watch DVD, and not in the mood for linux history lesson or detailed comparison of all available dvd-players.
  8. When you realize that you started to type extremely long, detailed instructions about "how to do something in linux", stop, put keyboard away, take a deep breath, relax, and then try to find howto on the subject you were writing about. There is high chance that someone already wrote what you were going to write right now, so you'll be reinventing wheel. If there is a howto on the subject, post a link to it or quote it (but still provide link). This will make howto more widespread and will save time for other people.
  9. When you found a good howto or manual, and want to put a link to them in reply, consider quoting them. Websites sometimes disappear, and seeing dead link 3 years later (and answering same thing again) isn't much fun. If the source of article doesn't look "stable" enough, quote good portion of it (but still provide link). If website is unlikely to disappear, then link should be enough.
  10. If you really pissed someone off, and was unable to pacify that person within small amount of replies (1..3), consider ignoring that person. This is because when someone thinks that you are "evil person that hates all people" (no matter what were your intentions, what did you post, how friendly you were, people might think that about you), you can waste considerable amount of time reasoning with that person and explaining your position. If you started such "clarification conversation", observe person's reaction, and if person is unlikely to change attitude quickly, don't waste your time. Some people can be reasoned with, some can't.
  11. When you see newbie poster (which has 1 message on the forum) with a short question (literally short - one statement with poor punctuation, small amount of info, etc), and you want to write really long answer, stop, and think about it again. Poster might be "fly by homework question author" - i.e. he will ask question, and then mysteriously disappear, while other people will waste their time explaining things to him and writing huge replies for few weeks. Not all newbies magically disappear, but you should consider that possibility.
  12. Don't do other people's homework, they normally won't truly appreciate it, and this will spoil your mood and take your time. I.e. if the guy asked how to make some script, do not engage in 3 hours of googling, researching and testing just to make that script for him, because in the end his "thanks" might not satisfy you. To my experience, answers that were written with little effort (link to howto, article) generate more positive emotional feedback (for you - i.e. you'll feel more happy) when people say "thanks" than answers where you spend hours to find solution. Making other people's homework makes sense only if the problem is extremely interesting for you and you really like to solve complicated problems. Notice, that even if you solved problem you still can choose not to provide info to the OP, if you think he is too lazy or didn't do his homework.
  13. Do not live on the forums. If you are checking forums for new messages every 3 minutes and looking for _any_ discussion to participate in, and occasionally attempt to derail existing threads, then you should probably turn off computer and go jogging, watch the movie, take dog for a walk, or do anything that is fun, takes at least hour and doesn't involve computers. Helping people is fine, forums are good, but, unfortunately, for some people participating in such discussion is a bit addictive. And when you start spending too much time on the forums, quality of your answers decreases.

Now this is it. I hope this information will be useful for someone.