Category Archives: Education

Library codecamp for teens

Something we need to be seeing more of: a library offering a coding day camp for teenagers.

Last week the Chatanooga public library set forth on its summer day camp for teenagers learning code. After some enterprising Chatanoogans (Pythanoogans?) had success with a project called Community Py, an eight week course teaching Python to adults and teenagers, they applied for a grant for a more intensive summer session.

One 40,000 grant later, they had 55 Chromebooks and enough money to pay instructors and teaching assistants.

Now all they need, according to organizers, is more girls.

Advertisement

Code Year, Eighteen Months Later

Eighteen months ago, in January of 2012,  I decided to sign up for Codecademy’s Code Year. I wasn’t even sure what code was. But I had some time on my hands and an eleven year old son who was curious too. I was getting less and less work at the newspaper I’d been freelancing at for the last twenty years. And though I didn’t know it at the time, The Montreal Mirror was six months from folding.

In April, after I’d triumphantly (to me at least) familiarized myself with the fundamentals of JavaScript, I had a tiny twitter spat with Jeff Atwood over his now infamous post “Please Don’t Learn To Code.” Jeff, who runs the popular blog Stack Overflow,  didn’t believe that people should learn to code just for code’s sake.  He’d seen too much bad code, broken dreams, and faux programmers in his career to jump on the code learning bandwagon.

I get it. I’m a writer. I’ve heard many versions of this argument applied to writing (too many people taking writing courses to write books that nobody will read, etc.) Still, I have an intractable belief in the adventure of learning. So, I tossed off a counter post, which eventually made it into an e-book anthology, “Should You Learn To Code”, with other people who disagreed with Jeff.

When The Mirror  closed without warning, in June of 2012, it also closed fifteen years of archives, and a huge chunk of my professional portfolio. At least I had my blog. And even more free time. Before this employment crisis, I’d slapped together a little password creating app for for my son after his facebook account got hacked.  That was fun, so I’d signed up for Coursera/Stanford’s Human Computer Interaction course determined to get the studio track certificate in app prototyping.

By the end of July, I’d accomplished this (with distinction!).  I learned not just about design, but got some insights into the cognitive science that the top software engineers work with. I not only had a better idea of how apps work, but how the modern brain deals and doesn’t deal, with the constant potential for information overload.

Meanwhile,  back at Codecademy,  I was struggling through JQuery, hating the virtual checkers project, but doing it anyways. By the end of the summer, I still hadn’t figured out what I was going to do with all my new found functional literacy.  I couldn’t seem to settle on a particular project.

I discovered a Montreal enterprise, PressBooks, that had ingeniously hacked WordPress and turned it into a free multiplatform book writing app.  As an exercise in mastering it, I  wrote a first chapter and an outline for a book about my adventure in code. I’m not part of the kickstarter generation, so I went old school and wrote up a grant proposal for the Quebec Arts Council about a writer learning to code, trying to figure out her place in this new technologically complicated world.

This brought me to September when Codecademy introduced the Python track. I thought JQuery was tough, but it was nothing like the resistance I was feeling towards Python. My savings and credit were running out. Jeff Atwood was starting to make a lot of sense. What had I been THINKING, a middle aged single mother, learning code just for the sake of learning code.  Why was I still doing this?  I had no interest in being the relatively old lady at a start-up. I’m temperamentally ill suited to office work, so  I had no authentic desire to put these skills to practical use in the business world.  Every time I talked to another writer, or any  publishing professional, about what I was doing, they looked at me like I had lost my freaking mind.

I’d hit a wall. I could have so easily quit here. Not learn Python. No one would have been the wiser. But I’d gotten this far in my resolution. I needed to finish this marathon, or all the struggle I’d suffered through would be for nothing. So, I plugged away at Python, learning to, if not to love it, at least like it.

Until I got to list comprehensions. At which point, like anyone who has ever made it to list comprehensions, my mind opened. How could I not feel a tenderness towards this magnificent language, so ugly and incomprehensible  to everyone else, so elegant and rich with potential to anyone who understood it. On that day, towards the end of my code year, my grinchy writer’s heart grew to two sizes, and for a short while even my apartment seemed bigger.

Yes it bothered me, a lot, that for the first time in my twenty year career as a freelancer, I soon might not be able to make my credit card payments. But another part of me felt impenetrably calm. I remember an interview I once saw with Jada Pinkett Smith on Oprah, explaining why peformance anxiety never got to her as an aspiring teenage actress. She’d been to the High School of the Performing Arts, she’d work hard.  There was no reason to be nervous, she explained, because “I had a-bi-li-ties.”

