CakePHP Workshop Review

I spent last weekend in Raleigh, NC attending a CakePHP workshop. At work we’re beginning to standardize on the CakePHP framework in order to minimize our development cycle while still ensuring reasonably strong application architecture in the presence of time constraints. I haven’t had much time to play in the weeds of this effort, so the workshop looked like it could be a decent way to get introduced to CakePHP.

It was. And it wasn’t.

First, though, many kudos are due to the workshop organizers. The CakePHP contributors (Garrett, Nate, Felix & Tim) who ran the workshop are typical open source developers – they have day jobs. The fact that they were willing to give even more back to the community by giving up their own weekend is commendable and, at the risk of speaking for the other attendees, I think everyone present appreciated that sacrifice. Judging by the amount of content presented, this was not a trivial undertaking. Not to mention making their own travel arrangements and all of the other logistical challenges. The workshop was very well done.

I never understood how we ended up in Raleigh (none of the framework developers are based there, as far as I know), but the training was held in two rooms of an office in one of Raleigh’s many corporate office parks. The first room was a reasonably impressive and well-equipped training room with a number of computers that no one used because we all brought our own laptops. Nonetheless, it was a nice facility that was conducive to learning. This room was the headquarters for “structured” learning – presentations, mostly. The second room, similarly equipped, was dedicated to unstructured discussion with the contributors that weren’t actively engaged in the first room. In this room, attendees were afforded the opportunity to guide the discussion and the developers here were equally responsive to beginner and advanced questions alike.

My only issue with the workshop was that it wasn’t really a workshop. At least not by my definition (so take that for what it’s worth). I went in expecting – from nothing more than the use of the word “workshop”, frankly – far more hands-on activity. I expected to be building a simple application with the framework and, in the process, getting a broad (not deep) introduction to the tools offered – the console, tests, fixtures, etc. – and how to use them. Instead, I got what I would consider to be more of a conference.

I understand that a true workshop (again, by my definition) would have been challenging to the folks leading the conference. This was never billed as a workshop for beginners so there was a wide range of experience levels among the participants. The small majority, I think, were, like me, newbs to CakePHP. Others were far more experienced. Tailoring a one-conference-fits-all curriculum would have been impossible. Instead we got some introductory topics and some advanced topics. Unfortunately, the advanced topics were all but lost on the beginners. I had no trouble with the concepts – I’ve been doing this for a long time – but I had no practical context in which to assimilate these concepts. Conversely, I imagine that the more advanced Cake users were bored by the introductory material.

My suggestion for any future workshops would be to offer two tracks (assuming a similarly diverse audience). There were two rooms available, so it would’ve been great to offer one track to introduce beginners, in an interactive manner, by way of building an application – essentially the blog tutorial on ‘roids coupled with the ability to ask questions and establish a dialog during the process – and another to introduce and talk through more advanced topics that experienced Cake developers can grasp and visualize within the context of their own applications.

That’s not to suggest that I got nothing out of the weekend. I did. I got a lot out of it and it was extremely helpful to have access to several of the key contributors. What I didn’t get out of it was the ability to recognize everything I got out of it. At least not yet. That requires a context I don’t have at this point.

