PHP Workshop | February 21, 2005

Saturdays PHP workshop in London was lots of fun. Getting there was a hassle as the trains were out part of the way, necessitating a long and uncomfortable replacement bus service. However I still managed to get there in enough time to grab breakfast at traditional Italian coffee shop just around the corner.

The workshop was held in Oyster Partners large–and somewhat college like–canteen area. Working for a “boutique” web design agency, it’s easy to assume that most companies are small. However despite the fact that 70% of web design companies in the UK have less than 10 staff members, a number of large agencies did survive the dot com era.

While I know the basics of PHP and understand many of the more advanced concepts, I’m no PHP expert. I liken myself to somebody learning a language in the sense that I can understand far more than I can actually say. I can look at a class and pretty much understand how it works. However ask me to build something similar from scratch and I’d be lost.

The main problem I have with PHP is how to actually string things together. I can build simple application, but they always end up being a little haphazard. The code is never as lean as I want it to be and my file structure is always a little random. So I’m constantly dissatisfied with my coding. Going back to the language analogy, I’m capable of ordering food and finding my way to the station, but if I tried to write a book it would be all over the place.

My dissatisfaction is down to a couple of things. Firstly I’m a perfectionist and want to do everything the best way possible. On it’s own this is laudable. However I’m also fairly impatient, so want to be getting everything right first time. I’m capable of figuring out most logical problems. However it’s the conceptual ones–like the most efficient way to architect your application– that can only be learnt over time. So one of the main things I wanted to get from this workshop was a better understanding of the more conceptual elements of PHP programming.

The workshop was essentially divided into two parts. The first part was lead by Chris Lea, who did an excellent job in walking through the basic concepts of PHP application development. I have to admit that I actually new most of this stuff–which came as a bit of a surprise–but it’s always good to have your beliefs validated by an expert.

The second part of the day was lead by Mike Buzzard, who created a simple PHP framework and tempting engine especially for the workshop. This part of the talk got a little bogged down in the framework specifics for my liking. However what really got me was the usefulness of having a framework in place– be it your own or one of many existing ones.

I realise that I’m never going to be a hard core PHP guru which is why I’ve recently been wondering if I’d be more productive using another language. This was prompted by seeing a demo of Ruby on Rails

However I now think the best approach (for me) would be to make use of various PHP projects such as PEAR and Smarty along with a simple framework. I understand the associated problems and restrictions, but in my defence I’m a front end designer/developer who needs to do the odd bit of coding, rather than somebody wanting to become a hard core programmer. I just don’t have the patience for that!

So on the whole I found the workshop useful from a conceptual level as it helped me solidify how I feel about PHP.

Afterwards everybody headed down the pub for drinks and a chat. Both Chris and Mike looked shattered from the day and the jet lag, and it was unfortunate that I didn’t get much of a chance to chat to them. However I did meet up with some cool people, including 2 people from Brighton and two people who read my blog. Apart from the learning angle, the other important part of these events is the social angle. so it was great to meet, chat and share war stories with other developers.

All in all, a thoroughly enjoyable day.

Posted at February 21, 2005 12:59 AM

Comments

JD said on February 21, 2005 3:48 AM

Typo:

actually new most of this stuff

should be

actually Knew most of this stuff

JD

Xian said on February 21, 2005 5:25 AM

Depending on where you are already with PHP Ruby on Rails could very easily be easier for you to be fully productive with than setting up a PHP solution. I’m also a designer first. I’ve only been learning to program out of frustration with the available options. Rails has allowed me to do things that wouldn’t even been approachable before.

In my first week working with Rails (and learning Ruby at the same time) I built this site for Rizzo Services. It has a full custom mini CMS that lets them add new stuff and update stuff easily.

Inkyboy is another of my Rails sites. The ability to manage three different kinds of portfolio images, a blog, and a contact system in just a few hundred lines of code.

So yes. I drank the RoR kool-aid. And I keep drinking it. :)

Lee said on February 21, 2005 7:16 AM

It sounds like you and I are at about the same level as far as PHP goes: advanced, but not really ever going to go beyond that.

I’ve been hearing a lot about different server-side languages of late, Ruby on Rails being one, Python another, I’d be interested in hearing what you think of Ruby if you give it a try.

David said on February 21, 2005 8:36 AM

I guess this confirms my good old theory (or rather observation): you have to have that certain “talent” to be a good programmer. Writing good code is a creative thing, just like composing music or painting. I can’t even draw a circle properly using a pen and a sheet of paper. I won’t ever be a good artist. The only thing art-related I can do properly is choose colors which work well together. Obviously, Andy, you are a designer guy. So you’ll always be better at graphics stuff than programming. That’s not bad in any way - programmers and designers should complement one another ;)

gro said on February 21, 2005 9:33 AM

Due to the fact that most of the decent web designers only know so much about various programming languages concept of template engine has been delveloped. Teplate engine practically means you can enter server side “keystrings” inside normal xhmtl-page and make the engine to replace those with actual code from somewhere else.

I’d recommend to take a look at Python, it provides a bunch of tools yet forces you to excellent style. Pity that the reference for it ain’t any better.

Olly said on February 21, 2005 10:24 AM

“I’m a perfectionist… However I’m also fairly impatient”

I think you just described me ;-)

James said on February 21, 2005 10:27 AM

I’d be interested to know how you develop PHP applications as IIR you do all your work on a MAC. Do you keep a PC knocking round your office so you can develop PHP applications or do you simply develop on a remote server?

I’m asking because I intend purchasing my first MAC at some point in the near future, and as PHP is a scripting language that I have been experimenting with of late it would be good to see if you have a MAC solution :-)

Alex Farran said on February 21, 2005 10:29 AM

Simply learning another language won’t give you much insight into the broader concepts of software design and development. The popular languages all have broadly similar capabilities. If you want to follow the mainstream OO paradigm PHP 5 and a good book will suffice.

There are other ways of programming, and more esoteric languages to write in. All worth learning in the pursuit of a fuller perspective, but if your aim is to be able to converse with ‘gurus’ rather than become one I suggest you stick with what’s common. You’ll get a better return on the investment of your limited time.

Trevor said on February 21, 2005 10:52 AM

Damn. I wish I’d know about this workshop. I’m building a personal project at the moment using PHP and, being the first project I’ve ever built with PHP on my own from the ground up alongside me being a designer not a developer, it’s a rather steep learning curve once you get past the basics.

Andy Budd said on February 21, 2005 2:21 PM

Thanks for all the comments guys. Ruby does look interesting but I think I’m going to have a look into PHP frameworks for the moment.

Xian: Ruby does look very interesting and I’m impressed that you could get those sites up so quickly.

James: OS X comes with Apache and a version of PHP installed. I’ve also set up mySQL so I basically have a my own MAMP (as opposed to LAMP) development environment right here on my iMac.

Alex: Nice to have you commenting on my site. Cheers he advice.

Trevor: You should read my blog more as I’ve mentioned the workshop at least twice :-)

Trevor said on February 21, 2005 4:21 PM

Ok, I remember now that I couldn’t afford the fee and must have mentally blocked it because of that. Maybe next time… :)

mark rush said on February 23, 2005 10:04 AM

anyone got an idiots guide to add, edit and remove data from a mysql database and how the ftrig to set up a mysql database in the first place - its just not as simple as MS Access :(

lisa said on February 23, 2005 6:14 PM

anyone got an idiots guide to add, edit and remove data from a mysql database and how the ftrig to set up a mysql database in the first place - its just not as simple as MS Access :(

— Have you tried using phyMyAdmin? I have great success with managing my databases with it.