<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Sol Young &#187; Teaching</title>
	<atom:link href="http://solyoung.com/category/teaching/feed/" rel="self" type="application/rss+xml" />
	<link>http://solyoung.com</link>
	<description>Out In His Elements</description>
	<lastBuildDate>Tue, 06 Apr 2010 03:42:43 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Annual Reviews</title>
		<link>http://solyoung.com/2009/03/16/annual-reviews/</link>
		<comments>http://solyoung.com/2009/03/16/annual-reviews/#comments</comments>
		<pubDate>Mon, 16 Mar 2009 14:12:24 +0000</pubDate>
		<dc:creator>Sol Young</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[Etiquette]]></category>
		<category><![CDATA[Ingram Digital]]></category>
		<category><![CDATA[Managing]]></category>
		<category><![CDATA[Reviews]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Teaching]]></category>

		<guid isPermaLink="false">http://solyoung.com/?p=679</guid>
		<description><![CDATA[<p><img class="alignnone size-full wp-image-680" title="Origami" src="http://solyoung.com/wp-content/uploads/2009/03/origami.jpg" alt="Origami" width="381" height="309" /></p>
<p>This year&#8217;s annual review process swung around fast! It seems like the team <a href="http://solyoung.com/2008/05/29/iofy-digital-audiobook-platform-acquired-by-ingram-digital/">joined Ingram Digital</a> just months ago. I&#8217;ve done them a few times, but this was the first review process I&#8217;ve done at <a title="Check out Ingram Digital's new website, it's slick!" href="http://www.ingramdigital.com">ID</a>. Reviews are a time for reflection. A time to make and receive input on how we&#8217;ve performed. A &#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><img class="alignnone size-full wp-image-680" title="Origami" src="http://solyoung.com/wp-content/uploads/2009/03/origami.jpg" alt="Origami" width="381" height="309" /></p>
<p>This year&#8217;s annual review process swung around fast! It seems like the team <a href="http://solyoung.com/2008/05/29/iofy-digital-audiobook-platform-acquired-by-ingram-digital/">joined Ingram Digital</a> just months ago. I&#8217;ve done them a few times, but this was the first review process I&#8217;ve done at <a title="Check out Ingram Digital's new website, it's slick!" href="http://www.ingramdigital.com">ID</a>. Reviews are a time for reflection. A time to make and receive input on how we&#8217;ve performed. A time to realize and face weaknesses and understand our strengths.</p>
<p>There were five appraisals of my developers, and one on myself. To normalize the results I did my self-appraisal first. I had everyone on the team do their own self-appraisal, too, but I avoided reviewing theirs until I&#8217;d done my appraisal of them. This was to make sure my scores weren&#8217;t skewed and to look for any disconnects.</p>
<p>I started by reading status reports I sent for the year. For the weeks without status reports I re-read email to make sure I didn&#8217;t miss any accomplishments. This was time consuming and highlights the need to maintain a tighter journal of deeds. I&#8217;ve done this for myself over the last ten years. Keeping a separate journal for one&#8217;s team is highly valuable and I&#8217;m going to start doing this beyond status reports.</p>
<p>My team rocks, and my entries in my self-appraisal are the result of their efforts. As I listed each accomplishment I thought, “My team made this. My team created that&#8230; I worked my face off, but what specifically did I do?&#8221; It’s strange to reflect on what one was responsible for, but did with the hands of others.</p>
<p>Appraisals for my team were less demanding after my own. For one, after this point I&#8217;d compiled the full list of the team&#8217;s accomplishments. For two, it&#8217;s easier to judge others after judging one&#8217;s self.</p>
<p>Some additional links on performance reviews:</p>
<ul>
<li> <a href="http://careerplanning.about.com/od/performancereview/a/reviews.htm">Employee Performance Reviews</a></li>
<li><a href="http://hrweb.berkeley.edu/manage/appraisal.htm">Conducting Effective Performance Appraisals</a></li>
<li><a href="http://management.about.com/cs/people/a/PerfRvwWaste.htm">Why Annual Performance Reviews are a Waste of Time</a> (I don&#8217;t agree with the writer, but it highlights what we should do during the year so reviews are effective and aren&#8217;t a surprise).</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://solyoung.com/2009/03/16/annual-reviews/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Teaching class classes for PHP development &#8211; Rock Band Example</title>
		<link>http://solyoung.com/2008/04/09/teaching-class-classes-for-php-development/</link>
		<comments>http://solyoung.com/2008/04/09/teaching-class-classes-for-php-development/#comments</comments>
		<pubDate>Wed, 09 Apr 2008 05:00:30 +0000</pubDate>
		<dc:creator>Sol Young</dc:creator>
				<category><![CDATA[Education]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software Development]]></category>
		<category><![CDATA[Teaching]]></category>
		<category><![CDATA[Web Services]]></category>

		<guid isPermaLink="false">http://solyoung.com/2008/04/09/teaching-class-classes-for-php-development/</guid>
		<description><![CDATA[<p><img src="http://solyoung.com/wp-content/uploads/2008/04/phpclasses.png" alt="PHP classes" height="78" width="334" /></p>
<p>Object-Oriented Programming (OO or OOP) is the best way to have re-usable, sharable, less-bug-ridden, easily readable, easier to debug, and easier-to-pick-up-later professionally written software.</p>
<p>&#8220;Learning classes&#8221; is the functional way to describe learning object-oriented programming. One skill begets the other. When in college my professor played a video of a band playing music. The band &#8230;</p>]]></description>
			<content:encoded><![CDATA[<p><img src="http://solyoung.com/wp-content/uploads/2008/04/phpclasses.png" alt="PHP classes" height="78" width="334" /></p>
<p>Object-Oriented Programming (OO or OOP) is the best way to have re-usable, sharable, less-bug-ridden, easily readable, easier to debug, and easier-to-pick-up-later professionally written software.</p>
<p>&#8220;Learning classes&#8221; is the functional way to describe learning object-oriented programming. One skill begets the other. When in college my professor played a video of a band playing music. The band represented a program, and each musician represented a class.</p>
<p>I hope that&#8217;s not how it&#8217;s described nowadays for comp-sci peeps because it&#8217;s a completely backwards way to learn it. It is backwards because you&#8217;re already looking at a finished product. To understand OO and classes, think in terms of small portions. Then grow from there.</p>
<p>To give an example of how to build out a class, let&#8217;s build a musician or <em>rocker</em> since we&#8217;ve been on a <a href="http://www.cartwrightreed.com/2008/01/rock-band-and-t.html" title="Link to Cartwright Reed's blog">Rock Band kick</a>.</p>
<h5><em>Before continuing, this assumes you&#8217;ve written some PHP &#8211; including at least making a function or two&#8230;</em></h5>
<p>.</p>
<p>Now, what does a rocker have?</p>
<ul>
<li>Name</li>
<li>Gender (probably)</li>
<li>Instrument</li>
<li>Talent Level</li>
</ul>
<p>These will be the variables we put in our Rocker class, here&#8217;s the code to support us&#8230;</p>
<p><font color="#ff00ff">&lt;?php</font></p>
<p><font color="#ff00ff">class</font> Rocker {<br />
<font color="#339966">// OOP classes are usually capitalized. Good form.</font><br />
<font color="#ff00ff">var</font> $name;<br />
<font color="#ff00ff">var</font> $gender;<br />
<font color="#ff00ff">var</font> $instrument;<br />
<font color="#ff00ff">var</font> $talentLevel;<br />
}<br />
<font color="#ff00ff">?&gt;</font></p>
<p>&#8230;<br />
<span id="more-155"></span><br />
We need to be able to set and get the above information from our Rocker class, so we add some functions in there (&#8216;setters&#8217; and &#8216;getters&#8217;)&#8230;</p>
<p><font color="#ff00ff">&lt;?php</font></p>
<p><font color="#ff00ff">class</font> Rocker {<br />
&#8230;</p>
<p><font color="#339966">  // Functions (methods) should start as lowercase and then use uppercase to separate words<br />
// (also known as camelCase)<br />
</font><font color="#ff00ff">  function</font> setName($inName) {<br />
$this-&gt;name=$inName;<br />
}<br />
<font color="#ff00ff">  function</font> setGender($inGender) {<br />
$this-&gt;gender=$inGender;<br />
}<br />
<font color="#ff00ff">  function</font> setInstrument($inInstrument) {<br />
$this-&gt;instrument=$inInstrument;<br />
}<br />
<font color="#ff00ff">  function</font> setTalentLevel($inLevel) {<br />
$this-&gt;talentLevel=$inLevel;<br />
}</p>
<p><font color="#ff00ff">  function</font> getName() {<br />
return $this-&gt;name;<br />
}<br />
<font color="#ff00ff">  function</font> getGender() {<br />
return $this-&gt;gender;<br />
}<br />
<font color="#ff00ff">  function</font> getInstrument() {<br />
return $this-&gt;instrument;<br />
}<br />
<font color="#ff00ff">  function</font> getTalentLevel() {<br />
return $this-&gt;talentLevel;<br />
}<br />
}<br />
<font color="#ff00ff">?&gt;</font></p>
<p>Now we have a Rocker for which we can set and retrieve attributes. The Rocker class still doesn&#8217;t <em>do</em> anything. We can very easily add some functions to the class which <em>do </em>stuff&#8230;</p>
<p><font color="#ff00ff">&lt;?php</font></p>
<p><font color="#ff00ff">class</font> Rocker {</p>
<p>&#8230;<br />
<font color="#ff00ff">    function</font> play() {<br />
<font color="#339966">    // you write this code&#8230;<br />
</font>  }</p>
<p><font color="#ff00ff">  function</font> sing() {<br />
<font color="#339966">    // you write this code&#8230;<br />
</font>  }</p>
<p><font color="#ff00ff">  function</font> perform() {<br />
this-&gt;play();<br />
this-&gt;sing();<br />
}<br />
}<br />
<font color="#ff00ff">?&gt;</font></p>
<p>You now have a basic Rocker class. You could use it as an object within a Band class or you could use it on its own. A quick example to create my Rocker and make me play&#8230;</p>
<p><font color="#ff00ff">&lt;?php</font><br />
$sol = Rocker();<br />
$sol-&gt;setName(<font color="#0000ff">&#8216;Sol&#8217;</font>);<br />
$sol-&gt;setGender(<font color="#0000ff">&#8216;Male&#8217;</font>);<br />
$sol-&gt;setInstrument(<font color="#0000ff">&#8216;Drums&#8217;</font>);<br />
$sol-&gt;setTalentLevel(<font color="#0000ff">&#8217;31334&#8242;</font>);<br />
$sol-&gt;perform();<br />
<font color="#ff00ff">?&gt;</font></p>
<p>&#8230;</p>
<p>This may seem confusing, or even useless, since it really has nothing to do with web development. So let&#8217;s switch the term &#8220;Rocker&#8221; to &#8220;PageTemplate&#8221;, and switch up the functions so they&#8217;re actually useful&#8230;</p>
<p><font color="#ff00ff">&lt;?php</font></p>
<p><font color="#ff00ff">class</font> PageTemplate {</p>
<p><font color="#ff00ff">  function</font> getIPAddress() {<br />
<font color="#ff00ff">    return</font> $_SERVER[<font color="#0000ff">'REMOTE_ADDR'</font>];<br />
}</p>
<p><font color="#ff00ff">  function</font> makeTop($title) {<br />
<font color="#ff00ff">    print</font> <font color="#0000ff">&#8216;HTML that makes up the top of a web page goes here, allowing for a custom $title&#8217;</font>;<br />
}</p>
<p><font color="#ff00ff">  function</font> makeBottom() {<br />
<font color="#ff00ff">    print</font> <font color="#0000ff">&#8216;HTML that closes the page&#8217;</font>;<br />
}<br />
}<br />
<font color="#ff00ff">?&gt;</font></p>
<p>With the above class, you could easily make a What&#8217;s My IP page with just a few lines of code:</p>
<p><font color="#ff00ff">&lt;?php<br />
require</font> <font color="#0000ff">&#8216;pageTemplate.php&#8217;</font>;</p>
<p>$page = PageTemplate();<br />
$page-&gt;makeTop(<font color="#0000ff">&#8216;sample title&#8217;</font>);<br />
printf(<font color="#0000ff">&#8216;our IP address is: %s&#8217;</font>, $page-&gt;getIPAddress());<br />
$page-&gt;makeBottom();</p>
<p><font color="#ff00ff">?&gt;</font></p>
<p>I recommend checking out this entry on devarticles.com: <a href="http://www.devarticles.com/c/a/PHP/Object-Oriented-Programming-in-PHP/" title="Object Oriented Programming in PHP">Object Oriented Programming in PHP</a>.</p>
<p>Any questions, don&#8217;t hesitate to ask&#8230; <a href="mailto:randomblogaddress31@solyoung.com">randomblogaddress31</a><a href="mailto:randomblogaddress31@solyoung.com">@solyoung.com</a> or @<a href="http://twitter.com/sol" title="Follow me on Twitter">sol</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://solyoung.com/2008/04/09/teaching-class-classes-for-php-development/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
	</channel>
</rss>