Subscribe12 Comments on CakePHP Workshop Review

  1. GAustin said...

    Rob, I was in attendance as well to this workshop. I am not sure which one you were, but your assessment here is spot on. These guys went way above and beyond what they had to do. Their expertise was clearly evident, and they were super easy to talk to. However, it was billed as a workshop and I expected more hands on training exactly as you did. I am a newb as well to Cake and was hoping for some hand holding along the way with some exercises as I am one who learns by doing. Thanks for your clear and mutually agreed upon assessment.

    Glen

  2. Rob Wilkerson said...

    Glen –

    I was in the front left corner as you looked at the screen. At the same table as the guy doing the video recording.

    I’m glad it was clear that I really applaud the lengths the guys went to in order to make this happen as well as the quality of the product that resulted. I was afraid that this post would appear more critical than I meant it to be.

  3. Nate Abele said...

    Hey guys, thanks so much for attending and for your feedback. We definitely learned a lot from the experience, and constructive feedback like this is instrumental in this process.

    We’ve already been discussing some of the things we’ve heard and read from everyone who attended, and planning future workshops based around it. If you have any more feedback to add, please don’t hesitate to email or comment.

    Thanks again for attending.

  4. Tim Koschuetzki said...

    Nate is totally right. We already discussed several things and decided that it might be a good idea for future workshops to just come up with a spec and build the application in front of the audience from scratch. No pre-building, no code preparation – just live coding with live debugging if things go wrong.

    Thanks a lot guys for attending and for this spot on review. I hope we can see you again at future workshops.

  5. Rob Wilkerson said...

    Thanks, Tim. If I could make one suggestion, it would be to make the session interactive rather than just building an app in front of an audience. Tell attendees that this is the plan and recommend that they come to the workshop with a local development environment and an empty web root created and ready to go; specify that the workshop will begin with installing Cake into that web root.

    Remember that you all, as experienced Cake developers and contributors, know Cake inside and out. Watching you all code an application has some benefit, but you all will naturally skip steps and make assumptions simply because you dream in Cake. Judging from this workshop, you also move very quickly through the code base and it’s difficult to follow your path. You’ll likely lose all of the beginners at some point in that exercise. Without interactivity, those beginners will miss out on the dialog that gets created when someone runs into a problem and the learning that results from debugging that problem. They’ll miss the opportunity to help the person sitting next to them debug and they’ll miss the opportunity to consult the experts on hand when they have a problem. Everyone will miss out on the paths of tangential exploration – the ones that weren’t necessarily expected, but are nonetheless relevant, interesting and educational – that result from that dialog.

    In the case of the beginner, you’re talking about a set of folks who will receive a limited learning experience from merely watching and listening. For almost everyone I know, it’s far better to learn by actually doing.

    Thanks again for the comment and the workshop itself. You all did a great job even though it wasn’t quite what I’d hoped.

  6. Felix Geisendörfer said...

    Rob: Thank you very much for this insightful post about the workshop. We would love to deliver a more hands-on experience where people will actually build a complete application themselves next time around. I will do a write up on our blog soon outlining some of the challenges involved in that and ideas on how to overcome them to provide for a great experience. I’d love to see your comments on this once its published.

    Meanwhile – I’d love to personally help you with any problems you might run into. Feel free to email me or add me on any of the IM networks listed on debuggable.com/felix.

    The reason why the workshop was hosted in Raleigh was that Tim and I were approached by Credit Risk Management to consult them on their CakePHP application. On top of that they offered to provide their facilities as well as catering for free after they found out we were planning on organizing a workshop. Future workshops are likely to take place in the hometowns of the developers as well.

    Thanks a lot for attending!

  7. Felix Geisendörfer said...

    Rob: Thank you very much for this insightful post about the workshop. We would love to deliver a more hands-on experience where people will actually build a complete application themselves next time around. I will do a write up on our blog soon outlining some of the challenges involved in that and ideas on how to overcome them to provide for a great experience. I’d love to see your comments on this once its published.

    Meanwhile – I’d love to personally help you with any problems you might run into. Feel free to email me or add me on any of the IM networks listed on debuggable.com/felix.

    The reason why the workshop was hosted in Raleigh was that Tim and I were approached by Credit Risk Management to consult them on their CakePHP application. On top of that they offered to provide their facilities as well as catering for free after they found out we were planning on organizing a workshop. Future workshops are likely to take place in the hometowns of the developers as well.

    Thanks a lot for attending!

  8. Rob Wilkerson said...

    Felix, that may’ve been the biggest mistake you’ve ever made; I’m not shy about asking for help. :-) Nonetheless, I certainly appreciate the offer.

    You’re in my blogroll as of a few weeks ago, so I’ll certainly add comments on anything where I think I might have something to add. Thanks for explaining the Raleigh choice. Though obviously unimportant, it was a point of curiosity.

    Looking forward to next time.

  9. Daniel Watson said...

    I was also at the conference, and having had over a year’s worth of experience working in CakePHP, this conference was invaluable. What I would suggest is that you keep learning and experimenting with apps, and when you get the videos, use them as a reference.

    I do agree that building an application from scratch would have been very useful.

    There were several sections that I found to be most useful. The Cake command line tool is more than awesome. Unit testing was something that I really wanted to learn more about. And Felix’s presentation when he built the custom controller was very useful.

    -dw

  10. Felix Geisendörfer said...

    Rob: I haven’t heard any questions from you so far : ). Please add me on Skype (TimFor23) and I’ll be happy to talk an hour or two with you about whatever things you need answers to.

  11. Rob Wilkerson said...

    Ha. You’re right. I’ve been bogged down writing a facade for an external set of APIs at work and haven’t had time to get back on Cake.

    Once I finish updating the crappy-ass theme for this site, I’m going to start migrating a personal project to Cake so put on your listening ears. I suspect you’ll be hearing from me once I get my feet wet. :-)

    Thanks again for the offer. It’s a hell of a lot easier to come up to speed quickly when there’s support out there.

  12. AmeliaLZ said...

    It’s not so simply to bring a not bad essay paper, essentially if you are engaged. I consult you to set buy essay and to be spare from distrust that your work will be done by paper writing services