<?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>Building Better Software &#187; C#</title>
	<atom:link href="http://www.stellman-greene.com/category/c/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.stellman-greene.com</link>
	<description>because people want their software to work</description>
	<lastBuildDate>Sat, 05 Nov 2011 14:19:07 +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>Announcing Head First C#, 2nd edition</title>
		<link>http://www.stellman-greene.com/2010/06/22/announcing-head-first-c-2nd-edition/</link>
		<comments>http://www.stellman-greene.com/2010/06/22/announcing-head-first-c-2nd-edition/#comments</comments>
		<pubDate>Tue, 22 Jun 2010 14:17:36 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/?p=478</guid>
		<description><![CDATA[Jenny and I are really proud to announce that the second edition of our bestselling C# learning book, Head First C#, went to press! We worked really hard on it, and we&#8217;re very happy with how it came out. Are you looking for the easiest way to become a great C# programmer? If want to [...]]]></description>
			<content:encoded><![CDATA[<p><a href="http://www.headfirstlabs.com/books/hfcsharp/"><img title="Head First C#, 2nd Edition" src="http://covers.oreilly.com/images/0636920000679/lrg.jpg" alt="Head First C#, 2nd Edition" width="500" height="578" border="1" /></a></p>
<p>Jenny and I are really proud to announce that the second edition of our bestselling C# learning book, <a href="http://www.headfirstlabs.com/books/hfcsharp/"><em>Head First C#</em></a>, went to press! We worked really hard on it, and we&#8217;re very happy with how it came out.</p>
<p>Are you looking for the easiest way to become a great C# programmer? If want to get productive fast with C#, .NET and Visual Studio 2010, then this is the book you&#8217;re looking for. We show you how to learn C# by building over 100 different projects—including lots of games!—and solving dozens of puzzles.</p>
<p><em>Head First C#</em> is a complete learning experience for programming with C#, the .NET Framework, and the Visual Studio IDE. Built for your brain, this book covers C# and .NET 4.0 and Visual Studio 2010, and teaches everything from inheritance to serialization.</p>
<p>But don&#8217;t take our word for it! Download the <a href="http://www.headfirstlabs.com/books/hfcsharp/hfcsharp_free_book.pdf">free Head First C# eBook [PDF]</a>, which includes the first three chapters, complete. Or have a look at this <a href="http://www.headfirstlabs.com/books/hfcsharp/Build-a-typing-game-updated.pdf">typing game project [PDF]</a> from chapter 4 to get a preview of the kinds of projects you&#8217;ll build throughout the book.</p>
<p>So check out <em>Head First C#</em> today, and see what the buzz is all about! <a href="http://oreilly.com/catalog/0636920000679/">Available now from O&#8217;Reilly</a>, and wherever fine books are sold.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2010/06/22/announcing-head-first-c-2nd-edition/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Best readers ever!</title>
		<link>http://www.stellman-greene.com/2008/02/25/best-readers-ever/</link>
		<comments>http://www.stellman-greene.com/2008/02/25/best-readers-ever/#comments</comments>
		<pubDate>Mon, 25 Feb 2008 23:26:56 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/2008/02/25/best-readers-ever/</guid>
		<description><![CDATA[Check out this post on the Head First C# forum. One of our readers, Styrkar, wrote a really neat program that takes any text and turns it into a nifty little animation. He did it as a way to extend the Space Invaders Lab to make a cool animation for the &#8220;Game Over&#8221; text. Okay, [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.stellman-greene.com/blog/wp-content/uploads/2008/02/we-love-our-head-first-c_-readers.png" alt="We love our Head First C# readers" /></p>
<p>Check out <a href="http://www.headfirstlabs.com/phpBB2/viewtopic.php?t=5542">this post on the Head First C# forum</a>. One of our readers, <a href="http://www.headfirstlabs.com/phpBB2/search.php?search_author=Styrkar">Styrkar</a>, wrote a really neat program that takes any text and turns it into a nifty little animation. He did it as a way to extend the <a href="http://www.headfirstlabs.com/books/hfcsharp/lab03.php">Space Invaders Lab</a> to make a cool animation for the &#8220;Game Over&#8221; text.</p>
<p>Okay, I just want to say how cool that is. When we wrote <a href="http://www.headfirstlabs.com/books/hfcsharp/">Head First C#</a>, one of our goals was to give readers a starting point for their creativity. I figured we&#8217;d see a few little modifications to the programs in the book. But seeing stuff like this&#8230; well, it&#8217;s just really amazing to me. Not only is this a cool program, but the code is really good. It&#8217;s readable, efficient, and easy to follow. And it&#8217;s even well-encapsulated &#8212; it&#8217;s good object oriented design! I really hope Styrkar gets the rest of the lab finished &#8212; I can&#8217;t wait to see how it comes out.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2008/02/25/best-readers-ever/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Whoa&#8230;</title>
		<link>http://www.stellman-greene.com/2008/01/11/whoa/</link>
		<comments>http://www.stellman-greene.com/2008/01/11/whoa/#comments</comments>
		<pubDate>Fri, 11 Jan 2008 20:41:23 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/2008/01/11/whoa/</guid>
		<description><![CDATA[Well, we didn&#8217;t see this coming. Check out what Tim O&#8217;Reilly says in his latest blog post: I was probably most surprised when I saw Programming WCF Services on our list of top performing books for the year. If you&#8217;re steeped in open source, you might never have heard of Windows Communications Foundation, Microsoft&#8217;s approach [...]]]></description>
			<content:encoded><![CDATA[<p> <img src="http://www.stellman-greene.com/blog/wp-content/uploads/2008/01/whoa.png" alt="Whoa!" /></p>
<p>Well, we didn&#8217;t see this coming. Check out what <a href="http://radar.oreilly.com/tim/" title="Tim O'Reilly">Tim O&#8217;Reilly</a> says in his <a href="http://radar.oreilly.com/archives/2008/01/a_year_in_oreilly_books.html">latest blog post</a>:</p>
<blockquote><p>  I was probably most surprised when I saw <a href="http://www.oreilly.com/catalog/9780596526993/index.html">Programming WCF Services</a> on our list of top performing books for the year. If you&#8217;re steeped in open source, you might never have heard of Windows Communications Foundation, Microsoft&#8217;s approach to building SOA applications on Windows. And you might not care. But you&#8217;d be making a mistake. Don&#8217;t count Microsoft out of the Web services game yet! They still have a brilliant, passionate developer community, and as a company have tremendous resources, persistence, and talent. And now that they have real competition, I expect them to reinvent themselves. (For that matter, <a href="http://www.oreilly.com/catalog/9780596514822/index.html">Head First C#</a> was the top selling programming language title in Bookscan last week, except for &#8220;Javascript:  The Definitive Guide&#8221;.  And C# continues to gain significantly on Java in terms of book sales.)</p></blockquote>
<p>Wait, what? Let me repeat that for you. Except for a book on Javascript, <strong>Head First C# was the top selling programming language title in Bookscan last week</strong>. That&#8217;s pretty amazing to me, because we only released it at the end of November, so word of mouth hasn&#8217;t even gotten a chance to spread yet.</p>
<p>We took a few risks with Head First C# &#8212; we took an approach that was somewhat different than any other programming book I&#8217;ve seen. I&#8217;ve learned at least a dozen and a half programming languages over the years, and I followed the same pattern every time: I thought of a project that I wanted to do, then I figured out how to do the project using the new language. (Like back in 1994 or so, when I wanted to learn Perl and also learn about web servers, so I built a web server in Perl.) But I&#8217;m definitely not unique in this approach: pretty much every good programmer I know takes the same approach to learning a new language or technology.</p>
<p>Which is why I thought it was so weird that I couldn&#8217;t even find a language learning book that asked you to solve programming problems. I&#8217;ve seen a lot of &#8220;hands-on&#8221; work, where you follow step-by-step instructions to type in code to get a certain result. And certainly, an enterprising person can definitely learn that way. (If they couldn&#8217;t, nobody would buy programming books!) And certainly, we have a lot of that in Head First C#. But I just don&#8217;t think that&#8217;s enough.</p>
<p>I guess I have a hidden agenda here. I&#8217;ve led a lot of programming teams over the years. In 2006 and 2007, I spent a lot of time working with a consulting company, and one thing you learn working with consulting teams is that you need to work with a lot of different people. Often, you&#8217;ll have at least one very junior member on a team. And what I&#8217;ve found is that a lot of really junior developers have the capacity to be good programmers, but don&#8217;t have any experience independently solving programming projects on our own. So I decided early on that one goal of Head First C# would be to give people that experience. I wanted to teach them how to solve programming problems, rather than just follow step-by-step instructions. In essence, I wanted to create programmers who I&#8217;d be happy to have on my team in the future. (Does that sound too self-serving? I hope not!)</p>
<p>So when Jenny and I started working on Head First C#, it took us a few chapters to figure out exactly how to do that. It was interesting going back to the beginning of the book after we finished, to do a second pass and incorporate comments from our (really great, and really patient) tech reviewers. It really did take us about five or six chapters to work out a good way of assigning problems. We ended up co-opting the &#8220;Exercise&#8221; element that you&#8217;ll find in the other Head First books. The <a href="http://www.willbeta.com/lose-weight-exercise/"><span style="display:none;">Lose Weight </span>Exercise</a>s in the other Head First books were generally pencil-and-paper oriented, although I think I remember a few step-by-step programming ones as well. That&#8217;s definitely the approach we took in <a href="http://www.oreilly.com/catalog/9780596102340/index.html" title="Head First PMP">Head First PMP</a>, and it worked really well.</p>
<p>But with Head First C#, we took the &#8220;Exercise&#8221; element in a totally different direction. We basically used the <a href="http://www.willbeta.com/lose-weight-exercise/"><span style="display:none;">Lose Weight </span>Exercise</a> to give a programming assignment, where we&#8217;d give a problem to solve. We&#8217;d include a screenshot, define some classes, maybe give a little of the code, and then leave it up to the reader to build working software. It was lucky that I spent so much of my career writing specifications, because I think we really had to push our writing skills to the limit. It&#8217;s far too easy to write an <a href="http://www.willbeta.com/lose-weight-exercise/"><span style="display:none;">Lose Weight </span>Exercise</a> that&#8217;s ambiguous or hard to follow&#8230; and as we found out during the tech review, it&#8217;s really demoralizing to run across a poorly-written <a href="http://www.willbeta.com/lose-weight-exercise/"><span style="display:none;">Lose Weight </span>Exercise</a>. And we had to be clear that there&#8217;s no single, &#8220;correct&#8221; solution to the exericse: if it works, then you got it right. I&#8217;d be surprised if a single reader comes up with exactly the same solution that we did on any of the projects in the last third of the book.</p>
<p>I hope that interactive approach is what&#8217;s paying off. Word of mouth is <a href="http://justinram.wordpress.com/2008/01/03/books-head-first-c-lab-1-solution/">just</a> <a href="http://dotnetfluke.blogspot.com/2008/01/head-first-c-book-first-impressions.html">starting</a> <a href="http://www.destructoid.com/blogs/iDano84/beginning-game-development-a-refreshers-approach-pt-2-of-42--64055.phtml" title="iDano84's blog">to get out</a>, and I&#8217;m really happy to say that it seems to be positive.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2008/01/11/whoa/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Building Video Games &#8211; a great way to improve your C# skills!</title>
		<link>http://www.stellman-greene.com/2007/12/11/building-video-games/</link>
		<comments>http://www.stellman-greene.com/2007/12/11/building-video-games/#comments</comments>
		<pubDate>Tue, 11 Dec 2007 17:45:48 +0000</pubDate>
		<dc:creator>Andrew Stellman</dc:creator>
				<category><![CDATA[Books]]></category>
		<category><![CDATA[C#]]></category>

		<guid isPermaLink="false">http://www.stellman-greene.com/2007/12/11/building-video-games/</guid>
		<description><![CDATA[One of my favorite things about Head First C# is that Jenny and I ask our readers to do a whole lot of coding. When we started doing research for the book, one thing that really struck me about other books to help you learn C# was that I couldn&#8217;t find any book that actually [...]]]></description>
			<content:encoded><![CDATA[<p><img src="http://www.stellman-greene.com/blog/wp-content/uploads/2007/12/invaders.png" alt="Invaders" /></p>
<p>One of my favorite things about <a title="Head First C#" href="http://www.headfirstlabs.com/books/hfcsharp/">Head First C#</a> is that Jenny and I ask our readers to do a whole lot of coding. When we started doing research for the book, one thing that really struck me about other books to help you learn C# was that I couldn&#8217;t find any book that actually asked its readers to write much code. There were one or two that we saw which had some written <a href="http://www.willbeta.com/lose-weight-exercise/"><span style="display:none;">Lose Weight </span>Exercise</a>s. And that&#8217;s great for a textbook, but I don&#8217;t know any programmer who learned to program with a pencil and paper. If you want to be a good programmer, you need to <em>write a lot of code</em>. Coding is a skill, and like any other skill it takes practice. And there are a lot of concepts that just don&#8217;t &#8220;click&#8221; until you write software that uses them.</p>
<p>I know that when I need to learn a new language, the first thing I do is come up with a project for myself. Like when I needed to learn Perl back in 1994 or so. I also wanted to learn about how web servers worked (they were newfangled and mysterious at the time), so I wrote a simple web server in Perl. (It turns out that it only takes about 50 lines of Perl to write a very simple HTTP/0.9 web server&#8230; probably a lot fewer, if you&#8217;re an insane Perl optimizng type.) So we decided from the beginning to make sure <a title="Head First C#" href="http://www.headfirstlabs.com/books/hfcsharp/">Head First C#</a> has plenty of opportunities for our readers to write code. Which meant coming up with projects&#8230; a <strong>lot</strong> of projects.</p>
<p>Which turned out to be harder than it sounds. The instructions for the project needed to be completely self-explanatory. It&#8217;s not like an Agile project, where the programmer can talk to the customers and the software can go through several iterations. No, every project needed a complete specification, one that the reader could understand completely and build exactly the software we asked for.</p>
<p>And that&#8217;s where video games came in really handy.</p>
<p>When you ask someone to write, say, a business application, you need to explain all of the details of the business. And you need to explain <em>why</em> the program is needed, especially if the programmer doesn&#8217;t really have any background in that business. If a programmer doesn&#8217;t understand the reason or rationale for a particular feature, then it&#8217;s almost certain that he&#8217;ll build something <em>other</em> than what you&#8217;re asking for. (That&#8217;s why I always like including a rationale section <a title="Use Case" href="http://www.stellman-greene.com/usecase">when I write use cases</a>. It prevents a lot of problems later in the project.)</p>
<p>Video games come &#8220;pre-loaded&#8221; with their own rationale. Nobody ever needs to ask why you&#8217;d write a video game &#8212; you do it because they&#8217;re fun. Everyone already knows why you&#8217;re writing it. It&#8217;s not hard to make a video game intuitive. One easy way to do it is to model it after a game that already exists. We have one <a href="http://www.willbeta.com/lose-weight-exercise/"><span style="display:none;">Lose Weight </span>Exercise</a> where the reader builds a <a href="http://www.headfirstlabs.com/books/hfcsharp/ch08.php">Go Fish! game</a>, where the player plays against two computer opponents. One project is <a href="http://www.headfirstlabs.com/books/hfcsharp/ch07.php">Hide and Seek</a> &#8212; the player searches through a virtual house to find an opponent who hid in a random place. We&#8217;ve got a <a href="http://www.headfirstlabs.com/books/hfcsharp/lab02.php">dungeon</a> game, a <a href="http://www.headfirstlabs.com/books/hfcsharp/ch11.php">Whack-a-Mole</a> game, and my personal favorite (and the final project in the book), <a href="http://www.headfirstlabs.com/books/hfcsharp/lab03.php">Space Invaders</a>.</p>
<p>There are plenty of other sorts of projects, too. Our goal was to get the readers coding from the very beginning, and keep them writing code through the whole thing. We designed the projects to be satisfying and fun. And we&#8217;ve already gotten feedback from readers who definitely enjoyed them.</p>
<p><strong>Head First C# Labs &#8212; The Contest </strong></p>
<p>We&#8217;re running a little contest for our readers. We&#8217;ve included three labs in the book where the readers build larger projects. We give them a lot of design, but we don&#8217;t actually give them the code for the solutions (like we do for all of the smaller projects). Eventually, we want to post executables for the labs. But we don&#8217;t want to post our own &#8212; we want to post executables that our readers came up with! So we&#8217;re running a contest to see which readers can send in executables first. The first person to send us working code for the lab will have their executable posted on the website as the official solution, and we&#8217;ll send them some sweet O&#8217;Reilly swag, too.  <a href="http://www.headfirstlabs.com/books/hfcsharp/labcontest.php">Here&#8217;s the contest page</a> &#8212; we&#8217;re looking forward to seeing what our readers come up with!</p>
<h2>UPDATE: This contest is closed, but check out the <a title="Head First C# forum" href="http://forums.oreilly.com/category/60/Head-First-C-/">Head First C# forum</a> for a <em>new challenge</em> with prizes!</h2>
]]></content:encoded>
			<wfw:commentRss>http://www.stellman-greene.com/2007/12/11/building-video-games/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

