Hello everyone!This is my first ever ruby conference talk so I am super excited and absolutely terrified to be here.It doesn't help that I probably have the least or close to the least amount of programming experience in this room.But, I'll get to that in a second. Today I want to talk to you about Growing your own developers
My name is Jeff Baird I am a Junior Developer at Medivo in NYC
My name is Jeff Baird I am a Junior Developer at Medivo in NYC
Tell me how I did, help me get better or just tell me how much you disagree with me on twitter.
I hope to accomplish a few things:First I want to cover, quickly, how I got in my current positionNext I want to discuss what I mean by growing your own developers, why we need to, and how it is benificialThen I want to tell you all the things Medivo is doing right to make my experience as an employee as rewarding as possible for everyone involved.
I hope to offer a different perspective on training developers as I am actually on the recieving end of this awesome experience instead of the giving end.
In Feburary of this year I had never written a line of code. I was on the business end of a few small tech startups in Tampa, Fl and before that I worked in commercial shipping. So, I had seen code, but that was about all.Then, I decidiedto do codeyear on codeacademy. I had a little fun tinkering with Javascript, writing fizzbuzz and the blackjack game they had on there but it was far from anything productive.Then, in late April I was invited to a new kind of event in tampa called coder night put on by the tampa ruby group. A bunch of devs completed an assignment and then got together to review the answers, all submitted anynonmously. I hadn't really looked long enough at ruby to understand much other than you could do some interesting things with strings.The assignment was to create a Logo-like program that was capable of producing ASCII art. Well, I only had a few hours to try to learn how to do this so I could submit something and attend the meeting. So, This is what I came up with.
I had figured out what the shape I was supposed to draw was and then manually printed the strings out to the console.
Here is what it printed. I remember one of the organizers, Jason, asking the other organizers, Gavin
"Have we been trolled?"
After that meeting though, I was hooked. I originally planned to spend a few hours a night coding but it quickly became 10 or more hours a day. It took me six years of undergraduate education, starting twocompanies and a year working on cargo ships for me to figure out that my passion was programming.That was less than five months ago.I have been working as a full-time dev at a rails shop since July 11th, so do the Math.I'm not going to spend any time diving into my learning techniques. I'd love to discuss that after my presentation, I've written about it on my blog and recently participated in a panel discussing that at length.
Instead, I am going to try and convince you that Medivo wasn't absolutely crazy to hire me. And, I want to go one step further and convince you that you should be open to doing something similar in your company.
Instead my hope is to begin to see job postings for paid internships, apprenticeships and junior positions that don't have the requirement of "1-2 years experience or CS degreeâ
So, what do I mean, growing your own developer? I don't mean that you should pick random people off the street and pay them to learn to code on your dime.Instead my hope is to begin to see job postings for paid internships, apprenticeships and junior positions that don't have the requirement of "1-2 years experience or CS degree"
Currently our industry is facing a shortage of developers. How many of your companies are currently hiring developers? How many of you are actively looking for work?In 2007 our country reached a low point in the amount of CS degrees issued in over a decade at just around 8000. And, while CS enrollement has been slowly on the rise we are currently at just under 15,000 graduate per year; it isn't expected to meet the increased demand of our industry. According to statistics from the Computing Research Association and the Bureau of Labour Statistics from 2008 - 2018 we should graduate somewhere between 200,000 - 400,000 cs graduates but jobs are expected to grow by over 762,000. So we only have two options. Change how we train developers or get import them from other countries. I don't know a whole lot about visa's except that they are fairly large barriers for employeersI believe the solution to this is to invest in employees who may not have once made the technological bar set by the hiring departments. This may sound scary.
I can almost hear the thoughts in your head ZOMG I CAN'T BELIEVE HE WANTS TO BURDEN US WITH N00BS. Chill. To reiterate I'm not saying to hire people who have never written any code. Instead find someone who has the passion, the clear love of learning and the aptitude in other things to make it happen.
Enough vauge preaching though. I am going to tell you exactly how Medivo has been making use of me without dragging too much on productivity, giving me a chance to learn, and also getting their moneys worth.
First, my boss, Daniel has done an awesome job giving me a really cool range of projects. From working with him on some internal projects, to doing work most of you would find dull and repetetive but is still super exciting to someone at my skill level, to giving me a project that is fairly large, needed to be used in production, but couldn't do a whole lot of damage to the rest of the code base if I messed it up and then letting me pair with some of the more senior guys on the team.
First, my boss, Daniel has done an awesome job giving me a really cool range of projects. From working with him on some internal projects, like hubot work, automating office procedures and to
doing work most of you would find dull and repetetive but is still super exciting to someone at my skill level, like grabbing information out of the database for other departments to giving me a project that is fairly large, needed to be used in production, but couldn't do a whole lot of damage to the rest of the code base if I messed it up and then letting me pair with some of the more senior guys on the team.
to giving me a project that is fairly large, needed to be used in production, but couldn't do a whole lot of damage to the rest of the code base if I messed it up and then letting me pair with some of the more senior guys on the team.
All of the projects have had a clear definition of success, something I have found helpful to getting the constant feedback that can make learning so fun.
Another thing that has been awesome is that Medivo made it clear that minor messups were okay. I follow some guidelines (like not merging things into master it I've broken it) but on the whole I have never felt embarressed by my mistakes
One of the ways I've felt the most usefull to Medivo is how it encourages a culture of learning. We often hear that you learn best by teaching. At medivo I believe that having the team constantly teach me has forced an awareness about our app and the technologies that we use that wasn't there before.
When you think of all these things I've mentioned, projects with clear acceptance criterea, a focus on learning, challenging and fuffilling projects and a safe place to make mistakes, you aren't just describing a good work environment for apprentances you are describing a good work environment.
Regardless of skill level the number one quality that you should look for is a desire to learn. Innate curiosity is tough to teach and becomes apparent fairly quickly after spending some time with the candidate. Pair with them, are they asking the right question?
Last week in NYC we hosted a Junior developer panel and one of the things that struck me was how nervous many beginning programmers were to reach out to their local communities. So, if you catch wind of someone trying to learn to program invite them to your meet up group, make your self available for questions. Start a relationship with beginners and the ones that grow in a way that is
So, is your work environment a good place for apprentices?
Learning should be encouraged at every level of a developers career, it is the single most important skill we have as developers. If your company isn't a safe place for apprentices, it is likely that it isn't a good place for learning in general. This should change.
Tell me how I did, help me get better or just tell me how much you disagree with me on twitter.