Skip to content

Proactive Programmers

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!

Proactive Skills

After installing cutting-edge Python development tools, learn the professional skills that support proactive programming.

Data Abstraction

After reviewing program building blocks, learn how to design, implement, test, and empirically evaluate data structures and functions.

Discrete Structures

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!

Intersection Algorithms

After implementing a benchmarking framework, conduct an experiment to determine the fastest approach to finding the common items in a list.

Collatz Creation

After implementing a Python program that computes the numbers in the Collatz sequence, find which starting number yields the longest chain.

Topic Listing

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!

Issue Tracker

Have something to share? Give feedback or report a bug in the site's writing or source code through the GitHub issue tracker.

Technical Discussions

Have a detailed technical question or need technical support with content on the site? Start a converation on the GitHub discussion forum.

Discord Server

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.


  1. See Merriam-Webster for the definition of "proactive". What do you think are the characteristics of a proactive programmer? 


Updated: 2022-08-16   Created: 2021-08-10