ExpressionEngine is a great CMS—flexible, powerful yet unassuming, a designer’s dream. However, the thought of actually sitting down and learning ExpressionEngine can seem daunting at first.

What would you say if I told you that you could learn ExpressionEngine in less than 2 days?

If you have a fairly good handle on coding valid (X)HTML/CSS, you already know most of the code you’ll need to build your site in EE.

Many say ExpressionEngine has a steep learning curve. But I think much of that learning curve is a result of 2 main things:

  1. Confusion about EE terms
  2. Scarcity of ExpressionEngine tutorials

Once you overcome these 2 obstacles, learning EE isn’t that difficult. Now, I’m not saying you’ll know everything about ExpressionEngine in 2 days, but you’ll know enough to start converting your existing XHTML/CSS design to EE.

ExpressionEngine Terminology

To be honest, this was the most difficult part for me to wrap my head around, and a lot of people go into EE a bit confused when it comes to what this and that term means. So let’s start by clearing up just a few of the basics.


Everywhere else, a weblog is a site usually made up of posts, such as what you’re reading right now. In EE however, a weblog refers to a chunk of information. A weblog can contain just about any kind of information you want.

For example, a weblog could contain details about an album: Artist, Album Title, Release Date, etc. Using EE tags (similar to HTML tags), you can pull those individual details out of the weblog—using, reusing and displaying them virtually anywhere on your site.


If you’re familiar with WordPress, you know what templates are. In ExpressionEngine, a template houses the code for your pages and can contain information from many weblogs (again, chunks of information).

Basically, templates contain your code. They can hold HTML, but they can also contain CSS and javascript.

<link rel="stylesheet" href="{path=styles/base}" type="text/css" media="screen" />
<link rel="stylesheet" href="{path=styles/print}" type="text/css" media="print" />

{!-- External Site Notice Dialog --}
<link rel="stylesheet" href="{path=styles/dialog}" type="text/css" media="screen" />
<link rel="stylesheet" href="{path=styles/jqModal}" type="text/css" media="screen" />

<!--[if lte IE 6]><script type="text/javascript" src="{path=scripts/iepngfix}"></script><![endif]-->
<!--[if lte IE 6]><link rel="stylesheet" type="text/css" media="screen" href="{path=styles/css_ie}" /><![endif]-->

Contents of a header template: Linking to external stylesheets and javascript is pretty much like regular XHTML.

Just as you can link to external CSS and javascript files from an HTML document (and include files into PHP files), you can import templates into another template. This could be used to keep your header, footer, main content and sidebars separate in their own templates.

{!-- DTD, Page Title, Styles & Scripts --}



You can easily pull in code from another template using the embed tag, similar to using includes in PHP.

Template Groups

While EE’s flexibility allows for other uses, basically, template groups are virtual folders used to group similar templates together.

For example, you could create a template group named Scripts to place your javascript templates into. Or a Portfolio template group that contains a few templates with your previous work.

There are other terms, but much of this is explained (and probably better than my attempt here) in the Getting Started section of the ExpressionEngine Documentaion. I recommend reading through this section and following along with the Quick Start Tutorial.

The ExpressionEngine Documentation and Knowledge Base do much better jobs of explaining everything in more detail.

ExpressionEngine Tutorials

The second obstacle to learning ExpressionEngine is finding good tutorials.

Sure, you can find a few tutorials that deal with different aspects of ExpressionEngine, but when you’re just starting out, you need a good set of tutorials that take you from start to finish.

Michael Boyink’s Train-ee site is the best there is as far as leading you through the entire process. His Building a Small Business Site tutorial series is a great place to start.

He suggests finding a free website template and dissecting it. Yet, if you’ve read through the EE Quick Start guide already and you’ve already created the site (or your main pages at least) in regular XHTML/CSS, you can use your own design and follow along. No need doing things twice.

Basically, you’ll be learning how to set up your dynamic information (weblogs) and then add EE tags into your pages to pull in that information.

Getting Help When You’re Stumped

It’ll happen. Instead of pulling your hair out or developing a drug addition, don’t forget about the EE community.

The ExpressionEngine Forums is a great place to find answers. They are a great bunch of people and very friendly and willing to help you any way they can.

ExpressionEngine Tags

Learning and remembering EE’s tags can take some time. Why not cheat.

You can use the handy-dandy ExpressionEngine cheatsheet-er-Quick Reference Guide. It’s also available in a convenient PDF download.

Tips & Tricks

As great as these tutorials are, once you build your 1st site in ExpressionEngine, you’ll probably wish you’d done things a little differently here and there. Instead of making mistakes that others already have, Simon Collison of CollyLogic has some great tips for working more productively in ExpressionEngine:

Edit: Smashing Magazine just published an insane list of ExpressionEngine resources—including tutorials, plugins much more. You’ll want to check it out.

Note: The It’s All Text plugin for Firefox that I have written about before is almost impossible to live without when coding in ExpressionEngine.

Not So Hard

With all this great information at your fingertips, learning ExpressionEngine doesn’t sound so difficult, huh? Once you get your first site under your belt and see how flexible and powerful EE really is, you may get spoiled when you have to build for other CMS’s.

Schedule For Success

Day 1:

Day 2:

What Do You Think?

What has your experience been with ExpressionEngine? Have any tips to pass along? Leave a comment.

Similar Posts: