views:

221

answers:

9

I have learned extremely basic PHP(I think so) using Lynda Tutorial( http://bit.ly/aCIhiu ). After that, I feel, I got some grip on that language. My ambition is to become a web developer! After some googling, I planned to learn some more advanced and practical php by using websites like PHPSCripts, Webapps etc..

But, now I'm in a confusion! After my studies, when I seek for a web developer position & got selected, how will I work, by just knowing some language basics?

Can you guys help me to become a good web developer, what will I have to learn & how to learn?

Also, can I get the steps to do a practical PHP project.

+2  A: 

Im my opinion, A good webdeveloper MUST know:

  • HTML
  • CSS
  • JavaScript

After this, it's important to know:

  • Jquery
  • XHTML
  • Crossbrowsing (diferences of IE X Firefox x Chrome, etc)

Rationale:

  • HTML: it's the base of web.
  • CSS: in 2010, it's the base of web.
  • JavaScript: only the basic, to understand jquery after.
  • Jquery: you can solve a lot of problems quickly and it's large used.
  • XHTML: because your page may broke in modern browsers, if has a <br>, not a <br/>
  • Crossbrowsing: there is more than one browser in the world.
Topera
I put jquery after, because if you don't know js+css+html, you don't understand jquery very well.
Topera
As usual, I'm missing a very important one here: SECURITY. A good webdeveloper must know how to build secure applications, and keep up to date on the subject.
kander
@topera Im not sure suggesting a specific js framework is the best idea. Not to say I dont love jquery myself but this leaves out prototype and mootools and any other I don't know about. Learning how to program would solve all of this because once you learn how to program a framework/api is no challenge to learn the basics of very quickly.
Chris
+2  A: 

Regarding PHP

  1. Make a small project using PHP, so you know that you know.
  2. Learn a (MVC) framework like CakePHP or Agavi.
  3. Read this SO answer.

Regarding Web Development in General

Know about CSS, XML, XHTML, XSLT, W3C validation, HTML5, JavaScript, AJAX (and most other acronyms you come across).

You will find there are various libraries which make your life easy, use them. And there will be one browser that will make your life difficult, but you will have do deal with it.

Ashish
@ashish What about symfony?
Chris
@Chris That too. And there always will be tons of other stuff. At the end of the day it's whatever works for you.
Ashish
@ashish agreed, just thought i would toss it into the list :-)
Chris
May be if other people want to add to the list I can make this a CW...
Ashish
+1  A: 

Here are few suggestions:

Sarfraz
+2  A: 

Just keep on practising. You will likely need solid HTML / CSS skills as well as PHP since the two go hand-in-hand - it's also useful to learn MySQL. Spend lots of time going through the tutorials on the excellent tizag.com as well as Lynda.

Once you're comfortable with all that and you're ready to move onto something more advanced, it's worth looking into Wordpress customisations and plugin development - that has the advantage of being pretty easy to use, with an awesome support community, and a whole bunch of mature code that you can look through yourself to get more familiar with how the language is used in the real world.

After that, try a framework like CodeIgniter or CakePHP - these are awesome for your productivity but do make sure you're comfortable with the basics first as the learning curve can be pretty steep and you want to reduce frustration as much as you can. :-) Learning design patterns will also be helpful at this stage.

One thing that will always be important to you, your users, your applications, and your potential employers is code security. I can't stress this enough. As soon as you put an application into real-world use, you have a moral and professional obligation to make that application secure. http://www.addedbytes.com/writing-secure-php/ <- read, digest, read other guides. Security is the single most important thing that a PHP developer can learn.

Above all, have fun! The best developers tend to be the ones that get genuine enjoyment out of what they're doing. You might find yourself eventually leaning in a different direction and using completely different technologies, so always keep your eyes open and be prepared to learn new things even if they don't necessarily 'fit' your current skillset. Also the more general knowledge you have about programming patterns, the better you will become in individual languages. Remember that it's an organic process so you will need to let it develop naturally - but help it along by exposing yourself to as much as possible (foreign language teachers call this 'immersion' :-) )

