By Bruno Skvorc
Duolingo for PHP – How Much PHP Can Apps like Mimo Teach?
Mimo is an app which claims to teach coding "on the go". As a long time Duolingo user, I could relate to this approach – particularly as I was becoming increasingly interested in achieving some degree of basic Swift literacy in the coming weeks.
In an attempt to objectively assess the app's ability to teach people new things, I decided to look at what it's offering and see if it's something I can recommend to people just starting out with a new language.
The application is free for the first one or two lessons of every course, at which point you're asked to either spread the word on social media, or pay to unlock the next one. The next one after that, however, has to be paid for.
Like Duolingo, Mimo uses streaks to gamify learning, keeping track of how many consecutive days you've been using it. To further gamify things, the app features a bunch of badges and achievements to collect, though the real killer feature would be a Duolingo-like "follow user" approach which also allows for direct communication on certain lesson slides.
Obviously, there's quite a bit of collecting and achieving to be done in Mimo!
The app lets users set their own desired learning frequency, but all this does is dictate how often the app will remind you to use it – it has no other effects on the app in terms of course length or content.
It's a sad world where 20 minutes of learning per day is considered insane, isn't it?
At the time of writing, Premium access costs a whopping 54.99 GBP per year, or 4.58 GBP per month, but only payable annually. It seems the app's developers are well aware of the fact that most people abandon learning and self-improvement apps on mobile after a month.
The biggest problem is that with what's offered for free, it's hard to justify spending this amount.
The application offers individual language courses – PHP, HTML, Swift, "Hacking", etc. but also course tracks that include several courses in order, aimed at teaching a bigger whole. For example, the Make a Website course has the sub courses: Programming, Programming 2, HTML, CSS, JavaScript, etc.
This course doesn't whet the appetite, however – what's covered is a very basic and language agnostic concept of variables, and then the paid content begins. That's 2 out of 43 lessons free – hardly enough content to make an educated purchasing decision. Also, despite what seems like a lot of content (43 lessons), it should be noted that lessons are typically 10-15 minutes long.
The individual courses dive into the same thing (the free content at least) but explained in terms of the language being learned. So when starting the PHP course, you learn about PHP variables…
And when doing the Swift course, you do the same there.
Again, hardly a reason to purchase premium at this point. The approach does seem logical, however – if it really aims to be the Duolingo of programming, then it makes sense to present the same concepts you're already familiar with in another language you're not familiar with. What better way to learn than to solve the same problem you already solved in a new language? It's just that these aren't actual problems being solved.
The biggest issue I see here is environment setup (predictable, seeing as I care so much about the subject I wrote a book on it). The application immediately dives into variables and other programming concepts, but a person just starting out with any of the languages has absolutely no idea how to really start. There are no instructions on how to install the runtime, compiler, or IDE, and no indication of what operating system or environment might be needed. I can easily imagine a user going through all of these courses, and then being completely stuck when sat behind a computer. This is akin to someone learning how to swordfight by playing an RPG on a mobile device – your avatar will swing the sword, but you won't be any more competent with it once you finish the game.
Course Quality
Other than the repetition of the phrase "so-called" and some typos across the courses , the content is well written, easy to consume and generally very newbie-friendly.
In the free section of the app, there are four simple approaches to teaching:
guesswork
learning by heart
Guesswork will have a user guess a solution to a question, without being previously primed for it. A wrong guess will not allow the user to progress further, allowing for an infinite number of retries, and the right guess will explain the solution to an extent.
Deductions will usually prepare the user to answer a question with an answer they were given on the previous slide, or several slides earlier.
Learning by heart will just throw definitions, theory, and explanations at the user, hoping it'll stick.
Riddles will require re-ordering code sequences until they make logical sense and look like valid code.
These approaches are fine for theory, but I would still recommend Mimo add some manual input of code to develop people's muscle memory. I would also recommend adding a boxed, limited REPL at the end of each lesson, where people can test out what they've learned thus far.
While the concept is interesting, I don't think it's possible to get to any meaningful degree of programming literacy with an app like Mimo. To learn how to program, one needs to develop the muscle memory of typing. One has to develop the ability of searching for solutions to problems (known as StackOverflow-fu) and the ability to find important pieces of information in a programming language's manual. One needs to interact with the community of the language in question, and learn from examples that need to be hand tweaked to be applicable to the problem at hand.
Mimo has none of these important factors – it is effectively a "learn by heart" application which presents you with more theory than practical use. On its own, it can be helpful as an introduction to terms you might meet in a real project, but its practical value is highly questionable.
Admittedly, I may be missing out on some killer features in the Premium side of things, but 55 GPB for a year and payable only annually feels like an app-tourist-trap, especially given the lack of quality evident in the free sections of the app.
As an educator, I've never had problems recommending third party (non-SitePoint) content providers to people – my desire is to see people trained well, and immediate profits are not a priority. The pie is big enough for all of us, and a well trained community of devs profits everyone in the long run – many people started out applying as authors for us, then were pointed to some skill-honing resources, and came back years later, welcomed as capable contributors.
Mimo, however, is not one such resource – but it could be. With upgrades such as an emphasis on the social side of things, a simple REPL for languages that could support it (PHP, JS, Ruby, HTML), some improvements to the free parts of courses (typos, explanations, phrasing – general copy editing and course design, really), a different pricing model, and a more hands-on approach, Mimo could be a significant factor in many people's education plan. The times I've been stuck in queues or traffic for 10+ minutes are many, and being able to use these idle times for learning something useful on the go in such an easy to consume way would have been invaluable.
I wish Mimo luck, and will check them out in future iterations of the app.
Bruno Skvorc
Bruno is a blockchain developer and code auditor from Croatia with Master's Degrees in Computer Science and English Language and Literature. He's been a web developer for 10 years until JavaScript drove him away. He now runs a cryptocurrency business at Bitfalls.com via which he makes blockchain tech approachable to the masses, and runs Coinvendor, an on-boarding platform for people to easily buy cryptocurrency. He's also a developer evangelist for Diffbot.com, a San Francisco-based AI-powered machine vision web scraper.
Worth $29 on Amazon. Yours FREE!