How can you increase your productivity on side projects at the end of the day when you're tired from work/college?: originally appeared on Quora: The best answer to any question. Ask a question, get a great answer. Learn from experts and access insider knowledge. You can follow Quora on Twitter, Facebook, and Google+.
Answer by Kah Keng Tay, Quora Engineering Manager
I try to minimize startup and switching costs, in other words, the time it takes to get started working on the side project. This way, even if I only have a few minutes to work on it before I turn in for the night, I can still do something useful. Also, I try to make each opportunity count. These are hard to come by and so it is good not to waste any single minute.
This boils down to me doing some or all of the following:
Having a quick and painless to-do list. I used to do this in a text file but I've recently started to use Evernote for this. Then, when secondary tasks crop up that are not central to what I'm doing right now, I'll put them on the list and work on them later.
Biting off only what can be chewed. Related to above, I make sure I tackle only what seems reasonably possible within the time I have. If I took on too big a task and didn't manage to finish, and only got back to it a few days later, I would have forgotten by then some of the reasons why I did things in a certain way. This would cost me time that is spent rethinking and refactoring my design unnecessarily.
Prioritizing tasks according to what is important (or interesting if I'm not feeling particularly inspired). This goes in line with making each opportunity count. In downtime, I would transfer some of the tasks in the lightweight list into something more persistent for issue tracking and prioritizing. I found Trac with a Git or Mercurial plugin to be pretty useful for this purpose, and it helps me to keep focused with the big picture in mind.
Having near-term milestones. These are helpful to stay motivated and gives you some pressure to keep on-track with your goals. I think it's easiest to just have a single feature in mind and a fixed date that you want it finished, and use that to inform your decision making.
Deserializing in advance mentally. The concept of serialization in computer science refers to storing state in a form that can be persisted. In the case of a side project, between the times you get to work on it, your ideas and thoughts often live in your biologically memory, probably in medium- to long-term storage. I've found that it takes time to get all that back into the forefront of your thinking and creative process, but it's a waste if that time could be spent actually working on your project. Instead, I'll spend my commute doing that deserialization, mentally getting ready a list of things I'd be able to do right away once I get home.
Keeping as much state persistent across sessions as possible. I leave all my editors, browser windows, etc exactly the way they are so I can pick up and resume where I left off. This means I usually never shut down my computer, preferring to put it to sleep or standby where possible.
Some of the above are also pretty applicable to regular work, so it's good for general productivity if they become habits. Good luck with your endeavors!
Calling all HuffPost superfans!
Sign up for membership to become a founding member and help shape HuffPost's next chapter