No matter the stresses that seemed to be on the horizon,  I couldn’t seem to shake the confidence that inevitably comes with valued skills and knowledge. In mid-December, just as I got to the point where I thought I might be delusional, I got a letter informing that I’d received the book grant I’d applied for. Not the kind of money one would get for a start up. But the writing life has a pretty low overhead, so it was enough to keep me solvent for another year.

It was also around that time that I learned about the first meeting of Montreal Girl Hackers. It was at Notman House, a slightly dilapidated mansion in the heart of downtown Montreal that had recently been turned into a government subsidized tech incubator.  There were about thirty or so women of varying ages, backgrounds,  interests and skill levels, from computer science teachers to beginners. There was free beer and food, financed by Google and/or  Shopify, I’m not quite sure which.  We stood in a circle and talked about what had brought us here.  I told my story.  Everyone clapped.  It was lovely.

About  a month later I got an e-mail from the organizer. She’d remembered that I’d recently learned some Python and was wondering If I’d be interested in helping out at a weekend workshop organized by the Montreal Python community to teach women some introductory Python skills.

Of course! There I took my first steps out of the sandbox and learned how to set up my own Python environment.  I went over the basics again, learned a bit more through teaching, and hacked a few projects.  It was like any other gathering of women learning a skill, except for instead of the usual pot luck that women always obligate themselves to, there was that free take out again.  I went to a follow up meeting a few weeks later.  More free beer and food, the origins of which were not entirely clear to me yet.  But they soon would be.

Montreal, it turns out, had been chosen to host PyCon, the North American conference of all things and people Python, not just for 2014 , but 2015 as well.  At the last PyCon there had been some controversy over a sexist remark, so Python HQs decision to buy a lot of Montreal women free dinner whenever they got together to learn Python, seemed a wise one.  They were interested in kids too.  Apparently at the last PyCon, everyone had walked away with a free Raspberry Pis.

So here I now am, a little over eighteen months since I signed up for Code Year, taking some time to reflect.

Since January,  I’ve pulled back from my blog to get  focussed on the history and theory behind these skills. With research, I have a better sense of the bigger picture.  I’m working my way through those codecademy lessons again with a slightly more sophisticated eye than I had back when I was half parroting my way through. I’m working at writing the kind of book I wish I’d had when I started.  Something that would inspire newbies to keep at it, and help them better understand their place in the master narrative of computer science.  Something that doesn’t get too tangled up trying to explain the things that they might not be ready to learn yet, but that glimmers with enough light to help them blunder their own way through. Something guided, I hope, by the proverbial finger that directs us to the moon.

I’m reading Tim Berner-Lee’s memoir and just learned that his mother Mary Woods was one of the programmers on the Ferranti Mark 1, the first commercial computer in England. Back then, as in the U.S., women made up roughly fifty percent of programmers.  His parents met at a Christmas party about a year into the project.

Some of those early programmers learned to code because they had a specific job to do. And usually that was the best way. But not everyone learns like this.  According to Grace Hopper, inventor of the first compiler, it took her two years to get her male peers to even look what she had created. They were so enamored with the snippets of code they were playing with. True, none of them can take credit for the compiler, but obviously it led them to other stuff.  I’m not against projects based learning. But I put a year aside to learn to code for code’s sake and doing so has  led to me places and projects I had no idea even existed eighteen months ago.

Fortunately, I have little shame about my newbie perspective. Maybe one day I’ll learn to worry more about all the time I “waste” learning.  I have no idea what I’m going to have experienced or learned eighteen months from now. But if it’s only half as interesting and fun as everything I’ve learned in the last eighteen months, I’ll still consider myself on the right track.

Video

What Most Schools Don’t Teach

5 things I learned about MOOCs in 2012

About  a month ago, The New York Times declared 2012 the year of the MOOC. That’s Massive Open Online Course, in case you haven’t come across the term yet.

Given how much time I spent enrolled in MOOCs this year, I kind of knew this already. But for those now dipping their toes into this phenomenon, here are the top 5 things I learned this year.

1.  MOOCs are addictive. Like seriously addictive.  You think the internet is distracting now.  Wait until you’re juggling the demands of the five fascinating  Ivy League courses you signed up with through Coursera.  I’m kidding, but not entirely. Somewhere around July I found myself wrestling between my Code Year resolution with Codecademy and my determination to complete the Studio Track of Stanford’s Human Computer Interaction course. What began as a five week project soon stretched into something closer to eight weeks as Stanford realized how unprepared most people were for the work involved in field researching, building, testing and peer reviewing a web app.  I did it.  But by September I was burnt out.  Had I not dropped out of Machine Learning after half a video and made a firm decision to bear down, I never would have grocked Python (or learned the word “grock”).  So if MOOCs are something that might interest you in 2013, make a resolution now not to become a MOOC slut.

