addressalign-toparrow-leftarrow-rightbackbellblockcalendarcameraccwcheckchevron-downchevron-leftchevron-rightchevron-small-downchevron-small-leftchevron-small-rightchevron-small-upchevron-upcircle-with-checkcircle-with-crosscircle-with-pluscrossdots-three-verticaleditemptyheartexporteye-with-lineeyefacebookfolderfullheartglobegmailgooglegroupshelp-with-circleimageimagesinstagramFill 1linklocation-pinm-swarmSearchmailmessagesminusmoremuplabelShape 3 + Rectangle 1ShapeoutlookpersonJoin Group on CardStartprice-ribbonprintShapeShapeShapeShapeImported LayersImported LayersImported Layersshieldstartickettrashtriangle-downtriangle-uptwitteruserwarningyahoo

Boston PHP Message Board Boston PHP Meetup Discussion Forum › What skills do you need to be a good PHP Web Developer?

What skills do you need to be a good PHP Web Developer?

Michael B.
Michael_Bourque
Boston, MA
Post #: 172
What skills do you need to be a good PHP Web Developer? I get this question at least a few times a week from some of our newer beginner members. It may seem obvious to some, but I get different answers all the time!

I would like to publish a list so that when people ask me, I can just send them to the list. I think this would be an invaluable list to beginners and those who want to further their skills.

Here is what I need from all of you:

What are the skills needed for an all around PHP web developer. List both technical and soft skills.

  • Must have skills:
  • Good to have skills:
  • Rock star skills:


Just reply to this discussion and list your ideas about skills in the sections I have given.

Example:

Must have: Core PHP, OOP, MVC, DB Design, GIT
Good to have: PHP Frameworks, Agile/Scrum, HTML5
Rock star: CSS3, MongoDB, TDD

Later I will compile all of your ideas, and publish a list. Have fun!
A former member
Post #: 18
In looking for PHP work, almost everyone has asked about MVC framework experience with one or more of the following: Zend, CakePHP, or CodeIgniter. Not many positions for raw PHP without a framework. I would vote for having some kind of self-study class a la PHP Percolate involving MVC and one or more of the PHP frameworks.

Must have: PHP 5, Zend/CakePHP/CodeIgniter, MySQL, MVC
Good to have: HTML5, CSS3, jQuery
Rock star: SQL Server, Stored Procedures

Dan F.
user 9289016
Melrose, MA
Post #: 1
Hi Michael,

Here are my ideas:

1. Must have: PHP language, OOP concepts, knowledge of libraries & extensions, understanding of security (esp. SQL injection, XSS)

2. Good to have: understanding of relative perforance of PHP constructs; extensive SQL knowledge; MySQL or PostgreSQL specifics; HTML5

3. Rock star: knows other languages besides PHP and when to use them. Curious about programming techniques and always learning something new. Writes programs in spare time. Contributes to one or more open-source projects.

