Что отличает профессионального PHP-программиста от любителя?

На сайте litfuel.net опубликована статья, автор которой пытается разобраться в отличиях между профессиональным PHP-программистом и любителем.

Итак, что же? Данный список может помочь не только программистам в определении своего уровня, но и работодателям, при поиске достойного кандидата.

  • Профессиональный разработчик может назвать хотя бы 3 отличия между PHP 4 и PHP 5
  • Профессиональный разработчик должен уметь использовать сетевые возможности РНР (в т.ч. сокеты) или хотя бы понимать, как можно подключиться к другой машине.
  • Профессионал должен иметь понимание концепции ООП и таких терминов как: интерфейсы, конструкторы, наследование, полиморфизм, статические методы и различать уровни доступа public, private, protected.
  • Профессионал должен уметь работать с базами данных и понимать что такое нормализация, первичный и внешний ключ.
  • Профессионал должен знать о шаблонах проектирования. Не обязательно знать на зубок их полный список, но понимать, чем они могут быть полезны.
  • Профессионал ведет контроль версий в своей разработке (ZIP-архивы во временных папках не считаются!)
  • Нужно понимать значение Unit Testing.
  • Специалист просто обязан быть частью какого либо профессионального сообщества и участвовать в совместных проектах. Хорошо, когда можно набрать ваше имя или ник в Google и увидеть эти проекты.
  • Необходимо знать JavaScript и CSS.
  • И самое последнее по списку, но не последнее по значению: вы должны любить то, чем занимаетесь и хотеть постоянно совершенствовать свои навыки.