Learning new skills

Last semester I took an introduction to logic circuits with Dr. Jeff Ashley. Dr. Ashley was engaging and excited about his subject matter, all things that make being a student an easier experience. However, as a non-traditional student, one of the things he said (repeatedly too) was very important to me.

Incremental learning.

He reiterated during the semester that you need to do a little bit every day or so in order to learn the material, keep skills sharp, and fine tune your understanding. In his end of the semester email he suggested specific things that students could do in order to be successful in the semesters and years ahead.

It’s true.

The first time I went to college, I was attempting a biochemistry, Japanese studies double major. Each summer I worked in the college library system, and while it paid the bills and was work I loved, it was also a sign that I was short changing myself. By being risk averse I did not treat my summer as an opportunity to continue learning. The summer between my sophomore and junior years most of the students went to Japan. It showed, and it was built into the teachers’ expectations of the students. Myself and the other student who didn’t make the trip did not compare favorably to our peers.

LifelongLearningI find the fall semester the easier semester, because I now use that summer break to refine skills on Codecademy, pre-study for fall courses on Coursera, or try something new.

What makes this most interesting to me is that it is a practice used by top professionals in the open source tech industry. In this Dice article, around 4500 people were surveyed about what makes open source interesting and how they maintain and improve their skills. The types of things they are doing closely match the model of incremental learning championed by Dr. Ashley and enforced in the college learning model.

So, learn something new today. It is a pathway to excitement, job growth (for job-related learning), stability, and happiness.

A long way for pizza

Sometimes I think it is funny where life has taken me. I am a New Englander by nature (visiting Maine and Massachusetts made that abundantly clear), and with that can come stereotypes. People think of Bostonians as cold, mean, taciturn. These are not complimentary terms.

New England may be getting a bad rap out there for poor attitude. However, people in Appalachia are constantly taunted with these negative stereotypes that are largely unfounded. Living in Kentucky, the local NPR station has a lot of diverse programming, including the show Inside Appalachia. Last night on my way home, I was listening to a program about outsider photographers and Appalachian stereotypes. This made me think about my own experiences in Appalachia.

In my sociology class this past term, we were charged with helping Elkhorn City, a small community in Eastern Kentucky. The City already has a master plan and a city plan, which are focused on utilizing the natural beauty of the Breaks Interstate Park and the Russell Fork River to rebuild Elkhorn City as an eco-tourism destination. We went to Elkhorn City to interview residents as part of the Elkhorn City River Oral History Collection and to work on additional projects chosen by the local leaders.

Art Project at Elkhorn City
Art Project at Elkhorn City

On a cold day in November, we traveled the three hours from Lexington to Elkhorn City. The main draw to Elkhorn City comes multiple times a year as kayakers and other outdoor enthusiasts descend upon the Russell Fork to enjoy Class III to VI rapids. Now, I’m not a kayaker, and I’m enough of a geek to not really be much of an outdoor enthusiast. However, the region even in November was beautiful enough to want to visit again during their in season.

Due to sickness, we missed a chance to see a play at the Artists Collaborative Theater, but did make it next door to Time Out Pizza. Now, I love theater. Back in Boston, I did a show a year with the MIT Gilbert & Sullivan Players. I really wish I could have seen a show. They look like they have diverse productions throughout the year. Even when theater isn’t in the cards, I love to eat. Time Out Pizza has everything you would expect from a small town pizza place, including enough seating to host a passel of kids from a school event. The pizza we enjoyed was a nice crispy thin crust with enough garlic in the sauce to feel like you were eating well. My friends and I also tried the mozzarella sticks (which are a bit harder to find in Lexington than in the Boston-area).

The best thing though was their milk shakes. I have a huge sweet tooth, so it was great to see such a huge selection of milk shakes. I got a peanut butter milk shake, which was a great salty-sweet combination (they also offered Reese’s milk shake, which was all sweet). The people who worked at Time Out Pizza were friendly, and helpful.