Dan Franklin
A former member
Post #: 3
1: Understanding of core including objects (tho that should go without saying at this point); MySQL & basic understanding of DBA; A strong familiarity with php.net (you cannot get by without this); familiarity with StackOverflow; Basic understanding of HTML; basic understanding of HTTP; basic understanding of *nix and apache; familiarity with setting up/customizing Wordpress (it's everywhere, even many designers have to learn this); basic understanding of the MVC pattern; Basic understanding of CSS.

2: Strong ability in one of the popular frameworks (tho I'm not sure I'm happy about this fact); use of GIT or at least SVN; Strong understanding of MySQL; Familiarity with other datastores; Use a testing framework; Good JS skills and a preferred framework (jQuery by default); strong understanding of *nix and server configuration & maintenance; strong understanding of the MVC pattern and familiarity with other paradigms (aspect oriented programming etc.), familiarity with PEAR and PECL, basic understanding of backbone.js, ext.js or another frontend MVC; Good CSS skills; Semantic markup/html5;

3: Has used PEAR & PECL in meaningful ways; writes unit tests or behavior tests first; Modularizes code all the time; publishes framework extensions/modules/contributes to core; blogs about programming & engages PHP community; shares code on GIThub; decent understanding of python, ruby, or node.js (has written an application in at least one of these); very strong javascript skills & experience with frontend framework; has used a datastore besides MySQL; strong understanding of HTTP, websockets, and streams; decent sysadmin; uses Heroku, PHPFog, or Orchestra.io to host php apps; Amazon services etc.; has own popular side-project(s).

What did I miss?
Dan L.
whichdan
Brookline, MA
Post #: 3
I think moderate design skills are highly underrated as an essential part of being a web developer. Even something as simple as spending half an hour tweaking your apps typography, padding, margins, borders, and backgrounds can make a huge difference in how usable/readable your app is. I've worked with far too many applications where it looks like the people designing it have a better grasp on C than CSS.
A former member
Post #: 1
Must have: an ability to articulate technical problems in straightforward, visual terms that clients can understand and appreciate.
Dan
user 24463772
Allston, MA
Post #: 7
Must have: Solid grasp of OOP, a high-level understanding of CSS, HTML, and JavaScript, and the ability to use something like PHPMyAdmin to do simple MySQL administration. You don't need to master these things, or even be able to use them beyond cutting and pasting, but without some minimum understanding of how they all interact I don't see how you can hope to even fill a seat at a web dev shop. Once you've got that, I'd echo Chris's comment about an MVC framework. Everyone's using them - you've got to know your way around at least one of them to be a viable candidate.

This "bare minimums" list is, from what I understand, a list of what an employer should expect to find in a candidate before offering them a junior-level position. In my opinion security is something that should be managed by someone other than a junior level developer. While they should have had an introduction to security concepts while learning PHP - in fact, I would consider an education that doesn't touch on security issues to be incomplete - I wouldn't expect them to have more than a general awareness of what kinds of things could potentially be problematic. Ultimately the responsibility for creating secure code needs to rest on the shoulders of a more experienced developer, who should be reviewing the junior coder's work before it's allowed to go live. Now, I realize that not every shop has the luxury of performing this kind of code review. It is incumbent upon such a shop to hire developers who are no longer junior-level.

Good to have: The first thing I would say is a better understanding of MySQL and familiarity with Apache (and possibly even Linux) server administration, especially the interactions between php.ini settings and Apache. PHP, MySQL and Apache are the water in which PHP devs swim; it is difficult to imagine that one could learn too much about them. I wouldn't get too deep into Linux admin - I have almost never been asked to do sysadmin tasks as a developer, even in the smallest shops.

Beyond this there are the "peripherals" - development tools such as FireBug or an IDE, and tools or frameworks written in PHP such as WordPress, Magento, etc. I consider the choice of IDE to be essentially religious in nature, i.e. pick one you like, enjoy it, but don't try to convert me. As for frameworks, because these come and go pretty quickly I would reverse my advice about the LAMP stack here. Don't go too deep into any one of these until you're hired to do so. The only exception I'd make to this is WordPress. It's demonstrated exceptional staying power, so spending time learning it isn't likely to end up being a waste.

After those I would work on getting a better understanding of the front end technologies, finishing up with some basic graphic design concepts if not actual graphic design practice. I know some people say that the human brain is incapable of being good at both analytic (programming) and artistic (graphic design) tasks. They're full of crap; it's just a matter of what you spend your time practicing. Part of this should be devoted to making a site compatible with mobile devices.

Then there are issues of deployment. I'm not up to speed on these myself, so I'll let others chime in with which versioning and deployment tools they use.

Finally I'd throw in some good, old fashioned programming skills. The kind of thing you'd find in a book by Knuth - algorithm analysis and big-O notation, sorting and searching algorithms, etc.

If a developer understands all of these things and nothing else they would be a solid, valuable member of any web development team.

Rock Star: This post is too long already, but I will say that the ability to communicate clearly in both written and spoken form is invaluable in any field.
A former member
Post #: 3
Must have: Good communication Skills, Good inter personnel skills, PHP Basics, 1 main project minimum
Good to have : you know your editors, you understand a fair deal the language has to offer
Rock Star : 1-3 PHP frameworks, OOD, MVC, JavaScript, HTML, CSS, Ajax, 3rd party APIs
A former member
Post #: 1
Michael asked me to comment here ... I have read some of the other replies in this discussion thread and no one has mentioned certification. I find that somewhat perplexing especially at the rockstar level. Although I agree with some of the comments about framework knowledge, I have to mention that in my opinion it is not really part of the question. Knowledge of frameworks is important, but the question was what is required to be a good PHP web developer. Coding styles are certainly changing, and therefore some Agile and scrum experience would also be very good to know. Also these days it is very rare for a PHP developer to work in isolation, So a good knowledge of team development is also a requirement in my opinion; by this I mean: knowledge of code repositories like subversion or git, and some form of interfacing with task management software like Bugzilla or Jira, as examples. Naturally object oriented programming is a must these days as well, and knowledge of Drupal or Joomla! would also be helpful but not necessary.

These are all just my opinions
cheers, Peter MacIntyre
Powered by mvnForum

Our Sponsors

People in this
Meetup are also in:

Sign up

Meetup members, Log in

By clicking "Sign up" or "Sign up using Facebook", you confirm that you accept our Terms of Service & Privacy Policy