You'll see lots of literature on qualitative analysis talk about using both codes and themes, but they are difficult concepts to explain and often the lines between them are blurred.
But that's good! Usually approaches like thematic analysis or grounded theory talk about creating codes and then themes as two separate stages of the analysis process. You start by going through and creating codes - basic topics of interest. Then you go through the data and the codes again, and identify themes - more complex concepts that help you connect the data with your research question and the main issues illustrated in the data.
The video below helps explain some of the differences, and how to get from codes to themes:
So the main difference is that codes tend to be very simple 'tags' of basic categories, like 'happy' or 'sad', or 'snow' or 'rain'. Themes tend to be more abstract higher level concepts, such as 'Anxiety about arriving on time' or 'Preparing for weather'. But it's not always so clear cut, and there are often overlaps. Sometimes, a simple code like 'Anxiety' becomes such an important concept that it is essentially a theme as well. And a simple observation like when people are talking about a 'bus' might be the key category that unwinds a complex problem: like how access to a cancer screening service is limited by public transport options.
Themes tend to be something that brings a series of codes together - which is why groups or connecting approaches like open/axial coding are such common concepts in the literature. Sometimes it's as simple as connecting a bunch of similar codes (like rain, snow, hail in the video above). But sometimes it's because you've put together a series of seemingly disparate codes like bus, location and childcare - to create a theme - "Lack of public transport affects families more".
This is one of the reasons that I wanted Quirkos to have this mappable 'canvas' area where you can arbitrarily move codes around, putting them close, but not always under each other. Creating a hierarchy of codes (subcategories) can limit your thinking in a way that can make it harder to create themes, while total flexibility with space (or colour) allows for shades of relationships that are more varied and variable. Personally, I don't like lists or hierarchies of codes that imply primacy (although many like to work like this, so we added it to Quirkos too).
It's sometimes why the best way to create themes (other than just re-reading your data) is to re-read your codes - not just their names, but everything in each of them. Or look and see how connected codes are - how often they occur together in the same transcript or paragraph (Quirkos has dedicated overlap views to visualise this).
So that sometimes means that codes (and the text/quotes you have assigned to them) evolve a little: for example 'bus' might become 'public transport' or 'access issues' as you understand the concept better through reading more transcripts, or re-reading the data.
And that's a key take-away for me when teaching qualitative coding - codes and themes evolve, and the best analysis is based around flexible interpretations. We thought that code for 'bus' was the big thing, but even though there aren't other transport options in this city, it's really about 'Public Transport'. So at one stage, we renamed it. And later we found it's about not really transport itself, but Access - so we renamed it again. Sometimes you will literally rename a code or theme, but sometimes you'll duplicate it to have subtle differences in subcategories and the quotes under them, or merge it with other themes (maybe trams, or lack of parking in this case).
Which is why I always say think of your code and theme names as being written in pencil, not pen. They can always change as your concept of them changes, and this will help you to not start forcing important statements from participants into codes or themes that aren't quite right.
And sometimes it can go the other way too - things you thought were going to be game changing themes, become not so important as you kept reading the data, and end up being codes - just a simple thing that doesn't work to bring everything together. In our Access example, this might be the realisation that Access wasn't really about public transport, it's because the clinic is only open a few hours a day, that don't work well for the bus schedule. So the main theme is Opening Hours - that's where we decide the access issue is, not with the public transport directly.
So with the examples above, hopefully you can see how sometimes a code can also be a theme. The video above describes chunking up and down to create and rethink codes, groups and themes, but this doesn't always work for every coding approach or data set. It's important to remember that every type of qualitative analysis (grounded theory, IPA, thematic analysis etc.) is a general approach, not a one-size-fits-all approach. There's no right way to apply it for each different project, and although there are good guidelines that help, it's important not to get too caught up in whether something is a code or a theme, but let these categories be flexible to help you better understand your data.
Having said all this, the best way to get better at qualitative analysis is to practice! So we provide open access datasets for practicing, video tutorials and example projects for Quirkos so you can see at least one way that interpretations were done. You can also get a free trial of Quirkos, our simple and visual tool for qualitative data analysis, and see how the flexible open canvas area can help you be creative in your qualitative thinking!