I recently completed the 12-week Web Development program at The Flatiron School, an NYC-based school specializing in Ruby and iOS. The experience was a valuable one -- having begun the program with some experience (from college) but never having written any real software, I found myself developing and deploying full-on Ruby on Rails applications, writing complex algorithms, crafting thorough test suites, and being onboarded very quickly into the NYC tech community.
Having finished the program and reflected somewhat on the experience, I wanted to discuss two of the possible attitudes that you might have when entering such a program, and their pros and cons.
My attitude upon starting at Flatiron was very much “my learning comes first.” Having been very do-goody and group-oriented in college (and for most of my life), I had reached the point where I decided that I needed to focus exclusively on developing my own technical skills. Flatiron was a 12-week opportunity to learn as much as possible to launch a career, and so I felt that everything else -- socializing, extracurricular learning, etc -- needed to go on the back-burner. I believed that I had spent far too much of my life up until that point listening to and helping other people, that it had mostly slowed down my own growth, and that it was time to focus exclusively on developing myself.
That attitude, while helpful to a certain extent, can (and did) become counter-productive. As the semester progressed, I came to understand that learning to program is very much a collaborative activity. The amount of knowledge that you’ll be expected to absorb is tremendous, and regardless of how much you try and focus, things will slip by you.
When you work collaboratively, however, you get the benefit of your team’s knowledge. Something that you might’ve forgotten, someone else has remembered -- and so the project continues to move forward, and you get a quick refresher of something that you’re trying to learn.
Contrast this with someone trying to go solo -- if you’ve forgotten something, you’ll need to go through a slower and more frustrating debugging process: identifying the problem, searching for a solution, finding the answer. It’s an inefficient process, which will really cut in to the amount of time you’ll have to keep learning and building.
The benefits of collaboration extend past patching holes in each others knowledge. At a competitive program, your classmates will be highly intelligent and broadly experienced. As the semester at Flatiron progressed, it became clear that the most interesting and exciting projects were the ones where students were able to combine the core skills being taught in the program with their personal outside expertise. By taking the time to build relationships and work collaboratively, you will find yourself exposed to entire domains of programming knowledge that fall outside of the program’s core curriculum, increasing the value of your experience substantially.
You may be concerned that group work will slow you down -- many of you might be feeling jaded coming out of college settings, where group work was generally tedious and inefficient, and where one person (maybe you?) did everything anyway. If that describes you, then recognize that the students at a selective program will be generally quite formidable. If you would place yourself in the top 10% of your college class, then you’ll be at about the mean in your program. Further, the environment at Flatiron is more in line with the environment at a professional school than at an undergraduate college -- focused and purposeful. Whatever your experience has been collaborating with students in the past, this program will be different.
If you’re thinking to yourself that “collaboration is all well and good, but we’re going to be competing for jobs regardless”, recognize that you’re not competing against your class for jobs, but rather the entire field of programmers. Your classmates are your colleagues, allies, and friends far more than they’re your competition. Your best advantage will be to focus on your classmate’s best advantage, and to create opportunities to learn from each other. Whatever hierarchies of skill and ability may form during your program, they’ll be irrelevant the day after graduation.
When I started Flatiron, I thought that I needed to put on blinders and focus entirely on myself. Looking back, it’s clear that building relationships and working collaboratively is focusing on yourself, by turbocharging what you (and your classmates) are able to accomplish. These programs are intense experiences, and you should never think that you need to go it alone. If you focus, build relationships, and work hard, you’ll do amazing things.
About the author: Daniel is a full-stack web developer from California living in New York City. Graduate of UC Berkeley and The Flatiron School, he cares about beautiful design patterns, thoughtful testing, and user experience. You can read his blog here, and follow him @kronosapiens.