"We are what we repeatedly do. Excellence, then, is not an act but a habit." Will Durant in The Story of Philosophy
Have you ever heard to quote "We are what we repeatedly do. Excellence, then, is not an act but a habit."? While many people often attribute this quote to Aristotle, it was actually written by Will Durant in The Story of Philosophy! Before you start working on the projects featured on this site, it is a good idea to pause to reflect on the proactive skills that you need to internalize as habits before you can confidently write high quality software. This site introduces both technical skills, like implementing and testing a program in Python, and professional skills, like effective communication and time management.
As expected, a proactive programmer must know how to use development tools like a text editor, a terminal window, and the Git version control system. With that said, you are probably wondering how effective communication skills and time management support the practice of proactive programming! The experience of many proactive programmers suggests that the ability to communicate with both team members and an instructor are skills that are as valuable as knowing how to install Python on your laptop.
Why is that the case? As an example, it is hard to "act[s] in anticipation of future problems, needs, or changes"1 if you are always running behind schedule on your programming projects. It also hard to be responsible to yourself, your team members, and the people who use the software you create if you can't communicate effectively to learn, for instance, what software you need to build, who will design and create the different system components, and how you should create your own parts of the system.
Let's dive into some of the technical skills that you will need as a proactive programmer!