a <- a + 1
a + 1 -> a # also works, but REALLY bad practice
But, so does
a = a + 1
Granted, there are a bunch of R haters (especially from people with formal CS educations), I think this convention makes a lot of sense. While most will disagree about the '<-' I like it from a code reading sense in that you know that it is an assignment right away. Coming from a mathematical perspective before learning to code, this makes a lot more sense in the 'assignment' fashion.
In case you are wondering, the difference between <- and = in R is in scoping. For example, in the following function call:
foo(x = 'value')
x is declared in the scope of the function, whereas:
foo(x <- 'value')
x is now declared in the user environment. Granted, that is not good practice, but that is why there is a difference.