January 24, 2010

Hello World!

After listening to Scott Hanselman interview 10-year old Carter Sande and his dad Warren on a recent Hanselminutes episode, I skipped over to YouTube and watched him give an introduction to PythonCard (see below). He's one precocious kid.

Hello World! Computer Programming for Kids and Other BeginnersHe and his dad have written a book called Hello World! Computer Programming for Kids and Other Beginners. I decided to buy the book for my sons and see how they like it.

We've dabbled in some programming together previously, using Scratch. They seemed somewhat interested, but being typical 6 or 8 year-old boys, their attention drifted and I haven't seen them working with Scratch recently. The Hello World! book uses Python, which is very different from the graphics-oriented Scratch, so I have no idea how if their interest in programming will come back. We'll see.

(Not that I necessarily want my children to follow in my computer-programming footsteps, but I think that learning basic programming concepts is important in the same way as learning basic math concepts.)

Anyhow, I ordered the book from Manning.com with the 40% discount code you can find on the Hanselminutes podcast page. It's good until January 31st.

January 23, 2010

New Year, Fresh Start

Well, another year has rolled around, and before I know it the first month has already blown by. How time flies!

I started blogging last year and, not being much of a writer, I decided to try to inspire some topics by inspecting and changing the code of the very tool I was using to blog. So I started using BlogEngine.net both as a blogging platform and as a refactoring experiment.

As you can see, I'm not doing that any more. As I delved deeper into the BlogEngine.net code, refactoring as I went, I was also learning more about SOLID programming principles such as the Dependency Inversion Principle and the Single Responsibility Principle. As I became more familiar with the BlogEngine.net codebase, I was also becoming more comfortable with Domain Driven Design concepts such as Entities and Repositories.