Project 3 Week 4/4: Lo hice!

GOAL: Finish Language Transfer and practice conversation!

Goal done; I finished the Language Transfer course and I really enjoyed it. I’ll absolutely be listening to it again later as review.

Language Transfer is a totally free language resource built by one guy, Mihalis Eleftheriou. He offers multiple courses, some “complete” and some “introductory” in scope. “Complete” means that the course covers all grammar skills you would need in conversation. These courses are not focused on content in the sense of vocabulary or memorization, but they are about giving the learner the tools they need to understand and analyze the language. As he says in the second to last episode of this course,

“you are using this mechanism or this tool which as we’ve said a few times, permits and obliges you to perceive and express the world in a certain way. But before we can fully take advantage of that, we want to get over our technical difficulties and this is achieved not through memorizing what is correct, but analyzing and understanding what is correct and finding why.”

The approach is, essentially, to expose the learner to the rules of the language and give explanations of why those rules exist that help them stick in the learner’s mind. Then, with that knowledge, they can practice by engaging in the language.

I have no reference for how good the other courses are, but I learned a lot from this Spanish course. I’d say that in a couple months of listening to this course and exposing myself to the language, I feel more confident reading and listening than I did in my 12 credit hours of introductory French courses after 3 years of high school French. With each new rule, Mihalis provides context, clues, tips, “hook phrases”, and perspectives that help make Spanish grammar fun and engaging. Because of this course, language-learning feels more like a very rewarding thought puzzle.

Here’s a good example of how Mihalis contextualizes common errors to help the learner understand and avoid them:

“So, a very common error for people learning Spanish is to say la problema. Now, if we look at why these words ending ma are actually masculine, it’s going to help us internalize it. So these words that end ma actually come from Greek. Problema in Greek is provlima. System in Greek is systima. In Spanish, it’s sistema. El sistema. So it’s el. Now in Greek, these words are neuter words. In Greek, you have masculine, feminine, and neuter. And neuter words in Greek look like masculine words. They have a similar word for the. They look kind of like masculine words. So when they went into Spanish, or into Latin, they got mistaken as masculine words. So if we can identify them, there’s a key group of words we can avoid committing this error with. If it ends ma, it’s probably from Greek and probably masculine.

I could spend a while rambling about the course, but to be brief, I’m very glad I found this course. It absolutely changed the way I think about language, and now I feel completely confident continuing to practice through exposure and immersion.

That being said, as it turns out, I’m a very awkward speaker still. My “test” conversation was short, probably for 2 reasons: 1) it is inherently awkward to fabricate a conversation for school purposes and 2) I really should have been practicing conversation more the whole time. So, not as successful as I’d like to be in speaking. I certainly can put together sentences as a response, but it takes about a second between each word if the sentence is more complicated than the average practiced phrase.

But, I do feel a lot more confident in listening after this. For example, I listened to the song I linked in the last post, and discovered that I knew what the entire introduction meant and could follow along just by listening. I listened to some new music to better test this, and I’m finding that I can pick out a lot more phrases and sentences than I could before. This is likely because now I know a lot better what to expect in terms of sentence structures.

Overall, I’d call this project a 75% (full success in listening, half success in speaking) success in terms of what I set out to achieve. Regardless, I absolutely know so much more Spanish than I did a month ago, and I’m really excited to feel confident in learning more via exposure. At the very least, I feel less intimidated by practicing conversation, a confidence barrier that was keeping me from learning previously.

Project 3 Week 3/4: Actual reflections on Spanish

GOAL: Keep doing what I’m doing until my conversation “test”!

Over the past couple weeks I’ve been fitting my Spanish learning to my quarantine schedule. Now that I’ve got a good groove going (work a couple times a week on music, journaling, and Language Transfer), I don’t have much to report in terms of teaching myself. I’m glad to have had the opportunity to figure out what Spanish learning approaches work for me so I can keep this up after the semester ends.

I didn’t finish Language Transfer, but should by the time my project is over, so once again my thoughts on the course will be saved for next post.

