Becoming a Developer

Last Friday I gave a lightning talk about ‘Becoming a Developer.’ The talk was given at the brightcove offices prior to the ‘Wicked Good Ruby Conf.’ Here is what I had to say:

The majority of my formal training in becoming a developer took place at gSchool. gSchool is run out of and incubator in Denver called galvanize and is taught by Jumpstart Lab. Outside of a computer science degree, gSchool is the longest developer training program in the United States, running full-time for 6 months. At a typical 70 hours a week, that amounts to about 1680 hours of project work and training. And now, I am a developer.

I would like to share with you a little bit about my story in becoming a developer. Storytelling is an ancient tradition and I think it’s important to share stories about what we’ve learned and about our journey getting there so that we can relate to one another more deeply and build a strong community. Storytelling has long been an important part of building community. It is for this reason that these lightning talks are a great thing. So thank you!

Let me take you back to the beginning. From day 1 up through about the first month and a half I felt like I was drinking from a firehose. To be totally honest, I was scared of this new world. I went from feeling competent in my field as a designer to feeling like I was constantly getting slapped in the face by my computer. Errors, failures, lots of the color red on my terminal, I was beginning to wonder if I would ever break through. During our weekly retrospectives my teachers Jeff Casimir, Katrina Owen, and Franklin Webber would ask us “Do you feel like a developer yet?” For a while, my answer was “No. I don’t know what being a developer should feel like. When will I know?” Would I ever feel like a developer?

With no less than a few beers, bumps, and bouts of introspection, I finally began to see some green on my terminal. Tests were passing, but not magically…I was making them past. I was dispelling some of what once used to seem magical mind blowing. And those green dots in the terminal, that are the tests, became an important part of my learning. Testing helped me set goals for my development work and made me realize that being a developer is largely an act of communication. By this I mean communicating with people around me and with my computer. Reading and understanding error messages and failures became more of a constructive conversation with my computer rather than slaps to my face, or should I say to my ego, that I mentioned before. A failure in the terminal did not mean that I was failing.

While making progress as a developer was exciting and energizing it was not magical, and by that I mean, there were many aspects of my learning and the way that I was being taught that were very intentional. Some of which I will mention in a minute.

After 2 months of pure Ruby training and building command line applications, in came the big bad ‘web’, and in with it, Rails. Similarly, this new realm introduced ever deeper layers of complexity and confusion. But I and the rest of gSchool were feeling more confident. One reason that we felt confident is that we weren’t working alone in silos, but rather collaboratively in groups. We not only had great instructors with whom to collaborate and learn, but we had each other. We worked in an environment where mentoring and pair programming were encouraged, which proved to be a key part of all of our learning. And it was all a part of Jeff’s plan.

While the requirements of our projects became more complex, the instructions and hand-holding tapered off. Rather than Jeff telling us where we needed to have our project by the end of the week and giving us a roadmap on how to get there, it was now up to us to work with each other to define our own sprints. This ‘gradual release of responsibility’ was a constant theme in Jeff’s teaching, as he conducted the course under the mantra of “I do, We do, You do.” This to me is how teaching should be done. It’s all too easy for a student to think he or she knows what’s going on when watching the teacher do the work, but then fail to perform when the teacher turns around and asks them to solve the problem. I believe the ‘we do’ component of Jeff’s mantra is crucial to almost every teaching situation. But ‘we do’ can become more difficult for one , teacher or even three, in our case, when there are 24+ students, many of whom learn differently and at different rates. One of the ways that Jeff effectively addressed this situation was matching each of us with a mentor with whom we could frequently get feedback and on-on-one time. So, my advice to any of you who may be mentors/teachers, is to consider the rate at which and the tactics with which you are releasing responsibility to your mentee/students to solve problems.

So, in addition to this intentional approach to teaching, one of the biggest things that helped me make progress toward becoming a developer was the realization that it was okay to be a beginner at something again. Fear of being a beginner thwarts progress. I learned that not only is being a beginner okay, it is advantageous. In the Zen Buddhism tradition there is a concept called ‘shoshin’ which means Beginner’s Mind. It refers to having an attitude of openness, eagerness, and lack of preconceptions when studying a subject, even when studying at an advanced level, just as a beginner in that subject would. This implies a return to simplicity that can often manifest in the kinds of questions we ask about something. Don’t be fooled, this return to simplicity can have a big impact on you and your practices, as well as on the world. Take Steve Jobs for example.

Jobs was often recognized for his ability to make insightful, high-risk decisions. Throughout his life Jobs was incessantly asking questions - but not necessarily the creative, cunning, and deep intellectual questions you would expect. Many of his questions were so painfully obvious they initially stumped the people being asked the question. When Jobs sat waiting and listening intensely instead of elaborating, an interesting phenomenon occurred… the person or group began coughing up their core assumptions behind their conclusion, outcome, or position on the subject. When Jobs proceeded with more simple questions such as, “But why” and making statements such as “Can you please explain what you mean?” he was able to reveal (to himself and the speaker) small, but significant pieces of information that helped him make critical course corrections.

Now, I am by no means trying to equate myself with Steve Jobs, but he is an excellent example of how a beginner’s mind can be cultivated and influential at a high level. I can say that gSchool re-introduced me to a beginner’s mind, and that my break-throughs came when I accepted my position as a beginner and began to ask the seemingly simple questions. This eagerness to explore new territory and technologies, and to build new things is a quality that I still carry with me and I am excited to share with a company here in Boston. On that note, I would like to say that I am eager to match my talents with a company in the area and I would love to talk to you if your company his hiring or if you know someone who is hiring.You can also contact me at bradpsheehan through gmail, twitter, or github.

Just a quick recap, gSchool is awesome. If you are looking to become a developer and can commit 6 months of your life to making it happen, then contact Jumpstart Lab. Being a beginner is hard, but if you can accept and embrace a beginner’s mind then there can be more avenues for improvement. If you feel inclined to help your community, I encourage you to find ways to be a mentor and to remember the gradual release of responsibility and “I do, We do, You do” philosophy.

comments powered by Disqus