Tag Archives: Carbon Five

bridge support

Learning to Program Supporters

“It Takes A Village to Raise a Programmer” – I just made that up for this post.

So yes I did fabricate this quote for my own purposes. But it seems to fit my situation well, as I truly have been the benefactor of tremendous support and efforts of many. And as those of us in the US settle into our annual time of thanks, I feel incredibly grateful to everyone who has shown me support.

Heading down this path to learn to program required a strong leap of faith, and I don’t regret it for one second. That’s not to say it’s been all positive; in between learning and building, there have been times of stress and frustration.

But the support of everyone from family to complete strangers has been overwhelming. It’s great to know there are people pulling for my success.

Tweet of Support

I’ve placed the following tweet on this site from the beginning. An amazing number of people, many strangers, have sent this tweet out to support me.

“I support @andrewkkirk on his journey to go from total noob to programmer in 18 weeks.” < Tweet This Message >

I send a big thank you to all of you that have taken time to support in one way or another. Theses gestures mean more to me than you could imagine.

The Importance of Sharing

Once I made the commitment to learning to program fulltime, I knew it would also be important to write throughout my entire process. My hope is that others will benefit through documenting my experiences, and even avoid certain pitfalls by avoiding my mistakes.

An additional result, which I didn’t anticipate, is that I’ve reconnected with people who find out about my project from social media. For example, I recently received this note from a high school soccer coach I hadn’t spoke to in several years.

I just read most of your blogs on your page about learning to program. I wanted to let you know I am proud of you for taking this leap. Good luck and I know you have the determination and commitment to get it done. I look forward to hearing about your progress. Take care.

Isn’t the internet incredible? Of course, if I hadn’t written about my process and widely shared it, I wouldn’t have had this benefit.

“On-Call” Support Team

Finally, I’ve add several people take time out of their busy schedules to support me by meeting up to pair program with me, discussing code on skype, and answering questions when I inevitably break something. These folks have gone above and beyond, all in the name of helping a fellow developer.

Remember to be thankful not just for those family and friends close to you, but also to those people that make a subtle impact on us. Without their support, I wouldn’t have made it this far. Thank You!

team work

Why It’s Important to Learn How Developers Work

The focus of my learning to code project has been on improving my understanding of Ruby and building an app with the help of Rails. Until, this week I hadn’t given much thought about how developers work, especially in a team environment.

That changed recently when I attended Carbon Five bimonthly Hack Night. Twice a month, this developer shop opens it doors to all and invites people in to work on their own personal projects.

logo carbonfive

It’s an informal setting, and I took the opportunity to work part way through Daniel Kehoe’s RailsApps Project. Two hours into the evening, Travis, a Carbon Five developer, and I struck up a conversation. We spent very little time talking specific code or functionality and instead discussed how developers work. As a recent convert from .NET to Ruby, he provided some great insight.

Travis and I discussed many aspects of developing in a team and here are 3 most important I came away with.

#1 Pair Programming

The concept that two people would stand together at one computer working simultaneously blew my mind. Upon hearing this idea, it immediately contradicted how I would imagine you best use developer resources.

But, Travis described to me several scenarios where he and another developer at the onset didn’t individually know how to accomplish the task at hand, but were able to harness pair programming to drive though a development sprint. Working as a duo, these two could accomplish more than either could working separately. This multiplicative effect in efficiency is an incredible result.

In addition to the project benefits, pair programming helps you learn new concepts and become familiar with the techniques and style of your coworkers.

Travis even offered to pair program with me when I feel ready. I can only begin to imagine the learning benefits to be gained of working side-by-side an experienced developer.

#2 Like-Minded, Not Like-Skilled Coworkers

I want to be a developer who is constantly learning new skills. This mentality seems particularly important with web development where the programming languages change rapidly. To learn from other developers requires finding others who have a different skill set.

But while the skills are different, it seems important to share similar philosophies for development practices. For instance, it would be difficult to learn from another developer if your attitudes on testing differ greatly. And I’m sure there other characteristics which are important to consider. I’m interested to pick up more insight around this thought process as I progress.

#3 Test Driven Development

The upfront investment in writing tests before coding pays off dividends in the long run. Specific to Ruby, I inquired Travis’ thoughts on Test::Unit vs. Rspec. He suggested I understand at least the basics of Test::Unit. I’m interested to get more feedback on learning testing.

As a new developer, I’ve heard the importance of testing. But, I’m not so much inspired to to learn testing as I a feel it’s an obligation of the trade. I want to learn it sufficiently to build web apps that don’t break. If that means I can use Rspec without diving into Test::Unit, I’m all for it.

How Developers Work Conclusion

As with any environment, there is not a “correct” way by which all developer teams should operate by. Being introduced to the concepts was extremely important and I’d recommend all new developers be introduced to it early in the learning cycle. Use Meetups focused specifically on programming (not networking events), or if that’s not an option, ask a more experienced developer directly if you can spend a few hours observing an informal work session.

Share your thoughts in the comments section.

featured image courtesy of elmastudio