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.

Next-level Web Design with jQuery – #cs4hschch

This session is a taster for interactive web development using jQuery. An understanding of HTML and CSS is required, but no experience with JavaScript or programming is necessary. Learn how to easily add a slideshow to your website, create an interactive image gallery, and dynamically load a set of images from Flickr. If you’ve ever wondered how jQuery and JavaScript fit into web design, this session is for you. The tools used are all freely available for use in your classroom.

Capture

What is jQuery?

  • It is a JavaScript library
  • Adds interactivity to websites
  • DOM manipulation (DOM = Document Object Model) – the structure of objects on your webpage

A web page is made of three main languages – HTML / CSS / JS. Good example using google.co.nz showing HTML only page, then with CSS then JS.

Workshop Mission: Fun with jQuery

Neocities: Getting online fast

jQuery Basics

What is this thing anyway?

jQuery vs JavaScript
  • JavaScript is a programming language.
  • jQuery is a library of code which is written in JavaScript.
Handwritten jQuery
  • Can be used to modify a single element
  • Or to modify a whole lot of elements in the same way
jQuery Plugins
  • A plugin is a pre-written piece of functionality.
  • Plugins need to be included in your site and then initialised.

Workshop Plan

  • Use a plugin to create a slideshow
  • Use a plugin to create an image gallery
  • Write some code to import images from Flickr
Backstretch
  • Allows you to add a dynamically-resized, slideshow-capable background image to any page or element.

Lightbox

  • Popup image gallery
  • Provides a simple way to create a gallery with both thumbnails and full-view images.

Flickr Integration

  • Pulling in themed images
  • Flickr Public API
    Flickr provides a way to search their images from code.
  • This means we can get a list of information about a set of images automatically.
  • The API we will be using is the public feed found here.
  • API = Application Programme Interface (a way to get data in and out of an application)

JSON Data

  • Many APIs offered by web applications use JSON as a way of transferring data.
  • (JavaScript object notation)

My site – http://schuknight.neocities.org/

Programming 2D Games with JavaScript #cs4hschch

CodeAvengers have developed a new lessons in which students build 2D graphical games as they learn the computer programming concepts for 1.46-3.46. In this workshop, you will cover how to teach and assess 1.46 using the Code Avengers level 1 game development lessons. There may be an opportunity to move onto an overview of the level 2 and 3 game development courses. Teachers will get to build a couple of their own games during the session. These lessons are also suitable for digital media, or junior programming courses.

First task completed in Javascript – http://www.codeavengers.com/c/libbysk/first_2d_javascript_game

Had a play with the Flag tutorial and then in the nex session we did the Flag Challenge which was pretty fun.

Continued development of my Javascript game:

http://www.codeavengers.com/c/libbysk/second_game

Was a really interesting workshop. I enjoyed doing the tasks in Code Avengers. Being able to have a visual / graphical output is good. It will be interesting to see what the set of lessons will be like and if students will learn the concepts of variables, loops etc well.

CS and Programming at Yr 10 and below #cs4hschch

Australia, the UK, and other countries now have computer science in their curricula from Year 1, and the NZ government have recently recommended reviewing the positioning and content of digital technology within the New Zealand Curriculum in the “Nation of Curious Minds” report. Should programming be taught in our primary schools? In this session we will look at the benefits and challenges of teaching computer science and programming prior to year 11, including opportunities already available through CodeClub Aotearoa.

Starting CS & programming young – Caitlin Duncan (link to presentation)

  • Cons
    • can put students off if learning experience is negative
    • curriculum is very full!!
  • Pros
    • increase interest in the subject – more doing NCEA
    • get in before stereotypes close doors
    • assist future learning
  • Learning Aims
    • Students – enjoy, engage/ basic understanding of what CS & programming is / computational thinking skills – very important
    • Teachers – integrate / confidence
  • How do we achieve this?
    • Computer Science – CS Unplugged, what topics
    • Programming – how to teach, why to teach, combining with other subject, how do I do it, WHAT IS IT?!

Should your 8 year old learn coding?

CodeClub Aotearoa

CaptureLots of interest from people in industry to help with teaching / introducing coding / programming to students – all levels. CodeClub get lots of help.

CS4HS – Computer Science Level 1 Introduction

1.44 Demonstrate understanding of basic concepts from computer science

PDF of standard

Golden rule of interface design is consistency.

  • Example – setting alarm on device
    • User – appointment
    • Task – setting the exact time

To learn about an interface, get students to get parents to use the interface. Think about who the audience and what the task really is. Think aloud cognitive walk through.

Have students using personal examples, different interfaces.

HUMAN COMPUTER INTERACTION – CS Field Guide

Problems when programmers haven’t looked at issue from users point of view – door example – green light means is secure / locked, users think it open so can go through.
Teller at Westpac with typing in amounts – inconsistent ways to input into different places in the system

ALGORITHMS

http://www.csfieldguide.org.nz/Algorithms.html

Phone book example

What is an algorithms? A way to solve a problem, a method to solve a problem

AS – describing key characteristics and roles of algorithms, program and informal instructions
CS Field Guide – 2.1.1. ALGORITHMS, PROGRAMS AND INFORMAL INSTRUCTIONS

Ripping phone book in half, then half again – binary search. But data has to be sorted if using a binary search.

Algorithms have an associated cost. Different ways to measure cost – cost is often time.

Comparisons – weight example. Selection sort: 9 items – 8 comparisons.

What an algorithm is and what the cost is? Best way is comparison. Students do not need to write the program, they just need to run it (see guide – 2.3. SORTING ALGORITHMS). Important for students to do it with numerous different inputs / sizes – e.g. 1, 100, 1000 etc etc.

Quick sort – easier to do with your hands with objects. Weight example again – use one weight where you compare all others and put into two piles. 19 comparisons instead of 36 (selection sort) 2.3.4. QUICKSORT CS Field Guide

Demonstrate how an algorithm works, can put in photos or screenshots of scales on CS Field Guide. Good to use the programmes – python or scratch, can download from CS Field Guide.

Algorithms, interfaces and programming languages – 40 / 40 / 20 of how much students needs to do on each.

Programming – difference between compiling a programme and running a programme.

Computer Science 4 High Schools – welcome session

Purpose of CS4HS

  • vision for teaching
  • specific ideas for new standard
  • peer support
  • networking
  • refreshment

Environment

  • respectful safe environment
  • ow to work with what we’ve got
  • encourage and build each other up
  • presenters are volunteers
  • no question is too simple

Why CS4HS?

  • students don’t know what C is
  • employers can’t meet demand
  • best jobs – conditions, prospects
  • students need to find if its for them
  • not previously taught in schools

Teachers are the Lynchpin!!

Paper: Adoption of CS in NZ High Schools

NZACDITT Computing at School / Computer Science Teachers Assn – csta.acm.org

Binary Exercise – 10110 = 22 (was someones birthday!)

Student Story – Hayley van Waas @hayleyavw