Welcome to the library! Don’t let the seductive CarlBoard™ above fool you. This isn’t where you’ll find such classics as Carl’s guide to great coding or 1001 0100 1010 0101 1101 0110 1001!
Instead, the library is where you can find all the articles published on this site. I’ve tried to group them by topic or series. This should make it easier to find what you need when you need to refer to an article.
Programming is such a large part of the site that I’ve divided it into sub-topics. For most of you, this is the section that you want to look at.
Introduction to object-oriented programming
These are introductory object-oriented articles tailored for WordPress developers. They cover the basic concepts and features of object-oriented programming. If you’ve never touched object-oriented programming before, this is where you want to start!
- Why object-oriented programming is your next step as a WordPress developer
- The first thing you should learn from object-oriented programming
- Using inheritance with WordPress
- Polymorphism and WordPress: Abstract classes
- Polymorphism and WordPress: Interfaces
Software design patterns
Software design patterns are a more advanced topic. You should look at them once you’re familiar with the basic of object-oriented programming. Each article covers a specific software design pattern within the context of WordPress.
- Moving beyond the basics with software design patterns
- Singletons and their use in WordPress
- The mediator pattern in WordPress
- Spying on WordPress with the proxy pattern
- Helping WordPress make friends with the decorator pattern
- Importing data into WordPress using the strategy pattern
Object-oriented design is the largest topic on this site. I’ve divided all the relevant articles into three groups. The first group centres around solving a WordPress problem with a class or interface.
- Designing a class: WordPress API client
- Designing a class: WordPress AJAX handler
- Designing a class around WordPress hooks
- Designing classes that use the WordPress plugin API
- Saving WordPress custom post types using an interface
- Designing a class to manage WordPress posts
- Designing a class to build simple WordPress queries
- Designing a class to create complex WordPress queries
The second group of articles focus on designing larger object-oriented systems. These systems use more than one class to solve a specific WordPress problem. The solutions are more complex and require a better understanding of object-oriented design.
The third group of articles looks at how to design a plugin using object-oriented programming. These articles tackle problems that you might encounter along the way.
WordPress for the adventurous
This is a series of articles that explore the inner workings of WordPress. Each article focuses on a specific system, class or API. These are useful references whenever you’re working with WordPress.
- WordPress for the adventurous: Entry points
- WordPress for the adventurous: Loading
- WordPress for the adventurous: Rewrite API
- WordPress for the adventurous: Plugin API
- WordPress for the adventurous: WP_Query class
These articles focus on the PHP programming language. They are references to specific features of the language. These are useful whether you’re a WordPress developer or a regular PHP developer.
- PHP strings and how to format them
- How to use PHP array functions instead of loops
- Mastering the use of PHP conditionals
Testing is a critical part of software development. These articles go over the different types of testing and how they work.
These are articles that don’t fit in any specific section right now. They range from tutorials to opinion pieces.
- Read more code
- The importance of naming in programming
- Single responsibility principle, WordPress and You
- Thoughts on WordPress and the MVC pattern
- Organizing your files in an object-oriented WordPress plugin
- Harnessing your superpower with DRY
- Keeping Your WordPress Safe
- On becoming a WordPress expert
- How to use the static keyword with WordPress
- Coupling and cohesion in WordPress and beyond
- How I setup my 2016 MacBook Pro
Servers are another passion of mine. These articles discuss server related to topics from technology to their administration.
This is a site about teaching programming. These articles share my thoughts on it and about teaching in general.
- Teach everything you know
- Why can’t you learn object-oriented programming?
- Creativity and teaching programming
- Thoughts on teaching object-oriented programming with WordPress and overengineering
Year in review
Each year I write a review of my year. I discuss what went well, what didn’t, finances and what I’m hoping to do in the new year. I do this so that I have a record of my progress over time. Not the most interesting read, but it’s useful for me.
Photo Credit: Jeremy Clarke