Archive

Mentoring with ChiPy (Part 1)

A little over two years ago, I was a mentee in the Spring 2017 ChiPy mentorship program. One of the most active Python user groups in the world, ChiPy organizes a free, 13-week-long, one-on-one mentorship program twice each year. Individuals of all skill levels are welcome to participate. During the program, mentees learn Python programming best-practices while working on a project of personal interest. It was through the ChiPy mentorship that I began learning Python in earnest and started my still on-going CTA Bus Data Analysis project. Since participating in the program, I've continued to develop my Python and data skills, so I decided that I should give back to the community that kickstarted my Python journey by becoming a ChiPy mentor.

While I have previously tutored and taught mathematics to both students and teachers during summer programs, this is my first experience serving as someone's mentor. Surely the skills necessary to teach transfer over to those required of a mentor! I believe this is true, and in my mind, the key difference between a teacher and mentor is in function. As a teacher, you select topics, craft lessons, and present examples that you think are important for your students to learn. Your goal is to provide a base knowledge--a common language--in a particular field that can be built upon. But as a mentor, you should center your mentee's interests and use your experience and insight as a means to guide them. The mentor's priority is to refine or expand the mentee's base knowledge through its application.

Why mentor?

I initially had some doubts that I was a good enough or experienced enough Pythonista to be a mentor to someone else. But upon reflection, I realized that while I may not be a Python expert, I had built a specific set of skills over the past two years: applying Python to process, analyze, and map data. My knowledge and experience would be valuable to someone with similar interests as mine, but who is unfamiliar with how Python could be useful to them. Moreover, if I want to continue to push myself to grow as a Pythonista, the best way to learn is by teaching others.

A final reason I chose to mentor is that the Python community had been so generous to me when I was a mentee. I want to contribute to a culture that is mutually supportive, welcoming to newcomers, and embraces diversity.

My Mentee

I was excited to be paired with my mentee, Jay, who is interested in learning Python to help her analyze data about the changing landscape of public schooling in Chicago. In particular, she wants to create a series of maps to show the connections between the demographics of a neighborhood and the disappearance of public schools/emergence of charter schools across the city. Her eventual goal is to create a website so parents and educators can explore the data. I am eager to introduce her to tools like pandas and GeoPandas which will make processing and mapping data easy and (in my opinion) fun!

What's to come?

As it turns out, my mentee is entirely new to Python! It's exciting to welcome a brand new Pythonista to the community. Part of my work as a mentor then will be to play teacher: first we're covering the basics to establish a solid foundational knowledge in Python's data structures, built in functions, conventions etc. While I haven't been writing lesson plans or anything like that, she's reading through Al Sweigart's Automate The Bording Stuff With Python and when we meet up, we discuss examples and any questions or issues she had. I've been emphasizing the importance of learning to decipher error messages--which can seem cryptic to beginners--since mistakes are inevitable while programming. The faster you understand an error message, the faster you can identify the bug in your code. Plus, error messages provide a lot of useful information that shed insight into how Python works under the hood. I've also been encouraging my mentee to play around in the Python Interactive Shell to check her understanding of concepts and to test ideas for lines of code that she's not sure how they will run.

With enough fundamentals under our belt, we'll dive into pandas and GeoPandas. But for now we're sticking to dictionaries and list comprehensions and control flow, which will be very useful down the line.

As part of the program, mentees must write a series of three blog posts documenting their experiences. You can follow Jay's progress here. In solidarity, I will be doing the same. Expect to hear more about Jay's and my experiences in the coming weeks.