Sometimes they are simple, sometimes they get a bit more complex, but they are always needed if there is any kind of data collection in the application. The most important is to understand which are the relevant data the client need, and to find a way to present the data in readable way for the user.

Navigation in reporting? It can be even more complex than website navigation. Besides a set of navigation menus, I also always use hyperlinks in the reports as a very efficient way to dig deeper through the data.

Ivan said on September 10, 2008

I think you summed it up pretty good. I've went through the same process when starting with PHP, and doing it again with Cake.

Damn, I hate feeling like a newbie :)

dr. Hannibal Lecter said on September 10, 2008

I think the future lies in specialized CMS development. Not just because I'm creating a specialized CMS at the moment:) but because CMSes tend to end up bloated, just like forums and blogs.

Funny thing though, even though I'm develping a CMS, people often congratulate me on great "blogging software".. :-/

What about a combination of all three of those as an exercise? Or the ever popular social networks and bookmarks site?

Andy Kant said on September 10, 2008

I would definitely agree that developing a CMS is a great exercise, as I tend to prefer developing a mostly new CMS (re-using some components such as user authentication systems) for pretty much every website I make. I prefer to develop a basic CMS that is scoped for a specific site and can be bent any way I choose rather than use a CMS system has too many features that I will never use and is difficult to extend the way I would like.

Usually when I'm testing a new technology (such as Ruby on Rails or Django), I do something a bit more ambitious so that I can learn more than just the technology. An example of this was an Ajax-based multiplayer gaming system I developed to learn Rails (turns out that Ruby makes game logic quite a bit easier).

Binny V A said on September 10, 2008

Usually CMS and Blogging Engine goes into one category.

Some other exercise projects...
Digg Clone
Social Networking App
A Framework

By the way, I have not created a forum yet.

Jack Keller said on September 10, 2008

CMS, sheesh, how many times have I written and rewritten mine, then forked it off for client projects. I would say it is definitely an essential project for any developer to put in their arsenal. Another fun project could be along the lines of a Framework as stated previously.

Ain Tohvri said on September 10, 2008

Surely a great post. I couldn't agree more to the CMS part of it. The work on a custom Content Management System is really endless.

Michael McCorry said on September 10, 2008

I've got my own home-grown CMS that I've been using and upgrading since 2000, plus a forum, e-newsletter management system, photo library flickr-style thing plus a virtual tour management system, but the one thing I seem to use the most is a generic catalog cms thing, which gets used to manage non-webpage content such as real estate listings, used cars, retail products, announcements and classified ads. Now all I need to do is tie all of these things together into my main CMS via some kind of plugin architecture.

Miles Johnson said on September 11, 2008

I agree whole heartedly. Ive built my own forum, user system, blog system, project manager, ecommerce shopping cart, photo gallery, cms and am currently building an online social community. Its the only real way I know to learn more and more, it helps.

Up next I intend to build my own lightweight framework, not a fan of a lot of the MVC frameworks.

Too bad im too scared to apply for a PHP job.

Kim Joar Bekkelund said on September 11, 2008

I have been through these myself. Lately I have started programming a lot more in Python and Ruby, but haven't found a pet project yet. I thought it was a little bit to cliche to actually implement a new CMS, forum or blogging engine. I think I'm in a creative down period. Hopefully it will come back to me soon.

Nikola said on September 12, 2008

Jonathan, I couldn't agree more, those three applications are a must in one's experience. I would only add that extending available applications (CMS, Forums, etc.) with modules is also a must. It teaches how to use API and it teaches of problem solving with limited resources.

Brad Harris said on September 12, 2008

Along with a few others here, while building these applications, I think its a great exercise to extract a framework from the way you develop your applications, if you're not building on top of a framework already. After time you will either end up with a nice custom little framework of your own, or realize you're building CakePHP, or some other framework, and give in to using whats out there. Either way its a win situation in my book, you really learn a lot as you try and create a framework.

Micheil said on September 14, 2008

hmm, I must say I learn things slightly differently. I've got about 30 projects currently open personally, the biggest or best learning ones I've got for PHP are:

1) Photo Gallery a€“ something simple, file based, nothing complex.
2) Something to Manipulate graphics using Imagemagik
3) Server Administration console (similar to PHPMyAdmin)
4) Fully fledged Templating system / MVC / WEb Application framework.

I find these are the projects that helped me learn things the best, so far out of all those projects, I've gotten knowledge on: Mysql, Imagemagik, Classes, OOP, Wireframe Design, and a bunch more!

Brade said on September 14, 2008

