About the Author

Chris Shiflett

Hi, I'm Chris, a web developer and a founding member of Analog. I live and work in Brooklyn, NY.


PHP Advent Calendar Day 12

Today's entry is provided by Ed Finkler.

Ed Finkler

Name
Ed Finkler
Blog
funkatron.com
Biography
Ed Finkler is the Web and Security Archive Administrator for CERIAS at Purdue University. As a member of the PHP Security Consortium, he is the project lead on the PhpSecInfo and Inspekt security tools. He is also the creator of Spaz, an AIR-based Twitter client that won Best HTML Community App in the Adobe AIR Developer Derby.
Location
Lafayette, Indiana

Admitting ignorance is scary; for most of us, it's embarrassing. We fear ridicule and never want to seem stupid. But, this perspective is ridiculous, because we all possess great gaps in our knowledge of the world and how it works. You're almost certain to know more about some topics and less about others than the average person.

Every time I have my car serviced, I'm reminded of this, because I know very little about the subject. I don't know what questions to ask, the right way to ask them, or the right nomenclature. Rather than barrel ahead and make assumptions, I do two things:

  1. I ask questions. "Can you explain what the carburetor is?" I might not get the right answer, but I usually come away with a better understanding of what's going on, which helps me feel a little less like an idiot.

  2. I make sure I express what I need. "I have to be somewhere in an hour. Should I get a ride, or will the work be done in time?" I'm much more likely to get satisfactory service when I make it clear what I need.

With a topic we know more about, like web app development, it's even easier to make assumptions. It's also scarier to admit our assumptions and question them, because we're doing it in front of our peers. "They might discover my ignorance!"

So, the people who are willing to go out on a limb and test their assumptions have a great deal of respect from me, because they are almost inevitably the people who are confident in their abilities and don't care much about what other people think of them. They're interested in truly studying a subject and understanding it better.

Some classic assumptions made by many PHP developers include:

  • PHP is the best programming language for web applications.

  • Your application will fail if you don't use a full-stack MVC framework.

  • Frameworks slow down development.

  • Caching will solve your performance problems.

  • Python, Perl, and Ruby are inferior to PHP.

  • Object-oriented programming is superior.

  • Object-oriented programming is slow and needlessly complex.

I know I've been guilty of making these types of assumptions dozens of times, and as a consequence, I've often been unable to see the value in other approaches. I've missed out on valuable new ideas and interesting, effective techniques. Assuming, rather than knowing, closes off possibilities to us, preventing us from making the most effective choices we can.

One of the best ways I've found to challenge my assumptions is to dive in and learn about many topics. When I go to conferences, I've almost always found that the most interesting, inspiring talks are the ones on technologies or subjects I've not previously explored. For example, when I go to OSCON, I find a lot of value in attending talks in the Python and Ruby tracks. I almost always come away with a better understanding of the topic and gain new ideas to apply to my PHP-based work.

So, are you a CakePHP user? Try making an application with CodeIgniter. Are you a long-time Smarty user? Give plain PHP templating a test-run. Been programming in PHP for nearly a decade? Go through a Ruby tutorial. You'll be a better developer for it.

About This Post

PHP Advent Calendar Day 12 was posted on Wed, 12 Dec 2007 at 23:53:41 GMT.

1 Comments

1. Paul Reinheimer's GravatarPaul Reinheimer said:

But... what if I don't want to develop one of the three websites Ruby on Rails makes? :)

Fri, 14 Dec 2007 at 15:30:49 GMT Link


Post A Comment

Personal Details and Comment

Style Guide

Line breaks are converted to paragraphs. Also use:

  • <a href="" title="">text</a>1
  • <em>text</em>
  • <blockquote><p>text</p></blockquote>
  • <code>2  <?php  if ($foo) {      $foo = TRUE;  }  ?></code>
  1. Note: <code> can be used inline (e.g. in paragraphs) or in a block as shown. Include whitespace and newlines in blocks.

Please enter Chris (my first name) below. This is a primitive spam prevention technique, and I apologize for the inconvenience.

Preview and Submit

Upcoming Talks

ConFoo

10 - 12 Mar 2010

At Hilton Montréal Bonaventure, Montréal, Canada.

South by Southwest

12 - 16 Mar 2010

At Austin Convention Center, Austin, Texas.

Dutch PHP Conference

10 - 12 Jun 2010

At TBD, Amsterdam, Netherlands.

O'Reilly Open Source Convention

19 - 23 Jul 2010

At Oregon Convention Center, Portland, Oregon.

New Comments

Niall Kelly wrote:

Having tried other methods without success and looked through plenty of bloated documentation, th...

Posted in Git on Snow Leopard
liukang wrote:

I have problem with this example. In my php.ini magic_quotes_gpc is off so i'm using only addsla...

Posted in addslashes() Versus mysql_real_escape_string()
RyanTheGreat wrote:

Well, I'm not Chris, but I will do my best to address the questions raised in the comments by Ian...

Posted in Security Corner: Cross-Site Request Forgeries
Chris Shiflett wrote:

Thanks for the kind words, Simon. I'm glad you liked the tutorial. In case it's helpful, here'...

Posted in Webstock
Chris Shiflett wrote:

Hi Robin, I plan to post something about it, but it's going to be hard to express everything i...

Posted in Webstock

Browse Comments


Work and Books

Analog Essential PHP Security HTTP Developer's Handbook