Posts tagged as:


In the Pragmatic Programmer it talks about your knowledge portfolio and recommend that you invest in it regularly. In fact, it draws the analogy of a stock or financial investor and how they invest.

I discuss my experience in investing and my thoughts on the content of the Pragmatic Programmers book.

The only major difference or disagreement I have between their suggestions and my experience is that today most of the content you’d find in books or trade magazines is available online in blogs, videos, and other media. However, in some cases, the best documentation is in a recently written and maintained book.

Here are some of the things I mentioned in the podcast:


Gary is well known for a few things including, Ruby vs. Python: A battle to the death, and his discussions on tools, process, and programming practices.

We had a great discussion regarding learning to use your text editor, learning tools like git, and overall ways to improve your skill and efficiency when programming.


Over the last few weeks I’ve been using macvim and janus to write code. The more I learn about VIM, the more I love it.

It’s not so much that VIM does things that I find particularly natural or “better”, but rather it’s that it’s extremely powerful for opening, managing, and editing files. Each little trick I get brings me more and more to the place where I can code as fast as I can think.

The Pragmatic Programmer (book affiliate link) tells us to know our text editors. The more I get to know about my text editor, the better off I am.

Here’s the video:


Every programmer should find opportunities to learn something new.


  • It causes you to confront new problems.
  • It increases your ability to solve problems.
  • It expands your skill sets/profitability/versatility.
  • It keeps your mind sharp.


  • Jump in
  • Take a course
  • Find a Mentor
  • Read a Book
  • Search the Web
  • Read the Code

Reasons why I sometimes fail at this:

  • Time
  • Family
  • Clients
  • Projects
  • Podcasts
  • Money


  • Spend 1 hour per day on learning new technologies.
  • Leverage my time better.
  • Set a schedule.

Download this Episode

Here’s the video version:


This turned out to be a great interview with David Heinemeier Hansson. He’s the creator of the Ruby on Rails web framework and a partner at 37 signals. We discussed what inspired him to build Ruby on Rails and work in Ruby. We talked about how 37 signals approaches things. We went into the Rails community and its ecosystem.

A few things that were mentioned:

On entrepreneurship, David tells us that building a company and concept has never been easier or cheaper. The barrier to entry is extremely low. You need more than programming power or business acumen to start a company. You need people who have an actual skill that will move the product or service forward.

Download this Episode

{ 1 comment }

I’ve been reading the Software Craftsmanship mailing list where they were discussing whether software is a craft. Someone brought up the concept of what makes a “Master Craftsman” in software and I started thinking about how to determine if someone is an expert or master.

There are a few concepts out there including these:

Here are my thoughts on the subject.

Download this Episode


A few weeks ago I was looking at Peter Cooper’s Ruby course and wound up proposing a Basic Ruby on Rails course. Interestingly enough, I’ve been named the instructor for the course.

I’ve been working on the curriculum, what I want to teach and what to include to help people pick it up. Of course, it’s always interesting both in applications and other areas like this one to figure out what is essential and what can be omitted. The obvious inclusions are explaining MVC, and demonstrating Models, Views, and Controllers. I also feel like testing is essential and several tools that are either included with Rails or help in building it.

I’ve been using MindMeister (affiliate link) to organize my thoughts. I’ve broken the curriculum up over 6 weeks to basically include the following:

  1. Rails Structure, Setup, and Tools
  2. Rails Views
  3. Rails Controllers
  4. Rails Models
  5. Extending Rails
  6. Testing Rails

If there are things you would like to learn that don’t appear to be included in this curriculum, please email me and let me know.


Go checkout our sponsors New Relic and Chargify.

Feel free to leave feedback at (801)753-8279 or chuck@teachmetocode. You can also reach me on twitter at

Our guest this week is Dave Hoover. He’s a member of the Software Craftsmanship movement. He’s the Chief Craftsman at Obtiva. He’s also written Apprenticeship Patterns: Guidance for the Aspiring Software Craftsman The most exciting part, was learning about apprenticeship from the guy who wrote the book.

Dave got started by reading Software Craftsmanship: The New Imperative.

He also mentioned a few people that he considered masters:

There’s some great advice on figure out where you are and determining where you can get to and how.


Here’s the link to the pledgie where you can help me get to RubyConf. Click here to lend your support to: Send Charles to RubyConf and make a donation at !

This week’s episode is an interview with Corey Haines. He’s pretty well known as the Software Journeyman and his coding tours where he traded time pairing on code for room and board.

You can keep up with him at

You can also check out the following links for other things he’s doing:

Here’s a link to the Software Craftsmanship Manifesto which is tied a lot to the discussion we had on Software Craftsmanship.

Corey mentioned the Structure and Interpretation of Computer Programs – 2nd Edition (MIT Electrical Engineering and Computer Science)
book, which is a mind-blowing set of instruction and exercises for computer programmers.

We also discussed pairing in relation to the code retreats. Corey mentioned the paper by Arlo Belshee called “Promiscuous Pairing and the Beginner’s Mind”

You can reach Corey on twitter as @coreyhaines and by email at

Finally, checkout the latest news on the XP Universe conference.

Download this Episode

{ 1 comment }

During the summer of 2009, Eric Berry began recording screencasts about Ruby and Rails similar to the screencasts at He also invited other Rubyists to join him and provide recordings for the Ruby community. This is where I got involved. I did my first screencast for Teach Me To Code on Ruby on Rails Routing. This resulted in two things. First, I realized that recording wasn’t that tricky. Second, TechSmith sponsored my efforts by donating a license for Camtasia Studio for Mac and an AT2020 USB microphone.

Having been a longtime podcast listener and feeling empowered by the success of a screencast, I decided to start a podcast. I contacted Gregg Pollack and asked him about recording podcasts and got a lot of great advice from him about putting one together. In the process, I interviewed him as the first recorded episode of what became the Rails Coach podcast.

After a few more months, I had built a small community around the podcast. At the same time, Eric was becoming more interested Groovy and Grails and was focusing on other things related to his family and career. Recognizing that the majority of the audience at Teach Me To Code was Ruby and Rails developers and that his interested were taking him in the direction of Groovy, Eric asked me to take over providing the screencasts and managing the site.

I became the primary producer of screencasts in April 2010. Eric is still involved as a content producer. I combined the Rails Coach podcast and renamed it the Teach Me To Code podcast and incorporated a blog for articles in May 2010.

Eric has done an amazing job setting up systems such as the Disqus comments and UserVoice forum for suggestions. I have been extremely happy to move things along and keep the community and discussion alive.

{ 1 comment }