<?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>david rasch - making stuff work &#187; Learning</title>
	<atom:link href="http://www.davidrasch.com/category/learning/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.davidrasch.com</link>
	<description></description>
	<lastBuildDate>Mon, 04 Apr 2011 00:53:25 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1.2</generator>
		<item>
		<title>don&#8217;t eat paste (learning PHP part iii)</title>
		<link>http://www.davidrasch.com/2006/10/16/dont-eat-paste-learning-php-part-iii/</link>
		<comments>http://www.davidrasch.com/2006/10/16/dont-eat-paste-learning-php-part-iii/#comments</comments>
		<pubDate>Tue, 17 Oct 2006 03:26:44 +0000</pubDate>
		<dc:creator>drasch</dc:creator>
				<category><![CDATA[Learning]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Software]]></category>
		<category><![CDATA[computer science]]></category>
		<category><![CDATA[learning php]]></category>
		<category><![CDATA[php books]]></category>
		<category><![CDATA[programming]]></category>

		<guid isPermaLink="false">http://www.davidrasch.com/2006/10/16/dont-eat-paste-learning-php-part-iii/</guid>
		<description><![CDATA[<p>Hi, David. This is an interesting approach, but I think it’s a solution to a slightly different problem than teaching someone PHP. Instead, it’s a solution to teaching someone the basics of building a web app and you just happen to use PHP to teach those concepts. A perfectly worthwhile and desirable goal, but <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.davidrasch.com/2006/10/16/dont-eat-paste-learning-php-part-iii/">don&#8217;t eat paste (learning PHP part iii)</a></span>]]></description>
			<content:encoded><![CDATA[<blockquote><p>Hi, David. This is an interesting approach, but I think it’s a solution to a slightly different problem than teaching someone PHP. Instead, it’s a solution to teaching someone the basics of building a web app and you just happen to use PHP to teach those concepts. A perfectly worthwhile and desirable goal, but different.<br />
&#8230;
</p></blockquote>
<p><a href="http://www.davidrasch.com/2006/10/12/learning-sheltered-php-sans-bad-habits/#comment-333"><em>David Sklar</em></a></p>
<p>I agree and disagree with some of the points Sklar (sorry, two David&#8217;s makes this confusing) goes on to make.  If I may paraphrase, Sklar is raising a point which competes with that raised by <a href="http://benramsey.com/?p=166">Ben</a> in our initial discussion.  My initial suggestion in the discussion with Ben indicated that books should start by teaching PHP on the command-line and slowly build up to constructing a very lightweight MVC framework and example application.   One of Ben&#8217;s chief, and valid, concerns equated selling books about PHP with convincing readers or page-flippers that the book would teach them to build web pages in the first few chapters.  Or that individuals might be turned off if they weren&#8217;t creating XSS attacks willy-nilly by chapter 3.  I think the counter to this that Sklar raised is that by hiding the framework you turn off the people who don&#8217;t feel they&#8217;re really getting their feet wet with PHP.  They feel that by using your framework they aren&#8217;t learning the &#8216;real guts&#8217; of the language.  </p>
<p>This clearly relates directly to some of the arguments Sklar makes that other languages face this challenge as well, but PHP perhaps more so than others.  PHP digs its own hole here because unlike a .NET, Java, or a ColdFusion, PHP has built its name on easy to learn and get going.  You can pay $4.99/month and get a server running PHP in 10 minutes.  Writing an application in any of these other platforms can take orders of magnitude longer to setup, there&#8217;s an expectation of barrier to entry for learning, and often you have to buy pieces of it like an IDE.  Sklar indicates that it&#8217;s important to strike the balance between &#8220;a way to do things&#8221; and &#8220;the way to do things&#8221;. </p>
<p>The dilemma lies in choosing whether I ask the reader to take on faith that the framework underlying the first half of the book isn&#8217;t worth delving into right now, but is worth understanding later and either using the quick framework or garner enough knowledge of the principles to build your own.  Or, do I go back to my original plan of introducing PHP on the command-line as we built up a small framework and graduate up to a web page far later in the book.  </p>
<p>I have full confidence that either approach might work.  I know universities teach Physics both with and without calculus to which I&#8217;m sure the physics professors initially said &#8220;you can&#8217;t teach physics without calculus, it&#8217;s heresy!&#8221;  But, this day in age there&#8217;s only one physics.   I know my economics professor told me she didn&#8217;t like math, but she managed to teach a great class about economics concepts by moving lines back and forth on graphs.  </p>
<p>[tags]learning php, programming, computer science, php, php books[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidrasch.com/2006/10/16/dont-eat-paste-learning-php-part-iii/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Learning PHP sans bad habits</title>
		<link>http://www.davidrasch.com/2006/10/12/learning-sheltered-php-sans-bad-habits/</link>
		<comments>http://www.davidrasch.com/2006/10/12/learning-sheltered-php-sans-bad-habits/#comments</comments>
		<pubDate>Fri, 13 Oct 2006 02:53:15 +0000</pubDate>
		<dc:creator>drasch</dc:creator>
				<category><![CDATA[Development]]></category>
		<category><![CDATA[Learning]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[teaching]]></category>

		<guid isPermaLink="false">http://www.davidrasch.com/2006/10/12/learning-sheltered-php-sans-bad-habits/</guid>
		<description><![CDATA[<p>I&#8217;ve received some fatalistic responses to my last installment related to what I see as problems with PHP teachings. In particular, I fear we teach people to write applications in ways that are reckless to the fact that these individuals likely read no more than 1-2 PHP books and move on to start writing <span style="color:#777"> . . . &#8594; Read More: <a href="http://www.davidrasch.com/2006/10/12/learning-sheltered-php-sans-bad-habits/">Learning PHP sans bad habits</a></span>]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve received some fatalistic responses to my <a href="http://www.davidrasch.com/2006/09/30/php-appalachia/">last installment</a> related to what I see as problems with PHP teachings.  In particular, I fear we teach people to write applications in ways that are reckless to the fact that these individuals likely read no more than 1-2 PHP books and move on to start writing their application. </p>
<p>Now I&#8217;ll present some solutions I propose to the challenges of teaching PHP without encouraging bad habits from the beginning.  </p>
<p><strong>Chapter 1:</strong> Intro to PHP syntax using the commnd-line<br />
<strong>Chapter 2:</strong> Make your first dynamic web page using our small framework (hello world)<br />
   The framework handles: data escaping input and output, proper sql injection protection, and data/presentation separation.  The student needn&#8217;t understand all of this yet, but will be explained.<br />
<strong>Chapter 3:</strong> Variables &#038; Arrays<br />
<strong>Chapter 4:</strong> Conditionals, Loops &#038; Functions<br />
<strong>Chapter 5:</strong> Classes<br />
<strong>Chapter 6:</strong> Sending/Receiving data on the web.<br />
<strong>Chapter 7:</strong> How to create additional pages in the framework<br />
<strong>Chapter 8:</strong> Creating forms<br />
<strong>Chapter 9:</strong> Dissect the framework input/output, presentation and database aspects<br />
<strong>Chapter 10:</strong> Show how failing to do these things is insecure<br />
<strong>Chapter 11:</strong> Create additional views/flow using OO framework<br />
<strong>Chapter 12:</strong> Create a simple application with 3-4 views</p>
<p>This describes the mostly the PHP aspects of a book.  This book could easily use SQLite and save the MySQL for another book where it can be properly introduced.  It could also include some MySQL education to increase its marketability.  The framework itself sounds like a big undertaking, but in fact it can be kept extremely simple as governed by the examples put forth herein.  In addition, the frameworks simplicity will allow it to be dissected later in the book for the education of the reader.  Finally, when someone finishes the book (or the worst risk with current books if they <strong>don&#8217;t</strong> finish it, they&#8217;ll still have the right ideas and not go willy-nilly writing an application using $_GET and $_POST without thinking twice.  </p>
<p>[tags]teaching, learning, php[/tags]</p>
]]></content:encoded>
			<wfw:commentRss>http://www.davidrasch.com/2006/10/12/learning-sheltered-php-sans-bad-habits/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
	</channel>
</rss>

