Tuesday, March 10, 2009

Next Steps?

Thinking out loud here... The Amigo is faced with a dilemma: I've spent the last couple of months learning enough PHP to build a site. More accurately, the site is built with PHP+MySQL+(some)JavaScript. I only recently began learning Dojo and a little jQuery to upgrade the visuals on the site. The site works as it is; although it's got some shortcomings:
  • It's weak on security. Yes, it's got password protection, but I have done only a little to protect it from SQL-based attacks.
  • It's not flashy. Since I'm just starting with the higher-level JavaScript libraries, I've hand-coded a bunch of things that will look better and do more once those features are replaced. Of course there's a learning curve involved in that... Still, it's a back-end site for a family-member's small business. Customers will never see it, so basic functionality might be okay.
  • What's there so far could be considered a proof-of-concept. It supports a single product line. Within the next 12 months there will be three product lines. I've done an okay job of making functions general purpose enough to be extensible to different lines, but there will still be significant work involved to bring things up.
Had I a do-over on this, I probably would have stuck to my original plan of Python + Django. That would probably have netted me more skills in an up-and-coming development space.

For example, the Old Amigo just learned of a local company that may be hiring in the reasonably near future. They are a Python shop. So they do their work using Python (duh), Django, and Plone. I've seen some training vids and it is clear that some combination of these technologies could have sufficed for the site I just spent three months pulling together, but that's not what I picked. 

OTOH, the Plone learning curve is notoriously difficult to climb -- especially if one is to use that technology to build a site "from scratch". We're talking UML diagrams here, for instance. Things like form-based inventory control & sales tracking sites really aren't the target for Plone.  Plus the "native" database for Plone is ZODB (Plone lives on top of Zope and the latter uses the "Zope Object DataBase" to manage its content).  This implies moving from MySQL towards ZODB; although I've read that Plone can access MySQL databases if one gets the right add-ons.

So should I jump ship? I've spoken to the owner of said company. There is no guarantee that he'd hire me under any circumstances. Would I enjoy moving to something new? Probably. I sort of found PHP to be a train wreck of a language. Do I feel uneasy starting back at the bottom of another learning curve? You bet! One good way to advance is to focus and build new knowledge on top of what one has already learned.

While the underlying concepts (think GET & POST, etc) for forms processing and server side programming will transfer, all the time invested in developing some facility with the messy PHP syntax will go for naught.

And there is no guarantee that I'd be hired.

Would it be better to focus some serious effort on some client side stuff (Dojo, jQuery)?  That's what I was doing yesterday when owner of said local company called me to chat about working for him.

I just don't want to continue running around in circles.

No comments: