proper care and feeding for your junior developer

51
proper care and feeding for your junior developer Eric Stiens Software for Good @mutualarising

Upload: eric-st

Post on 04-Jul-2015

316 views

Category:

Technology


2 download

DESCRIPTION

This talk offers tips for both jr. developers and their mentors on software development. It will be on Confreaks in October of November of 2014

TRANSCRIPT

Page 1: proper care and feeding for your junior developer

proper care and feeding for your junior developer

Eric StiensSoftware for Good@mutualarising

Page 2: proper care and feeding for your junior developer

how to be an awesome junior developerhow to mentor junior developers you work with

how i became a junior developer2 stories and some other stuff

Page 3: proper care and feeding for your junior developer
Page 4: proper care and feeding for your junior developer
Page 5: proper care and feeding for your junior developer

(it's not very technical)

Page 6: proper care and feeding for your junior developer
Page 7: proper care and feeding for your junior developer

THISWILL BE BRIEF

(i promise)

Page 8: proper care and feeding for your junior developer

Background in Sociology and Social Work15+ years working in non-profit fieldRacial Justice researcher

Page 9: proper care and feeding for your junior developer

Highly Trained and Professional SJW

Page 10: proper care and feeding for your junior developer

web coordinator for international mental health non-profit

drupal without php...whee!

solo consulting company for non-profits

mailchimp, dropbox, listservs, fixing printers, online donations, social media, networking, hardware

supportAnd a bunch of Wordpress sites (without php...whee!)

Page 11: proper care and feeding for your junior developer

Bitmaker LabsBootcamp in Toronto

Page 12: proper care and feeding for your junior developer

GETTING HIREDmutual meeting not an audition

make sure they want a junior developer

(not just a sr.developer lite! make use of other skills. know how to onboard)

Page 13: proper care and feeding for your junior developer

I ASKED ABOUTsupport for my learning, pairing,

mentoring, commitment to diversity and social justice, when I'd push production code, testing, ability to work on front-end and

back-end stuff

Page 14: proper care and feeding for your junior developer

full stack developerprimarily working

with Ruby and Railsask me about it

later

Page 15: proper care and feeding for your junior developer

MY FIRST DAY! :nervous:

Page 16: proper care and feeding for your junior developer

model.rb def method_missing(sym, *args, &block) if sym == :data || sym == :data= super elsif (m = sym.to_s.match(/^([\w]+)_before_type_cast$/)) && args.length == 0 send m[1].to_sym elsif sym.to_s.match(/^[\w]+$/) && args.length == 0 if self.class::EAR_ATTRS.include?(sym) get_dynamic_result(sym) else super end elsif sym.to_s.match(/^[\w]+=/) && args.length == 1 m = sym.to_s.chop.to_sym if self.class::EAR_ATTRS.include?(m) set_dynamic_result(m, args.first) else super end else super end end

Page 17: proper care and feeding for your junior developer

wtf?

Page 18: proper care and feeding for your junior developer

schema.rbt.text "data",:null => false

⬆(100 attributes live inside me as a giant serialized hash)

Page 19: proper care and feeding for your junior developer

WTF?

Page 20: proper care and feeding for your junior developer

YOU ARE IN A LEGACY CODEBASE

-> RUN TESTSYOU HAVE NO TESTS

-> READ SPECYOU HAVE NO SPEC

-> WRITE FIXYOU ARE EATEN BY AN ELDER CODE HACK

Page 21: proper care and feeding for your junior developer

TESTING and

READING CODE

Page 22: proper care and feeding for your junior developer

“Programs must be written for people to read, and

only incidentally for machines to execute.”

- SICP

Page 23: proper care and feeding for your junior developer

(i haven't actually read SICP yet)

Page 24: proper care and feeding for your junior developer

(Interestingly, writing tests for

someone else's code, is a particularly good

way to read it)

Page 25: proper care and feeding for your junior developer

MENTORINGDon't hire a junior developer you can't mentor. It's not fair to them.

It's not fair to your team. Everybody loses.

Page 26: proper care and feeding for your junior developer

Some mentoring rulesNo feigning surprise

No well-actually'sNo back-seat driving

No subtle -isms

Page 27: proper care and feeding for your junior developer

DON'T USE THEIR KEYBOARD

(Yes, it will be frustrating. They will be slow. They will make

typos. They will get flustered. They will get syntax wrong. They

will stumble. It's okay. Be patient.)

Page 28: proper care and feeding for your junior developer

CODE REVIEWWe do code review on pull

requests. You can never merge your own code into master, no matter how small the change.

Page 29: proper care and feeding for your junior developer

BAD CODE REVIEWwriting code for them (too specific)

not being specificanything mean or too tersefocusing too much on inconsequential style choices

Page 30: proper care and feeding for your junior developer

GOOD CODE REVIEW"Great job getting this feature to work, but you could probably refactor X and Y into another object."

"We probably need some tests on this logic"

"A more idiomatic way of doing this is..."

"You should look into this Rails method here, it does what you want"

"What will happen if we pass nil into this method?"

Also, nitpicks are good. (Just not all the time).

Page 31: proper care and feeding for your junior developer

have your juniors do code reviews as well!

Page 32: proper care and feeding for your junior developer

www.exercism.io

Page 33: proper care and feeding for your junior developer

PAIRING(sadly, we don't do enough of this at SfG...yet! But we are working on it)

Page 34: proper care and feeding for your junior developer

LET JUNIORS PAIR TOGETHER

Rarely have the same strengths.Builds team cohesion.Increases productivity

Page 35: proper care and feeding for your junior developer
Page 36: proper care and feeding for your junior developer

A STORY ABOUT A SIDE PROJECT

Page 37: proper care and feeding for your junior developer
Page 38: proper care and feeding for your junior developer
Page 39: proper care and feeding for your junior developer
Page 40: proper care and feeding for your junior developer

WHAT DID I LEARN?how to build an API, lots of stuff about JSON, how to

use RABL, how many people make feature requests to open source projects and how little people fork and PR, how to scale an app on Heroku, that timezones

suck and are really hard, nokogiri tricks

Page 41: proper care and feeding for your junior developer

My company paid me to work on it and then paid for the hosting

They ended up with a developer that had leveled up in some skills, some great publicity, and even a few job

inquiries

Page 42: proper care and feeding for your junior developer

SOME MORE IMPORTANT THINGS IN NO PARTICULAR

ORDER

Page 43: proper care and feeding for your junior developer

DESIGN PATTERNS

Page 44: proper care and feeding for your junior developer

WATCH OTHER PEOPLE CODE

(check out peepcode.com! / pluralsight)

Page 45: proper care and feeding for your junior developer

READ A BOOK READ A BOOK

Page 46: proper care and feeding for your junior developer

Some thoughts on the pipeline...

Page 47: proper care and feeding for your junior developer

DIVERSITY =\= SOCIAL JUSTICE

desegregation is not the same as integration

Page 48: proper care and feeding for your junior developer

DIVERSITY♻

SOCIAL JUSTICE

Page 49: proper care and feeding for your junior developer

thank you buffalo !@mutualarisingeric stiens

Page 50: proper care and feeding for your junior developer

Some further reading on diversity and social justice in tech

The Myth of a Magical Future by Kate Losse

http://www.katelosse.tv/latest/2014/9/12/magical-futures

Etsy’s Trying to Fix Tech’s Women Problem. Why Aren’t You? by Ann Friedman

https://medium.com/matter/this-is-the-last-thing-youll-ever-need-to-read-about-sexism-in-tech-56b9a3a77af0

Page 51: proper care and feeding for your junior developer

Manufacturing the Talent Shortage by Dimas Guardado

http://modelviewculture.com/pieces/manufacturing-the-talent-shortage

Even At Highest Level, STEM’s Leaky Pipeline Failing Women and Black People by Laura Mandanas

http://www.autostraddle.com/even-at-highest-level-stems-leaky-pipeline-failing-women-and-black-people-245489/