2. MOOCs are an awesome way to meet people in your home town. This is especially true if you live in a tech oriented city. If there isn’t already a meet up somewhere in your town in the subject you’ve become interested in you can probably start one. Or you can start meetups specifically around the course you happen to have enrolled in. Those meet ups will no doubt lead to other meetups. After organizing the first Code Year meet up in Montreal, I met and introduced people who went on to put on the first Montreal Maker Faire. The interests I cultivated through that venture led me to  WordCamp Montreal, Semantic Web meet ups,  MTL Girl Geeks, MTL Girl Hackers, to mention only a few groups I discovered over the year. Problem was I was so over enrolled in MOOCs, I often couldn’t go to all the things I wanted to.

3. MOOCS are like running.  They’re free. They require little expense or equipment. They’re outside the usual  parameters of civilized life. You make your own challenges. You feel your strength, endurance, and confidence build. You’ll want to quit right before you reach the finish line/personal goal/personal best.  But if you bear down, you’ll learn the effort is really worth it.

4. MOOCS are like a treadmill. They can be a great stepping stone to real life learning. If you’re shy of university life for whatever reason, or you want to try out a subject first to see if it’s for you, MOOCs are great.  But at a certain point you need to find an entry point into the complexities of real life learning.  That might be a meet up, a project independent of what you’re learning in the MOOC, or, in the end, a classroom course in that subject. If MOOCs are your only source of learning you’re going to get bored.

5. MOOCs are especially great for women. At one point this year, I came across a popular  tech ed blog, where it was speculated that the gender ratio of MOOCS were probably not much different from those in regular Computer Science courses. i.e dismally biased towards men.  I’m not convinced that’s true. Almost all the people who showed up to my Montreal Code Year meet ups were women. My experience of peer review in the Coursera HCI course is that there were many women in the course. And, while I don’t know the numbers, I feel safe speculating that MOOCs will be a significant factor  in restoring gender balance to computer science. (Yes I did use the word RESTORE.)

MOOCS in my experience are a great gateway to equity. This isn’t to say that societies should abandon a commitment to traditional learning.  We’re all going to have to be careful to make sure that MOOCs enable low cost high quality learning, not undermine it.

But I’m from Montreal.  Here we march in the streets and bang kitchenware to keep university tuition fees low.  As a result one out of two  Montreal university graduates are first generation (i.e. the first person in their family to go beyond highschool), by far the highest ratio in North America.

The MOOC can be an excellent learning path, and can do much to fill the equity gap, but it will never be a substitute for a deep social commitment to affordable higher learning.

Snake Eyes

Image

Python is killing me.

My enthusiasm of two months ago is drying up and all the things I thought I was going to love about Python, I now hate.  I miss JavaScript. The comforting closure of the semi-colons. Those curly brackets were always more fun than I gave them credit for. They told you where things went. They provided structure, style and whimsy.

Python is all empty space. And while the basic logic is still there, why do all computer languages have to do things differently?

Mostly, I guess I just resent that it’s hard. Which is probably a life problem, not a Python problem. Why do we always think that life is going to get easier?  I’ve been baby stepping my way through, but I’m falling behind.  I was on track to finish Code Year on time, and every week my percentage of completion is getting a tiny bit lower. I feel like a marathon runner who’s fading in the last mile.

Must. Get. The. Passion. Back.

Yesterday I was thinking about the programming satori experience that got this blog rolling. I remember how I felt after I got through the Snake Eyes  challenge. The world took on this complex, computational beauty that I never  would  have seen If I’d given up . For the week after that challenge I was thinking in code. I felt enlightened, stronger.

I’m sure Python has something to teach me too. I just have to be willing to re-commit and set a challenge to make up the ground I’ve lost.

One of the advantages of being the mother of a twelve year old is that I have many inspirational Hollywood movies to choose from in this mission. A scene from  the Karate Kid remake comes to mind. The one where they visit the Taoist monastery and Jaden Smith learns that the snake is not controlling the nun. By copying its movements the nun is controlling the snake!

There is some profound metaphor in there that I don’t quite understand yet. But I will find some way to make that allegory work.

Because if I’ve learned one thing from a year of learning to program, it’s that it’s usually right at the point when nothing makes any sense that the magic is about to happen.

