School 2003 - Graphic & Web Design 2006 - ExpressionEngine 2009 - First Add-ons I fly solo most of the time, handling design, development and account management for my projects. Maintain a handful of add-ons which are by-products of my work. Wednesday, 30 May 12
Personal experience: dev fundamentals that I really struggled with What resources helped me (and didn’t help me) get me started with development Areas of CodeIgniter docs to bookmark when starting out How to get help Managing client expectations Working within your bounds General tips, open discussion What I’m going to talk about: @iain | #EECI2012 EU Wednesday, 30 May 12
is out there already? Yeah nah yeah. The projects you’re getting are getting bigger & more complex That awesome template (using first party tags/modules even) is generating 489 queries and taking 3 seconds to render. Things like LESS are crossing over into programming Good developers are always busy, pull some tasks over You want to learn Wednesday, 30 May 12
Get some basic PHP skills Build some really simple, niche plugins Build a control panel module interface, with multiple views/methods Get data in and out of a database without using EE tags Be able to pinpoint problems (not necessarily solve them) Communicate my problems efficiently to outsource solutions Be less dependant on the EE dev team and take action myself for what I thought were the weak parts of EE Wednesday, 30 May 12
disable="custom|fields" } Think of a channel entries tag; We have a method, and we’re passing some parameters. @iain | #EECI2012 EU Wednesday, 30 May 12
replace="EllisLab" subject="OH HAI Ellis Labs" } Here is our function/method with it’s available parameters echo str_replace( "Ellis Labs", "EllisLab", "OH HAI Ellis Labs" ); @iain | #EECI2012 EU Wednesday, 30 May 12
"title" => "Street Fighter 2", "some_field" => "Some value" ); echo $entry["title"]; Think of variables that can store multiple values. Wednesday, 30 May 12
"vendor" => "Bowers & Wilkins", "location" => "UK", "rating" => "9.5" ); $this-‐>EE-‐>db-‐>insert('vendors', $data); Once you understand them, you can start having fun. Wednesday, 30 May 12
at your CP URL: /system/expressionengine/controllers/cp/admin_content.php We know what controller: function category_management()... And we know what method: Wednesday, 30 May 12
shot at replicating some of EE’s tags using the query module Benchmark performance with your queries against EE’s tags - you might be surprised! {exp:query sql="SELECT title as the_title FROM exp_channel_titles WHERE site_id = '1' ORDER BY title ASC"} {the_title} <br /> {/exp:query} Wednesday, 30 May 12
heads around basic php functions, and things like arrays. We’re understanding documentation more We’re looking at the source, and know where to look when we want to see what’s happening under the bonnet We’re getting to grips with how EE stores it’s data Wednesday, 30 May 12
sometimes extremely useful. Follow up with a #eecms tagged tweet with a link to your post. StackOverflow - when you’ve broken problem down to specifics Trawl other add-ons - be careful here Give it a shot, try as best you can. Developers generally see through lazyness and get annoyed with “someone do it for me” type questions. Extract the problem from the bigger picture. Break it down into it’s smallest parts. Step away from the keyboard. Come back later the solution is clear. Wednesday, 30 May 12
@iain | #EECI2012 EU Its ok to say “I don’t know, but I will find out for you” Your biggest strength is your understanding of the problem Don’t just keep track of your hours and pass the bill to the client - charge fairly Start with the must have features, and scale into it Get your client on-board, be honest. Trust your gut, early warnings especially Wednesday, 30 May 12
humour. You will find your own code funny in the following weeks and months. Don’t bag other people’s work. Have respect. Throw your stuff out there, get it on GitHub. Announce it on Twitter - don’t be scared. You get to a tipping point where things start ‘sticking’. It just takes time. Have thick skin - don’t be put off learning when someone calls you out, or has a go. Wednesday, 30 May 12