Day 60 – Part 2 – End of the road.

Presentations are all over and I’ve officially completed the course at Makers Academy! It’s been both a long and short 12 weeks and there have been plenty of ups and downs. Today, more so than ever.

I started the day off pretty late since I’d been working on the app till just before Makers closed last night. My partner and I thought we were in a pretty good place with our app and that most of the feature related work had been completed. Unsurprisingly, and indeed, as always, a few issues cropped up when we pushed to Heroku. That meant that we ended up making bug fixes right up until the deadline, only breaking for a few rehearsal presentations.

Gem of the day: Although the ideal would have been to have memorised my presentation or at least the outline of it in time for the rehearsals, I would say straight out that having a script definitely helped me get things clearer in my mind. If you rehearse the same presentation 5 different times in 5 different ways, it isn’t really a rehearsal. You’re just practising “winging it” and that is not the same as a proper rehearsal! Also, having a script/outline doesn’t mean you have to read from it during the presentation. Think of it as a safety net or a guide to help you on your way.

Anyway, the main bug fix we had to do was with the  websockets protocol and the fact that we were using the websockets gem for local development and Pusher in the production environment (i.e. on Heroku). It seems like each returned a different format of objects, so that whilst we needed to parse the string returned from the websockets gem into JSON, we didn’t have to do the same with the object returned from Pusher. Thanks to Enrique, who spotted the error, that got fixed fairly quickly.

The graduation event itself was not as hyped/formal as I thought it would be and the audience was mostly made up of prospective students and a couple of hiring partners/recruiters. The presentations themselves went really well and I felt that the other guys in my cohort really delivered when they presented what the apps they had been working on the last two weeks. There was a classifieds site, invoice app, and a to-do list/data visualisation app. All of them looked really good and were presented solidly. Nice to see after all the effort that everyone has put in!

My partner and I presented last, and overall, I thought that the presentation went well. There were a few points where I felt that we could have related the features of the site more strongly with the technologies we used, but the proof was really in the pudding and the site delivered in terms of dynamic and visual updates.

We finished off with some questions, and then Alex presented each of us with a book from Makers Academy, which is sort of a graduation tradition now; Makers tries to give each graduate a book which will help them in their developer career.

It was mostly just mingling, drinking, eating and saying goodbye after that. I definitely wish there was time for a debrief day to go through the things we encountered during the final project (and the course) that we need to get cleared up, but c’est la vie. There’s always going to be something you don’t understand, whether you know it or not.

There were also a couple of scholarships given out at the end. One of them was for the best blog and I won that, thanks in no small part to the lack of competition! I think I was the only one from my cohort to write a blog of my Makers Academy journey! There was also a random draw scholarship and I was gutted not to have won that since the odds were in my favour – lots of entries made etc. It was one of those things that you kind of saw coming. You know that feeling when you think something bad is going to happen and then it does? Well, I guess that’s randomness and luck for you. I would not make a good gambler.

It’s kind of silly to be feeling down about all of that since it really is all a numbers game in the end, but missing out on that latter scholarship really took the wind out of my sails on what should have been a really satisfying day. I guess the experience has reminded me that arbitrariness is never a good thing and random draws for scholarships or prizes or anything really, aren’t great marketing tools. Note to self.

Ok, enough doom and gloom. Over the last 12 weeks, I’ve developed and co-developed a number of apps which I couldn’t have/wouldn’t have known to dream about. That in itself is pretty amazing.

Where to from here? You tell me. Do you want me to continue blogging so that you can see how things turn out post-Makers Academy? What would it be helpful for me to blog about? Is there anything I’ve missed.

Let me know using the contact form and/or by filling in this poll.

Day 60 – Part 1

I’m on the tube right now, heading to Makers Academy. I’m an hour (and a bit) late and sleep deprived. The presentations start at 3pm or so and that’s only five and a half hours away. Today will be interesting at the very least!

The main thing on my mind right now is where did the time go?

I think we’ve done a good job in terms of incorporating the many technologies we’ve learnt these last 12 weeks. There are lessons I’ve learned during this final project which I’m definitely going to take on board. Like the fact that tested and non tested development both have their pros and cons, and there are definitely diminishing returns with the latter after just a short time, shorter still if your app is complex (which ours kind of is).

I was joking with the guys yesterday that we’re in better shape than Facebook was in their first iteration of their site. Newsfeeds never used to update dynamically. Whether that’s because of technical performance reasons, the fact websockets didn’t really exist 8 years ago, or because it would have led to less page views (which would have been less impressive from a monetisation view since that means less ads can be displayed), I’m still going to take this as a minor victory. Maybe victory is too strong a word. How about achievement?

Not long to go till graduation now. See you on the other side.

Day 59 – Finishing touches and overhauls

Did you catch my mistake yesterday? Somehow I got mixed up with the day count! I’ve now changed the title of yesterday’s post and without further ado, here’s the post for Day 59 actual!

I am exhausted! With all the rush to get features implemented in time for tomorrow’s graduation/hiring day, we’ve written code which isn’t as dry as it should be, and then paid for it when making changes. Try finding the relevant event listener to change when the function is duplicated in your code! Lots of alerts and console logging occurred as a result.

That’s not to say that it was all bug fixes and unicorns (ok bug fixes aren’t really that fun). We had to do a major overhaul of the way users follow/unfollow each other. That involved creating a relationships model and rewriting the relevant methods. It took some time but doing things the right way, helped massively today. In taking the decision to actually overhaul our code, we realised we had come to a point where working with sub-par follow/unfollow code and the relevant associations and models, was going to be more of a hassle than just re-doing things. A little bit of pain to move forward. I just wish we had done, and knew to do, things the right way in the first place! At the very least, this project has taught me I need to re-visit self-referential associations (“followed users” and “user following” are the two key pieces of information needed for the relationship table, and they both refer to the same User table and model) in Rails and ActiveRecord soon.

Alex, our instructor, saw us flagging a bit(a lot) today and helped out with some of the debugging in the afternoon. JavaScript and its brackets, yeesh.

On one hand, I’m frustrated that our code base for this app is far from clean. It is not something I would be proud to show to another developer. Saying that, and without serving up excuses, I’ve got to put things in perspective. We’ve only been doing this for twelve weeks. In that time, I’ve gotten a working knowledge of HTML, CSS, JavaScript and jQuery, Ruby, Sinatra, Rails, Heroku deployment, storage on Amazon S3, AJAX, websockets, and a whole host of other ruby gems. I’ve gotten the foundation these last few weeks, now I need to cut my teeth and refine my technique by putting things into real world practice. And by practice, I mean real, live projects!

We also had a presentation run through this evening and it was stressful to say the least. What with all the bug fixes, we didn’t have any time to do any real presentation prep. I know Steve Jobs said something like you should put in an hour for every minute of a product demo, but there just aren’t enough hours in the day.

I left pretty late tonight since I stayed to fix a couple more javascript bugs in our follow/unfollow feature which uses ajax to dynamically update a user’s feed so that only the posts made by people the user is following are displayed.

Tomorrow is the end of the road as far as Makers Academy is concerned. There still styling, database seeding and presentation prep to do, but I’m confident things will work out fine.

Gem of the day: When presenting, look at the top of people’s heads rather than directly in their eyes. The former helps you engage an audience, while the former can be confrontation so and intimidating (for all parties concerned).