The Professionals are organized, communicate regularly, and go above and beyond, Amateurs do not. Now, the term "Amateur" here sounds condescending, but it's not meant to be. It is a state based in two orders: the persons' mindset, and secondly, what they physically can or cannot do. This concept also extends to programming, where we encounter the two types: Amateurs and Professionals.
In addition to the Amateur and the Professional types, there is a third type, verbosely named 'the Amateur Who is Called a Professional'. This third type has four subsets that are worth mentioning.