Speaking at Oscon and the Jr Dev Gap

Recently I had the pleasure of speaking at Oscon with my lovely friend and former colleague, Elaine Marino. She’s kind of amazing and I love her dearly, as seen in photo.alt_text We spoke about our journey leaving our Marketing careers behind and going into Softare Development. Let me tell you, it has been quite a journey.

For this blog sake, let’s start in 2012 and take that timeline,
interestingly enough, we started off similarly.

2012: Left Marketing Career, decided to go self-taught route.

  • For Elaine, she left her advertising career in New York for a Boulder
    startup, where she worked on a more technical team. This inspired her
    to learn more and was eager to start in on the road for becoming a
    software developer! She enrolled in a program called Davinici Coders, which taught her some of the basics of Ruby, Rails, Git and the command line. She completed her course early fall and (not right away mind you) was able to land an internship December 1st at a Rails shop, where we first met. hearts

  • For Me, I had done some online tutorials learning Rails, a bit of
    Sinatra and some Javascript in the winter of 2012. I felt pretty good
    about my baby sinatra application that had some small Javascript
    elements and pushed something to Git Hub, so I felt ready for the world! Late Spring, I interviewed for
    an apprenticeship at a Rails shop, and was then asked to WHITEBOARD
    javascript. I was dumbfounded, I had never actually handwritten code
    before, let alone in front of someone without any assistance from
    Google. Needless to say, I failed. I decided to quit my job at that
    point and fully dedicate myself to learning how to code, determined that
    if I learned a bit more, I could get a job. Months later, I was able to
    land an apprenticeship at a Rails shop, where (as mentioned above) I met
    Elaine.

2013: The Journey Begins!

Here we are, both marketing professionals turned to n00b developers and
we couldn’t be more excited. Four weeks into our internship however, we
were quickly disappointed that both our lead devs (mentors) left the
company and we were left to have 15 minutes of support per week with
questions we had built up. Although we learned and we tried our best in
that internship, we were lacking guidance to take our skills to the next
level and were not able to continue past the internship.

Where does that leave you? Somewhere between a self-taught newbie that’s
never worked in a production environment and someone who has deployed
code that has been used in a REAL LIVE APPLICATION but cannot
deploy/complete features in a quick enough manner to the level or a
Junior Developer.

This begs the question… what IS a Junior Developer? What ARE the
requirements? Well, this varies by company.

2014: Our Journies Divert

We both tried finding jobs and interviewing at multiple places and found
it challenging to get a job as a Junior Dev, but were both cautious
about another internship as our experience before wasn’t great. Do we
waste another six months gambling that the company will be able to work
with us and either hire us or bring us to the level where we are
proficient Junior Developers.

Elaine decided to take her experience working within the tech industry
and combine it with her marketing experience and create her own company,
Lady Coder Productions. She puts on and runs
events, hackathons and companies hire her because she’s a bad ass.

I continued on in the pursuit of Software Development, which led me to
this program called Turing, a seven month intensive
program that would focus on Ruby, Rails, Javascript, Git, deployment to
servers and everything in between. I’m currently in this program and
should graduate December 5th; where the real value will be shown!

Going through our experiences, we kept in touch and discussed why it was
so tough to find a job and working on pinpointing exactly what it was
that was causing this. We started talking with other people and we
realized there were a few problems.

##Imposter Syndrome

