When I was in college, learning design patterns was an intense experience for me. I followed along in class and I thought I understood the examples. Then I sat down to study for my mid-term and suddenly I realized there was a whole lot that I wasn’t getting. I looked at an example of a visitor pattern from the study guide for an hour, and all of a sudden, it clicked. And not just the visitor pattern, a whole way of thinking about classes and data architecture.
Category Archive: Programming
MVC
I wanted to give a little re-cap. I’ve been working with the Codeigniter MVC for about 6 months now, and it’s wonderful. I am easily three times as productive when working in an MVC. I’ve had very little trouble getting used to Codeigniter. I was looking at several PHP MVC frameworks, and my choice of CodeIgniter came down to best tutorials. I highly recommend the tutorial by Derek Allard. The documentation is also excellent. 
Uncanny Code
The uncanny valley, in a nutshell, is that things that look almost human, end up looking creepy or uncanny. Where as things that are clearly not human, but have a few human attributes do not appear creepy. For instance Asimo (the robot) looks interesting and cute. But the CGI characters in Beowulf looked creepy because their skin wasn’t quite right.
Getting a Programming Job
The economy is in the tanks these days, here in Michigan unemployment is somewhere around 10%, with under-employment much higher than that. But many programmers can still find jobs. On the other hand, many programmers can’t seem to land an interview. Here are my tips, take them for what they’re worth. 
You’ve got your resume out there, you’ve applied to everything you find, but your phone isn’t ringing. Try a couple projects to spruce up your resume. Remember, a degree is no substitute for experience and the only way to get experience to write a whole lot of code. Have fun and get excited because if writing code (not just talking and reading about it) is not fun and exciting to you, programming is not the right field for you.
PEAR – My Hopes and Dreams
It’s been almost a month, so I though I would update. I started working on another version of the wedding site (this would be revision three or four, with none actually finished) that was going very well. Until I realized I was writing the same code over and over. Write some CRUD and test. Write a function to build the form, write a function to validate the form, write a function to save the data back to the database; tie a bunch of these up in a single page. That got boring, so I got to thinking… actually that’s not true. I was working with .Net at work, that’s what happened. And I noticed that dataSource with formView did all the work in a tenth the time. So I thought I would roll my own. Naturally I started out way too ambitious and decided to build a set of classes following the Active Record pattern and tie those into some form templating classes so that when I was done all I would need to do was connect to the database and define the template. I got as far as generating the SQL then I got stuck. So I scaled back and decided to only the form templates, I would do the SQL manually and pass in the records. But that was a little tricky. So I did the last thing any good (bad) programmer wants to do, I looked for something somebody (anybody) else built. 
The Best Code Ever
So I have this philosophy, every programming project I do, I should have to learn one thing in order to finish. If I don’t have to learn anything, if I could write the whole thing with out any research, the project is boring and teaches me nothing. If I have to learn two things, I probably won’t finish. It will be overwhelming, the areas where multiple unknowns intersect will be far too complicated for me to manage competently. So I aim to learn one thing. In reality, I normally end up with more than one thing, but the stuff I don’t know that wasn’t planned for tends to be simple, like how to sort an array in a new language.