If this is your first visit, be sure to
check out the FAQ by clicking the
link above. You may have to register
before you can post: click the register link above to proceed. To start viewing messages,
select the forum that you want to visit from the selection below.

What do you need to know to be a PHP developer

Hi,

I am looking to start a career in PHP development. I consider myself good with PHP, javascript, css but not working in a commercial sense I have no idea if I would be out of my league.

I am comfortable with Laravel MVC, jquery, git, Sass, ajax and used a few APIs, such as google maps, iron queue and mailgun. I have used PHPunit but as my projects have be small and my own, I have not really taken it too seriously. I have dabbled with Wordpress and Drupal, which seemed OK(but frustrating but I could get used to it) and made a few plugins.

It seems there are an impossible amount of frameworks and CMS's to learn, so I assume a company would give you time to adjust to their preferred one?

Obviously, a portfolio would be good but I am awful at design. What sort of sites should I build to show of my PHP?

There are strengths and weaknesses in every IT person and position. You seem to have explored a lot of areas that a good programmer would need. You're correct about the wealth of choices for products out there and also right in assuming that should a company hire someone talented enough, but lacking in a specific skill, that there would be sufficient time allowed to learn it. To address your point about being awful at design that should not be a concern. Most (larger) shops delegate the different tasks involved in developing sites to different staff. Queries are handled by the database team who are most familiar with the table designs and keys available in order to produce the most efficient query statements for a task. Analysts come up with the technical design of the overall project and the needs. Programmers take specs and write (and test!) the code. And foremost - talented people with good graphic design skills would be responsible for developing an appealing, usable, user-friendly environment for the appl.

So don't worry about design or things you don't (yet) know. Keep on working on your current path and keep your eyes on the classifieds for entry level jobs. That's where you are going to be. Get that first job and listen and learn and pick up more skills and hone the ones you already have and let your dedication help you rise in the organization.

Good luck.

JGPS - If you're posting here you should be using:

error_reporting(E_ALL);
ini_set('display_errors', '1');
at the top of ALL php code while you develop it!

Just off the top of my head, as you don't mention much about database skills, you might want to spend some time on them, as many positions focused on the server-side aspects of web dev will require decent SQL and database design skills. At least a little exposure to alternatives to traditional RDBMS's wouldn't hurt -- e.g. things like Mongo and SOLR -- and remember that MySQL is not the only RDBMS in town. (My current job uses PostgreSQL for the RDBMS side along with a healthy dose of both Mongo and SOLR for optimization of search results).

Thanks for your responses. My concern is my projects and the few client projects I done done, have been done my way and its difficult to be exposed to other methods. So, I will look at entry level and see how the commercial environment works is.

NogDog, yep, only really dealt with MySQL although I would have thought most companies go through some sort of interface such as PDO. But, again this is the me being limited to my own projects and not being exposed to more complex setups.

Yep, we use PDO for the actual PHP DB code; but I was thinking more about some of the little differences between the DBMS's themselves. But those things are probably a lot less important than a good understanding of things like database normalization, use of joins and foreign keys, indexes, etc. that will apply to any RDBMS.

joins, keys etc I have used, can't remember the syntax of the top of my head as I have been using the Eloquent package that abstracts that all away.

I have been bidding on PHP projects on some freelancers sites this weekend to see how other projects are done, just to expose me to stuff I haven't done(the only code I have seen other than mine is in packages and classes but not whole projects)

You could also poke around places like GitHub for open-source projects you might like to help out with, or even just to pull down their code and see how they've done things (with the caveat that just because it's on GitHub does not mean it was done well ). It's also potentially another way to network with other developers; and it's often who you know rather than what you know that helps you get the interview.