Most people’s mental image of the typical computer programmer is less than appetizing. He (or possibly she) is an overweight, glasses-wearing nerd who hacks away in his or her basement and finds more comfort in their computer then in other people. It’s a shame that such a stereotype exists, as it discourages those who might be interested in programming from making the leap.
As is often the case, the truth is vastly different than what people think when looking in from the outside. These so-called “antisocial nerds” quietly built one of the most active, enthusiastic, and robust communities I’ve ever seen. And that community does not exist solely in the world of bits and bytes.
There is great strength in healthy communities. They fulfill our desire for human interaction and provide motivation, inspiration, and education for their members. These ideas are not groundbreaking, but it is worthwhile to show how these principles played out in the Hungry Academy community during our latest project: Sales Engine.
A major aspect of programming is dealing with constant frustration. If you have no one around to keep you focused, the temptation to throw in the towel comes sooner than most of us care to admit. At Hungry Academy, we work harder and longer than we have before because we are surrounded by others who are doing the same. It is not uncommon for us to regularly put in 10 to 15 hour days to meet a project deadline – and these are projects for ‘class’, not for any real-world client or job.
Sales Engine required us to break into pairs for partner programming, which meant that 12 different teams were building their own version of the project. We rolled our own relational database and published a gem that allows a user to make specific queries on that database. The beauty of having 12 groups tackle the problem is that we had 12 different implementations. Discussions between groups on how they approached specific problems allowed us to gain new insight into tackling similar problems in our own projects, or similar problems in the future. Seeing the simplicity, power, and elegance of another group’s well-written code inspired us to write code that was not only functional, but beautiful as well.
Working in pairs allowed us to learn from each other. Not only did we gain insight into how other programmers approach and solve problems, we also had to explain our solutions to our team members in a way they would understand. If you can teach someone else a new concept, you are well on your way to mastering it yourself. It’s a little paradoxical, perhaps – but if your desire is to be the best student, you also need to be the best teacher.
Those of us in Hungry Academy have made amazing leaps in our learning and development in the last month, and all that hard work was made palatable – and fun – because of the community LivingSocial and Jumpstart Lab fostered. If you’re interested in programming, know you don’t have to hack it alone! Find a local meetup, or join many of the online communities – it will be much easier to master the language, and you’ll have more fun doing it.