Chris Anderson on how “parenting gone wrong” turned into a multi million dollar company.

The TED talk linked to above is an enlightening and empowering testimonial on how parents can inspire self-study.

Further reading in GitHub

Montreal Mini Maker Faire

The best  thing I did at the inaugural Montreal Mini Maker Faire last weekend was solder my very own LED  pin.  Ben didn’t want to go anywhere near that soldering iron, and I’m glad I didn’t cajole him into it.  He has wonky fine motor skills and I burned myself at least once.  A simple little flashing pin took me half an hour, after I’d fixed up all the goopy metal.  And even then I kind of got it wrong (I slotted one of the conductors backwards). Still, getting a concrete sense of the labor that goes into making stuff we throw away without thinking, has really been an eye opener. As was  sitting around a table with a group of first world mothers and their daughters, and thinking of all the families around the world that actually do this all day for a living.

A sobering thought.  Good thing there was a bar right next to the soldering tent.

Kidding.  I don’t drink and solder.  But there was a bar.  Our Montreal Maker Faire was an afternoon event that preceded a music festival at the Olympic Stadium.  We overlapped by a couple of hours.

The main tent had some very cool exhibits. Videogames hacked in all kinds of bizarro ways, hooked up to playdough, skin sensors and voice sensors. There was the usual array of 3D printers, eggbots, steampunk, robots and innovative DIY toys. I liked tweletype, an old fashioned teletype machine hooked up to twitter.

On the upper level there were quadracopters, camera obscura, home made bikes,  and the Concordia women’s engineering department reconstructed a replica of the brooklyn bridge out of K’Nex.

But Ben’s favourite event was the Quidditch workshop, overseen by the McGill Quidditch team (current national champions!).  Here’s the golden snitch, giving the kids a pre game rundown:


The game ends when someone grabs the tennis ball from his tail.

Good times!

Happiness Engineer

This weekend I went to WordCamp here in  Montreal.  I didn’t go to both days because Saturday was Ben’s birthday.

It had occurred to me, when I first heard about this gathering of the wordpress community, to see if I could  sneak off in the afternoon.  But then, over at SkillCrush, I read these wise words  from an experienced lady programmer: nothing is ever important enough to miss your child’s birthday.

We had a great day on Saturday, hanging out, playing Little Big Planet and video game shopping. Sunday morning when I headed off to WordCamp, bright and early, I was brimming with healthy ambition.  When  I saw the number of people struggling through hangovers from the Saturday night social, I had no regrets.

Hangovers notwithstanding, the energy at WordPress camp is so warm and nurturing and fun, I vow to make this a yearly ritual. And hopefully next year it won’t conflict with another one.
In the  morning I went to the developer presentations:

  • Responsive Design (how to design your web pages so that they fit mobile devices, as well as desktops).  Lots of technical stuff that I mostly understood and will probably better understand next year. The takeaway: code semantically. i.e. start learning now how to design webpages that are low on marginalia. 100% column widths. Sliding panels. etc.
  • Theme Building. This was my favorite, even though I have zero intention of ever becoming a Word Press theme builder. But Kirk Wight is such an entertaining speaker, I might actually consider it. Either way I was  proud to be one of the people in audience who knew how to write a function.  I feel my work this year has been vindicated. Keep an eye out for Kirk’s presentation on WordCamp TV
  • Child Themes. You don’t actually have to know much CSS to build really cool websites.  There’s basically a separate console that allows you to write just a little CSS and dramatically tweak the core code.  The CSS for the child theme will always override the CSS for the parent theme (not unlike life.)  The takeaway: don’t ever touch the core code!  Use the separate console for child CSS. This could be a really cool project for kids, learning just enough CSS to mash their own cool website designs  from available themes.

At lunch I had a great chat with the developer who has adapted Word Press for Post Media, one of the largest media conglomerates in Canada (National Post, Montreal Gazette). One of the things he pointed out is how little  envy there seemed to be at WordPress camps. Unlike other conferences where  networking always has a kind of edge, there’s so much work these days for developers, the vibe is open and generous.

In the afternoon I went to presentations that were a little more local, content oriented, and French, so I won’t summarize them here.  But at the end of the day I was so impressed with the whole WordPress organization that I found myself  trawling through their job postings.

The one that caught my eye,  Happiness Engineer. What an awesome job title.  If I understand the job correctly, it’s enlightened customer support.  Requirements are good writing skills, a working knowledge of HTML/CSS, and compassion for people grappling with information technology.

Maybe I’ll apply. But in the meantime, I have my own little startup here at familycoding, and the job of Happiness Engineer has just been filled.