Junior Phase in Review
December 14, 2016
We're six and a half weeks in, which also means we're halfway done with Fullstack Academy. It's still a little crazy to think about, and I've been having a little bit of trouble processing this in its entirety. In some ways, I feel like it was a week ago that we started, fresh-eyed, strangers to each other and the enormous world of programming, and eager to absorb the firehose of information that was about to be thrown at us. In other ways, I feel like it's been many months – we've learned and done so much, we've gotten to know each other and each other's pets very well, we've settled into a little bit of a routine, and we're all a little tired and very ready for a break.
The Giant List of What We've Learned, and the General Learning Experience
Throughout the journey, we've consistently built upon the basic fundamentals we covered in Foundations: scope and closure, prototypes and inheritance, first-class functions, and higher-order functions.
We covered the backend with Node, Express, SQL, Sequelize, and Postgres, the frontend with CSS/SASS, jQuery, web sockets, React, and Redux, and everything in between. We attempted to wrap our minds around data structures and algorithms, promises, testing, more promises, object-oriented and functional programming paradigms, the event loop and call stack, and how THE WHOLE INTERNET works (okay, maybe not the whole internet, but things like DNS, TCP/IP, HTTP, how browsers work, and cookies and sessions).
Fullstack and our instructors have placed an enormous emphasis on taking our time to really, truly, understand what's happening, why, and how things work under-the-hood, under all of the abstractions that a lot of our tools create. One of my instructors' favorite questions to answer is, "This is working, but we have no idea why...?" We built our own bash shells, promise libraries, CSS libraries, and trip planning apps. We cloned Wikipedia, Twitter, and Spotify across the stack, from creating databases to gently and considerately fighting with React. In our CS Saturdays, we learned about and built compilers and parsers, database querying languages and ORMs, git and immutability and our own basic version control systems, machine learning, and cryptography.
We've become whiz kids at using Chrome dev tools, collaborating with others on programming projects, breaking problems down into manageable pieces, trying things and failing, and making Slack emojis. (#theimportantthings) We've learned how to become more compassionate programmers and people and citizens of the world.
Fullstack is constantly iterating on its curriculum, trying to keep it up-to-date, relevant, and challenging for its students. They've recently made a shift from teaching Angular to teaching React, and some instructors are right along with us in being relative newcomers to React, so in some cases, we're learning together, which can be both a frustrating and humbling experience when someone you look to as a source of guidance says, "You know what? I actually have no idea." There are enough people who know React (and various other aspects of the programming world) well enough though that if someone doesn't know something, someone else definitely will. (Or at least, has the knowledge to figure it out!)
The Remote Experience
Going into the Remote Immersive, I wasn't sure what to expect of the experience in general. Innately, being remote has its challenges. Some of the in-person instructors and students, understandably, aren't used to worrying about accommodating the remote cohort day-to-day, and sometimes they'll forget small things like needing to talk into a mic in order for us to hear them during CS Saturday lectures. We've had our fair share of technical hiccups when it comes to using the software and technology that we do to make our experience possible. And as much as I'd absolutely love to, I can't go out to dinner with my cohort or attend meetups with them on weekends or do happy hour after a long day of class.
But, as a cohort, we've gotten to bond in other ways. Like accidentally forgetting to mute our mics and yelling across the room to a family member. Or having your kids pop in and out of your video frame, curious about what you're doing. Or having your cat hop onto your desk right in front of your camera. Or having glitches in our video software, which momentarily makes your instructor sound like a demon. Or fighting with YouTube bots during our live streams of CS Saturdays.
We've done Hot Seat, during which we got to know each other on a deeper level than just pair programming and working with them. (Although, it's arguable that when you've spent 2.5 hours trying to write a single test or you've spent the better part of 2 days wrestling with jQuery on a fairly complex app with someone, you've gotten to know a side of them very, very well!) We've done game nights, during which people fell off of the Minecraft world and one of Fullstack's founders discovered the joys of TNT, and also during which one of our fellows reached 2+ million points in a game and kept eating everyone else. We've had learning group lunches, where we talked about space exploration and the headaches that D3 can cause with smaller groups and our fellow.
I won't pretend like everyone in my cohort are the best friends I've ever made, and we'd almost certainly be closer if we were in-person with each other every day. But I know, at the very least, that I've found some very close friends, that our cohort will maintain connections with each other as we go through our personal programming journeys, and that I'll always have a solid group of people I know I can always depend on, vento to, and ask for help and advice.
The Fullstack Experience as a Student, Growing Developer, and Woman
I've said this before, but I think it's absolutely, 110% worth repeating: Fullstack has been nothing short of amazing. Their dedication to creating a safe, open, accessible, but challenging learning experience for each and every one of their students was obvious from week 1. When big things have happened in our world and our lives, Fullstack set aside extra time in our and their days so that we can talk about it.
Fullstack's instructors and fellows have made themselves 110% accessible at most hours of the day for anything – whether we have questions about the material, or are struggling with a concept, or want advice on a personal project, or are feeling a little down about being a woman in our world, or literally anything else, programming-related or not. Even instructors and engineers who aren't officially associated with our cohort have pitched in via Slack to help us out with not only understanding concepts, but also with things like setting up linters and combing through style guides.
Fullstack's students are no less amazing: every single person I've met, talked to, and worked with has been incredibly intelligent, driven, and passionate, whether it be about virtual reality, or backend frameworks, or puppies. (Or all of the above?) Regardless of where students are in the journey, no one looks down upon anyone for not knowing as much about a given area of the programming world. We all understand that we're here to learn, and everyone's more than willing to help each other and learning alongside each other as much as we possibly can.
In the six weeks I've been at Fullstack, I've also done two hackathons that were completely organized by Fullstack, for Fullstack. The first of these was for our cohort, as a way to unwind after one of our checkpoints. We had been fiddling around with Minecraft for some game nights, so we did a ScriptCraft hackathon – using only JavaScript, we had to create something cool in the Minecraft world using the ScriptCraft plugin.
The second of these happened just yesterday, and was dubbed a "Coding for Good"/"Holiday Hackathon," with the goal of finding a social good problem that we were passionate about, and creating a solution to solve it. A lot of really cool ideas were built and deployed, from a Chrome extension that would prompt you to donate to a charity if you were shopping online or reading a news article about a disaster somewhere in the world, to an app that can connect people who need food with restaurants that have food about to expire or that's going to be thrown away, to an app where "Tinder meets volunteering."
I wanted to make a special note when it comes to being a woman at Fullstack. Consistent with Fullstack's mission, values, and goals, I have never once felt like I've been looked down upon or otherwise treated unfairly because of my gender. While at Fullstack, I've never been self-conscious about the fact that I'm a woman – I've always considered myself "just another Fullstack student." It definitely helps that out of my 13-person cohort, five of us, and one of our fellows, are women, and there's an incredibly strong support system for women in the Fullstack community across all campuses.
As a student, a learning and growing developer who sometimes makes very rookie mistakes, a person of color, and a woman, I've been welcomed into the Fullstack community with wide-open arms. Fullstack has embraced us for our motivation, dedication, values, ambitions and goals, backgrounds and experiences, and our differences. We've been empowered to take what we've learned to go out and do things to make our world a better place, while also making ourselves better developers and better people.
It's been a wild ride so far, and we still have some time to go before being done. Until then, I'll continue treasuring every day that goes by, embracing the successes, failures, learning experiences, and the Fullstack community along the way.