So true, man. I've learned so dang much by working on these types of software projects. I've already got two CMSes under my belt -- one that manipulated flat files, and one that is database-backed. For the latter, I had to build in basic blog functionality in only a week's time. Stressful, but I think some measure of success was achieved. Feel free to check it out and see what we've done. It's got some drag-n-drop ajax niceties in an attempt to make things intuitive for most users. Sadly, the company itself is struggling (only 2 guys, after all), but the things I learned give me ample confidence as I forge ahead in this industry.

Alexander Berglund said on September 17, 2008

This is very interesting as I recently contemplated the same ideas and thoughts...

Many developers - as they start out - seem to be very interested in building their own small community. This also giving them an exercise in managing flags, database design, user registration and CMS (on a small scale). These projects only live on for so so long until the developer finds that there actually takes a lot of energy to keep it going and soon abandon the project or build it together with a personal page/portfolio.

As also been mentioned in the comments, a voting system and some form of statistics system also seem to be a popular personal project...

Brade; I haven't dug very deep in it, but I find the content (Text primary) to be slightly amateurish although the rest tells a different tale. It gives a kind of mixed feeling even if the system and graphics looks good...

THEODIN said on September 19, 2008

I Myself have been through this right of passage, starting off small is great, but as time goes by more challenging opportunities almost becomes a birthright, I feel that modularity is the key here, breaking down the most complicated of applications into the componants that run them.

Shaal said on September 19, 2008

A developer should come up with not only apps, but softwares, portals and bla bla bla!!! You're already a grown up developer. Try games for now;)

matt said on September 23, 2008

E-commerce storefront/admin.

John F Croston III said on September 24, 2008

The first application I first built was an RSS feed reader in Classic ASP with the ability to do key word searches to help narrow the feeds from places like CNN, BBC, Washington Post, etc.

After that I started building a bunch of other projects over the last year or so, that had been already done by others like bookmarking, contact lists, wine inventory, and a few others again in Classic ASP.

I'm now going to take sometime off work (one week) instead of going to "An Event Apart" in Chicago and build a few of these applications in PHP and MySQL which I don't currently know. This way I have a great deal of time to spend building them and learning the new skills to help improve my resume. I have a lot of the DB design input FORMs already built, just need to do the conversion to the new language and DB. This should make the process a bit easier.

The other big issue I want to do with these applications is make them accessibile and useful on phone web browser.

I have been fortunate enough to have two different friends that said I can use some of their studio space. I know if I stay home to do the work I will end up watching TV, napping, go to the movies, etc.

I have been reading up on both PHP and MySQL and it should be a fun learning experience if nothing else.

Wish me good luck.

Acorn said on October 08, 2008

I used to work for a company as a Web developer, but I quit my job. Now I only make sites for myself. Its fun developing personal projects than for the company.

Barry said on October 11, 2008

I've also gone through this rite of passage : Started off with a CMS, moved on to a Forum, e-commerce, custom framework... the usual. Been doing so for close on 10 years now.

So far though, one of the biggest challenges I've faced is writing a subscription based service. It sounds easy enough at first, but can get rather complicated. Keeping track of multiple paid for subscriptions per user, all while making sure the system is easy to use proved quite daunting.

bazet said on October 15, 2008

My first project is actually, Web SMS management system using PHP/PgSQL using PHP 3. Since then I've built countless of CMS,customised Equestrian scoring system. Now with cakephp, I write a simple forum as an exercise ( ) and I have my own little project, a wifi controller written using cake 1.2 ( radius,coova,mysql,linux,apache ) . Tried Sf, but cameback to cake..due to a lot of reasons.

Thomas said on October 17, 2008

I came pretty far in building my own CMS. I still got lots of ideas (many of them are custom plugins to make the whole thing more flexible and user friendly).

The problem is: I can't find the time to work it all out and build it. When a client needs something, it's sometime attractive for me to do it quick and dirty because there's just no time to build a universal solution.

Philippe Rathe said on October 24, 2008

To boost your JavaScript skill, nothing is better than trying to program a tetris game. You have to deal with many thing in order to program a game. I had a lot of fun doing it, even if it's not finished, it's still playable.

Anonymous said on November 03, 2008

Joomla has saved my hide so many times, but I personally prefer Drupal. Has anyone here used Elgg? Open source is good, but I would eventually like to build my own bloat free proprietary CRM, CMS and E-Commerce platforms to use on my clients sites. There is never enough time!!!

George said on November 23, 2008

Doing a weblog engine is good for exercising your web development skills.

John Lozo said on January 09, 2009

I am currently working on a blogging engine and I must say it is quite a challenge. I am thinking of switching on to CMS, or some combination of both. But I must agree with you that personal projects are just the best!

Sherry said on January 16, 2009

Excuse me. An idea is salvation by imagination.
I am from China and learning to read in English, tell me whether I wrote the following sentence: "First paragraphopen with the obligatory thank you and include how you enjoyed the meeting."

With respect ;-), Sherry.

