What teaching for Code First:Girls has taught me about myself, the way I see development and how it affects our ‘Do good; Be good’ mindset.

I first got involved in Code First:Girls by chance – I’d recently volunteered for Rails Girls Bristol, when a friend and fellow volunteer @-mentioned me in a Twitter conversation about setting up a Code First:Girls course at the University of Bath. I got chatting with the leadership of Code First:Girls, mentioning that I was based in Bristol, and so ended up in charge of running a beginner’s course in HTML/CSS at the University of Bristol.

I’ve since run two years of beginners and advanced courses at the University of Bristol for ~80 female undergraduates, and taken up the role of lead instructor for the Ruby advanced course, writing the course notes that are used for every course run across the country.

Overview

Code First:Girls started as an offshoot of Entrepreneur First (EF), when the EF founders found they weren’t getting enough female entrepreneurs applying to their programme. Initially focused on teaching non-Computer Science undergraduates the basics of HTML, CSS and Ruby, Code First:Girls has expanded to include courses for the general (female) public in London, as well as masterclasses on mobile app development and a paid offering for professionals and companies.

What I’ve learned

It’s often said that you don’t truly understand something until you’ve tried to teach it to someone else; this certainly holds true for programming, especially when trying to explain the often complicated and layered world of web tech. The only pre-requisite for applying to a Code First:Girls course is an interest in coding, which means that most of the students have never written a line of code before, or even opened the terminal. This makes you break everything down and explain it piece-by-piece and forces you to confront the assumptions and misbeliefs you never knew you had when a student asks “why?”.

Talking in an understandable domain language

We Rubyists are fond of DSLs (domain-specific languages), but we forget that Ruby – and the larger world of programming – is essentially a large and inscrutable DSL, especially for those with no prior experience. I found it helped to relate programming subjects to things the students already understood, using metaphors and similies to try to get the point across.

Of course, metaphors generally only get you so far – some things in programming don’t really have an equivalence in the real world (binary numbers, functions, compilers), but it helps to get ‘a foot in the door’ to understanding.

I’ve found a similar case in my day-to-day work – as an agency, we’re tasked with using our expertise by clients who may not have much technical knowledge. It’s our job to explain potentially complicated technical subjects in clear and understandable language.

We’ve also run training sessions for our clients where these skills have come in handy – this was especially true of one client, who wanted to be able to work on his own product himself whilst he was arranging further funding. We spent a week one-on-one, going through the basics of Ruby and Rails, and explaining how the different parts of the app slotted together.

Teaching is fun

It’s nice sometimes to step outside the fast-paced world of tech and remember those days when you started programming – when you first felt the wonder of getting a computer to do your bidding. What’s even better is seeing that moment in other people: when it first clicks and they start to think of all the possibilities that come with being able to “speak computer” (as one of my students put it).

In putting together the course materials, I tried to go for “cool stuff” and not get too bogged down in the nitty-gritty details of objects and architecture (that can come later). It’s been fun to put together lessons that show off what you can do with Ruby – reminding me why I started learning Ruby in the first place.

It’s worth doing

Nic’s already talked about our Do Good budget and the fact that we feel it’s important to give back to the community around us. For me personally, I feel that getting more women in the tech industry is a worthy goal to pursue, and I’ve been fortunate that the rest of the team has supported me in this.

Conclusion

If you’re interested in technical training, please get in touch via hello[at]cookieshq.co.uk.

If you’re interested in doing a Code First:Girls course, you can apply to a community or professionals course via their website. For devs, more instructors are always needed and it’s a great way to contribute to the programming community.