This was matched the following day by our trip to the Gold Ring Diner. Now, as a vegetarian it is always a bit more challenging to find things to eat, but Gold Ring had these wonderful fluffy pancakes that I enjoyed while my friends were eating biscuits and gravy (which was undoubtedly wonderful, but not vegetarian). Everyone we spoke to there was full of grace and humor, and were genuinely nice people. I also might have drank nearly an entire pot of coffee on my own.

Listening to the NPR article though, it made me think hard about our role as a class in this community. We are invited in by the town, but we as part of our course projects act as outsiders, writing consultation papers suggesting improvements or courses of action to take in order to help them see their vision. Are we doing these tasks from a place of respect and understanding, or are we like a foreigner trying to remake their community to match our own ideals? Thinking about my final paper, I would have to say it is a little bit of both.

The 1 is implied

Due to my misspent youth (aka, college the first time around), I am currently taking Calculus III. Now, the last time I took calculus at all is about 2 decades ago, so I have been treating this class like the job it really is. The course started out with vectors and moved to partial derivatives and their applications. This is all fine, but now I am in the midst of double and triple integrals and my brain… well, let’s just say that Swiss cheese is not as holey as my brain feels right about now.

Derivatives are relatively easy and intuitive. They mostly use symbols and letters that through algebra and trigonometry we’ve come to understand. But integration…

double and triple integrals
The attack of the integrals

It feels like a completely different language. Now, one of my classmates had a good question the other day. What are we integrating? Most of the time you have an equation there, so it looks like x2dx. Well, when there is nothing there, the answer is easy but not as obvious. We are integrating the constant: 1. So, the first integral is easy – just plug in the upper bound and subtract out the lower bound.

What makes this interesting to me is it is an excellent example of an instructor being too close to the material sometimes to realize that something isn’t obvious. Over 2 decades ago, I was in a precalculus class in high school where every single one of us failed the first test in differentiation. Why? All of us had passed all of the homework assignments. We had learned how to differentiate without understanding why we were doing it.

It was the power rule. Take the exponent, put it in front of the variable and then subtract 1 from the power.

nxn-1

And that was what we did. All of our homework questions and classroom examples had been the simplest case: x5 The test, however, was full of things like 5x5, and we had missed that simple logical step. All of our previous examples involved multiplying n whether it be 1 or 2 or 5 or another variable with the number 1 and we just hadn’t gotten it.

The implied 1 is true for just about everything. I spend my days helping people set up databases or configure their software, and I have to remind myself what the steps are – not because I have forgotten them, but because I know them so well and they feel so obvious that it is easy to skip over them when I am trying to describe to someone how to do a process.

The Problem Statement

Like my experience in Japanese, programming languages benefit from practice. My last problem statement was to implement a text editor using a linked list. Welcome to practice with pointers.

The problem statement included this information:

If the letter I is entered with a number n following it, display a prompt along with the line number n, after user types a line of text, then insert the text at line n, and the original text at line n becomes line n+1. If n is larger than the total number of the current lines displayed from the editor, then you need insert a few lines of empty text in order to insert the user input text at line n.

Now, don’t ask me how I managed to flub a simple reading assignment, but I took this to mean that I needed to implement two different style insert functions where the base case was that someone just typed a line and pressed enter and the text should be inserted at the end. The second case was the case listed above: the user entered I and a line number and the text was inserted at an appropriate spot in the code. It is here where more practice would have helped.

I implemented this by prompting the user to select their command, which then initiated the subroutine (so press I and enter and get prompted for a line number). It took until a lab session about 2 weeks ago when I realized that I could have just tested the string and not forced my users to be quite so explicit. It means more error handling for me possibly, but a better experience for the user.

So, I’ll be rewriting the code sometime this week to change how I’m implementing my solution. Anyone else have an aha moment that results in rewriting the entire program?

Should I do the rewrite before or after I do the test cases?