12 Weeks of Code.week 7:Espresso, API’s & the Road to Awesome

12 Weeks of Code.week 7

Seven weeks of intense lectures and sink or swim projects can tire one’s brain out – this week I have really been feeling it. I’m not sure if perhaps participating in StartUp Weekend (instead of resting) might have had anything to do with it, but this week my mind has had a really difficult time processing information. I’m making gains, but the mental roadblocks along the way have seemed stronger than before. No amount of espresso and dark chocolate was working to get my mind past the muddy pits of JavaScript’s asynchronous nature. Dark times ya’ll, when you are willing your brain to understand something and all it keeps saying is, ‘I want to eat chocolate cake and watch old episodes of Parks and Rec.” (Leslie Knope is my hero. And so is Ron Swanson. And also chocolate cake.)

You know your mental block is bad when a double shot of espresso doesn’t help. Ugh. Bring on the chocolate cake.

But this week hasn’t been all chocolate cake & tv for me – there was some hardcore learning going on – I just had to work harder for it. In class we have been using Backbone.js to work with API’s (Application Programming Interface). API’s are what a lot of mobile apps use to show & manipulate data in helpful ways. For example, I just downloaded a new app on my phone called Skedadel – it allows you to explore a city by checking out local Instagram photos. You can look at categories like coffee, art, restaurants, etc. I just used Skedadel this morning to find a mountain (this Texas boy is determined to see a bonafide mountain while I’m in upstate country). I was able to do this easily because Skedadel is pulling data from the API’s for Google Maps & Instagram and then organizing it for me. All I do is push a button and voilà – I found a mountain only an hour away that has some incredible views.

That’s the kind of awesome I want to build.

I am not yet a wielder of awesome, but I’m making progress, one slow, painful step at a time. In fact, my whole class is making huge strides. The sites that are being built this week by my fellow classmates have reached a whole new level. One student has created a weather app that shows the google map and current weather conditions of any city in the world. Another student is pulling the top 10 most popular headlines for each of the top ten teams in the NBA. I’m using Etsy’s API to pull items with different descriptors (i.e. Vintage vs. Industrial) to assess price discrepancies between them (basically I want to see if easy sellers charge more based on what words they use to describe their product).

Did I mention we have only been doing this for seven weeks? Seven weeks! Mind blowing. Seriously.

I never thought that at the halfway point of this program that I would be where I’m at right now. Being able to pull data from API’s is the foundation of innovation. Well, maybe not the foundation of innovation, but at least a means of getting there. You can’t get far in influencing human behavior if you don’t know any specifics about it. And that’s the name of the game, right? Influencing people. The goal of an app or website or design is to influence human behavior. Sometimes the target behavior is to get you to spend money. But how cool would it be to have an app that actually lowered the number of children entering the foster care system? Or an app that removed hindrances to providing medical-care to developing countries? How incredible would that be?

I have no idea how to accomplish that, but that’s okay. That’s marathon stuff and I’m still training for a 5K. I’m not there yet.

But that’s where I want to go.

12 Weeks of Code.week 6:Halfway There

12 Weeks of Code.Week 6

We are approaching the end of week 6, halfway to the end. There is such a mix of emotions when I think about this. I’m both excited & scared that the end is in site. I’ve learned so much but feel I have so far to go.  I was telling someone this morning that I kind of feel like I’ve been strapped onto the front of the Eurail – I’ve covered a lot of ground but looking back feels kind of blurry. If this program was just about lectures I’ld be in big trouble – but week after week we are forced to use what we are learning. So what do you do if it’s 10pm at night and you just broke your code? Well, I can’t speak for everyone but my answer is this: coffee, chocolate & Google.

The good vibes from spending this past weekend with my family were good fodder for the challenges this week had in store:

  • Introduction to Backbone.js
  • Introduction to integrating with a local server
  • Introduction to integrating with a non-local server
  • Group ‘chat app’ project using Backbone (24 hour deadline)

Does that sound like a lot? It felt like a lot. But now it’s Friday and I’ve made it through. Our chat app is functional with a couple of minor things that need tweaking, but overall I feel pretty incredible that my project partner and I made it happen.

Score.

And a little praise from one’s instructor is icing on the cake:

