Welcome to my blog about learning to code at Makers Academy. If you missed the last post, you can find it here.
A friend introduced me to the weird and wonderful world of net art last week. For example, wwwwwwwww.jodi.org, which aims to create the feeling of having a computer virus, and the melancholy storytelling of My Boyfriend Came Home From The War.
But the real start of the show me for was Rafaël Rozendaal, who makes these hilarious and peculiar single-page interactive websites (like this, and this, and this, and this). Below is a funny and fascinating lecture about his process and life as a net-artist.
I found the concept pretty inspiring. I’ve always been attracted to the idea of making art for a living, but never felt like I had a medium where I could get proficient enough to make beautiful things. In learning to code, maybe now I do. And I’ve got the most amazing canvas.
I’m sure there’s a lot more ground to be covered with interactive art. Much to think about.
Discover more net-art over at Rhizome.
PoochPads
Week 6 marked a bit of a turning point. From now on, we’ll have the option to work on projects in teams and manage them ourselves.
This week we were asked to recreate Airbnb in teams of four. This meant creating a database with postgreSQL to store users, listings and bookings, a back-end in Ruby to define the properties of our classes and the way they would interact, as well as defining our file paths and get/post methods, and a front-end using HTML and CSS to style and render our web app.
What I’ve roughly defined above is the process of using a Model Variable Controller (MVC) architecture for implementing an application, and that’s something that I’ve been implementing in all my projects for the last month. As a result, this week’s learning curve wasn’t about coding, but instead working as part of a group.
I was blessed with a great team, all of whom I considered more organised than myself. Everyone communicated excellently and a lot of effort was taken in articulating viewpoints and being mindful of other members. We used Waffle.io to delegate issues to different members of the team and then pair programmed on them in groups.
We named ourselves “The Nifty Squirrelers”.
I gained a new found appreciations for stand-ups and retros, two things I’d previously been fairly cynical about at Makers. Every day I underestimated how much we’d actually completed, and the retros did a great job of keeping morale up as well as ensuring that the team was on the same page. Stand-ups were vital in divvying up jobs (Waffle issues) and reevaluating our plan. Furthermore, having both regularly helped us to stay flexible and adapt our project to any unexpected issues that arose.
The second biggest lesson from this week, after learning to work as a team of developers, was learning to collaborate with Git.
This was a steep learning curve, but a small one. After a few mishaps on day 1 we got to grips with the workflow of creating branches to work on new features, submitting a pull request, and giving the responsibility to the other members of the group to approve them or fix and merge conflicts. It’s a skill I’ve been looking forward to having under my belt.
I also learnt a whole lot about CSS frameworks, specifically Bootstrap.
Bootstrap has its place. The up-side is that you can quickly style a page in a professional looking and MVP-worthy way using their pre-made buttons, navigation bars, and so on.
The down-side is that everything looks a bit generic, and it limits the creative control you have over the pages. Additionally, it lets you be lazy, which is never good for learning. I think learning vanilla CSS (CSS without a framework) will be more valuable for me in the long run.
If you’re not interested in front-end design, I think it’s a really great tool for creating accessible and decent looking applications. However, I’m super enthusiastic about sharpening my design chops, so I don’t think I’ll be using it again unless I’m really tight on time.
By Friday morning we had the bulk of our project completed and used the rest of our time for styling. I also managed to use the Google Maps API to load a map for any chosen pad, which was cool.
Here’s some screenshots of our work. Yes, you can click the dog logo.
Check it out here (until Heroku gets bored).
Bowling challenge (continued)
Following on from last week, I kicked off Saturday by linking things up with jQuery, so that the right numbers would fill-up the right boxes at the right time.
I’ve recently realised that I feel much more enthusiastic about working on a project if I can envisage the end result. It feels much healthier for my mind to balance the long slogs and ecstatic wins of back-end programming with the satisfying real-time advancements of the front-end. I’ve began doing basic styling (e.g. font-family’s and backgrounds) along with my project setups for this reason. These features seem small, but do wonders for my gumption.
Sunday was devoted to tightening-up my back-end. I started diagramming again, and came to the conclusion that my code was a complete mess.
Following that I decided to completely refactor it according to my new plans. There were a bunch of redundant and over-complicated functions, and after I’d extracted the good bits and got my old tests passing I found that I now had 110 less lines of code (!).
For now there’s still a few bits to implement. The final frame needs to be (re)coded, and I need to make a function that only shows the buttons for rolls that are valid (i.e. after rolling an 8, you should only have the option of a 0, 1 or 2). Hopefully I can get that all sorted in my evenings this week.
VimGolf
Now this is the shit.
You get given a few lines of code and are asked to rearrange it into a certain configuration using the least amount of keystrokes. After, you get to see how other users completed the problem.
Just like Codewars, it’s a great exercise in appreciating how many ways you can tackle coding problems and I feel like I’ve learnt loads from the few holes I’ve completed.
“VimGolf is the path to greatness”
— Roi
Relaxation
YES! FINALLY TIM.
Stuff I learnt:
- What good teamwork feels like
- Collaborating with Git
- Bootstrap
- The true meaning of minimum viable product
Stuff that hasn’t clicked yet:
- Need to manage my time better — I’ve not had enough chilled evenings this week
- More vanilla CSS (vanilla = without frameworks)
TODAY’S JAM
If you read past the tapir, chances are you read the whole thing. If you enjoyed it, please click the little heart below. It’ll help others find this and enjoy it too.
Next post, Diving Deeper