Teach Me To Code Podcast show

Teach Me To Code Podcast

Summary: The Teach Me To Code podcast is dedicated to helping software developers build the skills they need to build better software. Join the Conversation on software development by listening to the podcast and leaving comments on the website: http://railscoach.com

Join Now to Subscribe to this Podcast

Podcasts:

 TMTC 66 Josh Berkus (PostgreSQL Core Team) | File Type: audio/mpeg | Duration: 55:55

Here’s a list of several of the things we discussed: How PostgreSQL got started Ingres The Apache Foundation The PostgreSQL core team and it’s role. Data Warehousing It’s community property like Linux The SQL Query Language The C Programming Language gcc Standardization Google Summer of Code XML Indexing XPath Support ISN/ISBN Data Type Array Data Types HStores (Dictionary or Hash) Full Text Search Tri-grams Sphinx Lucene Why people switch from MySQL Performance Reliability Special Features Supports really complex queries Worry about the future of MySQL Skype - 200 Postgres servers Sky tools clustering platform Heroku San Francisco PostgreSQL User Group Differences between MySQL and PostgreSQL MySQL was originally written to please web developers Postgres was written by DBA’s Postgres will throw out a feature they can’t stabilize MySQL will accept a feature and then try to stabilize it Postgres really allows you to run code inside the database Postgres is more reliable and secure Lowers admin cost due to better uptime Rails was originally built around MySQL You can get some boosts by bypassing the ORM and going directly to the database Full JSON support is upcoming Django The PostgreSQL Ruby driver ByteA binary data type Simplified data types (Text data type) Why people switch from PostgreSQL to MySQL MySQL has been commercially successful longer than postgres Vendor tools Cheap hosting for MySQL A lot of things are designed to work out of the box with PostgreSQL PGSQL Novice list Postgres Open Postgres has a new version coming out soon (changelog) Postgres 9.2 Multi-core support Postgres included documentation Beginning Databases with Postgres - Dated but gives the basics To hire Josh’s guys, go to http://pgexperts.com. Download 6.08 MB Download (iPod & iPhone) 4.61 MB

 Investing in Your Knowledge Portfolio | File Type: audio/mpeg | Duration: 20:48

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: Ruby Reloaded Peter Cooper’s Ruby Course Teach Me To Code Academy - Ruby on Rails Course The The Pragmatic Programmer book

 Pivotal Labs’ Javascript Setup | File Type: audio/mpeg | Duration: 15:58

One of my clients had Pivotal Labs build them a website. After Pivotal Labs finished the project, they helped them find a developer to maintain it for them. I took over from him. This last week, I had to dig deeply into the javascript code to make a piece of functionality I was modifying conform to what they had in other places on the site. What happened during the two days I worked on it was that I learned how they had things set up. Here are some of the things I found. Jelly Jelly provides you with an extension to the JQuery framework that allows you to trigger callbacks from your Rails controller. It’s exceptionally useful for things you need to occur when your server call is completed. Namespaced Functions The Pivotal Labs developers put a lot of things under a namespace named after the project. They further namespaced functions under namespaces corresponding to controllers and widgets, with some functions matching up with action names where widgets and other functionality could be implemented and initialized. This is really handy in cases where you need specific functionality only is specific cases. Javascript Loading at the end of the page Finally, a method in the ApplicationHelper was provided that added all of the requisite javascript files to an array and then called javascript_include_tag on the array to include all of the files. This was done at the bottom of the page to avoid holding up the rest of the page loading while waiting for assets. This also allowed for functions that required the DOM to be loaded to simply be called instead of using the JQuery $(function(){...}) callback style.

 Freelancing Advice – Teach Me To Code Podcast | File Type: audio/mpeg | Duration: 20:43

