It's been a very busy couple of weeks for me, and I've fallen behind on some of the articles I've promised to write. I've begun drafting them again, but I wanted to take some time out to talk about something a little more philosophical than technical.
For me, learning the areas that I've yet to master has been a huge motivation to keep pushing the envelope of my own knowledge. I consider myself a very capable developer, and I don't feel that my co-workers, clients, or associates would say otherwise. At the same time, I know I still have a lot to learn. In fact, anyone that says they're a master of every craft of web and software development probably hasn't learned enough to know what there is to know. This blog itself is a consequence of my desire to explore more technologies and techniques.
The best gift I've been given recently is a true evaluation of my level of mastery. This particular evaluation came interview-style from a Zend developer and client support specialist (meaning their salary is paid by Zend Technologies). Before I entered the conversation, I knew it would be highly technical. After all, you're talking about the PHP company. I've been writing code in PHP for 7 years, am Zend Certified, ranked #3 on oDesk for the Advanced PHP Expert Rating test, placed top 10% in many other assessment tests on other freelance sites, yadda yadda yadda. While none of this equates to guru, it does equate to experience and track record with the language. Thus, I expected to be stumped occasionally, but stride through most of it as usual.
As you can imagine, that wasn't the case.
Overall, I did OK with the evaluation. The questions that I was truly stumped on were things that only the best of the best would know off-hand (and even my evaluator admitted to not knowing the answer until he started working at Zend). Then, of course, there were the middle-ground questions that I knew most of the answer to, but there was a small edge-case that I didn't think of, or that took me a bit of thinking to come up with. But what surprised me the most were the questions that I did know (or should have known) off hand because I encounter them every day, but have been numb to the rhyme-or-reason of them. I won't even mention getting a question wrong that I obviously knew the answer to, but was to worried about it being a trick question to think it all the way through.
I won't get into specifics of the questions that were asked, as I don't want to provide a cheat sheet for the next person. But, the point is this -- being able to academically and fluently explain something on the spot is the true test of how in-depth your knowledge is on a subject. Don't settle for just being able to do it well, but understand why you're doing it, how you did it, and what's the best way to do it. The Pragmatic Programmers would call this programming by confidence, not coincidence.
Thanks for making me study harder, Zend ![]()