And now for the weekend. I’m off to Spartanburg to attend Start Up Weekend. I’m really looking forward to it – I’ve heard about it for a while but hadn’t had a chance to attend. For those unfamiliar, it’s kind of a competition on creating a start up, from idea to presentation. There are prizes, free food, & entrepreneurial personalities galore. What I’m most looking forward to is the opportunity to see and participate in the problem solving aspects. There are tons of challenges concerning creating your own start up – having a cool idea, having a cool idea that makes money, developing a business model, crafting your pitch, etc. Having some experience in looking at larger scale problems and coming up with solutions for each of them is gold to me. I’m hoping to put some of my newfound UI skills to good use as well.

Welp, gotta pack.

Photo Courtesy of Stijlfoto.

In The Inbetween

In The Inbetween

This weekend was spectacular. Too short, but spectacular. Such a whirlwind of activity and togetherness. If you’re into bullet points, here is some of what this weekend entailed:

• took the family to the Dallas Science Museum

• cooked a batch of my signature caramel corn

• set a personal record for the highest # of expletives included in a sentence when an impatient driver tried to cross a one-lane bridge while my son was crossing it on his bike (still fuming)

• ate a wonderful valentine themed family dinner

• went on a date w/my beautiful wife

• made a lego movie with my oldest son

• put together a mini trampoline for my oldest daughter

• had several ‘wrestling’ matches with my youngest daughter (mostly she just giggles)

• broke through my JavaScript block on targeting DOM elements

It’s strange, the duality my life has right now. Being back in Texas was sweet and refreshing and yet totally different from my life at The Iron Yard. Instead of 12-16 hour days of me sitting at my laptop willing my mind to understand JavaScript I spent my time changing lightbulbs, reading books to my kids, taking my oldest son to get a haircut, etc. It was a different pace with different activities that mostly center around just enjoying the moment whilst doing the ‘everyday’.

That’s not to say my life in South Carolina is without moments of enjoyment. On the contrary, there are dozens of times each day when I am struck with delight. They are just different. In Texas I’m a dad. In South Carolina I’m a hacker. But instead of creating some existential identity crisis in me, this duality actually produces something quite different: hope. I’m looking forward to the day when I get to unite these two worlds. The future is filled with wonder and possibility.

But it’s time to get my head out of the clouds and wrestle with a new tool: Backbone.js. I missed an entire lecture on the subject and I need to play mental catch up (which was made all the more possible by my great neighbor and fellow classmate who spent over an hour with me to go over what I missed – I owe that guy a bottle of wine).

Also, I highly recommend the Mac Photo Booth program. It’s the perfect distraction for those minutes you have to sit waiting for a haircut. Genius.

Waiting for a haircut

Waiting for a haircut

Waiting for a haircut

12 Weeks of Code.week 5: Looking Down On The Clouds

12 Weeks of Code. Week 5

I’m taking a flight back to Texas right now and in just a few hours I will be holding my family, hugging necks and getting slobbery kisses (from my kids). It’s been 5 weeks since I was last with my family. This weekend will be epic. It makes me a little sad to think I will only get to spend a few days with them as I still have 7 more weeks of coding to go, but the journey isn’t over.

It’s so weird to me that I’m typing on my laptop while sitting in a chair that is being propelled through the sky. I love to fly. I associate it with adventure and discovery (obviously I don’t fly often). But honestly, how can anyone not think that flying in a plane is amazing? You get to ride thousands of feet in the air and look down on the clouds. You are freaking looking down on the clouds! We take it for granted, but just a hundred years ago the only way you could get a view like that was by climbing Mt. Everest.

I’m looking down on the clouds right now. And. It’s. Amazing.

Which brings me to where I am in The Iron Yard program (wait for it, it will make sense in a bit). This past week we have been working on test based programming (in short, we are coming up with our tests for our program before we write the actual code for the program). At the end of week 5, this is what we have covered so far:

  • HTML
  • CSS
  • SASS
  • JavaScript
  • jQuery
  • GitHub
  • Underscore
  • Testing (using Mocha & Jasmine)

Quite a list, right?

Do I know all of this perfectly? Of course not, but I’m learning how to learn these things. I’m learning the logic behind them & how best to use them. When I’m thinking through a project I’m starting to see how certain interactions should be coded and which tools I’ll need to use. It’s kinda cool to see how my thinking is changing.

