Bits & bobs from the last two years…1

Over the last two years I have accumulated ideas for blog posts. Some of which are no longer relevant, some of which will turn into full blown posts and some of which I want to sure bits of.

So, here are the bits and bobs from the last couple of years! Enjoy!

Mistakes Programmers Make Over and Over

One of my teachers at Enspiral Dev Academy was Samson Ootoovak, who I also have the pleasure to work with at Flick Electric Co. Just after I graduated from EDA in July 2015 he wrote this blog post – Mistakes Programmers Make Over and Over. The main points being:

  • Read the errors
  • Copy-paste trouble
  • Keeping your branches small
  • Quickly not writing tests
  • Starting is better than perfect
  • Everyone is better than me

Most of these mistakes I made a lot when I started out. I can even remember asking Sam for help during the last phase of bootcamp and it was an issue with not reading the error properly.

I still make these mistakes, but less often (just making new ones now!) and I now recognise sooner what the mistake was and make corrections quicker.

It is a good reminder to come back and reflect on these and also take the time to reflect on how much I have learnt over the last two years since graduating.

(Oh and I also think one of his more recents posts would be good to book mark if you ever consider submitting a call for proposal (CFP) – My First CFP)

Tools – editors, terminals, linters

I started out using Sublime as my text editor of choice and iTerm for the terminal/console.

I’m big on how things like and while using Sublime I discovered the cobalt2: a theme for Sublime Text. And the same one for iTerm – Cobalt2 for iTerm2 and ZSH.  Then I transitioned to using Atom as my text editor of choice, where you can also use the cobalt2 theme.

My old friend, Samson, got me into using zsh and oh-my-zsh. And then I discovered that Wes Bos (ps, Wes is also the creator of the cobalt2 theme!) had made this cool and very useful video series – Command Line Power User. If you are using zsh, I highly recommended. If you are not using zsh, why not?

Starting out in Ruby land I discovered the Ruby Style Guide. And then learnt about linters! The one I use for ruby is RuboCop and you can also get it working in a text editor –


More “Bits & bobs from the last two years…” to come! 😁



PD 4 Jnr Devs


After about six months at Flick Electric Co. and then working on my blog post about Webstock I started to wonder about what I was going to do about my professional development in my new career. This got me thinking about how do graduates / juniors who aren’t working in a big company like Xero, Trade Me or Powershop continue there learning?

Are there courses people do? How  do people continue learning? What type of support are people getting from their employers? What do people do to keep up their own learning?


Online Courses 

Before and while I was studying at Enspiral Dev Academy I enjoyed using Treehouse and occasionally Codecdemy. There are courses on Treehouse and Code School that I would like to take but with working full time and not wanting to spend all my non-work time coding I can’t justify the cost as it would probably take me a few months to complete a course (you pay monthly).

What I have done though is pay for a React for Beginners course by Wes Bos. This allows me to not only stream but also download videos, which I then can complete in my own time. I like this as I can stop and start as I please and I won’t lose any money!

Are there online courses or face to face courses that you have used/attended? Are there courses you recommend?

Attend Meetups

I am a member of a number of meet up groups. EDA has run a number of meet ups and I have found RailsNoobs really good.

RailsNoobs have pretty regular events and with a talk/presentation for everyone and then a break out for an intro to Rails and others can do other coding they are interested in. The people that run this are well organised and enthusiastic.

The other main two that have semi-regular meet ups that I attend are WellRailed: Wellington’s Ruby on Rails Community Group and Node.js Wellington.

There was a great presentation at the RailsNoobs meet up by Raquel Moss – Continuing your learning as a post-beginner programmer (a 3 part series). I think it is a must read for any new developer / programmer (no matter what age) who has finished their training and is making the next step into the working world.

What meet ups do you attend? Are there other groups you have found useful?

Make Stuff