I’ve had two people ask me about freelancing within 1 day of each other. So, I’m going to give some advice. I also talked about finding freelance clients a few weeks ago in this episode. Talk to other freelancers to see if they know people looking for work. It’s a great way to get advice as well as referrals. Start talking to people in the community. I found all of my original clients directly or indirectly by talking to people I knew both locally and in the international community. You should also go find a good accountant and have him advise you on setting money aside for taxes and structuring your business to save you on taxes. My accountant has probably saved me thousands of dollars on just this alone. Your accountant will probably tell you this, but set up a business entity (usually an LLC or S-Corp) and get an EIN tax ID. It makes it much easier to write off expenses, avoid being dubbed an “employee” of your clients by the IRS, and makes keeping your books simpler since you will have to get a separate bank account. The IRS looks for freelancers who are, for all intents and purposes, employees of their clients. To avoid this not only do you need your own business entity, but you also should have more than one client and use your own equipment when working for them. Figure out what you need to charge and charge it. There are cheapskates out there who will be shocked that you want to charge them more than $20-30 per hour. Stick to your guns! Go to the Freelance Switch Hourly Rate Calculator and figure out what you need to charge to get by. The problem you run into with the cheapskates is that these people are looking at Filipino and Indian developers on oDesk. Several of these developers are decent developers. A lot of them aren’t. Your potential client usually doesn’t know how to weed them out. So, if they insist that they’ll go overseas, let them. Start a blog. Write about the stuff you’re doing. Someone will want something similar done. I’ve gotten a bunch of business off the Twitter Clone videos Eric did a while back because people are googling “Twitter clone.” I’ve also seen quite a bit of interest from my podcast, even though it’s geared much more toward programmers. Finally, don’t be afraid to fire clients that don’t fit with your lifestyle or business. And don’t be afraid to raise your rates periodically when you need more time or money to make things work.

 Gregory Brown Interview – Teach Me To Code Podcast | File Type: audio/mpeg | Duration: 55:52

Gregory Brown is a longtime member of the Ruby community. His contributions to the community include his recent involvement in the RubyGems discussions, Ruby Best Practices, the Prawn library, and Ruby Mendicant University. Ruby Mendicant University is a free online school for software developers. It’s a blended teaching and mentoring program that helps people improve their coding skills. It’s aimed toward intermediate level programmers. The “RubyGems uprising” is something that Greg stepped in and opened up some dialog about the direction and movement of the RubyGems project. The future is looking bright and the public management of the project is much better. Greg has contributed to open source through the Prawn library. He responded to Brandon Hays’ query about getting involved in open source software and gave us some pointers about getting involved and managing open source projects. One thing that stood out was when he talked about not taking feedback on your open source project personally. It’s really eye opening to consider that when people deprecate or remove features from a project like RubyGems, it may be so that things can move forward in a meaningful way. Finally, we talked about the Ruby Best Practices book, the process of technical book writing, and the process of teaching and learning programming. Greg has given a lot of thought to how and why we learn to program.

 Ryan Smith Interview – Teach Me To Code Podcast | File Type: audio/mpeg | Duration: 44:36

Ryan Smith is an engineer at Heroku.com. He wrote the queue_classic library in Ruby. He was a speaker at RailsConf talking about the Worker Pattern. He blogs at http://ryandotsmith.heroku.com/ and tweets at http://twitter.com/ryandotsmith We talked about several things, including: Heroku (the company and the service) Salesforce's acquisition of Heroku queue classic postgresql the Worker Pattern He also mentioned these things in relation to the topics we discussed. h-store mvcc postgres wiki web sockets

 Gary Bernhardt Interview – Teach Me To Code Podcast | File Type: audio/mpeg | Duration: 41:04

Gary is well known for a few things including destroyallsoftware.com, 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.

 Know Your Text Editor – Teach Me to Code Podcast | File Type: audio/mpeg | Duration: 15:59

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:

 058 TMTC Tyler Bye (ABC Network iPad App) | File Type: audio/mpeg | Duration: 38:44

There's a lot more to the ABC iPad app than just the iOS components. There's a HTTP Live Streaming level to this that manages all of the content for the application and streams it to the devices. Tyler explains the history of Protoven, Uplynk, and a lot of technical details behind how the ABC iPad app hangs together both on the backend and frontend. Here's the video of the interview:

 057 TMTC Jamis Buck Interview | File Type: audio/mpeg | Duration: 42:48

Jamis Buck is a Ruby on Rails developer working at 37signals. He was part of the Rails Core Team, created the SQLite driver for Ruby, and created the Capistrano library for deploying applications in Ruby. We talked about several things including: the Maze algorithms he's been working on on his blog Capistrano Ruby on Rails 37signals Vim and text editors Testing tools Here's a video of the interview.

 056 TMTC – Tom Preston-Werner (Github Co-founder) | File Type: audio/mpeg | Duration: 1:25:14

Tom Preston-Werner is one of the founders of Github.com. He's a Ruby programmer who has successfully launched a business used by hundreds of thousands of programmers all over the world to host their programming projects. He is also the original developer behind Gravatar. We discussed how Github.com got started. Tom also mentioned Gravatar, god, and Jekyll. We also discussed open source software, contributing, hiring developers, and what makes Github such a great place to work. If you want some good pointers about how things should work at a development shop, I recommend this episode.

 55 TMTC – Finding Freelance Clients | File Type: audio/mpeg | Duration: 25:51