I’m starting to think like a hacker.

Just six weeks ago that list above would have been as intimidating to me as Mt. Everest. Now, I kind of feel like maybe I’m starting to look down on the clouds. Well, maybe at this point I am only imagining what looking down on the clouds would be like. But still, I’m climbing up the mountain. I’m seeing progress, and that’s energizing.

Photo courtesy of Karin Dalziel.

12 Weeks of Code.week 4: Confessions of a Failure

12 Weeks of Code.Week3 - Embracing Failure

Hi, my name is Daniel and I’m a failure. A big, fat failure.

That about sums up what I felt about myself at the beginning of this week. I had spent all weekend working on our first Iron Yard group project: a wrestler-izing profile generator. You submit basic info about yourself and at the press of a button a profile is created for you as a cage fighting wrestler (complete with your own wrestler name and avatar). We decided that if we had time, stage 2 would be to create a ‘fight’ option.

Best idea ever, right? We were pretty keen on it until we tried to build it.

Then the storm came and blew us away.

All weekend (Thursday through Sunday) was spent with much blood, sweat & coffee to get our program working. Finally, Sunday at 4pm everything was functioning. Hooray! The clouds lifted and the rays of hope started to peak through. ‘Cool,’ I thought. ‘I just made something. I’m on my way to becoming a JavaScript genius!’  And then we uploaded our pretty new toy to GitHub’s using gh-pages so that our classmates could access our brilliance from their own computer via the internet. We pulled up the url expectantly, added our wrestler information and hit the button.

And. Nothing. Happened. At. All.

Hope was gone and the rain poured down.

So, Monday morning I felt a bit daunted, but I kept my chin up. I’m a ‘keep on trucking’ kind a guy. I had faith that my understanding of JavaScript was going to click eventually and I just needed to press on. As a class we shared our highs and lows from the project and the overall sentiment was that we wished we could have worked a bit more on the parts that our other teammates took care of so that we could broaden our own learning (particularly when it came to writing the JavaScript). So it was agreed that the best assignment for us all would be to recreate our group project – only this time as individuals. Awesome! Time to hop on that train of Redemption!

And on Monday night that trained derailed, crashed and exploded.

There I was, with a completely reconstructed project with some minor aesthetic tweaks on my screen. I had loaded my project to Github and that dang button still yielded no results. Turns out I hadn’t gotten onto the train to Redemption. Somehow I had been riding the train to Loser-ville, only this time I must have caught the Express because I arrived in less than 18 hours as opposed to the 4 days it took the first time. What the heck was going on? I had been checking my console log for errors during the development process and hadn’t see any. I couldn’t learn from my mistakes because I had no clue where I had messed up. I might as well have labeled the submit button ‘Mockery’ because that was the only thing it was doing for me.

Funny thing about failure. It seems to be the well trodden path to success. I’ve been thinking a lot lately on that quote from Thomas Edison about his journey to making the lightbulb. Apparently he tried 10,000 different types of metal filaments before finding the one that actually dawned the age of electric light. Can you imagine being so convinced of an idea, so sure of a better world that you are willing to suffer 10,000 failures for it? Wow.

Why am I so averse to the idea of being a failure? Truly, the fear of failure is one of the four core motivations that fuel each and every one of my days (…I would say the other three are hope, joy & coffee). Truly, I’ld say that the fear of failure has characterized years of my life. It has turned surprisingly ordinary challenges into black holes for my self-esteem, quieted the beginning musings of creative ventures and paralyzed my brain from making countless decisions. But nothing worth doing is ever done easily. Failure isn’t the big black phantom I make it out to be. It’s as ordinary as a rainy day, and like the rain it can nurture growth in the right circumstances. To deny the element of failure in your life is to deny nourishment. I haven’t completely come to embrace this truth, but I’m trying to.

If I haven’t mentioned this before I should tell you that my classmates at the Iron Yard are amazing people. The more I hear of each of their stories the more I’m just amazed/impressed/humbled. One of them shared this gem in class this week and I just had to pass it on:

“The hardest part of climbing a mountain is when you can’t see the top.”

Deep, right? Mountains are hardest to climb when you can’t see the top. So are challenges for which you can’t see the end of. It takes a bit of faith to keep going. Failures of the world, keep climbing.

Photo courtesy of Nima Badiey.