Progress update #1

Jason Slusarchuk
Ambitions of a Recovering Salesman

--

Well, it’s official… I’m now 100% unemployed! My last ‘official’ day with my previous company was on Monday. It’s still a bit unsettling to say those words: “I’m… unemployed.” But, not getting a paycheque certainly has a way of focusing one’s attention on moving forward. So, I got started on my program first thing Tuesday morning. No time to waste!

Overall, I think I had a really productive week and feel as though I’m settling well into the new routine.

I used to get up at 5:10am t0 drive my husband and I into work. You might think it would be tempting to sleep in a bit longer, now that I technically have the opportunity to do so, but I actually enjoy keeping my old routine intact. Since I’m not required to attend physical classes, and I have to work through the courseware at my own pace, I think it’ll be important to preserve as many of my old positive work habits as possible. So, I’m still getting up at 5:10am, but now it’s to drive my husband to the train station instead.

Once I get back from dropping him off, I make some tea, water the garden, try to do a little meditation and then I’m at my laptop working by no later than 7:00am.

One thing I’ve noticed already is that I’m not taking as many breaks as I used to at work. I think this is a good and bad thing. Good in that it’s a sign that I’m really engaged in my work, but bad because I think it’s important to take breaks throughout the day to let your mind wander or to just look at something other than a computer screen for a bit. At my previous job I would usually go for a one hour walk each day around lunch. Over the coming week, I’m going to make sure I get back into that routine.

So, what have I been able to get done in the program so far? Here are a few highlights from my past week:

Git & GitHub

I worked through the LaunchSchool Guide to Git and GitHub and, once again, feel pretty comfortable with the basics of creating Git repositories, committing changes and pushing updates from my local repository to GitHub. I’ve actually worked through these exercises in the past, but after a couple years off, it’s pretty easy to forget exactly how the commands work. Fortunately, it all came back pretty quickly.

If you’d like to visit my GitHub profile, there’s not a lot of recent work there, but I do have some older projects I worked on — some of which I’ll be doing over again soon (as I did do some of the LaunchSchool program in the past).

Installing Ruby & choosing a code editor

Installing Ruby turned out to be pretty easy. For one, it comes already installed on new MacBooks. So technically, I already had it ready to go.

However, LaunchSchool recommended that I re-download the latest version of Ruby as there can apparently be some permission issues with the version of Ruby that ships on Macs. Evidently, there can be problems upgrading Ruby and performing other tasks related to development, so I just went ahead and downloaded the latest version as suggested. I used Homebrew, a tool that makes it easy to download lots of different applications to your computer from the command line. Once you have Homebrew installed, from the command line just type brew install ruby, hit return and you’re set!

Choosing a code editor was pretty easy too. Basically, a code editor is just a word editor made for programming. It’ll highlight important words in your code (depending on which language you’re programming in) and makes it easy to keep your files organized. There are lots out there, but two popular ones that were suggested to me were Sublime and Atom. I chose Atom because I liked the aesthetics more and because it’s open source.

Codecademy: Ruby track

The bulk of my week was spent working on two different projects. The first was completing the Ruby track at Codecademy. LaunchSchool wants you to come to the program prepared with some knowledge of how to code in Ruby, so they recommend this course as a good intro.

I completed up to the Object Oriented programming courses (we were not required to complete those). In general, I thought the course was easy to work through and did indeed provide a good introduction to Ruby. It’s also nice that they have a code editor built right into the website so there’s no need to download a code editor or fuss with files. You just jump right in.

Most of what was covered was a refresher for me, but I did quite enjoy the track on Ruby Procs, Blocks and Lambdas. Blocks I was somewhat familiar with from coding in Ruby previously, but I didn’t really know exactly what they were. Procs and Lambdas I had heard of, but new nothing at all about. Turns out they’re pretty simple concepts, at a high level. A block is, literally, just a block of code. Any code. And Procs and Lambdas are essentially just variables that can store a block of code. That’s it!

Learn to Program

The second project was a bit more involved. It required that we read through the book ‘Learn to Program’ by Chris Pine, and complete all of the exercises provided. This book is primarily geared towards programmers who are brand new to Ruby, so once again, much of it was refresher for me. However, there were a couple of challenging exercises in there which really made my think. Also, the book introduces you to the concept of recursion. This took me a solid couple of days to wrap my mind around and I’m sure it’ll take much more time before I’m able to really comprehend it all and take full advantage of its power.

Basically, recursion is just a means for looping through a piece of code over and over again until a specific condition is met. If you’re not a programmer, it’s a bit tricky to explain why that would be a challenging concept. Suffice it to say that when you first encounter recursion in code it can feel a lot like you’re mind is trapped in a fun house mirror or some kind of seriously mind-bending, Inception-like simulation.

Something that helped me work through the concept was reading through a bunch of different examples, perspectives and explanations, from different programmers, of what recursion is and how it works is programming. Sometimes you just need to hear something explained five different ways before it makes sense to you, and that was definitely the case for me here.

I’m starting to feel more confident with the idea now, and once I get a bit more practice with it, I’ll do a post with my own take on how to learning recursion with some specific, step-by-step instructions. Stay tuned!

And that’s about it for my first real week at it!

Going into next week I’ve got a few more basic programming exercises to work through and then it’ll be on to starting the first core track, ‘Programming and Back-end Development’. Here’s a preview of what will be covered in that track from the course description:

“The courses in this phase will provide you with a solid foundation in general programming and problem solving with Ruby, and teach you modern web application development from the ground up. After completing this phase, you should have a solid understanding of how to break down problems and express your solution and ideas in code. You’ll also be exposed to server-side web application development and be comfortable working with stateless server-side code. Finally, you’ll fully understand the protocol underlying web development, HTTP, and how to work with relational databases and SQL.”

Exciting stuff, right?!

Well, that’s it for now. If you have any questions or words of support, I’m always happy to connect with you in the comments below.

Until next time, happy coding!

--

--