This time, I thought I’d provide some thoughts on troubles I’m running into in regards to content. Reflecting on the past couple weeks of study, I’d definitely say my biggest problem is conjugations. This isn’t really surprising, as most English-speaking students learning Romance languages have this problem. (I certainly did while learning French.) I’m having such a hard time hearing and remembering distinctions between conjugations of verbs. I can guess at them with context, but it’s taking much longer than I’d like to really intuitively nail the tenses.

For example, I get confused by the difference between the conditional and imperfect for er/ir verbs. Comía (I ate) is so close to comería (I would eat) that it’s hard to keep straight. They all have the same endings, the imperfect just replaces the er/ir ending while the conditional is adding the ending to the infinitive. So when listening, or even reading, it’s kind of hard to process quickly enough. (Maybe now that I wrote this out in a blog post, I’ll remember?)

I think this is a repetition issue, but I am finding myself stumped at how to best get this repetition. Do I need to start taking a very typical classroom “busy work” approach to just memorizing these, so it becomes second nature? Or might it be better to let it come as I start speaking conversationally? Both maybe? I’m not sure how important it is right now, as more and more exposure to verb conjugations will certainly make things easier regardless of what method of learning I choose for this particular grammar skill.

I can tell that exposure is helpful because I’m starting to remember common irregular conjugations just from seeing or hearing them a lot. Specifically, the very irregular ser and ir conjugations come much more naturally to me now.

I’m glad to see that my efforts are paying off in some way. While I hope this means that I’ll feel comfortable holding conversation by next week, I’m feeling pretty confident that I’ll at least be much closer to it than before. I think I’ll try to hold conversation again in the next day or so, sort of like a practice exam, and then receive feedback and work on that specifically for my “final exam” on Wednesday.

Project 3 Week 2/4: Narrowing down

GOAL: Picking my favorite language learning activities

This week I decided to work in two sessions of about 2 hours. This was a lot more effective than trying to work an hour each day. It’s hard to get started on it each weekday, especially since my daily schedule is never the same. However, I am getting daily Spanish exposure outside of my tech learning studio time through music and playing video games in Spanish. The video game I am playing most is Animal Crossing: New Horizons, which features a huge amount of casual dialogue and vocabulary. I feel like I’m learning a lot about conversations and phrasing by working through the dialogue of the characters. Originally I would start my game up in English and switch to Spanish later, but I’m now just playing the game in Spanish exclusively. The game features a letter-writing mechanic, so I also try to write most of my letters in Spanish as well. It’s a fun, short-form version of journaling.

The music I’m enjoying a lot right now is Natalia Lafourcade’s Musas albums. They’re wonderful albums; the music is beautiful and incredibly relaxing, perfect for listening to while making breakfast or reading on the porch. The albums are also great for listening as a beginner Spanish learner. On a more personal note, during the semester I usually sing as part of a choir, which of course has been cancelled for social distancing. I’m enjoying listening to the music, listening for the lyrics, then looking them up and learning and singing the songs. It’s not the same as practicing pronunciation in conversation, of course, but it’s been a lot of fun for me and I think good for learning. A favorite band of mine for a while now has been the very popular Café Tacuba, but their music is lyrically harder to work with as a beginner.

I’ve found that the TV activity isn’t as helpful as I thought since what it turns into is me trying to Google Translate words I don’t know every 30 seconds or so. (Club de Cuervos has been pretty interesting though, I’ll definitely continue it in the future.)

Now out of the original set of activities, the ones I find myself returning to most are: working through music and lyrics, journaling, speaking with Cosme on occasion, and most of all working on my Language Transfer course. These activities still cover the breadth of my original intent and are the ones I’ll be keeping up for the rest of the project.

I really enjoy the Language Transfer class, but I think I’ll save my thoughts on that for when I wrap it up. I’d like to set a rough goal of finishing the Language Transfer class by next week! Then I can focus on speaking to achieve my final goal, holding more confident and competent conversation in Spanish.

Project 3 Week 1/4: Getting started

GOAL: Try out new Spanish plans!

In theme with my usual reflections on productivity and planning, I’ve found that my method is harder to do than I thought. Given that we’re all working from home during the pandemic, I figured it would be a good opportunity to split up my 5-hour sessions into daily 1-hour sessions. This is challenging because my schedule is never consistent due to work expectations and it’s hard to make the time for my planned activities every day. I do get daily practice through playing Animal Crossing in Spanish, but I haven’t done my activities consistently every day. I’ve decided, then, to go back to doing a 5-hour session whenever it works best in my week, starting this week.

