As we prepare for the 2022 Swift Mentorship Program, we’re excited to share insights from a few of last year’s mentees on their learning journey.
Anh Pham worked with her mentor, Erica Sadun, on documentation contributions to open source Swift packages. Anh’s learning goal for the program was to practice technical writing by actively contributing documentation to open source Swift projects.
Anh started her journey by studying well-documented open source Swift projects, both to learn by example, and to discover which open source projects are active and welcome contributions. During these initial weeks, Anh faced a common barrier for new contributors: self-doubt. Anh overcame this barrier by affirming her own skills, answering guiding questions from Erica, and accepting that mistakes are a necessary part of the learning process.
One important strategy that Anh learned from Erica is the “No Delete” rule, where you do not use the “delete” key as you brainstorm ideas. This strategy encourages you to record your thought process, and allows you to thoroughly flesh out an idea. By preventing an idea from being cut off and instead expanding upon that idea, Anh felt a heightened flow of creativity.
Swift on Server
David Reyes spent his summer working on an introduction to Vapor with his mentor, Tim Condon. David’s goal was to learn the basics before jumping into the codebase. This was accomplished with the help of the Vapor book and he was successful in learning introductory Vapor.
It’s not easy to tackle such a broad topic as Vapor, but regular guidance from his mentor helped David to stay focused on the topic and allowed him to tackle the various related packages in the Vapor project. David is now looking forward to learning more in the coming days and won’t stop even after the mentorship program.
I had a wonderful mentor who gave generously of his time and of his experience. He answered all my questions, and never seemed disconnected to the mentorship purpose.
Language design and compiler development
Amritpan Kaur dedicated her mentorship experience to working on open source language design and compiler development. Amritpan’s primary goal was to practice turning knowledge gaps into learning opportunities, which she accomplished by delving into the Swift compiler codebase, navigating unfamiliar concepts and code.
During the first few weeks of mentorship, Amritpan studied a number of Swift evolution proposals. By asking questions to clarify jargon and talking through formal computer science concepts that she felt were blocking her understanding, Amritpan was empowered to engage in discussions about the motivation for the change and the proposed semantics. Most importantly, Amritpan learned that she — an iOS engineer who writes Swift regularly — can offer valuable insight on the usability of the language in practice.
Though Amritpan formed an effective strategy for breaking down Swift evolution proposals to clarify new concepts, she found the compiler codebase to be a greater challenge. Amritpan quickly realized that it isn’t possible to have a complete understanding of such a large project before making contributions, and she discovered that stepping through the code was more effective than attempting to read it. In her reflection, Amritpan notes that framing the learning process as continuous, rather than something you must do upfront, helped her overcome the uncertainty of working in a large, complex project.
While there is plenty that I still do not fully grasp, I have no doubt that more of it will fall into place as I continue to walk about the code with future contributions.
Changes to the mentorship program
The Diversity in Swift work group is excited to continue offering the Swift Mentorship Program to welcome and support more programmers in the Swift community. After the 12-week cohort over the summer, we’ll continue to offer mentorship on a rolling bases for starter bug contributions, so new mentors and new mentees can submit applications to join throughout the year.
You can find out more about the Swift mentorship program, and instructions for how to apply at Swift.org/mentorship.