× {{alert.msg}} Never ask again
Try Codementor for free!
SIGN UP NOW

Naomi Freeman: How a Non-Programmer became an Expert Rails Mentor

–  Aug 25, 2014
Naomi Freeman, Creative Writing/Philosophy Major turned Expert Rails Mentor

Naomi Freeman is a conference speaker and Rails expert with a love of organizing hackathons, where she hopes to propel the culture forward. She founded York University’s Philanthropy Week, was an intern in Journalists for Human Rights, and has also taught various beginners at Rails Girls, hackathons, and online.

Naomi has recently held a hackathon for BikeShare Toronto at Bitmaker Labs, and she is planning to help bring Code for America to Canada as well as Rails Girls to Toronto.


You majored in Creative Writing and Philosophy during college. So how did you end up coding?

I started working at a newspaper on campus so I could write. Through that, I became a paid editor and learned how to manage volunteers. I then became a director of a volunteer organization, which landed me in an internship where I built a website.  But we didn’t mean to build a website – I simply ended up building a website. The internship was actually about youth engagement and fundraising.

Nice! So basically you learned how to code without actually being a computer science major?

Yeah, so that’s why I have so much empathy for beginners, because I know what it’s like to be completely alone in an industry surrounded by people who have no interest in what you are learning. In the process of making a website to increase volunteer recruitment for a hospital I worked at, I discovered JavaScript and downloaded a huge book about it from the library. I read about 300 pages just to figure out how to hide and show an element on the website. I firmly believe that’s just not how one should learn programming. Humans are social creatures (even us introverts) and we need communities.

You’ve learned Rails pretty recently. What are some of the resources or tricks you’ve used to learn the language?

Alongside a bootcamp in Ottawa, I ended up learning through Treehouse and Rails for Zombies on Codeschool, so I was getting information in different ways. The thing I really loved about Treehouse was how they contextualized the code, where they’d tell you why you’d do something, such as to create a user relationship for a friendship. The trick with levelling up beyond that is figuring out how to know to use that kind of pattern in some wholly contextually unrelated place in another project.

After the bootcamp, I took 2 MOOCs (Massive Open Online Courses), through Berkeley and Harvard. Berkeley required we work on a non-profit project locally, but Harvard did not, so I looked for an opportunity myself. Our government ran an Open Data Day in February where public project needs based on open data were presented. I ended up being the tech lead on a project related to Toronto Community Housing data.

All in all, my advice is just to build stuff and build stuff you’re interested in, because you can read a bunch of books and tutorials, but it doesn’t matter if you’re not building things. When you build, the language yells at you. It’s important to learn from and with that.

It’s also really important for beginners to learn how to read documentation, learn how to be on Stack Overflow, and, basically, learn how to learn. You also need to learn how to contribute to and collaborate on projects, because you can’t stay in your little fishbowl and expect you will be a useful dev.

What would you say is your teaching style and how would you help someone with a coding problem?

Part of the way I was taught, which drove me crazy, was “Just fucking Google it”, or “RTFM (Read the fucking manual)”. This is a cultural thing I dislike. My background as a community organizer is very much “Rally the troops, every person crosses the line, and we’re going to get this done.”

So, my teaching style tries to pick up on other people’s learning style, because one of the worst things you can do as a teacher is assume that other people learn the way you learn. After teaching and mentoring several people who were just starting to learn Ruby, through Rails Girls Coaching, hackathons and online mentoring, I found there are certain groups of people who learn in certain ways. Therefore, when a person starts to say something that I’ve heard said before, I’m learning to know what to do to help them. Some people prefer to read up on the details from a book, while others are more hands-on about it. I just adapt and create the resources I will need to help them.

What would you say to encourage more women to learn how to code?

(License)

I don’t think everyone in the world needs to be a programmer, but I think everyone needs some programming skills to participate in the world, since pretty much everything we do today needs a computer.

Programming is just a tool. There’s always going to be a culture and notion that you have to be an elite, but it doesn’t matter. Programming is just a tool to get shit done. Don’t be afraid of everything else that’s going on in this crazy tech world right now. Some culture is great. Some is not. As a beginner, that’s not really your problem. It’s good to connect with people and learn from them. I always advocate going to hackathons because you can learn from super devs, from other techniques, from new-to-you languages.

You mentioned hackathons. How would you encourage others to participate if they’re unsure whether to attend?

Like the Nike thing: Just Do It.

When we asked the participants of our Bike Share hackathon, only 50% of them had actually been to a hackathon before, even if they were “serious devs”. So, even if you’re a new person, most likely half of the people in that room will also be new to it no matter what their skill level is. What’s more, the best way to learn is to do things and to learn from people who are better at coding than you, which can be humbling and overwhelming, but really cool when you make stuff.

