Skip Navigation

Personal Development: To Do

On Hacker News, ambition posted a to-do list inspired by / taken from this excellent bit of advice from Chris Wanstrath. Which got me thinking about what I want to work on and with in my spare time.

I've been meaning to organise my side-projects better. Like everyone else, I have lots of ideas and little time to make anything of them. I have a folder packed with projects at 95% completion, sitting there unloved because I got distracted, or found something better to use.

The problem with that is that taking projects to 95% is ultimately demotivating. It breeds guilt, and that's not helpful. And a project at 95% doesn't pay you back for the time you put in to it. You eventually need to release something if you don't want to end up looking back and seeing missed opportunities and wasted time.

In addition to a collection of projects on the go and ideas, there are technical skills I want to develop. I'm learning Python, and Linux server administration. I'm interested in looking into Objective-C and Cocoa. jQuery is great but I need more time with it. My "Dave! Play with PostgreSQL!" post-it is faded it's been on my wall for so long. And I need to stay sharp with the languages and technologies I use day-to-day.

Some fat needs to be trimmed.

I need to leave time for new things, too. Stuff I've not heard of yet. I'm always going to be distracted by shiny new technology. I think that's a good thing. But I want time to experiment and to tinker. If I earmark all my time for projects, I'm not going to suddenly lose interest in web technologies and tools. No, I'd start cutting into time I've promised to other things. Voila - the guilt's back and the schedule's shot. Back to square one.

So I've spent some time thinking about what I really want to get out of the time I spend on personal projects, and come up with a to-do list. I expect this to change over time, and while I don't expect for a second that you, the reader, will have the same goals or that this list itself will be useful to you, I hope if you're in a similar position it helps you to get a handle on things and get back to spending your time doing what you enjoy.

  • Keep on blogging!
  • Keep on making cheat sheets!
  • Move AddedBytes (set up server).
  • Thin out project folder and pick 2 to work on until finished.
  • Write a web service.
  • Write SVN Statistics app in Python (learn Python).
  • Rewrite site management VB app in Python (learn Python).
  • Learn Objective-C and Cocoa by writing a Useful Small Mac App (decide on what app!).
  • Learn a new PHP framework.
  • Get involved in an open source project.
  • Update and release more code from AddedBytes.com under open source license.

That should keep me going for a while. Next, I need to flesh out some of those ideas and work out how much time I can put into them.

22 comments

Glad to see I'm not the only one that does not bring to completion the majority of projects I start !

The only way to keep me motivated (or should I say : to force me to see the end of a said project) is to have a deadline, otherwise I procrastinate a lot and nothing gets done. Maybe I should do a list like you to stay focussed on a handful of projects instead of being lost between all of them ?!

Keep up the good work, Dave !
I definitely think it's easy to get swamped in projects through taking too much on. It's part of learning new things - every new piece of technology *should* get your brain going and give you ideas. If not, maybe you're not doing it right! :)
beleneglorion
Unknown #3: August 21, 2008
>Learn a new PHP framework

if you don't know give a try to symfony, its a new good one :)
i love you cheat sheets :)
Glen
United States #4: August 21, 2008
If your looking into re-writing site management in python look into Django. http://www.djangoproject.com/
beleneglorion: Was thinking of symfony - heard good things.

Glen: Django looks like a really interesting tool, but my first python site management thing is more of a desktop app - very interested in learning how to write more cross-platform stuff (been using VB at work recently but time to step up a level).
 United States #6: August 22, 2008
Don't forget to add "Get some sleep" to your list, I've seen many people (including myself) try to cram too much into a day and eventually look like zombies because of the lack of sleep. In my experience, that's the first thing to go when it more than likely should be one of the last.

That said, I need to get more organized and I think listing goals and giving them due dates is the best way to get motivated and stay focused. Maybe I will after a good nap.
Hiya, Dave!

I noticed one of your goals was to learn a new framework. A friend of mine recently directed me to CodeIgniter, at http://codeigniter.com/, which is a PHP Model-View-Controller framework. I haven't had a chance to implement it yet, but from what I've read in their manual so far, it looks very interesting...

