Ensure that they are understandable
You'll want to ensure that you incorporate all the variant attributes that describe your products: think size, color, type, format etc.
It's often not a good idea to use obscure codes that need to be deciphered unless these are very familiar to everyone in your team. An example of this would be color codes (i.e 66 for Coral Pink, 45 for Bright Green). If these numbers are so familar that everyone knows immediately what they mean, then by all means use these in your SKU codes as they will mean you can have very compact code.
If everyone now needs to have a color chart pinned to their workspace to figure out what color to make or pack then this may not be the best option for your code and you might be better with an abbreviation of the color instead (i.e. CPINK or CORALPINK).
Arrange your SKU code by attribute importance
The second thing that makes a good SKU code is structuring your code in order of importance of characteristics. You'll want to think for each product group what is the defining attribute of the product and put this at the front. This way you'll be able to read it from left to right and narrow down the exact product in this way.
For example, if you make candles the format of the candle may be the most defining factor: pillar, taper, votive or jar. From here, it may then be the fragrance and then finally the size.
A SKU for a candle maker that is ordered by attribute importance may therefore be:
Don't use letters that can be misread
You'll want to try and avoid using the letter O in isolation as it can be often mistaken as a zero. If it is located in a word based SKU then this is fine as it can be derived that it is a letter and not a digit (for the candle example above, VOTIVE-LAVENDER-SML would be fine as it is clear that the O in Votive is a letter).
Stick to alphanumeric SKU codes
Using characters like " / > < * in your codes can sometimes cause issues in spreadsheet programs, so to prevent odd formatting you'll be best to avoid these.
Spaces can also be problematic for similar reasons - you're best to try and join together words and phrases in your SKU using either an underscore (_) or a dash(-).