Freelancing is a lot of work. One of the hardest parts is finding clients. I've been getting a lot of work lately and I'm going to explain where I get most of my work from. Podcasts and Screencasts - I've had several people come to me after listening to my podcasts or watching a screencast and ask me to do some work for them. Referrals - I've made several contacts within the community and though some of my clients that have resulted in getting referrals. Make friends. Build your network. It will pay off. Users' Groups - This is similar to the referrals comment. However, some entrepreneurs and other non-technical people sometimes come to the meetings. You can also meet people who are connected to the local community. It's amazing to me how much business I've got because I met the right person in the local community and they heard about business that didn't come out to the wider community. Job Boards - This has been the least productive for me. Effectively, you are chasing cold leads. They do work, but the conversion rate is much lower than any of the others I've listed. Recruiters - I found my first long term contract through a recruiter. I was referred to him and it worked out really well. I'm still working for this client. In the podcast I share some other stories and thoughts. Listen and then leave a comment to let me know if there's anything else you've tried that worked for you? I'm also interested in your success stories using some of these ways of finding work. Download this Episode

 54 TMTC When to Stop Testing and Get Stuff Done | File Type: audio/mpeg | Duration: 21:04

I got asked the question "When do I stop testing in order to get stuff done?" My answer was "I go faster doing TDD." Here's why I get more done with TDD. It forces me to think through the problem. This allows me to tackle the programming problem and solve it more quickly. I can define the behavior. I can determine the inputs and outputs and any other behavior related to the function I'm writing. I know it works when I'm done. I know when I'm done. (All the tests pass.) It provides a challenge I can focus on. I love a challenge and it gives me that sort of strong direction. If you have trouble getting things done and getting tests in, you need to practice. You need to get used to working with tests and testing frameworks. The more you do it the better you are and the more it becomes integrated into your routine. Learn your tool. The better you understand what it can and can't do, the better and quicker tests you'll write. Only test what you need to test. You don't need to cover the entire code stack. Just the limited set of code that solves your problem. Transcript Teach Me to Code Episode 54 Hey everybody and welcome back to another Teach Me to Code podcast. This is your host, Charles Max Wood and this week I’m gonna be talking about, well I wanna answer a question that somebody post to me and I kinda going to enhashing out, what I think. But before I get started I want to acknowledge our sponsor. We have New Relic. New Relic is a super application management tool. They really do a good job by providing just some great information regarding what’s going on with your application, what exceptions are being thrown, what other problems, performance problems there are. Most of what I’ve used it for is actually either tracking down exceptions or working through and optimizing areas of the application that are slow. And they are so useful for that. Even their free version is actually pretty useful in just a couple of useful information you can get out of it. It’s really good, I highly suggest you go check ‘em out. You can do that by going to the website and clicking on the link on the right or you can go to newrelic.com. and just tell them that we sent you over. That would be great. Now, I’m gonna go ahead and jump into this topic. I’m trying to get some interviews lined up. I just haven’t spent the time to talk to people. I’ve had a few people say they’re willing, I just haven’t followed it up. So, I need to follow up and get some people on here and hopefully we can line up a few interviews here for the next few weeks. I’m thinking about changing the format of this a little bit, but I haven’t finalized what I’m thinking about so that’s just something to be aware of, that things may change within the next few podcast episodes. Alright, well let’s get into this question. So, I was chatting with a friend of mine and he asked me, cause he was facing a deadline. He said, “At one point, do you just give up on writing the test and just crank the code out because you need to get it done yesterday.” And it was interesting because I thought about it for a second and I realize that, writing the code without the test, like not doing TDD for me, actually it hampers me, and it hampers me in a lot of different ways. Mainly it’s just part of my workflow now. So, it’s kind of an interruption not to have TDD around. The other thing is it provides some real benefits to me as I’m coding that I think really make it worth the payoffs. So we’re gonna talk about those. The first thing that I think TDD really gives for you is that it allows you to think through the problem. So, you can quantify the behavior of whatever you’re testing. And even just a basic input-output kind of approach. So for example you say, “If I called this method with these arguments I should get these result”. And sometimes that’s enough. But the other thing is you also are then force to think about what other effects or behavior should come out of these.

 53 TMTC Learn Something New | File Type: audio/mpeg | Duration: 13:28

Every programmer should find opportunities to learn something new. Why? 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. How? 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 Solutions: Spend 1 hour per day on learning new technologies. Leverage my time better. Set a schedule. Download this Episode Here's the video version:

 52 TMTC The DHH RSpec (and other) Debates | File Type: audio/mpeg | Duration: 17:07

You can get the video version of this podcast here. David Heinemeier Hansson sparked a debate on Twitter about Ruby testing frameworks. A lot of people saw it as slamming RSpec and others saw it as constructive conversation about what tools you use and why. This is how I view to see it and where I come down on this debate. I also discuss why we have these debates in general and what we can learn from them.

Comments

Login or signup comment.