Explain the vision for your project (what does it do, who is it for, what purpose does it serve?)
I started Tweet Speak English to give English learners a course made from real phrases Americans use a lot. Students can work through one lesson at a time, and get the next one when they finish. Lessons are composed of videos, audio, listening quizzes, pronunciation guides, and discussion. The phrases students encounter automatically populate in their “dictionary” so they can reference them quickly any time. I want to continue adding interactive elements, other products, and online and mobile games in the future.
What was the inspiration for this idea?
I was tired of explaining boring and unnatural English that showed up in the dialogues of text books. I noticed a lot of people were using Twitter to learn English, so I decided to curate high quality tweets with useful phrases. It started as a podcast, and when it got downloaded 30,000 times in a month, I realized I should keep going with the idea.
How long have you been working on it?
All in all, this project has been a ‘hobby’ for the last 3 years. I finally decided to learn programming and rebuilt it. This took me about a month.
Why is this important to you and is there anyone else who’s working on it with you?
It’s important because there are a lot of people around the world who spend a lot of money to learn English for years only to discover they still have problems communicating with native speakers. But it’s not just about access to information. There are a lot of resources for learning natural English but I wanted to make an affordable system that helps learners do this efficiently, and have fun while they’re doing it. I want to give them confidence because if they can get to a certain level in their English ability, they’ll have the momentum they need to get the best jobs in their country or follow their dreams in other ways.
A good friend has been helping me re-develop the content for the last year, so without his help, I doubt I could have taken on the task of redeveloping the app.
How did you build the current version of this website?
Lots of coffee, and a determination to finally tackle coding. BaseRails was the resource I came across that finally helped me do that. That, and frustration with the third party tools I had been using to ‘duct-tape’ the idea together on a WordPress site. I finally needed the flexibility learning Ruby on Rails could give me. I went through both courses on BaseRails, built the apps all the way through, looked for the things I needed in my own project, and then got busy trying to implement them. Where I needed something I didn’t know how to do, I spent the time scouring the internet to find examples. When that wouldn’t work just right, I’d go to the Q&A of BaseRails, Stack Overflow, or in desperate situations, I did a couple of AirPair sessions.
What were the difficulties of building it out?
The feeling sometimes (er, once a day) where I thought I might be going crazy. Looking at the code I had, tutorials I was using a reference, and all the help I had, and not being able to see why it didn’t work. I’d try one thing after the other, only to have the same result, until finally, something would work.
What lessons have you learned in building out this project?
Feeling like you have a deadline is super important. I had about 6 weeks where not much was going on. I knew it would get busy again after that, so I felt a lot of pressure to learn enough RoR to build out TweetSpeak and get started on some other ideas. But I also learned that when you really let the sense of urgency take over you, it can be really counterproductive. It’s also incredibly important to take breaks, and know when to call it a day. Don’t work past that breaking point.
One example, I spent 3 days trying to get the exact Stripe payment process I wanted to work. I had been staying up late at nights, still nothing. Then one day, my 3 year old came home from school and I thought, “It’s not like I’m giving up, I just need some time away from this.” So I took her to the park. We spent about two hours playing. I built a sandcastle, something I haven’t done in years. The next morning, I woke up to get to work, and I figured out the obvious problem staring me in the face. I fixed it all in 15 minutes. So when you feel yourself getting burned out, explore something else away from the computer. Go out and play.
What attracted you to enroll on BaseRails?
The course layout seemed to be exactly what I was looking for. It promised to take you through building an app in an easy to understand way. There were also videos, and it seemed to be laid out in a way that was good for beginners. I had tried some other guides, and while very good, it was hard for me to stick with them. As soon as I ran into problems, which happened a lot because they went into fairly complicated things, it was too easy to quit. BaseRails seemed to be the best of both worlds — building something that worked, and gaining knowledge to turn around and try that on your own projects.
How did our course help you in building out your idea?
Remember that flute in Zelda that would take you anywhere you wanted to go in Hyrule? BaseRails was kind of like that. Instead of starting at a blank slate, I just sped back over the lessons for setting up the app, getting pages, resources, and styles up to speed. In less than an hour, I had an ‘app’ already, and it even looked pretty good. While I was able to take some of the other lessons and apply them, it was this head start that gave me some serious momentum on the project.
That, and it gave me a confidence in programming I had never had before. I don’t know that I’ll ever be an amazing programmer. But before BaseRails, I always felt like touching anything in my command line would make my computer blow up. I would go about things as if I was trying to defuse a bomb. Now, I know that if I see an error, there’s no need to panic. It’s not the end of the world. I will find an answer. And I will make it work eventually.
What are your future plans with this project?
For the time being, I will focus more on content creation and getting more students. I’d like to get their feedback on where the project should go from here. I would love to add more review features, or interactive ways that give the students helpful ways to remember things.
What’s your advice for other people looking to build out their own idea?
Start by building out a few sample apps. Just go as fast as you can. If that’s 1 hour a day or 8, it doesn’t matter. Just go for it. Don’t ask questions about why you’re doing anything. Getting used to working with code, and breaking stuff only to put it back together is what has really helped me. Once you’ve done that, and gained the belief that you can do it, you’re ready to start on your own project. This will teach you the most of all, and you’re going to need people to turn to. Ask Alex questions on the Ask a Developer, post questions on SO, and tweet out links to gist’s you make with the hash #pairwithme. The best developers in the world have struggled with exactly where you are right now, and that makes them willing to help. I look forward to being able to help others too someday.
So, make a schedule with a deadline. Then, make a list of what your project is, who’s it for, and what it will do. Make a features list. Go over that list and break everything down as far as you can into actionable steps. Add those onto something like Trello (it’s what I used) to show you what you need to work on next, and what you’ve accomplished so far. Once you start working, know exactly where you’re going to go for help when you get stuck. You will make it happen, but not knowing where to look for answers is the fastest way to discouragement. Oh, and be ready to sound dumb. Don’t worry. Ask your questions, give as many details as you can, and if on Stack Overflow, think about how you can make it applicable to others.
Get started, make basic functionality work first, and save design work as reward for when you’ve successfully made a new feature. I think that’s about all.
Anything else you’d like to share about your journey?
I’ve started working on a new chat app for language learners. I started working on it as a potential extension to a site I own, Fluentli.com. My goal was to get the basic functionality knocked out with design that was pleasing to use. I went into it without knowing if I would continue with it. I still don’t know if I will. But every idea you try to flesh out teaches you new things, so it’s never a waste. If the Fluentli community seems to be excited by what I’m working on, I’ll gladly keep going. If not, I’ll probably move on to other ideas. That’s the other important thing to realize early on — don’t wait for a perfect idea before you get to work. Get good at having lots of ideas and then using those as learning experiences. You’re bound to find something people get excited about eventually!
If you’re successful at finishing one, get ready. You’re never going to stop! But the great news is, when you get a new idea, you’ll be able to make it happen. And that’s an amazing accomplishment!
Thanks for the awesome interview Nate!