Ruby Newbie

Posted by Amber Blahnik on June 22, 2017

Well, it’s official; this week marks the end of my first 3 weeks in the Online Web Developer Program at Flatiron School. So far things have been going pretty darn good.

I started with a solid pace in the Intro to Ruby course, got stuck halfway through on some confusing labs, but I solved them and learned a lot along the way! And that’s what matters.

You see, I’m one of those people who likes to wait to ask for help until I absolutely need it. I feel like I learn best by trying to solve the problem on my own first. I’ve always been like that.

In high school, I was super shy and quiet, and I preferred to work alone. I took a lot of work home because it was easier for me to think. Other people were exhausting to me.

image

College was better with my Graphic Design program. But the teachers were often too busy “holding hands” with the less-technical students to help me. I excelled without much assistance from them and that paved the way for me to become mostly self-taught over the years.

Ok now, less about me and more about my adventures in Ruby

Ruby is like easy JavaScript.

As I work through the course, I can’t help but think: Ruby is like easy JavaScript. I know some core JS concepts and syntax from my “I’m gonna teach myself JavaScript” days, like variables, arrays, booleans, if/else statements, etc.

Ruby draws a lot of parallels with JavaScript in that way, yet it’s a lot easier to write and read. Ruby was made to be readable (therefore easier to write) and you can see that very clearly once you start learning it.

The philosophy of Ruby is about making programmers happy. It’s natural yet not simple; simple on the outside, complex on the inside, like the human body. A very Zen concept. And the MINSWAN mantra “Matz is nice, so we are nice” (about Ruby’s creator) really resonated with me. I knew I’d end up loving it.

image

I really liked the approach of learning how to read Ruby errors FIRST because I feel like a lot of programmers don’t focus on fixing errors until later, but a good programmer should think about the past (what we need to solve), present (how we’re going to solve it), and future (what can go wrong) at the same time.

A good programmer should think about the past, present, and future at the same time.

Ruby seems to be designed to make you think like that (at least insofar as following the Learn.co curriculum). The fact that it is standard to use the RSpec and spec files as a means to test your work before you even write it is smart to me, and I am enjoying the TDD (test driven development) approach to coding.

In the first 2 weeks, each Ruby lab I solved made me feel like a total badass. I plowed through one after the other and felt really good about my progress. Every day I was like: I got it… I get it… I got this!

image

It wasn’t until I got to the more advanced Tic Tac Toe labs that I started to lose some steam. I kept getting frustrated at myself that I wasn’t solving the labs as fast as I was before. But I tend to be too hard on myself, and I know that this is how the pacing of learning goes.

Being a perfectionist (and a little OCD at times), I felt like I was locked into following through with completing the Intro to Ruby course before I moved onto anything else.

Then it came to me, I was being too black and white. This program is about learning at your own pace so why shouldn’t I jump around a little!

So I did just that; moved onto the HTML and CSS course which I knew would be cake because I already know HTML and CSS like the back of my hand. I paused on the “Setting Up a New Site” part since it got into Git version control, then I moved onto the Git and GitHub course and learned all that like BOOSH!

image

Learning Git and GitHub has been on my “To Do” list for YEARS. I understood its purpose but hadn’t really delved into the terminology before now and I was scared to death of the Command Line. After knocking that course out I felt like I had accomplished something huge, and it was SO easy to learn!

So I think my new strategy is going to be to go back to the Intro to Ruby course and continue my work there, but if I get stuck for a while or complete a really frustrating lab, then I will jump around back to HTML and CSS, crank out a few lessons/labs and feel good about myself again.

image