hollsk
Amen to the point regarding security.
kander
A: 

the very very first thig to do is to learn Object Orientated Programming (if you haven't).. then you might want to start learning the MVC pattern... and then you must decide either you star using frameworks (like cakePHP, Symphony,Zend) or you prefer using CMS (like joomla or wordpress)... on the process you might also want to learn javascript using a framework (mootools, jquery or prototype)... Edited: i forgot about databases and sql!! wow.. there's a lot to learn!

pleasedontbelong
A: 

The only way to become a good programmer on a certain platform, is to study something more than just tutorials. Read a book, at least. Then the rest comes with practice.

A good way is to also learn a specific platform (depending on what they work with). Some work with Wordpress, so once you know basic PHP and how to use it with databases, and how to work with databases, you would be able to quickly make some basic information websites. Others use Joomla, Drupal, DLE, to quickly build websites, without having to hurt their heads with full backend and frontend architecture. If you need a more general approach, to be able to make more specific web applications, use frameworks like Zend, CakePHP, Symfony, CodeIgniter.

Also, besides knowledge of PHP, to build a small website by yourself, you will also need to know HTML, JavaScript (with AJAX, possibly a framework like jQuery), SQL.

And last but not least, you will need to learn how to protect the site against XSS, SQL Injection and other security threats.

Alexander
+1  A: 

A solid web developer needs an understanding of HTML, CSS, JavaScript, and the server-side scripting language of her choice. But still more important is a solid foundation in programming. You don't have to be an expert computer scientist, but you need to understand how to structure a program and how to solve problems in a sensible way.

Most professional web development involves database access of some sort. Teach yourself SQL, and use a real SQL -- not Access -- for the effort. You can run MySQL or Postgres on a laptop these days, and it's free.

Learn to design databases well. Learn about normal forms, and indexes, and so forth. The time you spend on that will pay off in spades.

Take a while to study up on security. Look at the security bugs that have afflicted high-profile projects and sites. (Hint: they're pretty much mostly about trusting untrustworthy data, or else relying on old out-of-date infrastructure, but the consequences include site defacement and the compromise of valuable information.)

And then, take on a charity project somewhere. You won't get turned down, and you'll cut your teeth, so to speak. Just make sure you're not storing social security numbers or something crazy like that, because charity workers are often vulnerable to social engineering attacks.

Ian
+1 on the charity project front - this is a great way to get practice. I've personally worked with non-profit organisations through a site called Grassroots: http://www.grassroots.org/ where you can get yourself involved in all sorts of interesting projects at all sorts of skill level. Plus you can enjoy all the good karma that comes with it :-)
hollsk
A: 

Learn Object Orientated Programming (OOP for short).

Knarf
+2  A: 

As a web developer it is important to have client and server side skills. But there are few web developers which are excellent at both... But knowing the basics and where to look for info is definitely a good starting point.

I would recommend to work through the following list(s) in the order presented. If you feel comfortable with a topic, move one. Even though that in reality you will often have to go back and forth during the learning process...

Client Side

  • HTML / XHTML
  • CSS
  • a JavaScript Library (e.g. jQuery, prototype/scriptaculos, etc.)

Server Side - Infrastructure

  • familiarize yourself with shell scripting if working on Linux (e.g. bash, etc.)
  • Webserver (e.g. Apache)
  • PHP Server
  • Databases (e.g. MySQL, PosgreSQL, etc.)

Server Side - Programming

  • PHP
  • SQL

Advanced Topics

After getting familiar with the basics...

  • AJAX (this is placed here because it is a client/server topic, not because it is advanced...)
  • Object Oriented Programming (OOP)
  • Security issues
  • Source Control Management (SCM) -> (e.g. git, etc.)
  • Model View Controller (MVC) software architecture
  • PHP Frameworks (Zend Framework, Symphony, CakePHP, Agavi)
  • Unit Testing (e.g. PHPUnit)
  • Object Relational Mapper (ORM) for PHP (doctrine, Propel)

Usually this keeps you busy for a while. At least it kept and still keeps me busy... ;)

udo