Hackathon #2 Recap

Much like our app, this story is by no means complete. But, I promised a post, and today is my only day off this week, so today is when I’m writing it.

On Friday night, before the hackathon even started, the guys and I got together to whiteboard some ideas about the way our project would work. Before things devolved into a case of “these folks should not be allowed to have markers,” we actually did get a nice plan together. We even got a start on planning our UI/UX.

Saturday morning, our teacher Matt delivered an awesomely helpful talk to the class about creating “personas and user stories” as a way to plan out an app. It’s important to think about not just who will use your app, but also just what each might do with it and how they’ll feel about it while they use it.

After spending an hour talking about this, creating a handful of personas and stories for each of them as they navigated through our app, it became apparent that 1, the scope of our MVP was too wide, and 2, we were pointed in the wrong direction anyway. By pivoting our plan, we were able to get started on something that will be far more useful to the users we’d most like to get and retain.

All that said, between planning all that UI/UX stuff, pivoting, and having to rework the ways our models would associate based on that pivot, I think it was probably around 4pm before we got a single line of code written. This was incredibly frustrating for all of us, but I kept reminding myself (and sometimes the guys) that with the amount of planning we put in, things would move very quickly after these first few steps. Personally, I’m glad we did that “extra” planning; I would have been far more aggravated had we worked on writing code for those first six hours and then realized that we had to change the plan up. Refactoring is not my favorite part of coding, particularly while I’m still sorting out what I’m doing in the first place. So, planning, hooray! (I know we’ll still have to refactor code on this project, but I’m also sure it will be less annoying because we made a plan first.)

And there were still victories on Saturday. The final count of database created and in use for our project right now is nine. Even counting the join tables, that’s still a pretty intense amount of data compared to anything we’ve done before in class. (Join tables exist to associate other tables to each other and allow things to have more than one of each other–for example, bananas can have many desserts they are used in, and desserts can have many ingredients besides bananas; join tables make this work when you need to keep track of all of that, without having to create and log a separate instance of bananas every time.)

I didn’t count the authentication-related tables there, by the way, because I’m still working on all of that. Last night when we presented the current state of our project to our classmates, I was grumbly because I had to take a break from learning about using OAuth to allow our users to log in to our app with their Facebook accounts.

In any case, after the presentations, I was pretty much done. “Nope, sorry, can’t brain anymore, I’m all out for the day.” So, it was time to party at the DevHouse for a bit. I got tired early and was about to head home, but Nick ended up convincing me to stay out for a little bit longer and we spent the next couple of hours at pretty much my favorite bar in Austin.

Which brings us to today. My only day off this week, and my first in over two weeks (Justin and I spent all of last weekend coding too, trying to make sure we were up to speed on ActiveRecord::Associations… if only we knew then what these last couple of days would hold). This will be the last thing I do on my computer all day. Tomorrow, I’m back to work, but the only things I plan on looking at on a glowing screen today are cartoons.

If you’re interested in following our progress as Justin and Nick and I work on this final project over the next few weeks, feel free to watch our GitHub repo.

That time I didn’t have time to blog for a few weeks.

Things have been looking up. I’ve become terrible at blogging, but I’m still powering through MakerSquare. Really, I’ve become terrible at blogging in part because I’m still powering through MakerSquare. Understand that when I say “powering through,” I mean it. When I ask questions of my friends who have been developers for a long time, they often express amazement at the level of understanding I must be at to ask the questions I’m asking, for having been doing this for under two months. (Lesson: don’t let Impostor Syndrome get to you… no matter how little you think you know, you’re probably doing just fine.) So when I say that by the end of the day, I’m often too tired to even look at a computer screen, much less write a blog post, that’s a testament to the sheer amount of data my brain is processing.

Anyway. Blogging. I haz it. Here we go:

In week 4, the day after most of us deployed our first ever Sinatra apps up to Heroku, we started out on Rails. Having a framework to create apps in makes life so much easier! Lightbulbs went on over the heads of many in my class as a bunch of “think like a programmer” type logic clicked beautifully into place.

In week 5, we got deep into Backbone.js, and deeper into Rails. Working on learning two MVC pattern syntaxes at once notwithstanding, just having a solid idea of how model-view-controller patterns work makes a lot of other logic make sense. I won’t say I’ve never put Ruby syntax into my Javascript code at the end of a long day, but at least the logic is correct. And, y’know, I eventually notice and fix it. 😉

Week 6 was rough, I’m not going to lie. I had been feeling pretty good up until that point. I’d been taking good care of myself, getting enough sleep, making sure to have a day each week where I didn’t code, and just doing all the things one should do to avoid burnout during a 10-week learning marathon. My energy was high, and I felt like I had a reasonable understanding of most/all of what I was doing in class. And then… I hit burnout anyway. I hit it hard. There may have been tears involved. And by “may have been,” I mean I was crying over my Underscore.js templates in the front room while the amazing @elyseholladay was leading a class on SCSS in the back room. Luckily (although admittedly also embarrassingly), Nick happened to come out and see me losing it. I’m actually pretty decent at Javascript, but in that condition I was no use to anybody, least of all myself. He pointed out what were essentially a couple of dumb typos on my part (lesson: stop freaking out and check your spelling) and then dragged me outside so I could rant some more before I headed home and he headed back to the DevHouse to get some rest.

Thankfully, the next day was a half-day, because of the Austin Startup Crawl. In theory, Nick and I spent that afternoon at a coffee shop to work together on some Rails stuff that was confusing us both in different ways (lesson: different teachers have different teaching styles that will mesh well with different learning styles; find a friend who learns best from a different teacher than you do and teach each other ALL THE THINGS), but mostly, we shared some badly needed decompression time and just goofed off a whole lot.

Anyway. That night, after my shift as the arbiter of sign-ins and drink tickets at MakerSquare’s front door, Nick and I grabbed our homeboy Justin and headed out for some networking (and drinking, for the first time in weeks). Long story short (she said, at the end of this gargantuan post), after that night of loud drunken bonding, the three of us will be working together over the next few weeks on a really terrific final project.

And no, I’m not going to tell you about that project just yet. Tomorrow is the first half of our second hackathon. The guys and I have a pretty sweet minimum viable product planned out, and no way am I going to spoil the surprise before we even start building it. 😉 Stop by next week for details of what we accomplished. I promise I’ll be good about blogging again and post them.

PS – I did finally manage to get in on a SCSS lesson. CSS with math! Sassy, indeed!