Design Patterns and OOP
I like design patterns and the joy of teaching this is that it helps to stop some of the big words and unfamiliar terms in object-oriented programming from seeming like rocket science. Most people will quickly tell me “oh, I’ve been using this all along!” – which is exactly the point :) Teaching a few design patterns also gives a great vehicle for teaching some of the advanced OOP concepts in a more interesting way than “this is an interface”.
Databases and PDO
Web developers don’t know what they don’t know about databases! Being able to join multiple tables with different types of join and aggregate data correctly allows you to learn how to normalise data and not be afraid to implement the schema changes. I like to teach how to do this and get everyone confident with it all. The PDO extension is a fabulous way of working with databases and I think the prepared statements are in everyone’s interests, so that forms a good part of the course too.
A course for all the allied skills you need – configuring apache, a bit of linux command line, quality and performance tools (xhprof, php code sniffer, api documentation, and more) are all included. There’s a splash of source control (because it is the basis of all things!) and we also talk about strategies for deployment (with phing as an example) and managing things like configuration management and database schema changes. In a one-day course there isn’t time to teach unit testing or continuous integration properly but they do get a mention and I try to point interested parties in the right direction for more information.
If any of the above sound interesting and you want to come and learn this stuff with me for a day, you can book the courses through NTI. Feel free to ping me with questions, comments, or tell me why this isn’t the right topic for you – always interested to hear others’ viewpoints.