Traditionally, hackathons have been fairly aggressive and competitive, but I still think you can get a learning experience out of them. You can also look for new kinds of hackathons that are happening. There are civic ones like Code for America where people are doing hacks for good. There are also some social enterprise types coming up for things like international development. These types are more relaxed and collaborative, so you can start there. You can just go full on with hackathons with a big prize where people are going to be very competitive, just know what you want to get out of a hackathon—if it’s learning and friendship, try finding a hackathon that doesn’t have, say a $100,000 prize, and just go to do the learning and meet people.

It’s no secret that the tech community is still heavily dominated by males, which can be intimidating and alienating to women. What’s your experience and how would you advise women to cope with this?

I wouldn’t advise women to blend in, to hackathons or anywhere else.

(License)

I would advise women to boldly step in, remember this is not Junior High and you do have great friends outside of whatever happens that night, and if you don’t like it, you don’t have to go back. Also: great and magical things can and will happen when you meet new people, new ideas and new technology.

I have had incidents and these stick out because of how we as humans are wired. But I literally would not be where I am today in the code world without men, because all of my teachers, mentors, guide posts, etc. were male. There are good guys doing good work and there are 2 of them for every 1 person that’s going to do something not so great.

There’s one Ruby hack night I went to in Toronto where there were literally 52 guys and me. I also faced a similar male-to-female ratio in the meet-ups in Ottawa when I was a baby dev, but since it was a tiny community based around Shopify, I started out knowing my classmates and teachers and eventually got to know the guys so I didn’t feel like I’m the only woman in there. They were very helpful, like my coding parents, and they took care of me and taught me. It feels different to walk into a room of complete strangers and also be the only woman. That’s real. The only way to get to having women in the space though is to start to be a woman in the space.

I would suggest to other girls who are less aggressive to maybe take two friends with them, but don’t stay in a little corner and group together. Instead, spread out and talk to other people individually. Because if you’re just “the girls in the corner”, that’s still how the guys are going to perceive you. Get in there, get messy and build stuff. That’s why you’re there.

What brought you to Rails in the first place?

It was a happy accident and a couple of strokes of luck. Ask me sometime about luck. Anyway – budget cuts in the hospital, combined with my newfound love/hate relationship with reading 600 page books to try and make an action happen, led me to Ruby.

Around the time I learned I needed to explore new options in life, Google sent me an e-mail which I thought was a total scam: a callout for women Philosophy majors for an International Women’s Day hackathon. I called the number on the e-mail and it was actually Google Waterloo that picked up.

Part of the process was asking us our skills. They listed four or five skillsets we could choose from and forced us to choose our top three. I put in that I was a business person, a product manager (based on their provided description), and a front-end developer, because I had to choose three, it wasn’t optional. I would never have identified myself as a developer at that point, but the description in front-end said something about JavaScript and the set-up forced me to reveal my JavaScript skills.

We were bussed down to Google Waterloo and I ended up playing a role as both a product manager and front-end developer. We built an e-commerce solution for entrepreneurial women in Singapore and I fell in love – with the environment, with the energy and collaboration, with building things that could make real impact.

I wanted to learn how to build more things. Google told me I needed a back-end language, and, soon after, I received an e-mail via Girl Geeks looking for students to go learn this back-end Ruby on Rails at Shopify in Ottawa. It fit perfectly with timing on my part and seemed like a clear next step, even though I really had no idea what Ruby, Rails, Shopify or Ottawa were.

So what’s the favorite hackathon you’ve been to?

Mine. [Laughs]. This past weekend (starting August 15th), a group I’m working with, we held a hackathon for Bike Share Toronto #hackbikeshareTO. They released open data sets for the first time, and they wanted to see what could be created, so they approached my co-planner Bianca, and she looped me into the project because both of us worked on an open data project for Toronto Community Housing data together. Between us and bringing on another woman and one other guy, we had a primarily female organizing committee. Partnering with Tech Girls Canada, we ensured the judging panel had a diverse representation that also met gender parity, both for tech and policy judges.

We built a culture based on teaching and learning. I think teaching and not making assumptions is the best way to invite someone in to the industry. We promoted this through tech talks and workshops on Friday night, encouraging acts of peer-to-peer mentoring and collaboration in the hack and giving out prizes not just for winning teams but also for team members who best exemplified the culture. Everyone was evaluated by teammates on three areas: mentorship, leadership and work ethic. The prizes for individuals were big: round-trip tickets anywhere Porter airlines flies.

Intersections were also vitally important to us. There’s no point in doing work if the work isn’t reaching a policy or other impact level. It was really exciting to see this culture actually happen where people from different fields started sharing and exploring how to approach the open data.


Naomi FreemanNeed Naomi’s help? Book a 1-on-1 session!

or join us as an expert mentor!



Live 1:1 help from expert developers

Codementor is your instant 1:1 expert mentor helping you in real time.

comments powered by Disqus
Codementor is your live 1:1 expert helping you in real time