Studying computational linguistics and web design is forcing me to grapple with maths and programming. I’ve known for a while that I want to be literate in those fields. The trouble is that I haven’t been taking the time to practice and let my mind wander around maths and programming topics. It’s still All Language All the Time in my head. I’ve been trying to turn my inner monologue on maths and programming. Here are some texts I’ve been using.
Programming and web design
I’ve written about 100 pages of a programming workbook template similar to my language learning workbook template. I’ll post it once it’s presentable. I’m getting ideas for the workbook from resources that f friends and colleagues have recommended, such as the following:
This website is comprehensive and well-structured. They give us learners everything we need to find information, check our understanding, and test ourselves. At the same time, the materials are organized so that we’re completely responsible for making the most of all the available resources. And after finishing all of the coursework, we can point to specific useful things we’ve made.
I particularly appreciate the way that the practice problems are designed to make learners feel lost, yet there are resources available to guide us when we get stuck. I’m not used to not knowing how to solve a problem. These days I rarely encounter problems that completely stump me. I don’t always get the right answer, but I rarely have the feeling of being totally lost. I’ll try one technique, take it is far as I can, and if I hit a dead end, start over and try again with something else. On the other hand, if I see a maths or programming problem, I don’t even know where to start. I know that’s natural, but it’s been harder for me to overcome the temptation to not even try.
For some reason, I’m intimidated by GUIs, even though I remember making them with Java in high school and thinking they weren’t that bad. I like this tutorial because shows how to do the same thing in a few different languages.
Programming course websites:
There are so many!
- Introduction to Computer Science and Programming Using Python (EdX)
- Introduction to Computer Science and Programming (MIT)
- CS50 (Harvard)
- Introduction to Algorithms (MIT)
Natural language processing
Natural Language Processing with Python by Steven Bird, Ewan Klein, and Edward Loper
This was the first text I found on the subject. I’m about halfway through it now. It’s really clear.
Foundations of Statistical Natural Language Processing by Chris Manning and Hinrich Schütze
This was the second text I started reading after Natural Language Processing with Python, and it’s *way* more challenging. When I started reading, I was totally lost by the first exercise. I looked at the problems and I didn’t even understand what they were asking. Fortunately, It’s starting to make more sense now that I’m reading the Jurafsky and Martin text, and now that I’ve found a more accessible introduction to set theory and probability.
Speech and Language Processing by Daniel Jurafsky and James Martin
This is the text that’s really got me interested in natural language processing. It’s much more technical than Natural Language Processing with Python, but the writing is superb. I’m hoping that after I finish this text, I’ll be able to understand Foundations of Statistical Natural Language Processing without feeling completely hopeless.
A Probability Course for the Actuaries: A Preparation for Exam P/1 from Arkansas Tech University
SticiGui from UC Berkeley.
I did just fine in my middle and high school maths classes, but I never really had a decent conceptual understanding of maths. It’s caught up with me, as Daniel Willingham has warned it will. So I really need to start over. After a few months of banging my head against a wall trying to understand the statistics and probability sections in Foundations of Statistical Natural Language Processing, feeling like a hopeless idiot, I found the two resources above. The formulas mostly make sense now. It’s a huge relief.
A First Course in Abstract Algebra by John B. Fraleigh
My mathematician friend lent me this book. I enjoy it, and it’s very clear. I wish I had known earlier what university-level maths is all about. I would’ve stuck with it for longer.
My favorite part about this text is that I’m no longer intimidated by jargon. I’ve always been more comfortable with linguistic jargon than I am with maths or programming jargon. I know it’s irrational: ‘morphotactics’ and ‘semantic field’ don’t faze me at all, so why should ‘commutative ring’ and ‘finite state tranducer’ make me nervous?
All those terms describe things or ideas that are worth thinking and talking about as a group, so it helps to give those collections a name. Fraleigh’s text is very accessible. The definitions are clear, the steps are explicit, and for the most part he avoids phrases such as “obviously” and “by an elementary algebra technique” which make me want to throw the book across the room.
I haven’t given up on learning languages, though. I’m still going to be using and updating my language learning workbook template. I’m working towards using the ideas in that template to make an online resource for learning and practicing languages. I’ve been meaning to be more active on lang-8, and now I’ve got lots of things to potentially write about. I want to improve my written Chinese, so I’m working through a few books from the 别怕作文 series. As for Spanish, French, and German, Reverso is a fantastic resource.