Start making stuff, even if you never finish some of them. I have started working on a couple of ideas. One is a karate site of terminology which I am making in Rails. Some ideas of where it will go are making it into a quiz; adding JS to the frontend (vanilla and then a framework; improving styling. I am also adding things I want to do to the issues in the repo. Karate repo / site

Don’t be scared about putting your code up on GitHub, it is a way for others to see what you are up to and a way to get help as well. I would also recommended having a crack at getting some sites/apps set up on Heroku or similar..

What are you making? Do you have any recommendations for projects for new programmers?

Goal / Aim

I decided before I got my job at Flick Electric that I would consider the next couple of years as kind of an apprenticeship and work on trying to do something code related for around four hours a week outside of work. Whether this be going to a meet up or doing coding on one of my projects. This has been flexible, in that I don’t berate myself if I do none, but it has also been really good to have a aim to do coding away from work.

Do you have goals/aims?

Today I Learnt

Awhile ago I also started a repo called TID/TID – Today I Did / Today I Learnt. I was having a crisis of how to record things I was learning when coding (at work and outside of work). I was thinking about doing short blog posts about things like errors, however getting to my blog site wasn’t immediate enough. I asked the world of Slack (EDA and Ruby NZ) and found out about the concept of Today I Learnt (a couple of examples,

Mine is a bit different as I have added Today I Did. I thought this would be a good way to have a record on things I have worked on. Although it is a bit difficult with not being able to be very clear about things due to not telling the world what I am doing at work.

The Today I Learnt is a collection of snippets to do with everything from Ruby on Rails, to Postgresql errors and MacBook shortcuts.

I have found recording things useful as just the act of typing notes helps me embed that learning. And it gives me a great resource to search when I have forgotten how to do something, or a similar error occurs.

In what ways do you embed your own learning?


At Flick Electric, the whole company has gone through a performance review recently and from this my manager and I came up with some goals for the next six to 12 months. With being part of a tech team in a small company, where there are about six developers, the onus will be on me to be active on achieving my goals. This will involve  finding opportunities inside and outside of work. This, I think, is quite different to big companies where training and development programmes are in place and I would imagine developers have clear milestones they have to meet.

How are you taking ownership of your own learning and professional development?

Other thoughts

Join channels on Slack – I belong to RubyNZ, JavaScriptNZ, RailsNoobs, WebDev Meetup to name a few.

I have chatted with some people who have talked about working on open source projects as a way to code and learn. I haven’t looked into this at all yet. Have you? Where would someone start with this?


What courses have you done? Recommend?

What support are you getting from your employer?  What support do you get from other programmers? Colleagues? Is pair programming part of your teams ethos?

How are you continuing your own learning?

Are there online courses or face to face courses that you have used/attended? Are there courses you recommend?

What meet ups do you attend? Are there other groups you have found useful?

What are you making? Do you have any recommendations for projects for new programmers?

How are you taking ownership of your own learning and professional development?

If you work in a large company, what is the professional development like for you? What are you getting out of it?

Employers, how are you providing professional development for your new developers?

I would love to hear your thoughts!

Webstock 2016

In January this year I applied for a scholarship to attend Webstock 2016 in mid February. I had seen information about the scholarship a few weeks before I applied but I wasn’t too sure if Webstock would be good/useful to go to being a very new developer. I didn’t actually really know what Webstock was all about.

Screen Shot 2016-06-18 at 10.25.50 PM.png

Then I came across this post by Natasha Lampard. Makes for fascinating reading. And so I applied and gained a scholarship to attend Webstock.

Having attend a few different conferences while teaching (Ulearn comes to mind), and having attended WDCNZ in 2015, I had an idea of what a large scale conference would be like.

However, Webstock is run differently. There is one stage, one stream of presentations, no smaller venues for different speakers or multiple themes. One stage, one presenter about every half hour. So actaully quite different to other events.

And what a mixture of speakers. From Luke Wroblewski talking about Screen Time (the kind of thing I was expecting) to Annie Machon who is a former MI5 intelligence officer-turned-whistleblower and Cindy Gallop telling us Why The Next Big Thing In Tech Is Disrupting Sex.

I think there was something for everyone in the eclectic mixture of speakers.

I think all the talks will be up sometime soon at, there is already six years of Webstock talks up to view (if I could only take a month off and watch them all!).

Screen Time

Luke Wroblewski –

Screen time used to mean sitting in front of a TV. Today we move between screens of various sizes, proportions, and quality all day. The abundance and diversity of devices can overwhelm teams delivering software. We need practical ways to tackle the problems that come with this diversity of screens. Luke explores a deeper understanding of screen time today and ways to design effective cross-screen experiences for tomorrow.

Here is a link to his talk, not the one he did at Webstock but the same talk (with slides, handy!). He talked about history of glass and four things to consider 1. know your screen, 2. output, 3. input, 4. posture. One thing I didn’t know is that you can get a lot of data about users and what devices they have via your website and apps and from that you can then tail content for them.

The Map and The Territory

Ethan Marcotte –

When we create for the web, we participate in a kind of public art. We code, we design, we build for an audience, making digital experiences that provide a service, that create joy, or that simply connect readers with words written half a world away. But in this session we’ll revisit what we’ve learned about responsive design, and ensure our content, not just our design, is readily accessible to them wherever they are. In doing so, we’ll look at some ways in which our audience reshapes the way we think about our medium, and see where they might be leading us—and the web—next.


This talk started off with looking to the past and the mapping of Manhattan. Ethan coined the term “responsive web design”. He talked about the digital divide and how in parts of the world most devices a sub 3G and that this will change the way people design sites. The idea of “good design” will change. It also look at the performance budget, reducing and revisiting, pages should not weight more then 300kbs, and to consider loading speed? 

This shows how much I have yet to learn. As I don’t even know how to figure out how quickly a page loads, how fast it is, what things effect it (besides image sizes!).

CSS Wizardry

Harry Roberts –

For his Webstock presentation, dressed as a wizardHarry will perform an interpretive mime cycle, translating the array of human emotions in architecting, writing and scaling CSS for large sites, apps, and products in large-team environments.

His silent exercises, which include such classic works as the cage, walking against the wind, the mask maker, and satires on everything from sculptors to matadors, have been described as works of genius.

I was looking forward to this talk about CSS, however, due to it being a non-technical audience, Harry changed the focus. He talked about doing lots of travelling and talking at conferences. Some interesting travel tips like using a different card to keep the power on in your hotel room when you go out.

Did a Google search to find a presentation of his, What Is A CSS Framework Anyway?, from Industry Conf, and slides Haven’t watched it yet.

Adaptive Content, Context, and Controversy

Karen McGrane –

In 2016, “adaptive content” has become a buzzword. To some, it’s a complex, long-term initiative to structure content for flexible reuse and dynamic targeting. To others, it’s a way to ensure that everyone, everywhere, sees exactly what they want—like magic! In this talk, Karen shares her perspective (and reservations) on how adaptive content is being used today. She’ll discuss how adaptive content supports targeting content to device type—and why that’s rarely necessary. She’ll also describe ways that adaptive content can support tailoring content according to context—and ways that can go wrong. You’ll walk away with a better understanding of when adaptive content is necessary and how to get the most value from it.

This was good. Difficult for me to describe as by this point if the day I decided just to soak everything up and didn’t take many notes. I will definitely be watching this when the videos come out. In the mean time, here is one from her site

Bug Fixes & Minor Improvements, Writ Large (aka Humorous Self-Flagellation and the Multiple Benefits of Being Old On The Internet)

Anna Pickard –

Somehow, improbably, the release note — that little space used by apps to describe their latest updates – has become a remarkable, human way for the creators of software to communicate with their users, and Slack (where Anna words*) has been at the forefront of the movement to turn that microcopical nugget of technical documentation very few people bother reading into (basically) a new literary genre. This little revolution didn’t happen by accident though: it’s the result of a fortunate series of events, a short list of values about how to behave as a company, and a long trail of people feeling out what it means to be oneself on the interweb.

This was a great talk and I now read all the release notes for Slack. If you are involved in writing well worth a watch.

Why The Next Big Thing In Tech Is Disrupting Sex

Cindy Gallop – @cindygallop

The tech world welcomes, supports and funds innovation and disruption in every area of our lives and work – except one. Join Cindy Gallop, founder & CEO of, for a provocative, insightful and revelatory examination of what constitutes sextech, how it can bring about world peace, the battles she and other sextech entrepreneurs fight every day to build their ventures, the huge amount of money there is to be made, and why New Zealand has a unique opportunity to become a global hub for sextech.

Now this was a talk that I wasn’t expecting at a tech conference (although, I learnt that Webstock isn’t really a tech conference). This was a fascinating presentation. Here is her talk at TED a few years ago –

That’s my brief (and rather late) blog post about Webstock ’16.

As I was writing it I started thinking about professional development in the developer world. My next post will be about this.

Treehouse – How to Make a Website

I have been learning code now on Treehouse for about two weeks.

Screen Shot 2015-02-04 at 4.21.28 pm

I decided I would start on the Front End Wed Development Track as it covers:

  1. How to Make a Website
  2. CSS Basics
  3. Introduction to Programming
  4. JavaScript Foundations
  5. HTML Forms
  6. jQuery Basics
  7. HTML Tables
  8. HTML Video and Audio
  9. AJAX Basics
  10. Accessibility
  11. Website Optimization
  12. Console Foundations
  13. Git Basics

The time for all of this is 41 hours.

I started at the CSS Basics block as I have made websites before with the code I do know. And had recently finished a Yoobee online course. So I kind of thought I wouldn’t learn much from it.

I got about half way through the CSS Basics and decided to have another look at How to Make a Website (instructor Nick Pettit).

How to Make a Website covers:

  1. Beginning HTML and CSS
  2. HTML First
  3. Creating HTML Content
  4. CSS: Cascading Style Sheets
  5. Customizing Colors and Fonts
  6. Styling Web Pages and Navigation
  7. Adding Pages to a Website
  8. Responsive Web Design and Testing
  9. Sharing a Website
  10. Debugging HTML and CSS Problems

I liked the structure of it in that you can make your own portfolio site as your progress through the tutorials (recently someone suggested that I could sell photos I take, not sure if I could but I decided to use a few of my own photos for this project, which makes it more interesting). So, I decided I would work through this first block.

I am glad I did. A few amount I already knew but I was able to skip through the videos easily. The way that I have learnt HTML and CSS has been quite adhoc. Started by learning to do the layout of pages with tables! Didn’t know anything about divs! So it has been really good to work through a course and not only use better techniques but begin to understand how they all work together.

The techniques/tips that have really stood out for me have been:

  • learning about ids and classes
  • how effective use of margins and paddings can be in styling a page
  • beginning to understand display, float, clear so as to create fluid designs
  • and using simple CSS techniques for design.

For example, the image from CSS Basics, all it is at the top is a orange border, but it looks pretty cool. It would be good to be able to show school students simple tips like this that can really make quite a difference to the look of a site.

The other part that I liked was the Responsive Web Design block. It was not complex at all and something that I think students in NCEA should be getting into early on.

Another part that was useful was the section on Sharing a Website. This covered:

  • Find a Domain
  • Pick a Web Host
  • Upload the Website

This might seem simple to those that have done it and do it regularly, however for me it was useful to be stepped through the process even though I won’t be doing it anytime soon.

This is my attempt at the project for this section – my portfolio site. It should look like this…

Screen Shot 2015-02-04 at 5.08.07 pm

…there are a few things I will fix up at some point and maybe one day it will be a full on site!

Overall, it was worthwhile taking the time to go back and complete the How to Make a Website section. I have about 2 weeks left of my free trial with Treehouse but I will be paying the $25 USD to continue learning. Also, you can pause your enrolment where you aren’t charged until you resume your enrolment. Cool idea.

If you think you might be keen or would like to try it out, help me by using this referral link For every person that signs up I can get 20% off my monthly subscription! That would be cool!

Coding online – YOOBEE: HTML and CSS Beyond the Basics


I have been working through Yoobee’s online course ‘HTML and CSS Beyond the Basics’. It has covered using wireframes to design your site to ending with responsive design.

Screen Shot 2015-01-20 at 9.37.41 am

There were 7 sections in total and I learned a number of things. What I am particularly happy about is learning more about responsive design.

Some screenshots…

… positioning, typography, hybrid layouts, CSS downdown menus and different ways of creating buttons.

The final project was to create your own site based on your wireframe from the first lesson. My aim was to create a CV/resume site for myself.

Here is my original wireframe (done in Photoshop) and my adjusted one after doing more of the course (done in Pixlr Editor – great online photo editing tool).

Screenshots of my final site:

I tried to make it a responsive design, which works when making the browser window smaller. However, I have hosted it up on Google Drive and Github and when I look at them on my iPhone it is not coming up with the mobile layout! I’m not sure why this is, anyone got any ideas?

I had a thought that there must be sites out there that can imitate what a website would look like on different devices and with a quick search found this site –, you can paste in a website url and change the device and also share that link. Of course you can do the same thing using the developer tools in Chome or Firefox, although I have found Chrome a bit of hassle as I go down in devices sizes, sometimes it doesn’t load the responsive design.

Overall I enjoyed doing this course. The video tutorials were good and activities/tasks useful. I liked that the aim was for participants to have built a site (even if one page) by the end of the course. I personally like to create sites rather then just go through learning of the code without an tangible outcome. And I got a certificate!

Screen Shot 2015-01-20 at 11.55.34 am

The online course was run using Moodle and again it is a great example of how Moodle is an excellent platform for a completely online course – easy to use, navigate and communicate.

I have now started with Treehouse with a free trial. Have picked up some good theory, deeper understanding of how CSS selectors work already.

Preparing for Enspiral Dev Academy

This year I am on a journey to learn to code – like really learn to code. I have taken leave from school and have enrolled in the Enspiral Dev Academy.



Just before Christmas I got an email from them about starting the pre Phase 0 prep, so I have started looking into what will be best for me.

I started with learning some basic HTML/CSS when I started teaching unit standards at Level 2 back in 2010. Using tables to do  page layouts (rather ugly and hard to work with), to in 2014 learning more about CSS, elements, divs (with it also being the second year of teaching achievement standards at Level 2!).

In 2014 I had quite a step up in my coding/programming experience. In March I attend the RailsGirls Wellington weekend, which was an explosion of coolness. Due to the requirement at school to teach programming in our Level 2 course, I also completed, in the first semester, the Introduction to Programming (Python) via the University of Canterbury. Made myself a bit sick doing this but completed it and rather happy with how will I did.

Once I started exploring the idea of doing the Dev Academy seriously I started doing some stuff on Codecademy. I preferred doing the HTML/CSS course rather then the ‘Make a website’ option as it made more sense to me doing stuff in order. I also started on the Javascript course. I found it a bit tendency and basic in what the content was but this was maybe due to having a good base already.

I than started having a play with the HTML/CSS Code Avengers course. Again, I started at the beginning and found the interactive layout more suited to me then Codecademy. I like it because it outlines when you start what everything is and where to find help. It gives hints in the tasks and output examples of what you are creating. I found all of these useful when I got stuck at particular points. As I went through the Level 1 course, even though I knew most of the stuff that it covered, there were a few little things that I picked up that I thought would be useful. It also outlined industry standards or expectations.

In December 2014 I attended the Computer Science 4 High Schools conference in Christchurch, run by the Computer Science department at the University of Canterbury, led by Prof Tim Bell. During this I was able to attend a few workshops, one of which was with Mike Walmsley, the creator of Code Avengers. We did some stuff with Game Development in Javascript (which can be used for NCEA Level 1/2/3 programming) and did a fun challenge with JS. I can imagine that the camps they run would be pretty cool. The game development was cool as well, as you could deploy it and send out the link (see previous post on CS4HS).

The other workshop that I attended was run by Tanya Gray from Gather Workshops – jQuery Taster: Enhancing Websites with jQuery. I found this lots of fun. As the information was online I was able to go a bit ahead as there were different levels of experience in the room. I found this really useful. It was a lot to get done in a couple of hours but doable. It was exciting to add some cool stuff to a site – here is my attempt.

With both of these workshops, even though they were great fun because of the interactivity, it would take me a lot of time to create something similar by myself, as I don’t yet feel I have the knowledge OR understanding of how it all works to be able to create something from scratch. This is the gap in my own experience/knowledge that I want to fill.

I have also had a look at CodeSmashers. This is a new start up that is looking to fill a gap in helping people learn to create their own websites. They use HTML/CSS with a bootstrap framework and by the end of a weekend you can come out with a cool looking site. You may not have a complete understanding of how and why it works the way it does but it is a pretty cool start and there is also an online platform for help from the tutors as well as other participants from your course and all the other courses that CodeSmashers have run. It will be exciting to see where they go next.

Another online course I have access to is Yoobee’s HTML AND CSS BEYOND THE BASICS. I have found this useful in thinking about how I want my site to look as the first task is going a mock up. However, they use a lot of videos and don’t have an online coding area. So the tasks you compete in a text editor then you upload what you have done to a forum and get feedback. By the end of it I should have a good looking site and hopefully learnt new stuff.

Now, back to the email from EDA for the pre Phase 0 prep and where to from here. They have recommended a few sites:

I have done both the Try Ruby (which was okay but a bit strange in how it worked) and Try Git (loved this, the way this was layout and worked was great for me!).

So, the question is where should I go to from here? Have I done enough in HTML/CSS? Should I jump into Ruby or JS first? Which resource should I go for? Should I go back to Codecademy or Code Avengers and start some of their courses further along and skip the basic parts?

What online training have you done? Do you have any recommendations or advice?

(This post is hopefully the first in a few. Planning on updating about online resources I have used once I have completed the prep phase).

Python – I have survived!

At the beginning of February I enrolled in the University of Canterbury’s first year paper – COCS121, Introduction to Programming (using Python). I decided to take the plunge as in our Year 12 Digital Technology class we are going to be teaching Python in Term 3 and I have never done any programming whatsoever!!

python logo

I decided I needed a course where I would have deadlines that had to be met. If I had just used an online resource like codeacademy, it would have been too easy to not to do it. Also, I like to interact with others and with the UC course we would have a tutor and tutorials plus able to use forums to talk with other students.

Uc Banner

Tim Bell and his Computer Science department at UC are working hard to support digital technologies teachers and they offered this course as an online option for teachers. (UC also paid the cost of the paper!) Twelve started at the beginning of the year and five of us made it to the final (written) exam.

It was really full on and hard work. I had thought it would be maybe 5 hours extra work a week but for me it was probably more like 10 to 15. With having no background in programming I had to find the time to watch all the lectures, do all the labs and complete all the assignments.

I think the only reason I was able to finish the course was all the support I got. From my partner (lifesaver!), from Jack Morgan our online tutor and from Tim Harford – my DT colleague at school and I also connected in with the UC Computer Chicks Club. We had online tutorials two times a week with Jack, who was great, patient and really good at helping me solve problems. Tim was fab, he sat with me most Tuesday mornings before school so I could bounce ideas and questions off him and talk about what was working and what wasn’t in the programs I was writing. I know I would not have been able to finish this course if I didn’t have all of this help.

Positives out of this (besides completing the course and getting a good grade) are that besides the stress I really enjoyed it. It was exciting and interesting being a student again, it has made me think about my teaching and the students in my class. It has made me think about having extrinsic motivations –  deadlines, grades etc – credits. However, it would be interesting if I was a student in an environment where learning was the final goal – not completing a course. In such an environment I may have made a program that I wanted to, rather then ones about words and word counts!

Even though I did enjoy the whole course and was really excited when I got things to work, I think it would have been better if the assessments were interesting. Or perhaps does there need to be a set formula when teaching the basics of programming? And when teaching such a large group? Something to think about and explore, particularly when we are just about to start teaching Y12 students at an all girls’ school.

Another thing that would have been good would have been working collaboratively. However, again with the set up of a first year uni paper, perahps this would be too hard, as assessments are individual so how can you be collaborative? Perhaps this is something that occurs later on in a university setting. I would like to think about how we could make programming collaborative in NCEA but again have the hurdle of assessments needs to be jumped over. Is anyway out there doing collaborative programming with NCEA assessments?

I have now ticked off part of one of my goals – Goal 3: learn Python so can teach effectively and engage students in this learning area – I have done the learning bit! I hope I can do the next part! Who else uses Python in NCEA for the programming / planning standards? How do you go about teaching it?

Now that I have had the time to process and reflect on the course (and get over illness following the course!) I can see that taking on this learning was a mammoth task while teaching full time! I recently joined a group on Google+ called Code Club for Teachers and was looking at the activities that people were completing and posted a question “How do you all find the time?”. I had a think about this yesterday and decided that I used up all my spare time (and energy) for the whole year in the first half of this year completing COCS 121! So, I’m going to take a breather for the rest of the year and not run head first into doing extra things – even if they look like lots of fun and could be useful!

So, what do you think about the questions I have formulated in this post – does there need to be set formula when teaching the basics of programming? Does it make it easier when teaching a large group? Can we introduce collaborative work in NCEA with programming? Are you getting students to work collaboratively? Are you teaching Python? How are you teaching it? Or are you are teaching another programming language? If so, what language and how is it going?