A good practice/project for PHP programmer

Viewed 11646

I know OOP (but not skilled) in PHP. Nowadays I want to build something, since it is the beginning of semester holiday (3 weeks). Do you have good suggestions for me?

(note: I'm Statistician, and I know C, C++, Minitab, MATLAB, SPSS, SAS, R and database design) It does not need to be something related with statistics.

14 Answers

I would build something you care about - something in a task or problem domain you are interested in. Otherwise when the going gets tough, you say, "why bother" or "there's already something out there that does this."

If you're into stats, a good project might be to write some PHP/HTML/JS to query a dataset and run some analytics (mean, mode, filtered by date, other criteria). I'd also suggest doing some dynamic AJAX style interaction with jQuery. That way you're getting a pretty good sense of how PHP works, and how to use it to render something interesting in HTML.

Best of all, you may solve an actual problem that you or a colleague has, rather than writing throw away code with no value.

Building an ORM, MVC Framework, or a CMS is always fun :-)

Build something that you will use.

If you think you'd like to blog about things, make a blogging engine. If you want a website, build a CMS. If you're into photography, build a portfolio website with image uploading etc. If you have a heap of old Vinyl/CDs/Magic Cards/DVDs that you'd like to catalogue, build a tool for that. If you have lots of other projects going on, build a todo-list/issue tracker system. You get the idea.

You'll learn so much from eating your own dog food, and it'll really push you to improve your project.

Do what everyone does! Build your own blog/blog engine

Come on! Admit it, we all have one half-finished somewhere!

You can do implement it using MVC maybe some ORM and some XML/XSLT for good measure! Get abstracting and defining your separations of concern!

You could even get a little crazy and build a viewless blog-store with a RESTful interface so people can build their own front-ends and just use you as a semantic store layer.

I wrote something between framework and CMS. That was very good experience for me, and I've learned a lot - how to write convenient DB library, MVC, theme handling, admin control panel, UI etc.. And I advise something similar to you.

Since you already know stats, why not grab one of the stats data sets available on the web for anyone to use and analyze. It may keep your interest, allow you to build something useful, and analyze real data. NYC data sets are available here: http://www.nyc.gov/html/datamine/html/home/home.shtml

I think a social network type site is good if you want to just learn a lot of stuff because a social network type site can touch about every aspect of PHP when you build things like this for it...

  • User Auth system
  • Blogs
  • forums
  • profiles
  • admin system
  • caching
  • bulletin system
  • REST API
  • there is just sooo much more, that is why I like working on them, you get to do a little bit of everything

Build a simple blog. That's a common first assignment for someone learning and/or practicing a given language.

I'm wrong, probobly, but I do not feel comfortable writing OOP scripts, which goes just few miliseconds. I'd better use it in a project which runs during a few minutes\days.

So, I'd try to write an UNIX deamon.

(I've read a lot of interesting sfuff about building UNIX-deamons on PHP in George Shlossneigl (or like that) "PHP Professional Programming". )

Probably not the best answer, but I like this little exercise as a quick warm-up

create a folder with a random number of blank files (eg 9) each with a completely random name, do a foreach loop and rename each file incrementally, then at the same time, write to each file a negative increment value

orig file-name  a b c d e f g h i
file-name       1 2 3 4 5 6 7 8 9 
file-content    9 8 7 6 5 4 3 2 1

You could build a CMS (Content Management System) it would be useful and a little bit different from a blog.

Help the community, find an opensource project where you could contribute to. Create something for Moodle, joomla, Zenphoto Gallery. This is also quite educational since you learn to code "up to standards".

Related