Welcome!¶
Quote
"Ethical programming includes being honest about the extent to which you can be confident that your program is good, and adhering to quality control processes that ensure if a mistake has been made [...] it is found and rectified before it causes harm." Perdita Stevens in How to Write Good Programs
As Perdita Stevens points out in How to Write Good Programs, "ethical programming includes being honest about the extent to which you can be confident that your program is good, and adhering to quality control processes that ensure if a mistake has been made [...] it is found and rectified before it causes harm." As they "act in anticipation of future problems, needs, or changes"1 proactive programmers ethically implement software in a fashion that is responsible to themselves, to the others in their team, and to the people who rely on their project. Proactive programmers implement efficient and correct software that is designed, documented, tested, and maintained according to industry best practices.
Is this challenging? Yep! Will you make mistakes along the way to emerging as a proactive programmer? Of course! Are there many benefits to being a proactive programmer? Yes! If you want to learn more about proactive programming, you are invited study the proactive skills and complete the projects in data abstraction and discrete structures.
Are you nervous about getting started or afraid that becoming a proactive programmer will prove to be too overwhelming? Don't worry, you can rely on the team of programming experts who have crafted activities that will help you to hone your technical and professional skills. If you get stuck on this adventure you will find a welcoming community of like-minded learners who can answer your technical questions, make suggestions for improvement, and relate to your struggles.
Ready to put the PRO in your programming skills? Start your journey with one of these resources!
After installing cutting-edge Python development tools, learn the professional skills that support proactive programming.
After reviewing program building blocks, learn how to design, implement, test, and empirically evaluate data structures and functions.
Explore the fascinating connections between discrete mathematics and programming as you implement realistic Python programs.
Want to start a learning how to program? Launch your adventure with one of these projects!
After implementing a benchmarking framework, conduct an experiment to determine the fastest approach to finding the common items in a list.
After implementing a Python program that computes the numbers in the Collatz sequence, find which starting number yields the longest chain.
Not sure where to begin? Find learning opportunities in a wide variety of technical areas from object-oriented programming to software testing.
Want to engage the proactive programming community? Check out these ways to get connected!
Have something to share? Give feedback or report a bug in the site's writing or source code through the GitHub issue tracker.
Have a detailed technical question or need technical support with content on the site? Start a converation on the GitHub discussion forum.
Want to discuss the challenges you face as you emerge as a proactive programmer or have a quick technical question? Chat on our Discord server.