I started my first job as a developer right after going through theFirehoseProject bootcamp and was lucky to be able to observe a team of really experienced professionals at my new company. In thinking about what makes a good developer, I came to the conclusion that Firehose taught me just about everything a good developer needs to know.
1. Divide and conquer
The whole Firehose learning experience is based on projects with increasing complexity. Each and every step in the development process is broken down so students can easily follow and understand the required steps. Knowledge is acquired gradually, and with experience a student’s confidence grows as well.
My daily tasks as a developer require this exact skill of dividing and conquering— breaking a problem down into tiny and manageable pieces, and learning new things along the way. Through trial and error comes a suitable solution.
2. Be humble and willing to work with people
This experience is a cornerstone of Firehose training as well. Weekly office hours are the highlight of each week’s learning process. While each student goes through the material on their own, everyone encounters similar and relatable problems, making it a valuable time to share perspectives on the assignments and learning process.
This team experience becomes even stronger and more valuable during the group project; a perfect simulation of a future work environment. Students are no longer restricted to a curriculum of set assignments, but are on their own, as a team. As a team, students decide where the project will go and think about the strategic implementation of this new unknown. As real questions start popping up, your team becomes the place to go for second opinions and feedback.
Our knowledge as individuals is really finite, but our combined knowledge as a group is near infinite. There are times when you don’t know what the next step is or how to tackle a simple problem, and in comes the magic of being humble and willing to working with other people. Being humble means not being afraid to acknowledge that you don’t know something and being willing to ask others for help. Having this attitude often yields better and quicker solutions, in addition to the sense of being part of something bigger than yourself.
3. Have a mentor
I recently finished reading a very interesting book called, Self Leadership and the One Minute Manager by Ken Blanchard. One of the ideas presented in the book is that at different stages, we all need a different leadership style to help us grow. Basically, there are four skill-development stages and four corresponding leadership styles:
- Low Competence / High Commitment needs Directing
- Low-Some Competence / Low Commitment needs Coaching/Mentoring
- Moderate-High Competence / Variable Commitment needs Supporting
- High Competence / High Commitment needs Delegating
Before beginning the course, I was on the first level. My commitment had no limits and my competence was pretty low. You dive right into the learning process and celebrate your first results— the first app is done within a few days and it feels great— but then real problems kick in and self-doubt emerges and works against you. That’s exactly the time when your mentor comes into the game and guides you through the learning process. In the next stage, your mentor gives you valuable feedback on how to learn better and what to focus on.
Why is this important for a developer? Well, development is a skill and a craft in one. We have to learn from the best and study the mistakes of others. A mentor is someone who has the valuable understanding of where you are and ability to effectively guide you through the learning process.
In short, being able to tackle problems piece by piece, being willing to ask questions and work as a team, and having a trusted, supportive mentor are the essential things that every good developer possesses. theFirehoseProject bootcamp incorporated all of these elements for me and helped me translate these practices to both my job and other areas of my life as well.
What else do you think all good developers should know? Join the conversation on Facebook to see more of the skills that make successful web developers!
Ilya Krasnov, current Agile Developer at EnerNOC is a recent graduate of theFirehoseProject. Before going through our 12-week coding bootcamp, Ilya studied Informatics at Technische Universität München in Munich, Germany and was a Product Manager at Termine24 GmbH, with the goal to switch to a developer career.