Cheers!

:)
if you learn python you might as well learn django.
so you can actually remove 'learn php framework' from your list because you'll be learning a python webframework instead :)
Good article! I have thousands of "to-dos" in my mind and always start with a project, but I never finish them at all. I believe your post get me motivated to plan my jobs as it shows me I not the only one in this situation!

Thank you!
I thought you were reading my mind while I was reading you post. The targets my be different but the cost is the same. The URL I gave you is one of those projects, bought and paid for. Sitting there waiting for me to learn how to get it going.

What happens is one things requires many+. recursively+ ... and so on.

Notice the post written to you. How many of those will you investigate. Decissions, decissions.

Like you I moving in new territory. XP to Linux website. My head is spinning, linux-cmds, bash, html, css, (CMS), PHP, MySQL, Apache, firewall,
.... manage all this on my computer. Track myself, where I've been, what I've collected. Dirs on dirs.

Lost at sea, and the boat just sprang a leak. Yes; I know the feeling. Your cheat-sheets will help to plug the hole, every bit helps; and good luck with those goals; old habits are hard to break.
Setting these targets is definitely the way forward, I'm always trying to pick up new things (Flex, Python, Rails) but get distracted when something else comes out too, then the guilt kicks in :(

I've been spending a lot of time with the Zend Framework and so far really impressed, it's a lot harder to pick up then cakePHP and codeigniter but apparently the most flexible.

A developer in my old team told me to avoid Symfony like the plague, good for small quick projects but when it needs to grow the overhead from helpers is supposedly really big!

Congrats on the new job by the way, I'm moving to London myself at the end of the month...exciting times!
Devin
Berkeley, California #12: September 11, 2008
Can you give an example of a project that you've taken to 95%?

Once a project hits 100%, you may find that it requires maintenance and stewardship (needs to be fed data, needs to be promoted, needs to have garbage data removed...), and all those post-completion tasks can take up more time than the initial development.
Silver Knight
United States #13: September 12, 2008
While I don't know much about Python, I DO know PHP and am in the act of learning jQuery. I can totally agree with your need to spend more time with it. I need to do the same. It's a fantastic JavaScript library and so far I've found it utterly useful.

On the topic of learning a PHP framework, I've personally tried most of them and while Symfony is quite nice, it's a bit top-heavy. Of all the ones I've tried, the one I can most highly recommend (and the one I use now for ALL my PHP projects) is CakePHP @ http://www.cakephp.org/ and as of the 1.2 version it is by far the most powerful, flexible, scalable, and extensible MVC framework I've found yet for PHP. Well worth taking the time to learn.

Another major advantage to is is the active and helpful community and the IRC channel full of CakePHP gurus on Freenode IRC. And of course, it plays nice with jQuery (added bonus)... ;)

As a final point, I'd like to thank y'all for the nice cheat sheets. Quite slick and useful. Mucho handy to have laying around... I'll be watching the RSS feeds of your site for each shiny new goodie that arrives. :)
My guess is most webby type people have the same "problem". There are always a few dozen ideas in my head, but not nearly enough time to pursue them all.

I've personally never felt the need to learn a PHP framework, although I do use a JavaScript framework so maybe that's something I do need to look into.

And I probably should follow your idea of writing active projects down. Having a list helps me keep track of what I need to be working on. I've got an empty section of wall that would be a great candidate for a white board. My problem comes when that list becomes so overwhelming that it becomes counterproductive.

What works really well for me is to break down big tasks into smaller ones. Instead of putting "work on web application for 2 hours" on my to-do list I'll put "code login routine for web application". I try to break it down into chunks so that nothing in my to-do list takes more than one day, even if the project they are part of is going to take several months.
I'm not sure about the scope of any of your projects, but I like to build something small, and maybe not as full featured, at first. This allows me to get something out relatively quickly, and see if it is useful, to me or anyone else, and build on it from there. I also take baby steps on a daily basis since I can only work after I get home from my full time job. I'll make a mental note to create database tables, or build out model/controller files.