Widliftingoli said on February 16, 2009

urist said on February 17, 2009

D???Do?€????D?Dμ D? D·D°Do?€????D?Dμ ??D??€D?, D·D° 10000 ?€??D±D?DμD1, D“D???D?D2??Dμ ??D??€D??? D·D° 29 000 ?€??D±D?DμD1 ?? D′D??€DμDo??D??€D?D? D? ?????‘??D?D? D2 D±D°D?DoDμ. D?D?DoD2D?D′D°??D??? D??€D3D°D?D?D·D°??D?D1 D·D° 10000 ?€??D±D?DμD1, D?D?D?????DμD?D?Dμ D?D·D2Dμ?‰DμD?D?D1 D?D· D¤D?D?D′D?D2, ???€D?D′D???Dμ??DoD?Dμ D°D′?€Dμ??D°, D??€D?D′D?DμD?D?Dμ, D?D?????D?D2D?Dμ D?D±??D???D?D?D2D°D?D?Dμ, D2??D?D???D?Do D?D· D?D°D?D?D3D?D2D?D1 D?D???D?DμDo??D?D?. D?D±D?D°D?D???D?D2D°D?D?Dμ, D?D±D?D°D?D???DoD° D′DμD?DμD3, D?D?D?????DμD?D?Dμ D′DμD?DμD3 D?D°D?D???D???D?D? D?D°??D?D?D? D′D??€DμDo??D??€D°D?D?. D‘Dμ??D?D?D°??D???D1 D2??DμD·D′ ??D?Dμ??D?D°D?D?????D° Do D’D°D? D2 D???D???. D?D±D?D°D?D???DoD° (D?D±D?D°D?D???D?D2D°D?D?Dμ) - ?€DμD°D?D?D·D°??D??? ?€D°D·D?D???D?D?D3D? ?€D?D′D° ??D?D?D°D???D?D2???… ???…DμD?, D?D°D??€D°D2D?DμD?D????…...
D”DμD???D3D? D?Dμ?€Dμ??D???D??????????? D?D????€DμD′????D2D?D? D′DμD?DμD?D?D?D3D? D?Dμ?€DμD2D?D′D° D?D?D±D? D?D° DoD°?€??D???D???D1 ????Dμ??, DoD???D??€??D1 D?DμD3DoD? D?D±D?D°D?D???D?????. D¢D°DoD°?? ???…DμD?D° ??D°DoD?Dμ ??D2D???Dμ?????? D2D?D?D?D?Dμ D·D°DoD?D?D?D?D1 D? ??D′D?D±D?D2D°?€D?D?D?D1.
D’ D?D°??DμD? D′DμD?Dμ D3D?D°D2D?D?Dμ D?Dμ ??DμD?D°, D° D?D°D′DμD?D?D??????? D???D?D???DμD?D?D1.
D?D?D???D°Do??D???D1 ??DμD?Dμ??D?D?: 8-962-977-3711 D?D°Do??D?D? (D’D°?? ?€DμD3D??????€D°??D??€)
D°????DoD°: 373336644

SeeniaUnserce said on February 17, 2009

Thitmedeemy said on February 18, 2009

Calfeessfeede said on February 19, 2009

diborerce said on February 19, 2009

Can I restrict dating giant fib that's not undeniably internet related? I was at the exposed library one morning go in February checking my email (the days premier I had a computer at intimate with) and the neat guy sitting next to me started talking to me. He asked for my phone billion and asked if he could indulge me out sometime.


Nataha said on February 19, 2009

D?D?D·D′?€D°D2D????? D2??Dμ?… D?D°D?????D?DoD?D2 ?? 23 ??DμD2?€D°D???! D£ D’D°?? D???D???D???D1 ??D°D1??!

D?D?Dμ D?D?D·D′?€D°D2D?DμD?D?Dμ - D?Dμ D·D2??Do D???????D?D1!
D?D?Dμ D?D?D·D′?€D°D2D?DμD?D?Dμ - ??D2????D?!
D?D?D? D′D??? D’D°?? - D?D°?? D±??D2??D?D1 D3Dμ?€D?D1,
D—D°?‰D???D?D?Do D?D°?? D2 ??D??€D?Dμ ??D?D?D′D°??D°!
D? D????????? D????????? D·D°D2D?DμD2D°D?D???D1 D?D??€ ?…?€D°D?D???,
D?D2???????? ??D2D??? D±DμD·D?????DμD?D?D???????,
D? D????????? D2??Dμ D???D′D?, D2Dμ???? D?D??€ D’D°D? D′D°?€D???:
D???D±D?D2??, D??€D?D·D?D°??DμD???D?D??????? D? D?DμD?D?D???????!

Sorry, comments are closed for this post. If you have any further questions or comments, feel free to send them to me directly.