# Using kitchen to write good code

Kitchen’s functions won’t automatically make you a better programmer. You have to learn when and how to use them as well. This section of the documentation is intended to show you some of the ways that you can apply kitchen’s functions to problems that may have arisen in your life. The goal of this section is to give you enough information to understand what the kitchen API can do for you and where in the Kitchen API docs to look for something that can help you with your next issue. Along the way, you might pick up the knack for identifying issues with your code before you publish it. And that will make you a better coder.

- Overcoming frustration: Correctly using unicode in python2
  - Frustration #1: Inconsistent Errors
  - Frustration #2: Inconsistent APIs
  - Frustration #3: Inconsistent treatment of output
  - Frustrations #4 and #5 – The other shoes
  - Frustration #5: Inconsistent APIs Part deux
  - A few solutions
- Designing Unicode Aware APIs
  - Take either bytes or unicode, output only unicode
  - Take either bytes or unicode, output the same type
  - Separate functions
  - Deciding whether to take str or unicode when no value is returned
  - APIs to Avoid
  - Knowing your data