I also am deciding to not “test” myself through conversation each week, or do the “read aloud” exercise. It just doesn’t work too well. Weekly is too often to really see noticable results, and the “read aloud” exercise is hard to do without knowing if I’m right or wrong. Instead, I’m prioritizing my Language Transfer class, which will help me with speaking.

So far so good in all other accounts, though! After two projects about coding, it’s nice to work on something that doesn’t require extensive set-up. And while I’m teaching myself independently, I do have to admit that it’s helpful to have an expert on the subject to reach out to if I don’t understand something. Despite being an expert as a native speaker, he’s not an expert as a language instructor, so some questions (like specific grammar differences between Spanish and English) are easier to take to other resources. Still, talking with him about Spanish is fun and makes the learning process more enjoyable.

Project 2 Week 4/4: End and begin!

Goal: Wrap up, reflect, plan

Admittedly, did not get much farther in the course over the past day. But I feel like I have a solid foundation in NLP and I can easily wrap up this course in the future. I do plan to, as I really would like to apply it to a set of text data that I have access to at work. I’d be excited to get a better count of who reported using specific tools and techniques by lemmatizing the data. The data set is just large enough to be analyzed that way, and small enough to use more computationally dense approaches.

I realized that NLP is actually more understandable than I thought it would be. Once I got past the hurdle of understanding and using NLTK, I found that a lot of the data skills I’ve learned at the iSchool so far make NLP really easy to understand. To be entirely honest, it’s validating to see what I’ve learned over the past 2 years be applicable to new skills. This familiarity also allows me to take bits and pieces of the NLP process and apply those techniques in different ways to my own projects. Because now I know and understand the basics of NLP, I can either use that entire established process through or “mix and match” the toolkit functions I’ve learned.

The end of this project marks the end of my non-physical technologies. I learned the basics of JavaScript and NLP for the first and second projects. Both these projects required familiarizing myself with an entirely new skill, so I found that it was much harder than expected to get started with each. However, now that I’ve done the more difficult part of getting started with a huge new concept, I feel confident in my ability to keep up these skills as I move forward in my career. In a larger sense, I do feel much more confident in how long it takes to teach yourself a new skill. Turns out: takes a while! But, now I can move forward with continuing these skills or starting new ones with a better idea of how to plan for it.

So even though after 2 projects I’ve finally figured out how to get the most of these self-teaching opportunities, I’m flipping the script a little with my third project. It’s a “physical”-ish project; I’d like to get better at listening to and speaking Spanish. While I’ve been working on Spanish grammar and vocabulary for about 1-2 months, I’ve been finding that I’m not really progressing in my listening and speaking skills. I want to dedicate my efforts to practicing Spanish in ways that does not just help me learn the language, but also helps me practice its use.

There are three components I’m focusing on:

  • Listening
  • Constructing sentences
  • Speaking

The first major difference with this project is now that we’re quarantined, I’ve had to switch up my schedule. I’ve decided to take this opportunity to move from a 5-hour studio learning session to daily 1-hour practice sessions. This is much more suitable for language learning anyway, since daily exposure and repetition are important.

The second major difference is instead of using one course or project, I’m using multiple activities to practice these three components. The most important of my activities is to continue my Language Transfer course. Language Transfer is an entirely free language-learning resource that, for Spanish, is a series of 90 short audio lessons. I’m around chapter 60 or so now and I can’t recommend it enough; I’ve learned so much in such a short time and the lessons are engaging and interesting. The instructor teaches by asking you to construct and speak sentences using whatever grammar rule or vocabulary he just talked about. Previously, I’ve been either just listening (there’s a person who he teaches in the audio and I listen to her answers) or writing down my answers. I’d like to finish up the course and start always answering aloud, practicing both the speed of my answer and my pronunciation. So, Language Transfer will help with all three components. 

Each weekday I plan to listen to one or two Language Transfer lessons and do one other activity. I have activities planned for each day, as follows:

  • Thursday: Journal (constructing sentences)

