Understanding the Path to Becoming a Programmer: Key Subjects and Steps