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
    • 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?
Written on July 28, 2012