Mary Dickson Diaz

Code, Life, Learning

Month: December 2015

2015 Year in Review

2015 was a banner year! It was a year focused on beginnings and new adventures: some carefully planned, some spontaneous, some scary, some sad, all worthwhile. I’m so excited to see where this year’s foundation takes us next year and all the years to come.

– In January, I quit my job, effectively pausing a decade-long non-profit fundraising career, to learn how to code. Since then, I’ve run the gamut of classes with Code Fellows, culminating with an 8-week intensive course in advanced web development in Ruby on Rails. I’m currently working with Code Fellows as a Teaching Assistant while looking for full-time opportunities as a software developer.

CFRoR2015

Code Fellows Ruby on Rails graduate class, October 2015

– We bought a house! I love our home in the heart of south Seattle’s Hillman City neighborhood. Living in a small space has forced me to focus on the things I own and what’s really valuable / brings me joy (yes I read that Kon Mari book). This was also the year I discovered Buy Nothing, which has made the process of giving away things I’m not using to people who want/need them much more enjoyable. We made some major (but un-fun) investments in things like securing the foundation. Next year I look forward to more aesthetic changes and improvements to make the house even more livable and enjoyable for us and our visitors.

Holiday spirit has arrived (yes it is wearing a lampshade hat and ready to party)

A photo posted by @marythought on

– I married my favorite person and we celebrated a joyous day with family and friends. Weddings are expensive, a headache, and come with a lot of familiar baggage, but I wouldn’t change mine for anything. The whole weekend was one of the best of my life. I especially loved how well Josh’s family and mine meshed together (a rare and wonderful thing).

11377149_10155528292160526_5453675706797037705_n

Married!

– We spent three weeks traveling around Greece and Turkey on our honeymoon, chronicled here.

20150605_161002

20150620_052756

– Starts and stops in growing our family — after experiencing an ectopic pregnancy this fall, we were thrilled to be expecting again soon after and sadly lost the pregnancy around 8 weeks, after seeing a viable pregnancy with heartbeat at 6. This experience has opened me up to a fellowship of “it happened to me too,” and radicalized me on women’s reproductive rights issues. The decisions to pursue or terminate a pregnancy should be between a woman and her doctor, period. I believed it before and believe it even more strongly now, having experienced some of the conversations and experiences that some politicians would like to legislate.

– My first Twitterbot, focused on the women who served as code-crackers at Bletchley Park during WW2, just passed 100 followers! I’ve heard from the children and grandchildren of veterans with pictures and more information about their relatives. In learning how to code in python, I accidentally created something that enables people to share their stories– I love this, and it’s helped me focus my programming goals on the desire to engage with work that’s both fun for me and valuable to a broader community.

twitterscreenshot

– I kept this blog alive for a year! Happy birthday, blog. I wasn’t sure how programming-focused I could keep the posts while still maintaining a readership and personal interest, but those have turned out to be some of my favorite posts. (I do appreciate that you let me blog about things like my honeymoon though, and I plan to keep doing that!) Some personal blog highlights:

My biggest goal for 2016 is to find sustainable work as a developer — so here’s a link to my resume, if you can help. Cheers and happy new year to you and yours!

reindeer games

Screen Shot 2015-12-26 at 10.52.12 PM

Happy December, readers! Christmas has come and gone and you’re probably over it already. I, on the other hand, am determined to keep making progress on the Advent of Code challenge, which has served as a happy distraction and learning opportunity this month. When I haven’t been teaching, applying for jobs, getting prodded by doctors (long story), and trying to land my first contract gig, I’ve been helping Santa and his team deliver the goods.

In the process, I learned about (and/or got more practice using):

  • object-oriented programming (OOP)
  • string manipulation & regular expression matching
  • MD5 hash conversion
  • bitwise logic operators
  • arrays and hashes
  • functional programming
  • algorithmic efficiency (Big O notation)
  • and more!

Over time, I built out my repo to include testing (for easier code refactoring) and input files (for cleaner code), as well as a README detailing my approach to each problem. I know it sounds silly–and did not impress my career counselor–but this was truly a great professional learning exercise, and I’m enjoying the opportunity to see how other people solved the problems and how to optimize my own solutions. In some cases, my approach works, but takes a long time to run. In other solutions, my approach works in theory but takes too long to return a solution. I’m still tinkering and will read up on the problems I didn’t solve before I put it away until next year.

One of my favorite exercises was Day 14, Reindeer Games, in which a set of reindeer are racing, and the objective to to find how far the winning reindeer has travelled after a given number of seconds. Each reindeer travels at a set speed (x kms/second) for y seconds, and then needs to rest for z seconds. To solve this challenge I took an OOP approach and considered “what are the Nouns involved here?”

  • We have Reindeer, each flying on a track, organized by a race. Reindeer have a name, a distance they travel every second, a fly-time and a rest-time.
  • Each reindeer flies on a Track, which belongs to one reindeer. The track knows whether its reindeer is flying or resting at any given point, how long it has been in that state, and what index it’s at on the track (how far it’s gone). The track knows how to advance a reindeer once per second depending on the reindeer’s state.
  • Organizing all this we have a third class, Race, which registers the reindeer as racers and has a “run_race” method that advances each reindeer for a given number of seconds. At the end of the race, it checks each reindeer’s track position to see who has travelled the farthest, and returns a distance.

This is my favorite type of programming to do, as I enjoy thinking through the “who knows about / controls what” in a given problem set. My solution isn’t necessarily the most efficient (though I have no real reason to believe that it’s inefficient, besides having to carve out an array with ~5,000 entries for each reindeer to mark the “track” on which they travel), but it’s straightforward enough that a non-programmer should be able to look at it and basically understand what’s going on.

Well, see for yourself:

Continue reading

the plan, part 3

Oh hey, Happy Thanksgiving December! My last post was a cliffhanger that wound up more suspenseful than intended. And then December exploded and I’ve been busy with no time to blog. But I started down this path, so let’s dive back in. 🙂

Crater Lake

Andy Spearing, Crater Lake

Ok, so I was talking about my assumptions going into this year, and I left off at number 4:

  1. I can learn to code in a year — TRUE
  2. I will be job-seeking in a year — TRUE-ish
  3. I can tailor a program of free resources and paid classes for less money and time than the cost of graduate school — TRUE w/caveats
  4. As long as I can build software, the amount of math I’ll need to know is minimal
  5. An all-women learning environment is preferable to co-ed (but not a deal-breaker).
  6. MOOCs will be a great tech resource for learning computer science
  7. Meet-ups will be a great way to network, make connections, and find job leads

Continue reading

© 2017 Mary Dickson Diaz

Theme by Anders NorenUp ↑