About This Interview
This is the #29th
set of PHP Interview to help aspiring PHP developers and PHP fans alike to get inspired by listening from those PHPeople 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 awesome PHP people.
A Small Intro..
Stefan Priebsch – Acclaimed Expert For PHP Software DevelopmentIn this edition I talked with [Stefan Priebsch @spriebsch] who is one of the Elite members of The PHP Consulting Company, thePHP.cc. He is regarded as a highly knowledgeable gentleman, has rewritten an array of books related to Software Development and software life cycles; in short Stefan is an acclaimed expert for PHP software development. One of his talks which I recommend is “Why MVC is not an application architecture“. Fortunately it’s a video, so you will be able to both see and hear Stefan talk about it.
And Now The Interview…
>> Please tell us a bit about yourself
My name is Stefan Priebsch. I hold a university degree in computer science and have been using PHP since the year 2000. I frequently present at technical conferences, have written a couple of books on PHP, and am one of the co-founders of The PHP Consulting Company (thePHP.cc), a leading Germany-based consultancy for PHP and related Open Source technologies. In my private life, as a father of twins (2.75 years), I also deal with a lot of scalability issues.
>> How you started with PHP
After graduating from University, I was employed as a software engineer, and we were creating Java-based software solutions (at the time, Java was still hot and new). In 1999, I felt that the world wide web (which was still hot and new at the time) would be the future, and started to look at scripting languages. After working with PERL for a while, I switched to PHP for the simple reason that I found myself unable to read PERL source code.
>> Your LAMP stack comprises.. ?
I currently run PHP 5.4.5 with Xdebug 2.2.1 on Fedora Linux. I work a lot from the command line, but when I need a web server, I fire up nginx with FPM. I have a local MySQL server, but also play around a lot with different technologies like Memcached, Redis, or MongoDB.
>> The relationship between You and The PHP Community comprises..
I try to help people to make better use of PHP. I think one could view me as a kind of evangelist for good software architecture, best practices in OOP, and code quality in general. A couple of years ago, I co-mentored a Google Summer of Code student with Zoe Slattery. We worked on a new implementation of runtests, that would allow concurrent execution of tests. Unfortunately, we never got the new implementation production-ready (there are a few really intricate details to pay attention to), as Zoe switched jobs and I became a father of twins.
>> How do you find PHP now as compared to when you first started
PHP has matured a lot. Looking back, early versions of PHP 4 were … well, let us not go there. PHP became famous as a cool and fancy new scripting language, and, in my opinion, it has instrumentally contributed to making the world-wide web what it is today. Today, PHP is a solid and reliable platform for online businesses and enterprises.
>> Based on your experience, what are the good and bad parts of PHP
PHP is really good at adopting successful concepts and ideas from other programming languages. We all know that there are some sins of the past, like register_globals or magic quotes, that have haunted us for a long time. There is a good reason for that, however: backwards compatibility. There are so many PHP applications and scripts out there that would stop working when the behaviour of PHP changes, so it really takes a long time and a lot of education until you can safely remove an obsolete feature from PHP.
>> What would be the Top advice to a PHP beginner
PHP has a very low entry barrier, which makes it easy to get started with programming. You quickly see results. My advice to beginners would be to not stop learning. There is a whole new world to discover, and there is a lot more to it than just embedding some program code into HTML markup. Writing complex software is a completely different beast than scripting, or using and adapting existing CMS solutions.
>> To someone who wants to become a better PHP developer..?
Look beyond PHP. Honestly, there are not too many books on professional software development with PHP that I could recommend. There are very good books written by Java developers, however. I can recommend Martin Fowler, Eric Evans, and Joshua Kerievsky, for example.
>> The best PHP book you’ve read
That is an unfair question, because I have written and co-authored PHP books myself. And even if it’s inappropriate, I tend to think that my own books are quite good.
>> A PHP blog or resource you highly recommend
I can recommend subscribing to the RSS feed of Planet PHP, which aggregates many PHP-related blogs. This gives you access to the blogs of quite a few high-profile people, even if many of them do not blog too often these days.
>> The IDE that you use
For a long time, I declined to use an IDE. I have tried Netbeans and Eclipse PDT, and both got in my way of working, or crashed too often. A while ago I saw a developer use phpStorm at a customer’s, and I was blown away by the capabilities of that IDE, so I started using it myself. And I have to say that I am very happy with it.
>> How do you debug your PHP code?
Since I write automated tests for pretty much anything that can be tested, I do not have to debug that much. If need be, I have xdebug installed on all my development systems, but usually do not use its remote debugging feature. As a matter of fact, I rarely meet any developers who do “real” debugging; most of them just use var_dump(), like I do.
>> A PHP framework you use and would recommend
Write your own. This puts you in control over the API and release cycles. Using an existing framework can save you time initially, but on the longer run it usually does not pay off. Upgrading to a new major version of a framework, for example, can be a real pain, if it is possible in the first place. I am not recommending to write everthing on your own. There are a lot of great reusable components out there, but
for the heart and soul of my application, the actual framework, I want to be the one in charge.
>> A unit test framework you recommend using?
PHPUnit. Since Sebastian Bergmann, the creator of PHPUnit, is a friend of mine and also one of my partners with thePHP.cc, using PHPUnit is a sort of legal requirement for me (smiles).
>> A CMS that you think is worthwhile
I like to distinguish between content management systems and website management tools. A lot of PHP software that claims to be a CMS is actually a website management system. This is not bad in itself, but a true CMS should be clearly separated from the web frontend. Most PHP-based systems that I know are database-centric, and thus hard to scale, plus they make it difficult, for example, to copy user-generated content from the production system to staging systems.
>> An E-Commerce cms you recommend
Tough question. Most of our customers have created their own solutions because they had very special requirements that could not be fulfilled by existing standard software.
>> One PHP System/software/library/Project you really appreciate
Basically, I appreciate any open source project written in PHP. People put a lot of effort into their software, and you can learn so much from looking at the source code, and figuring out how things are done, and why.
>> One function that you like (or which you tend to use frequently)
There seems to be a php function (or extension) for pretty much everything. I often use the PHP manual to find what I’m looking for.
>> One PHP person that you admire and what strikes you about him/her
That would be you. You help to make PHP better known in your region, which is awesome.
>> One PHP Community that you recommend
The German one, if I may. As I have said before, there is a lot of talent, and quite a few of the “older” core developers are German. We have a lot of great PHP-related conferences and unconferences going on each year. As a matter of fact, the very first international PHP conference took place in Germany.
>> Are you part of any PHP User group?
That is a bit of a sad story. I live close to Munich, which has not had a “proper” PHP user group for years. There have been various attempts at bringing people together, but that was somehow never fruitful. And since I travel a lot as a consultant, I’d neither have the time to regularly attend the meetings, nor be in the position to organize them.
>> A PHP Usergroup that you appreciate and would highly recommend
Over time, I have visited quite a few user groups while traveling, and each of them has their own neatness.
>> Which was the worst programming mistake you did?
That was probably back in PHP 4 times, when I wrote an object-oriented program, but forgot one ampersand, which lead to a two-day debugging session, because PHP had implicitly copied the object instead of creating a reference to it. This is one of the reasons why I was so happy when PHP 5 was released with “proper” OOP support.
>> Things that you’ve learned from being part of The PHP Community
Open Source really works. It makes the world a better place, and there are plenty of opportunities to make a decent living.
>> The best conference you attended would be..
ConFoo in Montreal, Canada. It is a non-profit conference organized by PHP enthusiasts that has grown to the largest web technology conference in North America. I love to come back to this conference because the audience is very diverse, so you can learn a lot not only about PHP, but also about other scripting languages and web technology in general.
>> Can you please share the good, and may be not so good moments, of being part of all the conferences you attended
I have met great people, and had gread discussions about PHP, IT, and sometimes life in general. It is really worth while to attend PHP conferences.
>> What are the main aspects of conferences that can really help a PHP guy to get better in his progression
Consulting is free at conferences. Don’t be shy and just approach people. Say hi and thank them for their contribution to PHP, or the PHP ecosystem. This is always a good start. Then join people for lunch, dinner, drinks, or discussions. Share your thoughts, and show them what you are working on. You will receive valuable feedback and input, which is a great start to building your own network.
>> If you could change one thing with PHP, that would be…?
I love PHP as it is, and I don’t think you could really change anything without causing undesired side effects.
>> If you had to go back in time, would you still choose PHP? What would you do different?
Yes, I would definitely choose PHP again. The only thing that I might do differently would be to avoid trying out Perl before getting started with PHP.
>> How do you time manage all the stuffs that you do, coupled with your personal life?
I don’t. There is so much more I would love to do with PHP (and to PHP), but I am lacking the time for it, because I still want to have a private life, and spend time with my family.
>> Why you are successful and why others are not?
I think I was at the right place at the right time, and I was lucky enough to found a company with two other leading PHP experts, Sebastian Bergmann and Arne Blankerts. Together with those two guys, you can’t fail.
Now Do Your Part!
1) LIKE 7PHP dot COM on FaceBook – if you appreciate what I do
2) 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 😉
3) 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)!}