code.life

Rose Weixel’s technical blog

Awesome Programmer == Awesome Person

We’re nearing the end of the amazing whirlwind that is week eight at The Flatiron School. We’ve bid farewell (at least for now) to lectures and labs, and have blasted off into project mode. No predetermined specs, no Ironboard green lights, just forty eager, fledgeling developers putting all of their ambition, grit, and new skills into building things.

In the midst of the whirlwind, Obie Fernandez, author of the “bible” for Rails development, dropped by to chat with us today. It was inspiring to hear him talk about one of his latest endeavors, the Andela Fellowship, which is a program whose mission is to train some of the brightest young people in Africa to be awesome developers and connect them with employers. Echoing the words of The Flatiron School’s own Avi Flombaum, Obie told us that learning to be an awesome developer is not just about learning “hard skills”. It’s about learning to be an awesome person. Furthermore, he said,

“Programming is a career that encourages awesomeness.”

Though it wasn’t the first time I heard that message, it meant something more to me today than it did in week one, and the words sat quietly brewing in the back of my brain as I spent the evening coding with my teammates.

Does the act of learning to program make you a better person? I’m not so sure of that, but I’m sure that learning to be an awesome person makes you a better programmer. And while learning about nested hashes doesn’t somehow magically make you an awesome person, I do believe that people who are continually striving and struggling to be great programmers will be nudged in the direction of awesomeness by the nature of the endeavor itself.

So, what is it about programming that encourages awesomeness?

  1. Communication and Empathy:

    • No successful programmer works in isolation. I’ve learned at The Flatiron School that while you might go faster alone you definitely go farther if you work together. Failure to listen and communicate effectively negatively affects the team, the workflow, and the product.

    • Code is for communication. It’s not just a set of instructions for a computer. When it’s done right, code tells a story that other developers can understand and build upon.

  2. Caring About The Small Things:

    • In order for your code to work, you have to get the details right. Getting the details right requires patience, mindfulness, and taking pride in one’s work.

  3. Going With The Flow:

    • A program is never done. A good programmer is willing to let go and accept changes, be willing to start from scratch, and be open to going in new directions and taking new approaches.

  4. Grit:

    • Starting to learn to program is hard. Keeping on learning to program while it’s hard takes grit.

  5. Being a Lifelong Learner:

    • Technology never stops evolving, and neither do awesome programmers. If you want to love your career in programming, you’ve got to love learning first.

Before I end this post, let me be clear that by no means do I believe any of the above qualities are unique to the set of people known as “programmers”. In fact, anyone can learn to program. More importantly though, anyone can learn the skills it takes to be an awesome person. I’m just really happy to find that learning both of these in parellel go so nicely hand in hand.