We’ve all had it, but when you’re a junior and even moreso when you
belong to a minority, it’s tough. There are a lot of things contributing
to this within the tech scene, let’s go through them. Fun fact, in the
Marketing industry, there are 56% women. Tech? 26% women

  • Interrogation interviews

    • The round the table board room interviews and Whiteboarding. It has
      to stop. Set your canditate up for success rather than failure. As a
      junior, when are they really going to be needing to be in that high
      stress environment with the minimal knowledge they have? Hire them for
      what they could be, not what they currently are. This can be done by
      doing more logic focused questions to discover how they think. THIS is
      how you can determine if a canditate is a good fit, amongst general
      cultural items.
  • Unwelcoming Meetups “The Bro Coders”

    • The meetup you go to and everyone already knows eachoher and are high
      fiving one another on thier commit messages and not welcoming to you
      whatsoever. Most of the time, this is unconscious, but as a leader of a
      meetup, you can make a difference by creating a welcoming culture of new
      members.
  • Hackathons are scary

    • Just the word ‘hackathon’ can be seen as initmidating to anyone. ‘You
      want me to code all day long, by myself with a bunch of people that
      could school me in two seconds? No thanks.’ Traditionally, these events
      are geared towards the more senior developer to ship code and get it out
      the door in a constrained amount of time. These events are looking for
      some skilled code monkeys to build a product, not a new developer
      looking to learn a bit more and try out their skills.
  • Poor mannerisms online

    • I’d say Stack Overflow and Reddit are the worst violators of this, in
      that the community is very hard to break into with an opinion as a
      newbie. You ask questions there are you are either immediately
      casterized as being an idiot or you don’t get a reply. So that’s
      helpful. eyeroll
  • Understanding where you are

  • The four stages of competence is a great way to think of the process of becoming a junior developer. Cycling through when you’re Unconsciously incompetent, where you don’t know what you don’t know. Conscious incompetence, where you are accutely aware of what you don’t know and it can be a scary place. Conscious competence, where you are begining to know what you know and what you don’t know. Unconscious competence, where you know what you know and things start to become second nature.
  • What you can do to help
  • Get a good support system (aka Women Who Code, Girl Developit, mentors within your community)
  • Coding buddy: find someone that is going through the same things, use eachother as support
  • Fake it til you make it: Be engaged in the community and don’t let the fear of doing something take over what will make you stronger.

What’s the Timeline

Becoming a developer in a self-taught way, changing careers, it’s tough.
You get what you put into it and it can be much more time than one realizes. Let’s take a look at that.

Minimum one year, assuming a 6 month intensive code school otherwise
you’re looking at minimum two years self-study (part time) to get you
up and running.

  • Three month versus Six month programs

    • Three months is not enough, you get one day of javascript, which
      casuses you to be missing out on the full stack. Beyond that, you’re not getting full design principles
  • The Money Problem

    • Code schools cost anywhere $5k-$20k
    • Additional $20k needed to live frugally
    • Being dependent on your partner or footing the bill on your own
    • Intern/junior wages
    • Average of 6 months and $20k, not inclusive of living expenses.
    • Classism – huge gap between the haves and have not’s
    • How do you do it? Study on your own for 3-6 months, live frugally, save money. Go to code school program and study exclusively that. Be prepared to not see your friends for 6 months.

Meeting Halfway

  • But those of us learning to code, don’t actually know what the gap is, because “we don’t know what we don’t know.” And frankly, there are NO INDUSTRY STANDARDS TELLING US. On top of that, we aren’t getting any feedback. We are being told that we need more practice, more training. So how can we fix that?

    • Better communications from companies
    • Two mentors one male/one female
    • Assigned bugs, projects, real work
    • Review assignments beginning of each day
    • Pair for 30 minutes each day
    • Required work outside of office (eg open source, classes, meetups)
    • Have progress check-ins every two weeks: be agile!

Available Resources

CodeSchool, Portland Code School, TuringIO, DevBootcamp
Meetup Groups (RailsGirls, GirlDevelopIt)
Conferences! (RMRC, Oscon, Waza)

Fear of Open Source

  • Putting something out there for everyone to see is HARD. There are a lot of factors that come up, especially for a newbie.
    • What do you mean people can see my code?
    • What if I’m not good enough
    • What will happen when I’m wrong
    • JUDGEMENT
    • How can this community help overcome that?

How can you begin to solve this? Pairing up with a mentor and contribute to Open Source projects

The Feedback

I like to think you should use the Buddhist philopshy before starting
the feedback loop.

  • Is it kind?
  • Is it true?
  • Is it necessary?

Constructive feedback is key to any profession, regardless of the
industry, but being very clear on what exactly should change is best for
juniors as they really don’t know what they don’t know. That’s hard to
take feedback and run with it if it’s not clear enough.

How to Bridge the Gap

So with all of these challenges how DO we bridge the gap?

  • Engage the junior developers
  • Be conscious of interview tactics
  • Remove “plug and play” mentality
  • Have an “I want to hire you” attitude
  • Work on a better job descriptions, a clearer understanding of what exactly is
    expected. ie two years in Javascript, proficient Ruby skills, one year
    working in a production environment.

  • Dedicating a percentage of time from your senior devs to spend with
    junior devs each week, evalutate at the end of the week, keep a strong
    and concise feedback loop

  • Engage with junior devs in your community, reach out and help them get
    to the next level

  • Stop interviewing with more than 2 people.

  • Try to include a woman when interviewing. Balance the equation.

  • What does this candidate need to succeed? She is great at ruby, but doesn’t know SQL, PostGres or have any real database experience. Can we teach her what she doesn’t know?