[This one from the drafts folder, folks. Reflections on the code bootcamp, week 3-ish out of 8. Written on the number 7 bus en route from class, most likely. My bus commute is at best two and at worst three hours every day. I had grand plans to maximize that time, but here it is week 6 and I’m still spending it mostly on phone games.]
stop teaching me things, I’m trying to learn
As a middle school teacher, I became attuned to “teachable moments,” opportunities to impart knowledge related or unrelated to the topic at hand in response to what is happening in the classroom. Sometimes these situations relate to “real world” knowledge, questions about current events, observations about how people interact with each other. “This wasn’t on my lesson plan, but this is a teachable moment and I need to take advantage of it while it’s here.” Genuine connections, stuff kids will remember.
My instructor and TA are great at taking advantage of these in class. When someone couldn’t connect their laptop to the overhead, we got a lesson in how to clone a repo in github. Unexpected errors get dissected until they’re solved. The answer to “who else has seen this error?” is usually not nil. Almost nothing is off the table, and I’m a better programmer for it.
It’s not always a picnic though. The structure of this class is a lot of stuff to get done in a short time frame. I’ve had multiple scenarios where I ask a question about how to implement something in my code, only to be steered towards doing it an entirely different way, often with huge structural implications. My impulse here is to respond with “Hell no, I’m almost done! That sounds like a great suggestion for another app. Let me just finish it my way and move on.” I’ve had to resist those feelings of impatience or frustration in order to leave myself open for what I’m thinking about as unsolicited learning. Those situations where I did *not* want a lesson, or not on some topic other than the one at play, but here is one anyway. It can be valuable if I stay open to it. Hell, I can even ignore it once received, as long as I get it.
It’s a blessing and a curse to be meta attuned to what’s happening with my own learning. And of course timing is everything. I may be open to one lesson at a given point and another one, I just want to go home and think about it and hash it out later. I’ve tried to convey this with as much respect and humility as possible while still being assertive– it’s my time, and I usually know what’s going to be productive for me and when the only solution to hitting a wall is to step away from it and come back later. That conversation looks something like this: “I see what you’re saying. This code could be definitely be refactored. I don’t know enough about this particular function and I’m not in the headspace to dig into it now, so I’d like to table this to research and work on later. I’m confident I have what I need to solve this now.”
As a black and Muslim immigrant, I could write for days about the ways in which my family has experienced racism in the United States – both at the individual and institutional levels. Being a young person, one of the primary sources of the institutional racism I experience is the public school system.
The school I currently attend is Rainier Beach High School, located in South Seattle. Although Seattle is one of the most homogeneous major cities in the country, with nearly 70% of the population being white, my neighborhood in the South End is very much the opposite. In fact, a few years ago the neighborhood where my school is located, 98118, was considered to be among the most diverse zip codes in the country.
At Beach, we have approximately 95% students of color and over 50 languages spoken, making us the most diverse school in the Seattle School District. Nearly nine in ten students here receive free/reduced lunch, meaning the majority of us come from low income families, many of whom are immigrants. These statistics are exactly why I selected Beach when choosing a high school. I wanted to receive my education in a diverse multi-cultural setting. I didn’t want to be the only brown girl in my class. I wanted to belong.
Rainier Beach HS has experienced a renaissance in the last few years, sparked largely by the new International Baccalaureate program that “came to Rainier Beach largely at the insistence of South End parents desperate to make the school more attractive to families.” They also have a TEALS program wherein Microsoft employees teach classes in computer science. The author of the piece above credits this program with sparking a love for computer programming:
The editorial calls for two immediate changes for Rainier Beach students:
#1: End Seattle Public School’s ‘Walk-Zone rule’ that requires students who live within 2.5 miles of their school to walk or pay for their own public transportation. This negatively impacts low-income students who are less likely to have access to a car or a ride to school. As Ifrah lays out:
“The cost of a round trip bus ticket to school is $3 a day. To put this in perspective, remember that 88% of students at RBHS have free or reduced lunch. This means their family’s income is low enough that they cannot afford $1.50 a day for lunch. If a student cannot afford $1.50 a day for lunch, how can they be expected to pay for a bus that costs twice as much as lunch? Does that make any sense at all?”
I live in this zip code, and I technically fall within the ‘Walk-Zone.’ Google Maps says it would take me 45 minutes to walk to the school. That’s 45 minutes along the city’s most dangerous street (though I applaud the changes the city has finally started to make, narrowing parts of Rainier from four lane to two lane with turn lane). I would definitely not walk this, and I wouldn’t drive either: I would take the bus. Get these kids ORCA cards, that seems like a no-brainer.
hell no, that’s not happening.
#2: Renovate the building to get it up to code both structurally and with the latest innovations in learning technology:
‘Built in 1960, our school is the only one in the district that has not yet received a full renovation. Just last year we had nearly 15 power outages, some of them causing us to attend school in the dark and cold, or even to close school for the day. Our school still has chalkboards, whereas schools in whiter and more affluent neighborhoods have smart boards and more advanced technological tools that enhance student learning. Each year, students here organize walk outs and protests, and attend school board and city hall meetings – but we only receive promises of a new building. Promises that go unfulfilled.
Students who face additional barriers to learning due to the challenges of living in poverty deserve more learning tools, not less. I mean, watch this: students walk out over aging school. That’s from 2012!
One last bit of insult to injury:
‘After the Day of Social Action, a representative from the school board came and visited our site, telling us the district had heard us loud and clear and would work to achieve the changes we asked for as quickly as possible. The school board suggested we send letters to the mayor as a follow-up, because they would need the city council to be on board. Interestingly enough, when I spoke to the mayor, he told me we should be speaking with the school district to get the results we were looking for.’
Government bureaucracies famous for giving people the run-around, why should our kiddos receive different treatment?
I share because I’m inspired by Ifrah and students like her, activist students demanding equal educational opportunities from school and city systems that have largely ignored them for too long. I’m inspired because it’s working: since the IB program, the school’s graduation rates are up to 79%, greater than the district average.
Whatever path my new career takes me, I hope it’s one where I can contribute to empowering young people through technology and direct action. If my past work in education reform has taught me anything, it’s that change will come from students and parent advocates. Doing things *to* a community doesn’t work. Rainier Beach HS is a stunning example of what’s possible when a community bands together to yell “this is what we need,” and makes it happen. My hope is that the changes that have worked will be sustainable after initial grant funding runs out, and that calls for even more school improvements (like ending the walk zones and upgrading the building) will be impossible to ignore. If this student is any indication of the student self-efficacy brewing at RBHS, they won’t go down without a fight.
A colleague’s admission that he, too, is a former mathlete brought back my own nostalgia for those days. I competed in middle school with two of my best friends at the time, Brianna and Liz, and about 4-5 boys in our class. So ours was a gender-mixed team and if I recall, that was the norm for other schools with which we competed. The winning US high school team is, not surprisingly, all male, which mirrors my own experience — by that time in my life I had dropped mathletes for other interests (drama club, chorus, literary magazine, stage crew, working at the local library). Brianna went on to an IB school and later studied math and psychology at Carnegie Mellon (she now runs initiatives supporting women and girls in science), and Liz went to the local public high school with me and later became a rocket scientist, so why I decided I was a book person and “not a numbers person” is a quandary for another post.
My favorite “mathlete” challenge were the relay races. We worked in teams of 3-4 where one person’s result gets passed to their teammate as input for the next question. I remember both the sense of personal responsibility (I have to solve my question so my teammate can start on hers) and the negotiations that sometimes occurred when an answer was passed that simply didn’t make sense. I don’t remember how much we were allowed to talk, if at all, but there must have been some mechanism for “that doesn’t work, can you check it again?” back up the chain. But mostly it worked. And it was awesome when it did.
Coding is a lot like these relay races. No matter what the language, we define functions that accept parameters and return a result. And if you work on a team with more than one programer, you are probably going to be working on a single feature or piece of code that combined with others (dependent on, necessary for) will produce something magnificent.
We need to make that connection for our girls earlier, so fewer of them will decide (consciously or unconsciously) that they are “not numbers people,” and see opportunities instead to use the skills they enjoy as budding programers, engineers, bloggers, hackers, and systems architects.
I’m halfway through my Ruby II class and I’ve completed all the homework exercises.
_All of them._ Two weeks ahead.
I’m now working on the development accelerator (DA) application challenges, which are going to be challenging, but seem entirely doable.
I’m light years ahead of where I was halfway through the Python II class. If you’re considering taking a Code Fellows Foundations II class (or any coding class), you might be interested to know WHY this one is going so much better than the last. So here are a few of the contributing factors, as far as I can tell:
In January 2015, I made a tentative 4 month schedule for what my code learning would look like, and for the most part I executed on it. Anything optional got shelved. Almost all the MOOCs got shelved (I did stick with the MIT one about 3/4ths of the way through). I went to one meet-up group meeting, once, which is ridiculous given the wealth of resources in our community and openness to sharing, but hey, this journey is about learning and I’ve learned I’m not a meet-up person.
Not surprisingly, in-person class commitments were key to moving forward and keeping me accountable, and I’ve had overall positive results with Code Fellows so far.
If I had to plan it again, here’s my do-over itinerary:
First, get you a Mac, or get ready for a world of pain.
Unless you’re planning to do the full-time bootcamp (in which case do everything you can the month before), take a night class with Code Fellows ($500 for foundations I or $1,500 for foundations II if you already have some code experience and want to prep for an accelerator).
If you have an opportunity to apply to Ada Academy, do it! Don’t let the required video and their unpredictable cohort schedule scare you away, unless the latter is a deal breaker. This cohort timing wouldn’t have worked for me, but that’s not why I didn’t apply — I didn’t apply because I was scared to make a stupid video. And that’s super lame. So, you know, just do it (and then turn them down if it doesn’t feel right).The act of applying will be a useful exercise for you. This year they had 265 applicants and selected 24 women, and, while I’m confident the number of applications will only grow, those odds are not terrible. You can do it!
Work through MITx 6.00.1x Intro to Computer Science with John Guttag. I bought the textbook but never really used it, so skip that. Instead get the textbook for…
Python the Hard Way: the book is offered for free entirely online, so a paper copy is optional (but nice, IMO, because you can keep going without an internet connection). If the hard way isn’t your style, try Elizabeth Wickes python for informatics instead.
Get familiar with git (where you’ll keep track of your programs), unix/terminal line(where you’ll run/edit/etc your programs) and a text editor, I use Sublime 2. Like, really, learn them. This could maybe wait until month 2 or 3 but the sooner the better.
Talk to programmers to learn about their jobs, and research code school options that might be a fit for you.
Hopefully you made some friends in your class (or online) and have an ongoing study group in the works. Or, for Pete’s sake, go to some meet-ups. I hear they don’t bite.
Try Ruby, ruby koans, learn rails (free for CF students or $19/month). Specifically, I’m working my way through these Ruby tutorials in the next month or so:
Bento is “a guided, curated tour” through various online coding tutorials. There’s a lot of them, and this isn’t bad.
I currently have a Treehouse subscription (because I forgot to close my account after 2 week trial), but I might ditch it in favor of a Code School membership. Treehouse does some things well but I’ve been unimpressed with the pacing of the Ruby track I’m working through (too slow). EDIT: this review says do both. I’m also considering onemonth.
Next steps for me: take another foundations II class in June (this one in Ruby), and apply for the Ruby accelerator in August. On this path, I’ll be “done” by the end of October and looking for jobs or internships before the start of 2016. We’ll have to take a good hard look at finances after the wedding and honeymoon this summer. I’ll be most comfortable if my period of unemployment lasts no longer than a year, but I’m mentally prepared for a career shift to last up to two years (same amount of time as full-time grad school for most programs). One year could be crazy wishful thinking.
And that’s it! I tried and failed to break this out month-by-month, but I hope this is helpful to someone even without that timeline. I’ll keep my first (aspirational) draft on The Plan page that has many repeat resources (and a lot more that I didn’t get to). Enjoy! –Mary
People of the internet! I have rejoined your ranks! One of the joys of buying an old/remodeled home is discovering that, after a month of ISP escapades and multiple visits from CenturyLink, the house is not wired for DSL/phone. So, we now have a cord running from the DSL box, across the porch, under the front door and into the living room, where it is attached to a phone jack that is not (yet) attached to a wall.
The point is, it works.
Remarkably, I spent my first day with internet at home NOT watching all the Netflix (TV, I’ve missed you so so much), or scrambling to finish pre- and home-work for tonight’s python class, but rather I gave my partner a ride to work, I made soup, I cleaned my closet and started narrowing down a capsule wardrobe for spring (see Nicole’s take on this here). It’s been A Very Nice Day. I’m feeling Good.
At least three things are contributing to this Good Feeling:
It’s been brought to my attention that some of what I’ve been interpreting as, well, bad or (assuming good intent, which I do) disorganized teaching is actually something called “flipped classroom” which I’d heard about in my previous job. I think it’s a not uncommon style for college-level teaching. The gist is: students read the material beforehand and come prepared with questions and ready to teach it back. The professor is then more of a coach/mentor, and by having students teach the material you hit on some really high level learning objectives. There’s not a lot of teacher-driven demos/lecture during class time (which, inconveniently, is something I find really helpful for my own learning style and wrote about in learning and watching people code).
So, this helps me with perspective. And, again, it’s a shame that I’ve been without working internet at home for 3/4ths of the class (not planned), and have not had as much time as I’d like to really play in the material. These are things *solely on me*.
First, a new house update: still getting settled, but happy. No internet yet at home, which is stressful for a few reasons, one being that my new class started and I haven’t been able to fully access the courseware. But, I’m in love with our new neighborhood and yesterday I discovered the Hillman City Collaboratory that has co-working space available (and so much other cool stuff that deserves a post of its own). I may head over there today and take advantage of their internet.
Last night, I went to an info session hosted by General Assembly and with representatives from Code Fellows and Ada Academy. I’ve written about the latter two before (all about bootcamps), and while General Assembly is a new find for me, they also have a strong reputation and a variety of classes for learners at all levels. This is a great trio to have in our city!
The panelists mostly confirmed what I already knew: disruptive web education (that is, learning that occurs outside of a traditional university degree program) is real, it works, and it’s here to stay. For people already working as software developers and programmers, it’s frequently necessary to stay relevant.
I was especially buoyed by the Ada panelist who shared, “I was living in the Bay Area, I had just quit my job and was teaching myself Python… now I have my choice of internship options” <–MY PEOPLE~!
I created a bit of an awkward moment by asking about the similarities/differences between the CF and GA accelerator/immersion (3 month) programs. They were diplomatic but didn’t go into details. Here’s a little chart with what I can gather from web research:
application–women only; newbies ok
1 yr w/6 month internship
no (but everyone gets one)
web development; user experience; other topics w/no scheduled dates
application–fundamentals experience required; newbies directed to foundations classes
So it looks like the big difference is whether or not GA takes newbies for their immersion program–the trade-off being that they will not guarantee you a job after. CF does, because they can be super choosy about who they admit. A prerequisite for admission to one of their accelerator tracks is “hobbyist” level understanding (roughly 1.5 years tinkering with it, gulp) of your stack. CF and GA also offer a wide range of day-long – month-long full and part-time options. Ada does not. (Yet!)
As a take-away, I’m currently enrolled in CF’s April month-long Foundations bootcamp (which has some overlap with the Foundations I class I’m taking in February) and may seriously consider switching to GA’s web development immersion in March. I’m also planning to apply to Ada.
Other useful info I picked up:
This is huge: the next Ada application cycle opens SOON! February, in fact. They are not super great w/transparency about the process on their website, but they’re still new and I am confident that will change with time. Next cohort begins in May. I sense this is a pretty competitive application process. Also worth investigating: hackbright, a 10 week option based in SF.