This morning I was cleaning off my desk and found a stack of notecards from Django Girls Atlanta. They formed the basis for one of my fondest memories of the event, so I thought I might take a moment to share. Whether you’re planning your own Django Girls or involved in mentoring more generally, I hope you’ll find it useful to hear some of the things new coders are afraid to ask, but really want – and need – to know.
Backstory: the cards were used in a raffle game called “Scary questions”. On each, a student wrote something she was afraid to ask for any number of reasons. Perhaps she was nervous that her question was too basic, and presumed it a possible “waste” of her coach’s valuable time. Or maybe she felt guilty because it seemed like something she should already know… and was embarrassed to admit that she didn’t.
Whatever the reason, our Django Girls were invited to leave it at the door and ask away for the chance to win an O’Reilly book: Lightweight Django, Automate the Boring Stuff with Python, TDD with Python, Introducing Python, Think Python, the Git Pocket Guide. Students entered the raffle by writing their questions on an index card and dropping it into a box. When it was time to draw one, I asked all of the coaches in the room to stand up. Once the question was read aloud, any coach could answer, and then the student who asked was identified – the winner!
Here are the actual questions that were asked, transcribed from the notecards as written:
I’m afraid to ask and would like to know this, so… what’s the difference between a software engineer and a programmer?
What exactly is a repository and how does it work?
What does GitHub do again?
How can I get involved with developing the Django source code?
How would I control the name of my URL?
What is the real difference between Django and WordPress? Are they both CMSs?
What is Bash? I have seen it several times today in my console and on PythonAnywhere.
What is the difference between and/or importance of a virtual environment and a virtual computer?
Do we have to use PythonAnywhere? Is there another way to host our work online?
What if I’m embarrassed of my coding skills, should I still upload to GitHub?
What is Spring? How does it compare to Django?
Should I still apply for jobs even if I don’t meet all the minimum requirements for the posted job?
How difficult is it to break into programming if you are a novice?
How long will it take to master Django/Python?
I’m not really afraid to ask any questions at this workshop, but in general I am afraid that I will never know enough about programming to get a job in it. When will I know enough??
How do I keep going? Where can I get help if I need it in the future?
Mostly I was afraid to ask how all this information is connected.
It’s important to note that raffle was at the close of the workshop, in the last hour of our second day together. Even after sitting with a caring, knowledgeable coach and working on a supportive team over two days, our students still had questions that ranged from specific “basics” (what exactly is Bash, again?) to the more generally intimidating (can I ever really master this? How will I know I’m ready?).
I enjoy giving talks at tech conferences about the experience of being a beginner programmer, because once you’ve mastered something, or even developed a working proficiency, it’s remarkably hard to remember how significant the barriers to entry can feel when you’re first getting started. Yet getting a feel for what it’s like is crucial for effective, compassionate coaching. I hope you’ll consider these questions thoughtfully and remember that even when we do our very best to provide welcoming, supportive learning environments, there will still be some “scary questions”. What will you do to help ease that fear?