Java Script or Ruby? This is a conundrum.
Earlier this week, I was convinced that Ruby was a good place for me to start in my quest to learn how to code. This is based on people telling me that “it’s easy”, and reading similar things. I had spent some time tinkering with a “15-minute” Ruby tutorial, and felt like I kind of understood a few basic concepts and vocabulary (very basic!!)
A conversation that I had a my first “Learn to Code” Meetup made me question my course of action. I more knowledgeable person where I should start, and he recommended Java Script. He said it was a pretty universal and popular programming language to know about, and recommended Codecademy‘s tutorial as a good place to start. I told him that Ruby had been recommended because it was “easy”, and he offered a really interesting challenge to this logic.
Ruby, he explained, uses a lot of commands that are written like English, which is why people like it and think it’s easy. (Yes, that sounds good to me…) Java Script uses a lot more symbols and characters that look “kind of weird”. Because of this, you are learning a little bit more about the fundamentals of coding. Ruby might be a little easier to learn, but beginners might understand a little less about what they are actually doing. Thus, it could be harder to get good at, and harder to apply to other languages.
This intrigued me! I like to know fundamentals and to understand the “why” in things, and I couldn’t help but feel a pang of worry that my journey with coding could have a similar outcome to my journey with math. I have never been crazy about math. It always seemed hard and tedious. I remember learning Algebra in high school. For a while, I understood how to do it and why I was doing it. Then, at a certain point, I stopped understanding the “why”. I can remember the details of the high school classroom, and even where I was sitting when I stopped understanding, but I have no idea what type of problem we were on. I could still figure out how to DO what the course was asking me to do and I did ok (but not great). I felt disengaged because I like to know the point of what I’m doing, and be connected to it emotionally. It got really boring and stayed that way. I could still memorize how to do the problems, but they did not seem to have any real-world application, so my interest completely faded. I took as much math in high school as I had to, and as soon as the requirements were met, I started taking more art and other “fun” classes.
What a missed opportunity! Every once in a while, situations pop up in my life now when algebra is necessary (modifying recipes, for example). I always wish that I had known the right questions to ask in high school so I would retain some type of understanding, but at least Google tends to work well in those moments. However, I don’t want the same thing to happen with coding! I want to know how to do it and want to understand the “why” as much as the “how”.
So what do I do? Java Script or Ruby? Which advice do I take? I don’t want to choose the wrong path, and end up bored and disengaged, which is a realistic possibility with both languages, but which one is better?
I’ve analyzed this quite a bit…probably too much. I talked with a teacher friend tonight, and presented this quandary. She reminded me of a TED talk that I love by Kristen Wheeler on finding your native genius. This talk has nothing to do with either coding or teaching. Rather, it speaks to motivation and potential. Kristen’s makes the point that if you start learning about something that you are already good at or naturally feels “easy”, then you flourish. If you start learning about something that is naturally hard for you, it’s not impossible but the process will be slower and clunkier.
Yes! This perspective is what I need. I already think coding is hard, so I’m setting myself on a fairly treacherous and risky path regardless. However, I need to start in the place that feels easier and more natural, because that will set me on a more manageable path with more potential for success.
I can’t help but relate this to another profound personal experience…skiing. I LOVE skiing. I started when I was 16, and was hooked from the very beginning. I moved to Colorado for it, and have not looked back. My quest for steeper slopes and more powder will never end. About 10 years ago I decided that it would be fun to be able to snowboard too, so I started learning. Well…it took me a LONG time! Here’s some common ski-culture knowledge:
- Skiing is easier to learn, but harder to get good at.
- Snowboarding is harder to learn, but easier to get good at.
Well…NOT TRUE for me. I could execute the fundamental turns necessary to snowboard, and could transition from heel side to toe side and vice versa after a couple years of working on it. After learning these fundamentals, I was psyched to get good fast as everyone said I should. After 9 years of fiddling on and off, I finally got to a place last year where I felt competent on a snowboard. I could get down most any slope, but never really developed an ease or much style.
Then came the fateful day when I caught an edge, fell, broke my arm, and needed surgery to insert a titanium plate and several screws. So one bionic arm later, I finally accepted that skiing was just my native genius and I didn’t NEED to do both. Yes, I do take comfort in knowing that I could get on a snowboard and ride down a mountain, but I never really have a desire to do it again. I belong on skiis, even though skiing is “harder” in some respects.
I need to be smarter in my quest to learn to code. I need to figure out which programming language is my “skiing”.
Further, my natural ability to ski did give me a lot of knowledge to work with when I was learning to snowboard. Even though the two disciplines are completely different, I already knew what it was like to go flying down a mountain with your feet strapped to something. I already knew how to read the mountain and judge slopes and terrain. I hope whichever programming language I choose will provide me some kind of knowledge that I will be able to apply if I should decide to learn another language down the road (and hopefully I won’t need to acquire any more bionic body parts to figure this out!)
I see now that I do not need to figure out which programming language is fundamentally easier or generally better for beginners. Rather, I need to figure out which programming language feels easier for me. This gives me hope! I approached this project with the notion that coding is just hard. Now I can see that some languages are harder than others. This might sound silly and obvious, but does wonders for my confidence. This notion inserts the word “easy” into my own vocabulary about programming, rather than feeling like I have to rely on other people’s definition of “easy” and “hard”.
Easy, right? We will see!