Enthusiastic amateur programmer who, despite occasionally being paid for it, cannot yet describe himself as a professional.
An amateur practices until he gets it right. A professional practices until she can’t get it wrong.