Learning languages – 3

As I’ve posted before I decided to try to learn Spanish. I’d tried multiple times before with no success, but then I discovered Duolingo and now I’m learning some Spanish, albeit still not much. I had set out to develop an application that could translate menus in Spain, not just with the simple words from a dictionary, but all the interesting terms that appear in menus (many online to study). But I still resisted actually trying to learn Spanish since my main interest, translating menus, I thought I could without really learning the language.

So anyway I did start grinding through “skills” in Duolingo and now have 243 consecutive days. I’ve reached level 25 in Spanish but am also only about 30% done with the entire course. I’ve chosen to do Spanish thoroughly, i.e. finishing each skill to highest level before moving on, so while I’m not that far through the skills I have done all the work. For fun I’m also doing French (which I had long ago) and German (also long ago and poorly learned). So altogether I spend a lot of time with this. But, hey, one benefit of being retired is having lots of time and this adventure has been fun.

But, as is well known about learning a new language, at first everything was new and so everything I learned was a step forward. But over 243 days anyone, certainly me, is going to forget a lot of the earlier skills (a Duolingo skill is a collection of new vocabulary and maybe some new sentence construction centered on a topic like shopping or travel). So the more I was learning the more I began to forget.

So since I also like to write programs I can use I tried to build various drill programs (glorified flashcards, mostly) to repeat past material at some appropriate time, based on how long it’s been or how poorly I’d been doing on certain bits of the language. That didn’t work out so well so finally I developed a different approach, a fairly simple program to record my work and then “recommend” what I should do next, i.e. learn new material or repeat old material).

So I had an algorithm (with various adjustable parameters) to decide whether to do new stuff or repeat (and then which) old stuff. Not a difficult task but my question was how does this play out over time. I had lots of weights, biases and historical data to create the algorithm to decide what to do next but how could I really tell how it was working. I’ve done this before, several times, and the trouble with such a program and using it just for yourself is that it’s: a) hard to test out, and, b) takes a while using it to decide it’s not accomplishing what I want.

So, naturally, the real answer is to do a simulation to project into the future. Program into the simulation my behavior, assuming I’m following the algorithm of what drill to do, and my average endurance in doing the learning. Then, when am I done? Duolingo is nice but not that thorough a training program. At best it gets you to the A2-2 CERF level which is still mostly beginning Spanish. Is this enough to go to Spain and have reasonable conversations? Just barely.

My first attempt at simulation didn’t go too well but it did reveal a couple of things. Since my quantity of repetition was based on how much I’d “learned”, the more I learned the more I had to repeat. And at some point, given a “fixed” amount of learning time I’d be mostly doing repeats and little new learning, to the point of almost making zero progress.

But my simulations were independent of my record keeping and telling-me-what-to-do-next program so, with a bit of restructuring I realized I could code the simulation inside my actual day-to-day planning/recording program. And so finally I got that done, today, and hurrah, I’ll be done with the Duolingo lessons in mid-2021, not exactly my desired timeframe. So I made various modifications and re-ran simulations until I had a better answer (at least now finished Duolingo somewhere in 2020). It was an interesting exercise, not purely in programming, but figuring out how to have the program give me some results (we’re not talking about several thousand drills in the course of the simulation, hard to just look at pure numbers and make sense of that). Then I could toss those into Excel and do some analysis, tweak my algorithms a bit, and try to get a better answer.

Well that seems to have worked and now my program that records my study and tells me what to do seems reasonable. The question now is, will I follow it? Does it really feel right? So I’ve committed to at least using the program for a month (hey, I’m already eight months into this, what’s another month to see how it goes). Hopefully I will make the progress the simulation predicts, hopefully I can stay interested given I don’t like, sometimes, what the program tells me to do, and hopefully all of this gets me closer to a real world goal of achieving some fluency.

On the Net there are a ton of websites, some free, some for fee, even some with personal tutoring, to tackle this interest. Many people have told me just go find some Spanish speaking people and chat, not a bad idea but not feasible for me. The online learning fits into my life BUT it has to actually get me where I need to be.

So stay tuned, if this topic is of the least interest to you, Dear Reader, as I report back more what I’ve achieved.

About dmill96

old fat (but now getting trim and fit) guy, who used to create software in Silicon Valley (almost before it was called that), who used to go backpacking and bicycling and cross-country skiing and now geodashes, drives AWD in Wyoming, takes pictures, and writes long blog posts and does xizquvjyk.
This entry was posted in comment and tagged . Bookmark the permalink.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s