Purpose Of This Interview
This is the #16th set of PHP Interview to help aspiring PHP developers and PHP fans alike to get inspired by listening from those PHP guys who are already highly involved into the PHP Ocean and being ‘there’ taming the waves and surfing better than ever to make themselves an Awesome PHP Expert both in their own eyes (for self-accomplishment) and for the PHP Community. On the other side, this is an opportunity for new PHPers to get to know their “PHP Elders“. I hope you will derive as much fun to read my interviews as I’m having by interviewing those A-List PHP guys.
A Small Intro..
In this edition I talked with [Jacques Woodcock @jacques_thekit], who is a leader in the [Nashville PHP User Group @NashvillePHP]. Jacques is also the Founder and President of theKit Portal which is a fully hosted CMS platform built around affordability, usability and customer service. He is someone who is really is motivated by finding solutions for people. Some of his talks, which you can find on slideshare includes:
And Now The Interview…
1) Please tell us a bit about yourself
I went to college to become an artist, graphic artist to be precise, that meant learning how to do digital publishing along with digital graphics. So I began using a Mac, running OS 8, to learn the Adobe suite of tools to do everything except web development. It wasn’t until my last 2 semesters at college that I was offered a job by one of my professors to come work for this .com start-up doing web design, and learning the tools and technologies on the job. And thus, setting the precedent for how I will learn new skills from then to today.
Shortly thereafter, the .com bubble popped ending my first Internet job, but I had some great skills which allowed me to move from agency to agency over the next 8 years learning new skills along the way, and to finally end up working for myself doing everything from programming, to ux/ui to business strategy and some architecture.
2) How you started with PHP
I started doing programming focusing on interaction, so I picked up JavaScript for a while then got heavy into ActionScript. From there, I got interested in data driven sites so learned ColdFusion from a co-worker back when it was just a tag-based language. No such thing as a class and functions were new. After using it for a couple of years, and realizing it was more limitations then actual ability, I started to look for something new and fortunately was working in a PHP heavy shop. So I would pick the brains of the programmers working there until I started building my own sites with it. I think that was in 2004.
I still focused on JavaScript and ActionScript until about 4 years ago when I decided Flash was going to die. So I dropped ActionScript and focused on JavaScript and the hot technology AJAX and put my heavy lifting in PHP. Over the course of a few projects and one monster one, theKit, I fully immersed myself into PHP and fully fell in love.
3) The relationship between You and The PHP Community comprises..
When I started working on my own, I had the time to go out and meet other people, agency life doesn’t afford you such luxuries. In doing so, I found the local PHP user group. These guys have been amazing and welcoming so I decided to give back by throwing some money into the group as a silent sponsor, then I started organizing it with [Cal Evans @CalEvans], [Ryan Weaver @weaverryan] and [Ben Ramsey @ramsey]. I think I’m pretty damn lucky to have just fallen into this great group of guys.
Along with co-organizing the [Nashville PHP user group @NashvillePHP], I’m working with [Cal Evans @CalEvans] on [CoderFaire @CoderFaire] and working on a quiet but soon to be announced initiative with [Ben Ramsey @ramsey], [Nick Sloan @nickasloan], [Elizabeth Naramore @ElizabethN] and [Cal Evans @CalEvans].
4) How do you find PHP now as compared to when you first started
My view of PHP is kinda different than someone who’s view is based on release cycles. My view is comprised of my own knowledge, or lack of knowledge. So what started out as a simple way to do dynamic applications with data has turned into a robust tool that allows me to understand, speak and build enterprise systems.
5) Based on your experience, what are the good and bad parts of PHP
Like most people will say the best things about PHP is the low point of entry and the power to accomplish great tasks with basic knowledge. The bad parts are of course the same.
When you’re a self taught programmer, languages that are as flexible as PHP, can tend to hold you back when it comes to academic knowledge; you know fundamentals. If you program alone, not really part of a team, you can go a long time before these things come to light, so you find yourself cramming to catch up.
6) What would be the Top advice to a PHP beginner
Jump in and start programming, but try to find a good mentor or guide to help you understand the complex concepts that make the base of great programmers.
7) To someone who wants to become a better PHP developer, what is your advice?
Humans typically are only as good as the people they surround themselves with. If you want to be better, engage in conversation with smarter people, let them challenge you and in turn, don’t fear to ask stupid questions. PHP is full of people who get what it’s like to be learning. They don’t laugh at people not as educated as they are.
8) The best PHP book you’ve read
I’m currently in a reading sprint, trying to fill in the many gaps of knowledge I have. So I’m reading all kinds of books such as Design Patterns by the GoF, php|arch’s Guide to PHP Security and Web Scraping, [Chris Hartjes @grmpyprogrammer]’s The Grumpy Programmer’s Guide to Building Testable PHP Applications, just to name a few.
9) A PHP blog or resource you highly recommend
- Anytime [Cal Evans @CalEvans] starts a blog, podcast or sneezes on the internet, it’d be good for you to read.
- [/Dev/Hell @dev_hell] is an amazingly honest mix of angry banter and complex technical concepts which makes learning these concepts much easier, and entertaining.
- [php|architect @phparch] has great resources.
- [Elizabeth Naramore @ElizabethN] does a real easy to digest podcast that expands my knowledge of the PHP community for [Engine Yard @engineyard].
- Finally, I really enjoy [Paul Jones @pmjones]’s blog as it’s a very interesting mix of technical concepts, political and life commentary. Like having a conversation with Paul, his blog topics always challenge what you think you know and understand, and encourages you to re-examine it if only to be more secure that you understand to be right is right.
10) The IDE that you use
I’m a big fan of Coda but in my desire to be a more versatile and robust programming, and in search for a lightweight IDE, I’m currently moving to VIM. VIM Adventures is thoroughly helping with that.
11) How do you debug your PHP code?
One area I know I need to grow my programming knowledge is around my debugging. For the longest time I’ve tested like a novice and just tested through the browser. Since I’ve been introduced to [Chris Hartjes @grmpyprogrammer], I’ve started my move to a test driven development process.
12) A PHP framework you use and would recommend
I’m not a big PHP framework guy. I’ve typically written my own but have decided I needed to play around with some if not only for exposure, but to also further my understanding of how large-scale applications are written and maintained.
With that in mind, I’m starting with lightweight frameworks and chose Silex as my first to play with.
13) A CMS that you think is worthwhile
I might be a little bias but theKit is my CMS of choice. 😉
Like my experience with frameworks, I haven’t installed a lot of CMS’s. WordPress yes and Drupal some, but I mostly built my own from scratch and felt no guilt doing so, as my clients typically has very specific demands that were easier met by having a base framework we converted into a CMS.
14) An E-Commerce cms you recommend
I’ve used a few and like [FoxyCart @foxycart] a lot because of their PCI-Complience and developer focus. Still, most my experience is around building the communication between merchant and processor with custom cart solutions.
{ Note: FoxyCart was co-founded by [Luke Stokes @lukestokes] }
15) One PHP person that you admire and what strikes you about him/her
The guys and gals in my local user group are amazing. I’ve been really lucky to have so many smart people here in town. [Ben Ramsey @ramsey] is incredibly smart and noble. His love for both PHP and the community would be unparalleled if it wasn’t for [Cal Evans @CalEvans] who is a type of person that I’ve never seen before; willing to give so much to the community and ask for so little in return.
Then there’s [Paul Jones @pmjones] who if I had a chance to work with everyday, I would drop almost anything I was doing to take up that opportunity. I am a guy who becomes smarter through being challenged by humble, highly intelligent people and Paul, though he does not claim himself to be intelligent, is that type of person. I’ve always believed in questioning everything, even things you’ve think you understand and I see that in Paul and am always encouraged by it..
16) One PHP Community that you recommend
All of it. I can’t say enough about how amazing, and rewarding, it’s been getting involved with the community over the past few years. Go to user groups, get on IRC or attend a conference.
17) Which was the worst programming mistake you did?
Thinking I knew anything about programming. 😉 Everyday I believe you need to go forward trusting in what you have learned, but knowing that at any moment you’ll have to relearn it all over, and differently.
18) You are someone who strives a lot on getting the communication process between you and the client as clear and comfortable as possible; and you also seemed to be very systematical in your approach..
a) According to you, what are the essential traits or focus that are needed to be able to clearly and correctly understand the ins-and-outs of a project.
First, a willingness to say you know nothing about any particular subject, thus allowing you to learn. Second the ability to empathize with all types of people, letting them realize on their own that you are trustworthy with their time and knowledge of the project.
b) challenges that you came across and how you deal with them
Personality differences is the main challenge. To beat this you really need to like meeting different people, and hearing from different perspectives.
Next is expectations; client expectations, team expectations and your expectations. Expectations are only there to create disappointment, but you can’t go around telling everyone that or they’ll stop taking you serious, so you need to give out doses of reality when talking through these expectations.
c) Do you have any special “way of doing” that helps you gain an edge on what you do
I listen, as much as possible. In all situations, it’s best to be the listener. Then when you speak, you are speaking from understanding. Also, because of my diverse background, I’m good at translating what one discipline is saying to another. This makes my skills very valuable to a project.
19) Could you tell us a bit about UX, what is it and how it is different from UI
UX is about the overall experience of a product for an end user, whereas UI is about how elements are laid out on a page, or interface of the product. Think of it in these terms: UX is like a framework. It gives you a set of rules that you need to follow that produces an experience that is optimal for the task at hand. Whereas UI is like an object in that framework, giving you specifics on what can be accomplished and with what specific information.
20) You are a frequent speaker at conferences and also a Leader in The Nashville PHP user group :-
a) The best conference you attended would be..
I unfortunately don’t make it to out of town conferences, yet. So the best one I’ve attended was the PHP Community Conference, which by my understanding was a great one to attend.
b) the good and may be not so good moments, of being part of all the conferences you attended
I can’t say I’ve had bad moments at conferences, mainly as I’ve said before, this community is amazingly supportive of each other. From CodeWorks to the PHP Community Con, every one is always so friendly and supportive.
c) What are the main aspects of conferences that can really help a PHP guy to get better in his progression
Sessions are great, they open your eyes to a lot of topics you may have never otherwise have seen, but most the learning will be in talking with other developers, in a free forum.
d) what it takes to create a php user group
A lot of dedication, time and devotion. Beyond that, the community is usually there to support you.
c) One thing you think other user groups can learn from The Nashville PHP user group
We’re really trying to be a reliable source of inspiration, knowledge and networking for the local PHP devs. Some things others could learn from the Nashville user group is our interests in broad topics, meaning topics that are not just specific to PHP, our firm adherence to a meeting time and place and our willingness to partner with other user groups for unique topics.
d) One thing you think is lacking as compared to the other (world wide) PHP user-group
Corporate sponsorship. You see other languages get big names all the time, whereas in the PHP world, because it’s so open-source and kinda at times anti-corporate, I think it’s harder to find these companies willing to support the user groups.
21) Advice to people who speaks at Conferences or anything you would like to say which can be of benefit or of improvement to anyone speaking at a conference
If you are speaking at a conference, or just in general, remember that you’re not teaching a class at a college somewhere. Make your topics interesting with jokes, nice slides or give them from a unique view point.
22) Things that you’ve learned from being part of The PHP Community
There’s really so much I couldn’t list it out, but to start:
- Programmers are not trolls that live under a bridge and yell profanities whenever confronted by mortal men.
- PHP is not a “weak” language- used by a professional it can accomplish almost anything.
- No matter how little my knowledge is on a subject, some one will be there to help me further it along.
- A great developer uses the right tool for the job and doesn’t lock themselves into one tool for all jobs
23) If you could change one thing with PHP, that would be…?
The parameter ordering in function calls. str_replace() and explode() and all the list of needle-haystack, haystack-needle. Thank god for auto complete.
24) The day you realised “You’ve made it to the A-List PHP arena” ?
I’ll let you know when that happens. 😉
25) Why you are successful and why others are not?
If I’m successful, it’s only because I try to surround myself with successful people, not by any doing of my own beyond being willing to admit I know nothing and must learn from everyone.
Now Do Your Part!
1) Help diffuse this interview to the PHP ecosystem – Share, tweet and spread the word to your audience ==> That would be a FREE way to thank me 😉
2) Make a comment below using the comment form – I’m sure you can at least say 1 word about this interview
{I’m thankful to your response(s)!}