Grassroots language technology: Mike Boyle, easytweets.net

Mike Boyle, @heyboyle, talks about why he has decided to learn to code and take on technology projects to help language learners. A huge thanks to Mike for taking the time to respond, you can read about Paul Raine chatting grassroots language tech if you haven’t already. If you are someone or know someone developing their own language technology please do get in touch.

1. Can you tell us a bit about your background?

Mike: I’ve been in English education my whole adult life: first as an EFL teacher in Japan and New York, later as an editor at OUP and CUP, then most recently as a freelance editor and author. I’m part of the English File author team and have had a hand in lots of other big coursebooks, as well as cool digital products like Newsmart.

Before I started the Web Development Immersive course at General Assembly, I thought I also had a solid background in technology. I’d been exposed to computers at a young age and had played with Logo and Basic as a kid, and I knew how to use Dropbox and my iPhone, so I was tech-savvy, right? After just a couple of days it was clear that there was a whole universe of tech that I knew nothing about.

2. What initially made you want to get into coding?

Mike: I had felt for a long time that there were a lot of cool things that could be done online to help people learn new languages. I was always surprised or puzzled that a lot of the language-learning tech coming out didn’t take advantage of all of the possibilities out there.

So my initial motivation was to learn the basics of development so that I could start my own language learning company. I wanted to know just enough to be able to hire “real” developers without seeming like a total fool. A few weeks into it, I realized that I actually really really loved coding and wanted to dive much deeper into that world. So although I still want to be an edtech entrepreneur in the future, what I want to do for now is continue learning and building more things myself.

3. What are the ideas you are developing at the moment?

Mike: Right now I’m working on easytweets.net, a site for learners that filters real Tweets based on the user’s interests and ability level. It uses the Cambridge English Profile vocabulary list and a custom algorithm to analyze tweets and group them into three levels: easy (A1/A2), medium (B1/B2), and difficult (C1/C2). The beta is actually working pretty well, and I encourage everyone to check it out and send me suggestions at eesytweets@gmail.com.

4. What ideas do you have for the  future?

Mike: The biggest problem for most learners is that they spend thousands upon thousands of hours in the classroom, but only the tiniest fraction of that time is spent actually using the language to communicate. I think we can do better. We live in a world where almost all of our students have a device in their pocket that could connect them in seconds with someone who not only speaks the language they want to learn, but also has something in common with them. It’s a very complicated challenge but my ultimate goal is to solve it.

5. What kind of time commitment is needed to develop programs?

Mike: Coding is really really REALLY hard. If you want to build a dynamic site that actually allows users to submit, save, and retrieve information, there are many many long hours that go into that. Unexpected problems can crop up anywhere and nothing is as straightforward as it seems. The average consumer is very spoiled and assumes that websites “just work,” when in fact those “simple” sites are the result of dozens or hundreds (or thousands!) of engineers working 12-hour days for years. The course has definitely given me a lot of sympathy for broken sites!

And during the course I also encountered some people who said, “Well, I read ‘HTML for Dummies.’ I know all of that.” Or people who had set up their blog on WordPress and were pretty sure they were already 95% of the way to making websites from scratch. But that’s just not the case.

It’s true that with a little knowledge you can write a little HTML form and view it on your web browser in a few minutes. But how do you put that form on the actual Internet so that other people can fill it out? And then what happens when your user hits submit? How do you capture that input? There’s no HTML for that. It happens on a server, so you have to write a server, and that means you need to learn another language like Ruby or Python, and you need to learn what SQL is so you can save and retrieve that info, and that means you need to learn what a database really is.

I had always assumed that databases were just really big Excel files but they are nothing like that at all. And then how do you make sure that your user doesn’t user your HTML form to inject viruses and malicious code into your site? And what if you want to have more than one page on your site? Or — even more difficult — what if you want your users to do all kinds of actions without ever leaving the current page?

So the list of things to learn is really endless, and the commitment is huge. But it’s amazing fun. There’s a really interesting challenge at every turn.

5. To what extent, if any, would there be positive aspects for people in ELT to seriously consider developing their own digital tools?

Mike: I think that everyone in ELT should get into this. Our students are living their lives online so we need to give them better ways to learn in that world. Knowing a little code or a lot of code can help you build your own things, or work more effectively with the people you hire/work with who build those things. Just knowing what’s easy to do and what’s hard to do is incredibly valuable.

6. What advice would you give for anyone interested in starting to code?

Mike: Definitely dive into it and start trying to build the things you imagine. I made the choice to go to General Assembly and I would definitely recommend that to anyone who is willing to completely give up three months of their life to do it. But you can learn to code on your own. Even at General Assembly the real emphasis was on learning how to learn — teaching yourself and developing your own problem-solving skills.

I would start learning with HTML and CSS, then move to JavaScript and Ruby. There are great free or cheap tutorial sites like codecademy.com, codeschool.com, learncodethehardway.org, and teamtreehouse.com.  But by far, the most important website for people learning code is google. Learning how to read error messages and google them is a vitally important skill. The next most important site is a Q&A site for coders called stackoverflow.com

When you want to build a real website, you’ll need to learn how to use the command line/terminal on your computer, which sounds terrifying but is actually great fun. Spend a day at http://cli.learncodethehardway.org/ and you’ll get the hang of it. You’ll also need a text editor (not MS Word) to write your code in. Two of the most popular free ones are Sublime Text (http://www.sublimetext.com/) and Atom (https://atom.io/). And then finally when you want to actually put your website online, there are free or cheap sites like www.bitballoon.com (for simple HTML/CSS/Javascript sites) and www.heroku.com (for larger more complex sites).