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.

Gem Error

So, another thing that I haven’t spent the time to fix on my Mac at home is this issue:

ERROR: While executing gem … (Gem::FilePermissionError) You don’t have write permissions for the /Library/Ruby/Gems/2.0.0 directory.

This has come up ever since upgrading to El Capitan and the way Apple changed things that I don’t really understand. You can read about it here, OS X El Capitan screwed up Ruby gems, and how to fix it. Although I didn’t follow the fix (well, at least not today, there is a good chance I did it ages ago!). A search for Ruby and El Capitan will bring up lots of posts about it, it has to do with Apple’s System Integrity Protection (SIP) feature.

Anyway, coming back to todays error. This was following trying to use Rails Composer. Did a google search with the above error and got loads of results. Looked at the first three and came across this Stackoverflow answer, the one about using a Ruby version manager. I knew that it was something to do with my path. Which didn’t have “rbenv” in it even though I was using that. (Actaully it had “.rvm” as I had been using that and thought I had got rid of it all when I made the switch to rbenv!)

So, after sussing out a few things, changed my path in my .zshrc file (note: using zsh not bash!) to:

$HOME/.rbenv/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

Making sure I had changed to the ruby version I wanted (rbenv local 2.3.0 – I also changed global to this as well) and then did rbenv rehash (remember to do this step.

Also added this in:

if which rbenv > /dev/null; then eval “$(rbenv init -)”; fi

That is all probably not that helpful, as a lot of it was trial and error. Some good links to keep handy:

https://github.com/rbenv/rbenv

Using rbenv to Manage Rubies and Gems – have only just found this!

This could be useful if you are just starting out – https://gorails.com/setup/osx/10.11-el-capitan.

NumPad not working in iTerm2!

I’ve recently decided that I am going to start blogging errors, problems and code I find useful. I have a Google Doc with Tips on lots of things and I have an Errors doc that I started when studying at Enspiral Dev Academy.

I have kept referring back to my errors doc and more and more to my Tips (at work) doc. So, why not share openly for others?

I have just been doing some work on my MacBook at home and my keypad (wire keyboard) hasn’t been working for ages (but I haven’t spent the time to fix it). So did a quick search, first hit was this Fix for iTerm2 Numeric Keypad Not Working, solution:

in iTerm2, go to preferences>profiles>keys and select  “xterm with numeric keypad” from ‘load presets’.

Screen Shot 2016-02-08 at 3.48.44 PM.png

Have just read this though, https://gitlab.com/gnachman/iterm2/issues/702, hopefully I won’t come up against any other issues with the keyboard now!

 

WDCNZ – a bit late!

WDCNZ happened on 23 July 2015 and I was luckily enough to get a ticket through Summer of Tech.

It was my first conference / event in the tech / developer world and I was quite excited after reading about all the speakers.Screen Shot 2016-01-17 at 3.11.17 PM

It was pretty amazing having so many international speakers with such varied topics. The ones that stood out for me were:
Push notifications for fun and profitby  Monica Dinculescu. I liked the use of Chrome for generating notifications and see that Facebook have recently got this going with Chrome (unless it wasn’t so recently cos I don’t get onto things as quickly as others). The example site that Monica set up was this one – https://caturday-post.herokuapp.com/ – what is it with developers and cats?! I love cats and it has actually made me laugh lots when I had notifications on and was getting cute cats. Screen Shot 2016-01-17 at 3.21.49 PMNothing better than a good old chuckle!

Is Your Code Too Solid? by Sarah Mei. Great speaker. She gave the talk in such a way that even a newbie like me was able to understand it. Great use of images and metaphors. I have already tried to use some of SOLID in the coding I have been doing at work.

 

Another one that I found really interested was HTML5 Web Forms by Estelle Weyl

Screen Shot 2016-01-17 at 3.27.19 PMI have  wanted to get back and have a good look at this as there is a lot that I do not know about forms and how to get things down with HTML & CSS that I probably would have thought you had to use JavaScript for.

 

Other talks that I went to were:
Consequences of an Insightful Algorithm by Carina C. Zona, thought provoking.

Walking the fuzzy line between design and development by Amanda Dorrell, interesting.

Automating the real world: an evolution in web development by James Macfie, touches on my work.

Ones I wished I had got too and need to make the time to watch the videos:

Revenge of the ORMs – Why SQL skills matter in 2015 by Megan Bowra-Dean. Was able to see a version of this talk at a Wellrailed meet up!

React Tips and Tricks by Vimal Jobanputra

And Joyful Web with Ruby on Rails and  Troubleshooting Node.js – What to do when things go wrong.

I think the next weekend when there is no surf, I’m too tired to go to karate and the weather is absolute shit and my wife is away I might have to have a WDCZN session!

Oh and thanks to Sam, Cara and others that kept me company during the day!

How to start ‘networking’ as a junior dev

I’ve had a few chats recently with people you are studying or have just finished studying at Enspiral Dev Academy about networking. The common question is how do I start networking if I don’t know anybody. So, here are a few ideas on how to get started.

Meet Up

logo-2xWhat is Meet Up?

Meetup is the world’s largest network of local groups. Meetup makes it easy for anyone to organize a local group or find one of the thousands already meeting up face-to-face. More than 9,000 groups get together in local communities each day, each one with the goal of improving themselves or their communities.

I think I was introduced to Meet Up when I learnt about EDA. They have there own where every week there is a NodeSchool Wellington meet up and Ember.js School. They also semi-regularly have Tech Talks – like this one: Starting out with established codebases.

There are heaps of meet ups, and not just tech ones. Here are the ones I belong to, you don’t have to be really active in them. I’m not but if there is something that comes up that I am interested in I can jump onto it.

Screen Shot 2015-10-26 at 12.42.10 pm

One meet up that I think would be really good for those new to Ruby and Rails is Wellington Railsnoobs.

Back to way going to meet ups are good for networking. You will meet people in the industry, you can connect with people, you can learn what is going on and learn something new.

I have a goal of talking to at least two people I don’t know at meet ups. Otherwise I have a tendency to stand around and hide in a corner. It can also be good to see if anyone you know is going and see if you can go together, strength in numbers. Don’t let this stop you from introducing yourself to other people though. Perhaps work together to talk to people you both don’t know.

I find it useful to have thought of  few questions to ask when I introduce myself. “Hi, I’m Libby, I work at Flick, where do you work?” “Is this your first meet up?” “What do you do?”

Once you have the ball rolling, try to figure out if you have any common interests and make a connection. This doesn’t just have to be around coding, maybe they are into surfing and you can share the best places to go for a surf. Try and connect.

Twitter

I have Twitter useful while I was teaching and now as a developer it is great to keep up to date with what people are up to. The trick with Twitter is that you have to be active to really get the benefit from it – i.e. it is a “social” network, so you have to be social! I joined Twitter in 2011 but wasn’t really active on it until 2012. I didn’t get it until I started being more active on it.

Around the time I started being social on Twitter I started this blog for my Registered Teacher Criteria (something teachers have to do). I linked this to my Twitter account, so whenever I blogged, it would be tweeted as well. This is one way of being active.

Coming back to networking, start following people that interest you, tech companies, companies you want to work for, people you admire in the industry, sites that offer training. Start retweeting tweets you see that you find interesting. Every now and then add your own comment to the things you retweet.

If you aren’t sure who to follow, start looking at those you do and see who they follow. Have a look at some hashtags – #rails, #rubyonrails, #webdesign

Look at lists that people have created, here is one listing EDA people – https://twitter.com/SchuKnight/lists/eda/members, start following people off the list. You can also subscribed to other peoples lists.

Go here to learn more about Using Twitter lists.

If you are keen on getting started with Twitter but your not to sure how to, have a look at this 14 Day Twitter Challenge. It is for PE teachers but follow along and just change out PE things for web dev things.

Screen Shot 2015-10-26 at 2.06.55 pm

Day 3 – find and follow, try this list of developers. Day 4 hashtag – #webdev. Day 13 – Twitter Chat – to come.

Friends and Family

Network with your friends and family. Start sharing what you are up to, what you want to do, what tech you are passionate about, what you want to make. Explain to them what Dev Academy is all about, or however you have been learning. Sooner or later someone will go ‘Oh, I know so and so who works at one of the biggest web companies in Wellington’. Funnily enough, through my mother chatting with someone in her ladies choir I could have made a connection with one of the head honchos at Springload. You never know who is connected to who, so talk it up with whoever will listen.

What ways do you network? Who should new developers follow on Twitter? What meet ups do you recommend for new developers? Do you have some advice for new developers who are just starting out with networking?