Whoops. Forgot to post again!

Damn, I guess I was so busy with my shiny new job, I forgot to post.

Yes, that’s right, I’ve been employed for a whole month now! I got my official job offer just about two weeks after finishing MakerSquare. Pretty cool, huh?

I do front-end development at an interactive agency here in Austin. Translation: I do a lot of Javascript and CSS stuff to build custom web experiences for our clients. It’s pretty cool. I like the people I work with (most notably @wayspurrchen, who spends a lot of time helping me get up to speed), and the work is challenging in a good way.

That said, when I say “challenging,” I’m not joking around. It’s a PHP shop. As you may recall, at @MakerSquare, I learned Ruby/Rails, not PHP/Laravel. Laravel is an MVC framework, like Rails. I can figure out reasonably accurately where things go or are supposed to go within that, but PHP and Ruby are syntactically different enough that it has taken me this whole month to get to a point where I was able to debug something I had screwed up in a controller today.

The only real bummer about working in a PHP shop is that I have less time to keep practicing Rails. At the moment, I have no time. Between acclimating to a new job and the holiday rush (throw an extra “holiday” in there, too–my birthday is mid-December, and I firmly believe that throwing anything less than a 3-day celebration for one’s birthday = doing it wrong), any downtime I get at all is pretty much spent sleeping.

Things should get better on that front after tonight. With no more holidays/birthday stuff to worry about for a while, and with more of my #mks2 homies accepting job offers every week, there should be time again to work with Rails in my off-time. My pet project is stalled at the moment, because the one thing I really need from Facebook to have an MVP (graph search for events) isn’t something their API supports (yet?) and I don’t want to violate their TOS, but I’m excited for some collaborations on other people’s upcoming projects that I’ve been offered. Bonus: I won’t have to be my own project manager!

Lest I come off whiny, let me be clear here: my life is awesome right now. The majority of my time is spent getting paid to do something I enjoy, in an environment where I’m encouraged to learn. I’m mentoring two awesome chicks (@JesseDowntown from #mks3, and one of my oldest friends back in Jersey via Skype) in their coding journeys. I had a great birthday, and these hectic life circumstances have led me to place a priority on getting enough rest (and in doing so, I’m winning the battle better than ever against a lifelong circadian rhythm disorder). 2013 has been kickass, and 2014 is looking even better!

This is the end…

… of MakerSquare, anyway.

Today is “Career Day,” otherwise known as the day we take over Capital Factory for the evening and show off all the great apps we made for our final projects. Within the next couple of days, I will make it a point to post our presentation slides and the screencast of CrossfitHub in action. In the meantime, you should know that Nick, Justin, and I built a terrific app using Rails 4, Postgres, ActiveRecord, Javascript, jQuery, some sweet Ajax goodness (I’m particularly pleased with how comments on a post will appear immediately after being posted, as inspired by Facebook), Firebase, and Foundation with some custom SASS.

Ever since yesterday, when my student spotlight went up on the MakerSquare blog, I’ve been cracking up about having been pegged as “creative with a tech twist,” which I’ve been joking is someone’s polite way of saying, “she’s got purple hair, talks about music a lot, and likes to cut her t-shirts into new and exciting shapes… and we aren’t sure what to say about that.” I would have preferred that they had said “tech with a creative twist,” but looking at what I wrote 11 weeks ago when asked what excites me about being a web developer, I suppose I can see where they got that.

I do see writing good code as an art form, more now than I did even then. And while I can’t draw, paint, or play a note of music (although I am absolutely a karaoke rockstar), I am a “creative type,” especially since I’ve become a web developer. I can come up with an idea for something cool, and iterate over it until it becomes an idea for something I can build, and then get a team together to actually make it (like Lyric Ipsum). I can create it, figure out what parts of it suck or could just be better, and make those improvements. I can join a team, work on someone else’s inspiration, and still contribute in meaningful ways to the project (I chose to work on CrossfitHub not because I’m at all interested in Crossfit, but because I wanted to work with Justin and Nick and build something big and complicated).

Anyway, tomorrow is the real last day here. We’re going to work on polishing up our resumes, LinkedIn profiles, and GitHub accounts, and do some training for technical interviews. I hear there’s going to be BBQ for lunch, and I’m excited about that, too. (By the way — my LinkedIn already looks pretty sweet, hint hint!)

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!

Can’t stop, won’t stop.

That’s been the theme of the last couple of weeks. Truly non-stop. Now that my fourth week of MakerSquare is over with (holy crap, almost halfway!), and I have a minute to get some thoughts down again… I can barely remember the third week. I do remember that we learned about Sinatra, and did Javascript “exercises” for hours and hours, and had our first introduction to APIs.

And then there was the Hackathon. Instead of a weekend off, we had two days to work on projects of our own choosing. My team made this Lorem Ipsum generator. It’s pretty satisfying to be in class and notice people using it when they need filler text. I personally am having way too much fun plugging songs in from bands like Mindless Self Indulgence, Ke$ha, or even Insane Clown Posse, and just doing dramatic readings of the results.

The process to make Lyric Ipsum would not have been terribly intense if not for the APIs we had to/tried to use. Primarily, it runs with a Ruby gem called Lyricfy that has two APIs for lyrics databases wrapped up neatly inside. This was a pretty cool find by my teammate Jesse, but we wanted more from it by Monday than it was willing to give. Specifically, we wanted people to be able to search for, say, “Wu Tang,” and have our app understand that the user means “Wu Tang Clan.”

I learned quite a lot about a lot of music-related APIs this week in the name of bringing that idea to life. In the end, I have unfortunately learned that there are a lot of APIs (and gems) out there that are a pain to work with, and more than a couple that don’t do what they claim to (and in one case, that doesn’t even connect to its own database using its own methods, but anyway…). The idea isn’t dead yet, but it is definitely on hold until we learn more about AJAX calls in jQuery. I heard a rumor that this might solve the problem.

Also within the last week, after my class built our first functioning web apps, the team at MakerSquare (finally) introduced us to Rails, which I am a little in love with already. The first few days were rough, but then the lesson on Thursday made everything make sense. I had a few moments (and all of Friday morning) of frustration while trying to complete my lessons using individual concepts without connecting them to each other, but for the final lessons, making everything in Rails work together the way its supposed to was easy. I suppose this is why the term “Rails magic” gets tossed around a lot.

I finished Friday’s assignment in a short amount of time, and took a look at the extra credit “extensions.” I didn’t like the look of the extensions (i.e., I was in no mood to deal with another API-wrangling session late on Friday afternoon), so I made my own “extension,” based on a small feature that I thought the project should obviously have. In doing so, I discovered why this seemingly simple little thing had not been included in our lesson, but I did still make it work; I want to shout out some love for my classmate Lynda here, because she took a look at what I was trying to accomplish, said one thing to me, and that was The Thing I needed to get my idea working in under 10 minutes. Suffice to say, I’m incredibly excited that Lynda will be my pair-programming buddy for this coming week.