Audrey Watters has a fabulous write-up about the trend of the learning to code movement that’s happened over the last year. Well, I have an interesting perspective on this whole thing. Over the last couple of years, I’ve learned to code. Also, I’m learning to teach code.
But here I am with quite a bit of coding under my belt. I still would not call myself a programmer, but I am fairly proficient. I wrote a voting program for my school to do mock elections. I needed a little help but mostly I managed on my own. So how did I learn? What tools did I use? Do I think any of the available resources are useful?
I honestly think it would be best if I could plop myself into a few CS classes, face to face, with some concentrated time to do projects and assignments. Mostly, after you learn the basics, both of computational thinking in general and then the language you’re working in, it’s a matter of using those skills to create things and solve problems. Bt I don’t have the time or money for that. I do have the benefit of a husband who teaches CS, which gave me the face to face component I needed. I was able to ask questions and get help with debugging in a way that most people don’t outside of a class. But I did learn something from the resources I used.
I started with books. I dove into Head First programming. I worked my way through the who,e book. Then I did the same with another book. Then I came up with my own pet project and used those two books as resources. Then I worked through the book I teach from, and in addition to the exercises in the book, I created my own. The creating my own thing was important. It let me figure out what problems I could solve and were messy enough that I had to learn and do things outside of my comfort zone to accomplish them. Most exercises in book and online are clean. There’s kind of a right or wrong answer for them. Real programming is messier.
I did turn to some online courses. I took a Python course through Code Lesson. I took a Udacity course on program and algorithm design. The code lesson course was much more effective than the Udacity course (which I never finished). I knew most of the material already, but I learned some new things. My work was graded by a real person, and I communicated with real people, just a few, via the forum. It cost money, though it was really a bargain. But I liked the Udacity course because it had no specific start or end dates. I could hop in and out at will. I barely scratched the surface of that course. I learned one or two things, and I would probably benefit from going back to it, but I have a time issue. I felt compelled to work on the Code Lesson course because I’d paid for it.
Where I learned the most, though, was in teaching. To teach something, you have to know it pretty well. I did all my students’ assignments and projects. If they asked me a question I didn’t know the answer to, I’d spend time figuring it out. I enjoyed the puzzles they gave me, and I learned a lot from solving them. It was like doing 7 assignments all at once. Talk about practice!
Is this the year of learning to code? Has it been successful? Personally, I think it has. I can definitively say I learned to code. But, I have a lot more to learn. I’d never apply for a job as a programmer even if no CS degree was required. I just don’t have enough experience under my belt. Has learning to code caught with others? In my own school, I have a nice cohort of students moving through computer science. But I’m not turning people away. The need to take certain courses, the schedule, and the geek factor all work to keep girls out of my classes. Some have, in fact turned to these online courses, but they find them difficult. I have a student going through intro via Udacity and I had to give a lecture on functions because the lectures and quizzes she’d already had didn’t sink in for her.
It’s great that attention has been brought to this issue, but I don’t think there’s going to be a sudden surge in people who have learned to code. For one, Alan Levine points out the small numbers of people who finish these courses. And what do they know, really? The knowledge feels abstract and ephemeral to me. Real learning doesn’t seem to happen in front of a box (or in one). That doesn’t mean that a handful of people might not learn something from all these Learning to code initiatives (some of which are face to face and probably more successful). But I think those are the people who might have learned to code anyway–through books, the web, or just hacking. What I’d be interested in knowing is if Mayor Bloomberg (or someone with little knowledge and less time) learned to code. Then we might be headed in the right direction.