I want to journal in Spanish to help practice constructing my own sentences. I’d like to read it aloud as I go too.

  • Friday: Music (listening)

I’m going to listen to music, try to write down what I hear, and check. This hopefully will help me better identify words and sounds.

  • Monday: TV (listening)

I’m going to watch a TV show in Spanish with Spanish closed-captioning (not dubs with subs, since they don’t always match), listening closely to the words and slowly trying to rely less on the subs.

  • Tuesday: Read aloud (speaking)

I’m less certain of this one, but I’d like to try reading simple stories written in English aloud in Spanish.

  • Wednesday: Test (all three)

I have the added benefit of being quarantined with a native Spanish speaker, Cosme. Each Wednesday, I’ll spend my hour trying to speak with him, and listening and writing about the feedback he gives me. This will be a helpful metric for my improvement and how I should switch up the activities.

Because I do need to expand my vocabulary outside of my daily tech studio hours, I’m going to be immersing myself in grammar and more vocab. The biggest help right now is that I’ve started playing Animal Crossing in Spanish. I plan on keeping this up throughout the month, so hopefully that will expose me to a lot of words and phrases. So far, Cosme has been helping me by answering questions I have about phrases and idioms that pop up in the game.

Project 2 Week ?/4: Post-break re-planning

GOAL: Doing as much of the course as I can!

Once again, I’ve hit a change of plans. This time it has nothing to do with my own overestimation of what I can accomplish! Instead, it’s due to my schedule changing rather dramatically since social distancing began. Since my classes are primarily asynchronous now, I’ve switched my hours to better suit my work needs, which means that I distributed my 5 tech learning studio hours over each weekday, one hour per day. There’s the added benefit of this format being very suitable for my third project. More on that in a different post! Here, I just want to talk about working on Project 2.

Long story short, I’m 50/50 on if I’ll finish the LinkedIn Learning course, and I likely won’t apply it to my project. I do plan on applying it sometime, though, just not within the scope of this project. For now, I’m doing as much of the course as I can.

I’m jumping back into the course after a 2 week break due to extended spring break. Trying to get back into learning a technology feels very similar to the struggle of getting started working on my personal projects, like some of my dashboards. It’s challenging to get back into the flow of what I was learning when so much of these lessons are dependent on what I was doing just before, in the same way that picking up personal projects means trying to jump back into a previous train of thought. What I have for this course that I don’t usually have, though, are my previous blog posts! Re-reading my posts was really helpful to remind me of the bigger NLP picture and where I was 2 weeks ago. This experience serves as a good motivator to start taking notes while working on personal projects. In fact, there are many areas of my personal professional development that I’d like to better document like this. Maybe keeping up this blog (or a similar one) for when I work on new dashboards would be good? Also, using Trello boards for individual projects could similarly help.

I worked through a couple chapters of the course and honestly, once I got going it was engaging. Plus, I figured out what the lambda part of the function is for by seeing it used a couple times (it’s just applying a function to all rows of a column of the dataset to output another list). I finished learning about lemmatizing and stemming and I’m already considering how I can apply these to both my personal projects and a work project. Lemmatizing seems well-suited to a sizeable but manageable amount of text data, which applies to 2 current projects. In one, I manually wrote code to look for variations on specific words. Now I know I can simplify that code and easily apply it broadly using what I learned in just one of the chapters.

Tomorrow, I’ll wrap up what I can of the course and reflect on Project 1 and Project 2.

Project 2 Week 2/4: Processing that language naturally!

GOAL: Continue the LinkedIn Learning course for NLP!

My plan is still as follows:

Week 1: Start the LinkedIn Learning NLP course

Week 2: Continue/finish the NLP course

Week 3: Finish NLP course if needed and plan how to incorporate NLP into my script

Week 4: Improve my script

(Except due to having to miss class, I’m moving my weeks down, but they’ll still be done in these 4 chunks.)

I’m currently working on Week 2, continue/finish the NLP course. I’ve finally got a good flow for going through these and doing the exercises, so this week I’ll just document what goes well and what doesn’t.