I would recommmend CakePHP or Zend Framework as your next PHP framework.

Thanks for all the cheat sheets.
Wow - all this is a bit overwhelming when reading through the different pages! Over here I just want to start learning CSS basics and the Adobe design programmes (and I guess SQL will have to be on the list as well) with a view to being able to offer some initially basic Web pages commercially here in the S. of Spain and gradually become more proficient and develop a reasonable Web designing business from home. Is this off-the-wall to all you professionals who've most likely studied computer sciences and worked in IT for eons? I have a potential 'business partner' for this who's been involved in IT for decades as a hobby and is way ahead of me in most stuff bar design (which would be my forte) who seems to think this could be viable... However, reading through this site is, as I said, a bit overwhelming when a newcomer sees ALL the programmes that you all appear to use! I thought that some of the programmes in Adobe's Creative Suite 3 Master Collection would be enough to get on with for starters, with some CSS books and on-line training modules and obviously constant hands-on practice in Dreamweaver but am beginning to wonder if it's not a pipe-dream!
Anyway, I've downloaded some of your cheat sheets as they look very useful and will go in - sometime this week - to Amazon & look at your list (anything against their so-called 2nd-hand books? The ones I've got from there have all been brand new to date, although they can take eons to arrive if they come from the States) and see if I can get you one - I'm assuming there's an address to send it to somewhere on this site, otherwise you might want to provide it!
Anyway, sensible opinions on the above would be welcome!
@Wanda:

I mean no offense, but Dreamweaver = the devil (IMO) when it comes to web design. It CAN be useful for maybe throwing together a quick sample layout, but I have yet (in my admittedly limited experience) seen a web page made in DW that wasn't horribly marked-up beyond comprehension. That, and I can't stand table-based layouts, but DW loves them.

If you want a good, simple introduction to HTML/XHTML, O'Reily Press makes a "Head First" book, available here: http://www.amazon.com/Head-First-HTML-CSS-XHTML/dp/059610197X/ref=pd_bbs_sr_1?ie=UTF8&s=books&qid=1225346591&sr=8-1

Once you learn good mark-up practices, then DW becomes a good tool...

Good luck!

:)
pointer
Unknown #18: November 14, 2008
Thanks for nice cheatsheets and articles. I use CodeIgniter. It is very good framework and well documented.
An extensive resource on business and personal development. A lot of thougths, views and articles on the recent happenings and their impact on economy and your lives.
Interesting post. Every now and then I come across something, a situation, a conversation, a reaction, or in this case, and article, that reminds me we are all of the same cloth. A few years back I found myself in a tough spot. Basically I had set a goal that amounted to revenues of 3 times that of anything previous. I had some systems in place (traditional business) I thought would handle the growht. We had been stagnant for about 3 years, I was bored. One thing I had to do out of neccessity, which is the step mother of all inventions, is to practice a principle I learned from Carnagie (I think) It was: Every day at 3pm write down six things you will accomplish tomorrow. That is it. Now big deal. Second part. At 3 oclock the next day do it again, starting with the things you did not accomplish, that you can tomorrow.

Tell ya what, it works. I'm not a planner. I love momentum, but this planning technique is good.

Your list would overwhelm me.

It would remind me of what I have not done.

I understand your reasoning, and my advice is not (instead of) but in addition to.

Thanks for the post.
????
Australia #21: December 17, 2008
Hello there. You've got a great site, I enjoy reading your various articles and find them very interesting. I was just wondering whether you could provide a link to your cheat sheets (full size images) that don't prompt a download.

Thanks
I love your codes and cheat sheets, I printed out the php one as soon as I found it. Its a great reference for beginners like myself. Thank You and keep up good work!

Post Your Comment

· Comments with keywords instead of a name have their URLs removed.
· Your email address will not be displayed or shared.

Live Comment Preview

 United States #23: 1 minute ago