five things i wish they had told me before i started ... · •magento #5: learn a framework...
TRANSCRIPT
![Page 1: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/1.jpg)
Five ThingsI wish they had told me before I started programming in PHP
Cal Evans
http://blog.calevans.com
![Page 2: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/2.jpg)
First Rule of Programming
Programming is hard.
If it looks easy when I do it, it’s because I’m good at it.
(It’s ok, take a moment, tweet this from your iPhone, I’ll wait.)
![Page 3: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/3.jpg)
Why this talk?
• PHP adoption is still growing. There are a lot of new developers trying out PHP.
• A lot of people who write PHP code don’t write code for a living.
• When I started coding PHP, nobody told me these things.
![Page 4: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/4.jpg)
Who should listen?
• This is a 101 level class.
• If you are new to programming
• If you are new to PHP
• If you didn’t like any of the other selections in this timeslot. (There is still time to check the schedule and slip into one of the other rooms.
![Page 5: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/5.jpg)
#5: Learn a Framework
• Glue Frameworks
• Full stack Frameworks
• Hybrid Frameworks
![Page 6: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/6.jpg)
#5: Learn a Framework
• Frameworks exist for a reason (and no, it’s not to slow you down)
• Prototype however you want but build production systems with the framework
• Frameworks are just tools, they are not religious artifacts. Use the one that works best for you.
• 46 different MVC frameworks in PHP listed on Wikipedia.
![Page 7: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/7.jpg)
#5: Learn a Framework
• The Big 3
– Zend Framework
– Symfony
– CakePHP
• Second tier but still good
– Solar
– CodeIgniter
– Agavi
![Page 8: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/8.jpg)
#5: Learn a Framework
• Frameworks with benefits
– Content Management
• Drupal
• Joomla
• Wordpress
– E-Commerce
• Magento
![Page 9: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/9.jpg)
#5: Learn a Framework
• Things to look for
– Community
– Community
– Community
– Completeness
– Documentation
– Unit Test Coverage
– IP Ownership
![Page 10: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/10.jpg)
#5: Learn a Framework
Choose the best tool for the job.
![Page 11: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/11.jpg)
#4 PHP is not <insert your favorite language here>
PHP is not Java
– No Compiler
– Both object and procedure based
– No main()
– No application server
![Page 12: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/12.jpg)
#4 PHP is not <insert your favorite language here>
PHP is not Perl
– Ok, it started out as a series of scripts written in perl
– PHP is loosely typed
– PHP is easier to read
![Page 13: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/13.jpg)
#4 PHP is not <insert your favorite language here>
PHP is not C#
– PHP is truly cross platform (Windows, Linux, OSX, Solaris, BSD, etc.)
– PHP works with multiple web servers
– Not built for a specific framework.
![Page 14: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/14.jpg)
#4 PHP is not <insert your favorite language here>
• PHP is no better or worse than any of those languages.
• PHP is the only language developed to solve web based problems.
![Page 15: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/15.jpg)
#4 PHP is not <insert your favorite language here>
PHP is easy
PHP is complex
![Page 16: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/16.jpg)
#3 Learn where to get help
• Conferences
– php|tek
• Community Oriented
– Dutch PHP Conference
• Advanced developer/Enterprise developer oriented
– ZendCon
• Business oriented
![Page 17: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/17.jpg)
#3 Learn where to get help
• Websites
– http://techPortal.ibuildings.com
– http://DevZone.zend.com
– http:// phpdeveloper.org
– http:// planet-php.org
– http://php.dzone.com
– http:// sitepoint.com
![Page 18: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/18.jpg)
#3 Learn where to get help
• IRC/IM
– irc.freenode.net
• ##php
• #phpc
• #phpwomen
• #ibuildings
![Page 19: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/19.jpg)
#3 Learn where to get help
• Twitter• @techPortal
• @devzone
• @dpcon
• @zendcon
• @mtacon
• @planetphp
• @phpdeveloper
• @phpcamp
• @phppodcasts
• @calevans
• @mtabini
• @akrabat
• @elazar
• @ramsey
• @elizabethn
• @lornajane
• @enygma
• @caseysoftware
• @weierophinney
![Page 20: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/20.jpg)
#3 Learn where to get help
• Podcasts
– PHP Abstract
– php|architect Podcast
– DPC Radio
– ZendCon Sessions
– http://phppodcasts.com
![Page 21: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/21.jpg)
#3 Learn where to get help
• User Groups
– Meetup.com has a great list of user groups in your area if you are not familiar with your local group.
![Page 22: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/22.jpg)
#3 Learn where to get help
The Community is one of the things that makes PHP special. Be special with us!
![Page 23: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/23.jpg)
#2 Learn your stack
• LAMP• WAMP• WIMP• Learn the pieces
– Operating System– Web Server– Database– Language
• You can’t just learn one piece anymore, you have to know all of them.
![Page 24: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/24.jpg)
#2 Learn your stack
• Learn which ones offer support
• Learn which ones for which you can find support
• Learn which ones stay current.
![Page 25: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/25.jpg)
#1 Get Involved
PHP is a volunteer effort.
Have you made the effort to volunteer?
(That’s another tweetable slide in case you are looking for something to tweet)
![Page 26: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/26.jpg)
#1 Get Involved
• Pick a bug and submit a patch!
![Page 27: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/27.jpg)
#1 Get Involved
T-Shirts available for sale in the lobby
![Page 28: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/28.jpg)
#1 Get Involved
• Pick a bug and submit a patch!
• Get involved in the documentation team
![Page 29: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/29.jpg)
#1 Get Involved
• Pick a bug and submit a patch!
• Get involved in the documentation team
• Do a tour of duty in IRC
![Page 30: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/30.jpg)
#1 Get Involved
• Pick a bug and submit a patch!
• Get involved in the documentation team
• Do a tour of duty in IRC
• Regularly blog about small things you have learned.
![Page 31: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/31.jpg)
#1 Get Involved
• Pick a bug and submit a patch!
• Get involved in the documentation team
• Do a tour of duty in IRC
• Regularly blog about small things you have learned.
• Get involved in your local user group
![Page 32: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/32.jpg)
#1 Get Involved
• Pick a bug and submit a patch!
• Get involved in the documentation team
• Do a tour of duty in IRC
• Regularly blog about small things you have learned.
• Get involved in your local user group
• Submit a talk to a User Group (yes, user group, try your new material out on the road)
![Page 33: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/33.jpg)
#1 Get Involved
If you make your living using PHP then you are standing on the shoulders of giants. Give to the community because others before you gave.
![Page 34: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/34.jpg)
Additional Reading
• http://techPortal.ibuildings.com• http://devZone.zend.com• http:// phpdeveloper.org• http:// planet-php.org• http://phppodcasts.com• http://php.dzone.com• http:// sitepoint.com• http://iis.net• http://port25.technet.com• http://framework.zend.com• http://cakephp.org• http://symfony-project.org
![Page 35: Five Things I wish they had told me before I started ... · •Magento #5: Learn a Framework •Things to look for –Community –Community –Community ... #3 Learn where to get](https://reader034.vdocument.in/reader034/viewer/2022042219/5ec55f91db364e203c69a78c/html5/thumbnails/35.jpg)
Who Am I?
Cal Evanshttp://techportal.ibuildings.com
http://blog.calevans.com
http://twitter.com/calevans
http://boxlunchtraining.com
Email: [email protected]
AIM: [email protected]