I’ve noticed immediately that it’s probably going to take longer than I thought to finish the course. I have about 3 hrs 40 minutes left on my course, but it takes me about twice as long to do each lessons because I’m starting and stopping it to actually do the exercise. But I am watching at 1.5x speed, and I might do this less in later videos, but I do want to follow along to retain as much as possible. Therefore, it might take all of Week 3 to finish the course, so I only have Week 4 to implement it in my script. That should be plenty of time, since I would probably be adding a singular small thing to my script for the purposes of this project.

An added bonus of this course I hadn’t noticed before is the modeling of a workflow for a NLP project. For example, Chapter 1 Exercise 4 takes you through important steps in understanding your data set. I’m learning process as well as the technical skills, so that’s nice for when I want to apply these skills to my own work. They also outline the big-picture steps for NLP:

  1. Collect raw text
  2. Tokenize
  3. Clean text
  4. Vectorize
  5. Machine learning algorithm

A huge RegEx tip I didn’t know is that capitalizing flips what is being searched for. So, if w looks for a word/letter characters, capital W looks for non-word/letter characters. Also, findall() and split() are the main functions for tokenizing.

As the course goes on, there are more complicated functions being created. It’s becoming a little harder for me to follow, but it’s definitely still understandable and relatively easy to understand. I’ve also started piecing together parts of complicated functions just by seeing it used a couple of times. Much like inferring vocab and grammar by listening to a language you’re learning, I’m inferring things like how lambda works in Python.

I also am learning a lot of general Python skills that will make data management skills in Python better. I’m learning some good practices that I’m excited to apply when I revise my data scraping script.

In regards to using a web-hosted Jupyter notebook instead of a local one, I’ve only encountered one hang up where I had to use a downloader for a NLTK package. But otherwise that’s been going great! And it’s nice to have all these notebooks in my Google Drive.

Project 2 Week 1/4: Time to process some language

GOAL: Start the LinkedIn Learning course for NLP!

Oops, I’m doing a completely different thing! It’s natural language processing time. I wanted to work on my TAZ project, and after talking it through I realized introducing NLP into my scraping will help my data set be much more reliable!

As I learned last project, LinkedIn Learning is really helpful for starting a brand new technology. That extra level of guidance is important for something I’ve never worked on before. While I’ve used Python for the TAZ script, I want to improve and supplement it. NLP is new enough for me that I think I need course guidance before I jump in.

My plan is as follows:

Week 1: Start the LinkedIn Learning NLP course

Week 2: Continue/finish the NLP course

Week 3: Finish NLP course if needed and plan how to incorporate NLP into my script

Week 4: Improve my script

I’ve spent a while today clearing out my computer to make room for the downloads the course uses and then installing the correct version of Python for NLTK. I had some difficulties with running locally, so I decided to run through a notebook on Google Colab instead; I just had to make sure that I was importing the exercise files at the start of each notebook. It’s been working really well so far! Hoping I don’t run into any difficulties there.

Otherwise, I’m just going through the course now. I’m also learning more about pandas by working through this, which is nice. So far I have the exact amount of previous Python knowledge needed for this course. It’s at a good pace for my skill level and I feel like I’m understanding everything being said.

Project 1 Week 4/4: How it went

GOAL: Keep on going with the course!

Today I’m continuing to work on my LinkedIn Learning course on JavaScript. I don’t think I’ll get to the end, but I’d like to get as far as possible so I can finish it on my own time later. While some of this course does go over things I already know, it’s much more suited to someone who has at least a little object-oriented programming experience than other sources. LinkedIn Learning is great for my level: not a complete beginner, but needs a little more guidance than someone very experienced.

I’m glad that I finally found an effective learning method for me! And now that I know this, I hope the next two projects will go much more smoothly. The two main takeaways of my learning experience this project was (1) figuring out exactly what you can accomplish in 4 5-hour classes and (2) how to effectively design a self-learning project.

1) What I can accomplish in 4 5-hour classes:

Going into the project, I assumed that I could learn an entire new skill in each 5 hour block. My original plan, looking back, required that I make a major learning accomplishment in each class. My first week plan was to learn JavaScript in a day, learn the major components of D3 in a day, and then build an entire visualization in a day. That does seem a little unreasonable in retrospect. 5 hours is a good chunk of time, but it’s not enough time to learn the basics of an entire programming language, even with prior experience.

