Thursday, April 24, 2014

Things Just Got Real (Expensive)

It became clear, when I was ready to start putting some serious stuff on my laptop so I could actually *do* something, that my old macbook was going to be a problem. When you beach ball while typing an email, it's a bad sign. It was at this point that my amazing partner told me that he was planning to get me a new laptop for Mother's Day but maybe we should get it now so I don't have to suffer for the next couple weeks thereby risking frustration and discouragement. This definitely makes up for the time I got a tv antenna for Mother's Day, by the way. I'm now the proud owner of a shiny new MacBook Pro.

I'm currently working through the Rails book. I had a list of things to get on my machine now that we've migrated my old machine over. Over the last day or so I've installed Ruby, Rails, a JavaScript interpreter, and I'm figuring out what I already have or need as far as a database. I'll be honest, I'm not entirely sure what I'm doing yet. This is, of course, a dual lesson where I've also been learning about yak shaving. Between the new laptop set up and installations (oh, and my job), I've had this thing for three days and I've only been able to do a few basic things with it. I've been familiar with the frustration of yak shaving, but this is my first personal experience. It does indeed suck.

I also have a couple books arriving this week. It may be a bit luddite-ish of me, but I often prefer hard copies of books. I've been reading the SICP as much as possible, squinting at my phone, but I'm anxiously awaiting my own copy. I ordered Chris Pine's Learn to Program as well. I have two or three more books from my list that I'll be ordering shortly as budgets and reading time allow. I've been looking for a balance of tutorial heavy books (for home, coffee shop study days) and reading heavy books (for bus rides, work breaks, etc) as I have a fair amount of reading time during which I don't have access to my laptop.

As of late Tuesday night I have my ticket (and the time off at work) for Clojure Bridge coming up May 16th and 17th! I plan on going to the prep night on the 7th as well. So things are moving along. Since my partner is in Taiwan this week, I'm largely left on my own to figure out what needs to be installed and how I'm supposed to use it. I find this to be an advantage as I believe it would be far too easy to fall back on his expertise. My goal is to head into Closure Bridge knowing a little something.

I learned of an opportunity to attend a Rails Bridge in Madison, WI this summer as well. I'm tentatively planing to be there if we can work out the logistics.


Wednesday, April 16, 2014

Here We Go: Where the Hell I'm Starting

As I started playing with several of the suggestions I received, I believe I have settled into my focus for the next few weeks. I went through Try Ruby and Why's Poignant Guide which made sense to me, but demonstrated a need to get more accustomed to the basic terminology and gain a deeper understanding of the theories and principles behind programming in general. It's a "language" that's not completely foreign to me, but it's as if I'm only understanding every third or forth word.

I've started reading Structure and Interpretation of Computer Programs for that missing background. It has been immediately appealing to me. I enjoy the writing style, the metaphors, and the philosophical undertones. I will be picking up a hard copy of the book as the only suitable device I have for reading ebooks is frequently wrestled away by a toddler. I also picked up Agile Web Development with Rails 4 to work through at the same time. It was recommended by several people and I was able to locate it locally. I was pleased to read in the introduction a paragraph that was very similar to my spiel given to non-tech friends and family explaining JRuby. I'm looking forward to building my library over the next few weeks as there have been more good suggestions. I have updated my initial post to include these new options.

The main challenge so far has most definitely been time. I figured out that I'm going to have to physically leave the house, in most cases, to make any kind of progress. This is how things went when I went back to school to finish my degree when my oldest was a toddler, so at least I know it works for me. I feel like I need larger chunks of time to immerse myself but I'm only getting 5-15 minute snippets. We are making adjustments to accommodate more quality study time. Overall, I'm very excited to get my hands dirty, to start playing with the tutorials, and applying the things I'm reading about even in the simplest of ways. I feel like this is how I learn the best.

I didn't make it to Minnebar last weekend as my wait list number didn't come up and I didn't feel comfortable signing up to do a lightning talk yet, but I'm still looking forward to the upcoming Clojure Bridge (I'm told sign up opens very soon).


Friday, April 11, 2014

Learning to Program: Where the Hell Do I Start?

Updates in italics

I've been having one of those moments where everything in my life has seemed to shift or in some cases, change drastically. I've been a part of the tech community in a social or supportive capacity for many years. I've never taken on any technical projects. My background is in the humanities with several years of political volunteer work followed by non-partisan civic volunteer work. I'm ending a 14 year run as an at home mom with a new job, which I'm very thankful for, but it doesn't provide the kind of intellectual challenge that I feel like I've been missing. So it's time for a new project. I'm about to learn how to program.

I've been familiar with Rails Bridge which seems like a great place for me to start. I've just missed a local event, but thanks to Twitter I have many great options to try out. I'm going to compile them right here for my own reference. I'm excited to see what will and what won't work for me.

As I collected suggestions on where to start, in became clear that they were falling in a few categories. As a very basic opener, I started at Try Ruby and I'm reading Why's (Poignant) Guide to Ruby as they were the very first suggestions from my partner who knows a thing or two about such things.

Try Ruby
Developing iOS Apps
Lua Missions

Clojure Bridge (locally:
Rails Bridge
Dev Bootcamp

Academic/Basic Skills
Structure and Interpretation of Computer Programs
Khan Academy
MIT Open Courseware

Stack Overflow
Reddit (/r/learnprogramming) 

Apple Xcode

Reading Material
Why's (Poignant) Guide to Ruby
No Bullshit Guide to Math and Physics
Learn Python the Hard Way
Learn to Program, Second Edition (The Facets of Ruby Series)
Land of Lisp
Learn You a Haskell for Great Good
Beginning Ruby
The Well-Grounded Rubyist
Programming Ruby: The Pragmatic Programmers' Guide
Starting to Learn Computer Programming with Rebol
C Programming Language

Other Possible Starter Languages
Wolfram Language
Julia Language

I was directed to another blog post (108 Ways to Learn to Code) of a similar nature written by someone who is already in the field. It provides better descriptions which come from experience that I don't yet have. Another helpful blog post: "So, you think you want to be a web developer?" In the context of this post I'm most definitely a beginner, but I'm on this path for the challenge, not necessarily a new career path. I want to have fun, I want to enjoy it, I want it to be hard. If a new career path is where this leads, that's wonderful, but I have no delusions of grandeur (at least not when it comes to programming). 

I think the best approach for me will be to brush up on some basic skills and concepts while playing with something like Scratch in hopes of applying some of those skills while learning them. I prefer to jump right in, even if it's a simple or slow start. I realize I'm starting at an elementary level (my oldest son played with Scratch a couple years ago in a kids programming class), but that's where I am.

Locally, I'm hoping to attend Minnebar over the weekend and next month's Clojure Bridge. I believe it will be valuable to seek out a peer group. I know of a couple networking groups for women in tech that I'll consider in the future. My intention is for this blog to be as technical as my skills allow. I will continue to update this list as I receive new suggestions. I want to offer a huge thank you to everyone who reached out with ideas and suggestions on twitter, in person, and via email.

And so it begins! Cheers!