I would like to become a professional in php, I have learned nearly all about the language syntax and concepts and I have a good knowledge in C and C++, which made it easier to become familiar with PHP. (Of course, I learned MySql too.)

But I don't feel like being able to build even a little good website of my own! It looks like PHP is all about knowing lots of functions and using them, while in fact I don't think it's like that, is it?

How can I become a professional in PHP and Website Building? I would do anything and spend whatever amount of time required for that.

EDIT
I've also a very good knowledge in HTML and a normal knowledge in CSS and JavaScript. Sorry for not mentioning that, I just thought it was implicitly included.

As it currently stands, this question is not a good fit for our Q&A format. We expect answers to be supported by facts, references, or expertise, but this question will likely solicit debate, arguments, polling, or extended discussion. If you feel that this question can be improved and possibly reopened, visit the help center for guidance.
If this question can be reworded to fit the rules in the help center, please edit the question.

6 Answers
6

You'll need lots practice and for website building a strong knowledge of the domain. That means being very comfortable with HTML, CSS, JavaScript, XML, Database Design, cross browser design and functionality issues. Later on, you'll want to add various patterns like client\server caching, delayed loading, and web services. You'll also want to learn about security: authentication, logging, auditing, user and role management and enough about encryption to know the best practices.

I found building a task management system required a lot of combined internet technologies. It had a database backend and some console programs that did things like batch process jobs and send out text message reminders to cell phones. Later I worked on an android application to interface with it using web services. A larger project like this could get you a lot of exposure to web application creation.

PHP can be a bit of a hassle to learn because of the inconsistency in the language, but using a good IDE like Netbeans or Eclipse solves this problem with handy instant references to the functions. So it's not about learning everything about PHP.

Instead learn where the security issues are and implement the solutions.

Also don't start coding right away. Have a decent plan what you want to do and start building it.

If you want to work in a small company start learning everything surrounding web design. Learn HTML, javascript, SQL, etc etc.

If you want to focus more on the programming side then the most important thing is learning about design patterns, frameworks and best practices. Nice tip is to read a lot of code and talk with other better programmers.

Most of all don't stand still! Keep on learning, buy books, look outside of the box that is PHP.

In order to build fully featured web site or web application, you need to understand a plethora of technologies. I think you should learn the following technologies in the following order:

HTML
If you want to develop websites, you need to start off with HTML. HTML knowledge is essential because the HTML represents the content of your website. W3Schools is a great website with lots of tutorials and reference material. There's a tutorial for all of the technologies on this list at W3Schools.

CSS
CSS is necessary for controlling the look of your website. You use HTML to represent the content and you style that content with CSS.

JavaScript
JavaScript allows you to add client-side functionality to your site. It's an essential skill in any modern web site.

A server side stack / PHP
After learning basic website creation, you should begin learning a server side language. In your case, that would be PHP/MySql though there are many other web stacks you can learn. I use ASP.NET and Ruby on Rails personally.

After you learn these first four technologies, you should be able to build a modern web application. To improve your productivity, you should also learn a JavaScript framework like jQuery. JQuery is a library that allows you to perform basic JavaScript tasks much faster and easier than using plain JavaScript. There are other JavaScript frameworks that do similar things, but this is what I use and recommend. I encourage you to look at the alternatives.

I don't know why specifically as I've never actually used it, but apparently w3schools is a horrible place to start (I've read it has errors littered throughout). I've seen many a developer elude to this.
–
Demian BrechtJun 17 '11 at 4:24

I find it's useful for a basic cursory overview, but I can understand some of the criticism, especially of their certification program. For delving deeper into a subject, I prefer books. Here's are some alternative resources Google From the Ground Up and PHP.net
–
Dustin EJun 18 '11 at 6:22

Learn how to run a remote debugging session for a given URL. Zend Studio has a handy toolbar that adds some debugging buttons to Firefox that allow you to start the debugger from a page in the browser.

Install a popular open source web app, like WordPress, on your pc.

Subscribe to the dev list for that app, and study what is being said.

Search those issues in the source of the app, and debug them step by step.

Subscribe to the issue tracking site for that app, and study what is to be fixed.

Search those issues in the source of the app, and debug them step by step.

If you can fix one issue, contribute the fix with a patch.

Write some plugins for the app.

Repeat until you feel comfortably expert, also with additional web apps.

Study some current PHP frameworks

Symfony (1.x) will teach you how a Rails architecture can be implemented in PHP.

Zend Framework will teach you how components can be implemented in PHP.

+1 for being detailed. Also, WordPress is a great place to start with PHP because there are so many resources for it. On the other hand, that can be a hindrance too, because you might end up learning things specific to WordPress and not general to PHP.
–
pthesisJun 17 '11 at 0:38

Thanks, I've already done 1,2 and 3 of the First Section, it seems I still have a long road ahead of me :)
–
Tamer ShlashJun 17 '11 at 6:45

Like most things I would recommend starting simple. Build a website that is mainly focused on HTML and CSS and come to grips with divs, styling and layout. You can still do some great websites with just these features.

To add a bit of fanciness you migh delve into some javascript (perhaps using something like jQuery). This will help give you an understanding of client side interaction.

I would build up to using a back engine database and server side scripting. At this stage you might want to consider whether PHP is the right thing for you. Although easy to pickup I agree with Peter that Django or Python might be better to go with if you are to learn something from scratch.

From there you could start either trying to do something larger yourself and to further improve get into editing some existing web packages. Things like Django or Wordpress might be a great starting point in this area.

One of the concepts I found the hardest to grasp was serverside vs clientside. After I grasped that it was a matter of learning the differing modules and functionality that were suited to each.