Meet Michelle Ferreirae, Web Development Immersive Instructor at General Assembly San Francisco

Michelle Ferreirae

Coding Beyond the Computer

While Michelle Ferreirae started her career as a software engineer at Google, she soon realized that, rather than coding, her true passion was teaching people to code. She’s realized this interest as a full-time Web Development Immersive instructor at General Assembly’s San Francisco campus. We asked her a few questions about her journey as a web developer and a teacher — as well as about the opportunities she sees in the field. Here are her responses.

How would you define web development in two sentences?

Web development is the art and science of building tools that communicate over the internet. This means creating websites, web services, apps, and APIs that interact.

What do you love about web development?

Writing code is one of the best interdisciplinary skills imaginable — no matter what your other passions are, the ability to write code is applicable. I love seeing people present their coding projects, because in addition to showing off the interesting code they wrote, it's a window into what excites them, whether that's helping students apply to college, keeping more accurate statistics on video games, or tracking drone strikes in the Middle East.

What’s an example that embodies the best of what web development can and should accomplish in real life?

Web development lets people create interesting, useful websites for the things they care about. We had one student create a site that listed all the affordable housing options in San Jose and helped people fill out the correct application based on their needs. It did both the job of bringing data together from different agencies and resources and also helping people understand how to use that data most effectively to find and apply for housing.

Why should someone learn your essential web development skills at GA?

Web development is not the only thing we teach at GA, which gives our students the opportunity for more relevant real-world experience. Part of being a software engineer is working well with designers, product managers, and data scientists. Because we have students on campus in all of those disciplines — our students get the experience of working together both with other engineers and people with broader skill sets. The first time our students have their websites critiqued by a designer isn't after they get their first job; it's built into our curriculum, and that means our students are ready for that experience when they graduate.

What does a superstar web development student look like?

Our best students are those who enjoy logic puzzles, taking tiny logical steps and building them up to create complete solutions. They're also people who are passionate about something other than computers and are able to apply their web development skills to that passion.

What personal qualities will set someone up for success in the industry?

Attention to detail and organization are obvious skills. Working on teams is incredibly important to engineering; people don't write websites alone, they write them alongside other engineers, so you have to be able to communicate, compromise, prioritize, and follow a plan

What was your path to becoming a teacher and leader in web development?

After I graduated college with my computer science degree, I was a software engineer at Google for two and a half years. While I was there, I realized that I still loved code, but that I was gravitating more toward the parts of software engineering that let me explain the code I had written to other people — basically, that I was enjoying the parts of my job most like teaching. So I left Google and looked for opportunities to make teaching my full-time role.

Why did the opportunity to teach at GA appeal to you?

I love getting to explain how code works to my students every day. Both of my parents are teachers, so it was maybe inevitable that I'd end up teaching someday, but I particularly love that at GA, I have students who are dedicated, question everything about what I'm teaching, and can transition so quickly into their new role.

How would you describe your teaching philosophy?

My main philosophy comes from my dad, who has been a math teacher for almost 30 years: The less time I spend talking, the more time students can spend thinking. I try never to talk for more than 15 consecutive minutes and to teach in a way that gets my students ready to apply their knowledge — to actually write code — as quickly as possible. I try to focus my teaching on the high-level concepts and on contextualizing the content so that when students start writing code, they understand how it fits into what they already understand.

What has been your favorite memory as a GA instructor?

In the first cohort I taught, our instructional associate (IA) Sherri was hired as an engineer halfway through the course. The class was sad to see her go after she'd helped debug so many people's code, so they organized a potluck going-away lunch for her last day. People brought the food they knew best how to cook and had gifts and notes to give her, and there were even a few speeches. It was an incredibly touching event, and it was all because of the love that our class had for Sherri, and the amazing work she had done as a IA.

How do you help struggling students break through to meet or go beyond their minimum GA course requirements?

Struggling students are usually not struggling only for reasons related to the material — there are other things going on in their lives that are making it challenging to focus or dedicate the time necessary to be a successful student. I make sure to be available to my students to talk about things other than the material. I also have extra resources that I can give to struggling students if they need to review a particular concept.

How do you push high-achieving students to go beyond the minimum GA course requirements?

I usually suggest an interesting feature or tool that a student could add to a project, and students will be off and running to learn what they need to build that feature. There are so many cool ideas out there.

Please describe exceptional strengths in GA’s curriculum, teaching style, and community.

I love that we have actual, physical classrooms with dedicated instructors for your cohort. As an instructor, I love that I get to watch the same group of students grow over the entire 12 weeks they're in the program. I help a student grow from discovering their first syntax error, to building their first full-stack app, to learning on their own (and teaching me!) about brand-new technologies, and I love being there for every step of that process.

What are some free resources and tools a student can use to stay up to speed in web development?

After our developers graduate, they most commonly just search the Internet for an interesting blog post or tutorial that will teach them a new skill; there's no single resource that can teach all of the interesting things there are to know in web development. One of my favorite ways to learn new technologies and know what's happening is to look at the most commonly downloaded tools and packages on npm or RubyGems — I'm bound to find something that’s new, interesting, and used by tons of people. I also enjoy perusing new web APIs on MDN to discover new features that come out (like, did you know voice recognition support is now built into most browsers?).

Between taking the course and finding a job, what is the best way to get practical, real-world experience in the field?

The best way to get web development experience is to do web development, and even if you don't have a job, actually building sites and practicing is the best way to grow your development skills. What’s especially useful is building a site that you have to maintain over time that other people will continue using for six months or a year; maintaining a site teaches you why code practices like commenting or smart variable naming are important.