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 – https://atom.io/packages/linter-rubocop.

 

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

 

Advertisements

PD 4 Jnr Devs

learn-to-code

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?

WHAT I DO…

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 https://github.com/jbranchaud/til, https://github.com/thoughtbot/til).

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?

Ownership

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?

Questions???

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 http://www.webstock.org.nz/talks/, 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 – www.lukew.com

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 – ethanmarcotte.com

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 – csswizardry.com

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 https://speakerdeck.com/csswizardry/what-is-a-css-framework-anyway. Haven’t watched it yet.

Adaptive Content, Context, and Controversy

Karen McGrane – karenmcgrane.com

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 https://karenmcgrane.com/2012/09/04/adapting-ourselves-to-adaptive-content-video-slides-and-transcript-oh-my/.

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

Anna Pickard – annapickard.com

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 http://makelovenotporn.com/, 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 – http://blog.ted.com/cindy_gallop_ma/


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.

A whirlwind tour of how computers work – EDA Meetup

First meet up ever. This one is on… “This talk will be a whirlwind tour of what’s going on under the covers in computers. It will start from transistors, and build up to logic gates, state machines, instruction sets, machine code, assembly language and up to high level programming languages and frameworks. Obviously we’ll be skipping a lot of detail, but the goal will be to demystify how computers work by building up from simple things to increasingly complex things in layers that can be understood separately.”

I found this talk fascinating. It was great to get an overview from start to end. Particularly as I have no computer science / electronics background knowledge or education. It was fast paced but explained really well so that I was able to grasp the concepts. And knowing a bit more about computers and how they work just makes me more amazed.

And this amazement could easily lead to a mentality of “I’m never going to get it or understand it” but there were a couple of things that take me away from this thinking. Firstly they guy taking the talk, talked about layers, how everything in a computer are in layers and you work out one layer and then go onto the next. And this way you can understand and manage the concepts.

Than at the end Joshua Vial made a closing remark about how people have, bit by bit, made, created what we now use as computers. That it hasn’t been just one person but heaps of people building different layers.

So, I know I can figure out layers and create parts to than work with others to make something bigger. What’s the saying ‘the whole is greater than the sum of its parts?!’

“A Day in the Life” – Enspiral Dev Academy

So on Saturday I went along to the “A Day in the Life” that was being run by Enspiral Dev Academy. It was a day set up for people to experience what Dev Academy – “Join us for a chance to really feel what it’s like to be a boot at our nine-week programming academy. We will walk you through the paces so you get an honest taste of what cohort members learn, feel and become.”

The day started of with introductions, learning names and an outline of what to expect. We then were paired up for some ‘pairing’ (coding in pairs). I was paired with James and the first challenge was Javascript Racer. It was great doing coding in pairs as I wouldn’t have got very far by myself. This ended up taking us most of the day as I had very litle Javascript experience. James had a bit more and with some help from the teachers and coaches we got a working model.

In between our coding challenge there was sessions on web development, engineering empathy, optional yoga or heading out for a walk in the sun. The day really did give a good overview of what the 9 week Dev Academy boot camp is like.

There were a number of engineering empathy activities we did throughout the day and I gained a lot of insight from these. Firstly we paired up with someone and for 2 minutes answered the question ‘why I am here today?’. Our partner then feed that back to use (‘looped’ it). From this and then the journaling exercise we did later in the day a realisation came more into focus for me. A realisation that ever since I encountered technology (Mac computers) at university back in the early 90s, I have really enjoyed using it. And the more I have used technology the more I have enjoyed using it to solve problems. This has been a recurring theme throughout my working life – using technology to solve problems.

So, overall the day was a success – jointly created a (very basic) Javascript game and bought a number of things into focus for me.

If you are interested in programming or wondering whether you might like it and you have the chance to attend “A Day in the Life” I would highly recommended. Also, Enspiral Dev Academy have a few exciting projects in the pipeline, so keep an eye out on what they are up to.

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 Code.org 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?

Github, html, css – starting out!

Early this year I was introduced to Github at the RailsGirlsWgtn Weekend back in March. Over the weekend there was the chance to create your own Ruby on Rails app, using Github and other sites to get it working. I must admit it was all a bit of a mystery to me and I doubt I could go back and recreate any of it, including the command lines to get stuff onto Github.

Since then I have learnt quite a bit more about programming (see posts about Python) and have developed my knowledge of HTML / CSS. For our Y12 Digital Technology class this year we have done quite a bit of website stuff and I have learnt more about using divs for layouts and cool sytling in CSS and my skills and confidence have improved.

Not long ago I came across Alyx Gillett’s website, which I think has a really cool and simple layout and design. So I started to look into creating one for myself. I looked at what hers is made in, which is www.squarespace.com. Looks cool but you have to pay after a free 14 day trial and it gives a bunch of stuff but nothing I think I need at the moment. And the  i had a brainwave, as I am a DT teacher wouldn’t it be cool if I made my own site completely from scratch. So I started have a play around with some ideas, look at some sites that had layouts I liked. This one provides the HTML & CSS – www.maxdesign.com.au. I started playing around with the Two column fixed width example and the One column fixed width layout.

site2

After playing for a bit I got busy with other things until just the last few days. I decided I wanted to have a crack again and also thought it was about time I started a wee project of my own. I thought creating my own site and getting it up online would be a good place to start plus it is a chance for me to really embed my own learning and think about how I can improve my own teaching of HTML & CSS.

So, after doing some Google searches about using Github and discovering Github for Windows and Mac, and learning about being able to use gh-pages to host a static website I pushed my wee site out into cyberspace. Using Github for Windows/Mac is so much easier then using the command lines – although I am sure it will be useful to know those sometime in the future.

Here is my site – http://schuknight.github.io/schuknight-site/. Still very much a work in progress and a learning tool for me.

ghiosite

Here I am on Github – https://github.com/schuknight. Useful stuff from RailGirlsWgtn Github page.

Next few steps with my site will be planning out what I want and also in November I am doing a 2 day HTML course at Yoobee, so hoping to learn some cool stuff there. It will be good to learn properly after a few years of picking things up here and there!

I have also rediscovered Sublime Text text editor. I like it as it just seems nicer then Notepad++ and can put on Windows and Mac!

sublime

How did you learn about HTML/CSS, webdesign? Got any goto sites that you think are essential? Either that you use now or learnt heaps from? What site do you recommend for me to keep developing my HTML/CSS? What site is good to start learning about Javascript?