[[Outcome 1 - Programming#9. purposes and features of naming conventions for solution elements (variables, interface controls, code structures), including| U3 - AOS1 - KK9]]
# Primer
```
variable_01 = 1
```
Is this a *good* or *bad* variable name?
Why or why not?
```
user_number = 1
```
What about this?
## Why use naming conventions?
With a naming convention you end up with variables name like what is shown above this can be confusing and lack critical information to provide the purpose of the variable. Additionally while the developer who wrote it may be able to understand the meaning other developers may not.
Variable names should be short and meaningful. Another programmer should be able to read your variable names and immediate understand the purpose of that variable.
However, you should avoid abbreviations.
## Hungarian Notation
Hungarian notation is when you add a prefix to indicating the variable's data type.
This can be quite important in python as since variables are dynamically type cast meaning that their data type will change depending on the variables value.
If you had a variable with an integer data type you would write a name like *'intShoeSize'*. Without Hungarian notation it would look like *'ShoeSize'*.
## Camel Case
Camel case is just using capitalisation to indicate the beginning of words in a variable.
i.e. 'shoeSize'.
**REMEMBER DO NOT USE A CAPITAL LETTER AS THE FIRST CHARACTER IN A VARIABLE NAME**
This is reserved for classes/objects
## Snake_case
This is the same as camel case except the first character is also capitalised. This can be used for the name of classes as they can have a capitalised first character to indicate that are a class and not a variable.
i.e. CarClass
# Naming Conventions in the SAT
In your SAT or SACs it doesn't really matter which you pick as long as you are consistent with your use naming conventions.
In your SAT your MUST outline which naming conventions you are using and provide a brief justification!
I would recommend a combination of Hungarian Notation and Camel Case as since python is a dynamic language you do not need to declare the datatypes when creating variables. This means that strings could be stored in a variable that previous had an int. Having a datatype in the name of the variable will help make clear the intended datatype to be used in a variable.