Understanding the actual length of an hour has been a common theme in my classes and work recently. I’m currently completing my capstone, and my field supervisor has given me great advice for goal-setting. I tend to be incredibly ambitious in what I can accomplish in a certain amount of time. And while I can often accomplish something close to that goal usually, the end product is not as good as I hope. In an effort to be optimistic, I over-estimate how fast I can accomplish things. On my supervisor’s recommendation, I’ve learned that if I set more attainable goals with optional “stretch goals” I will accomplish my necessary goals and still feel like I’m being optimistic with the stretch goals. Additionally, my work has been of better quality, since I give myself more time.

2) How to effectively design a self-learning project:

In terms of these self-learning projects, I realized that a lot more time than I thought needed to be dedicated to understanding the scope of the project and how the technology works. I started this without a good understanding of how intensive D3 is. While I did find some great advice and resources from experts, it certainly was surprising to realize how little I knew once I tried to start actually building something. In the future, I know to dedicate time to just familiarizing myself with the technology, what I need to know to accomplish what I want to make, and what resources I need to do that.

I also realized that I really need guidance in the beginning stages of learning a skill. The last skill I taught myself was how to scrape data from websites, which I did entirely by having a project goal and just jumping in. I thought I could do something similar with this project, however, the difference between that project and this one was that I already knew Python. Trying to jump into this with no JavaScript experience was too much to take on. So, I know now that for these projects the best and most efficient route is to follow along already designed courses instead of crafting an entire project.

So where did I end up?

I did half a LinkedIn Learning course! But also, I learned about how D3 works, how to better teach myself a skill in 20 hours, what my learning style is dependent on what kind of technology I’m taking on, and how to properly pace my time. I also understand browser consoles and multiple text editors and IDEs a lot better.

I also know now that D3 might not be the best project to take on for Project 2, as I originally intended. Now that I know how much time I’d need to get my skills up to the level needed for D3, I don’t think 20 hours is enough. I would probably use 10 hours to finish my LinkedIn Learning course and finish learning how to build web apps, and then another 10 to refine my skills to the point where I can start using D3 in a productive way.

I think 20 hours might be better suited to gaining familiarity with AWS, especially since that’s most relevant to me in the immediate future. While D3 is something I really want to learn for my career, a lot of job postings currently ask for some AWS product knowledge, so that might be immediately more beneficial while I’m job searching. So as of right now, AWS certification is going to be my second project.

So, all said and done, now I know some JavaScript and how to teach myself a programming language. My three main takeaways for the next projects are:

  1. Set attainable goals for the time period
  2. Use courses if learning a brand new skill, rely on a project if refining/expanding a known skill
  3. LinkedIn Learning is a better resource than others I’ve tried

Project 1 Week 3/4: Finally Learning

GOAL: Just do some JavaScript, for real this time.

I’m feeling much better about my goal to just start with building a very simple web app, and then maybe a viz for the next project!

Now that I have the lay of the land, and have learned a lot more about D3 and its scope, I can charge forward with Shirley Wu’s advice to start small with introductory lessons.

Codecademy felt a little too introductory and tedious, so I found a step by step guide to building a very simple web app.

I immediately ran into trouble with the web app guide, though, since I didn’t understand the first step. So, I went to LinkedIn Learning to get more introductory materials. I found this intro to tools, which I wish I’d seen earlier on. I’m all set up with Visual Studio, but will switch to using a browser now that I know I can. This introductory course is much better than Codecademy.

So, I’ve rerouted once again and now I feel like I have finally found a resource that fits my needs and skill level. I’m going to just go through the LinkedIn Learning course for JavaScript! And I’ll get a certification on my profile out of it, which is nice.

I’ve found that LinkedIn Learning is much better because you get more practical application value upfront, so you feel like you’re actually learning to build something much faster. I can easily skip past sections I already feel comfortable with, like data types.

Essentially, I took the past 2 weeks to figure out the scope of D3.js, how to best teach myself JavaScript, and a variety of ways it works. I also found a D3 course that I think will be best for my next project!