<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:copyright="http://blogs.law.harvard.edu/tech/rss" xmlns:image="http://purl.org/rss/1.0/modules/image/">
    <channel>
        <title>Developer education</title>
        <link>http://geekswithblogs.net/CodeCurve/category/8748.aspx</link>
        <description>How can we learn to write better software?</description>
        <language>en-GB</language>
        <copyright>CodeCurve</copyright>
        <managingEditor>cjsmithie@googlemail.com</managingEditor>
        <generator>Subtext Version 0.0.0.0</generator>
        <item>
            <title>DDD South West</title>
            <link>http://geekswithblogs.net/CodeCurve/archive/2009/05/27/ddd-south-west.aspx</link>
            <description>&lt;p&gt;Last Saturday (the 23rd of May), I had the privilege of attending &lt;a href="http://www.dddsouthwest.com/" target="_blank"&gt;DDD South West&lt;/a&gt; at Queen’s College in lovely Taunton.&lt;/p&gt;  &lt;p&gt;The venue was beautiful, the presentations educational and fun, the company convivial and the food plentiful and delicious.  I only wish I’d had more sleep and less beer the night before.&lt;/p&gt;  &lt;p&gt;I had wondered if the presentations would contain a lot of material from DDD7, but as far as I could tell there was no overlap.  I attended sessions on the DLR and dynamic languages, jQuery, refactoring, WCF and C# 4.0 and learned new stuff from all of them.&lt;/p&gt;  &lt;p&gt;All in all it was a cracking day and a real credit to the organisers.  I’m sure the event will be back next year, and you’ll need to get in quick to get a place!&lt;/p&gt; &lt;img src="http://geekswithblogs.net/CodeCurve/aggbug/132441.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>CodeCurve</dc:creator>
            <guid>http://geekswithblogs.net/CodeCurve/archive/2009/05/27/ddd-south-west.aspx</guid>
            <pubDate>Wed, 27 May 2009 14:09:41 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/CodeCurve/comments/132441.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/CodeCurve/archive/2009/05/27/ddd-south-west.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/CodeCurve/comments/commentRss/132441.aspx</wfw:commentRss>
        </item>
        <item>
            <title>Oren Eini is coming to Bristol</title>
            <link>http://geekswithblogs.net/CodeCurve/archive/2008/09/30/oren-eini-is-coming-to-bristol.aspx</link>
            <description>&lt;p&gt;If you're in the Bristol area and want to hear a real software development pro speak about writing software fit to publish, then get along to the &lt;a href="http://www.dotnetdevnet.com"&gt;DotNetDevNet&lt;/a&gt; .NET user group on Monday the 13th of October.&lt;/p&gt;
&lt;p&gt;Oren Eini (a.k.a. Ayende Rahien) is coming to town!&lt;/p&gt; &lt;img src="http://geekswithblogs.net/CodeCurve/aggbug/125552.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>CodeCurve</dc:creator>
            <guid>http://geekswithblogs.net/CodeCurve/archive/2008/09/30/oren-eini-is-coming-to-bristol.aspx</guid>
            <pubDate>Wed, 01 Oct 2008 02:42:03 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/CodeCurve/comments/125552.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/CodeCurve/archive/2008/09/30/oren-eini-is-coming-to-bristol.aspx#feedback</comments>
            <wfw:commentRss>http://geekswithblogs.net/CodeCurve/comments/commentRss/125552.aspx</wfw:commentRss>
        </item>
        <item>
            <title>So much to learn...</title>
            <link>http://geekswithblogs.net/CodeCurve/archive/2008/09/30/so-much-to-learn.aspx</link>
            <description>&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;I’ve been doing development professionally now for maybe 18 months and my experiences over the last 8 months in an agile shop have made me realise just how much there is to know in the development arena and, more importantly, how much I would like to know in order to be really creative in my job and produce truly excellent software.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;In my previous job, I used a text editor to write Perl. There was no such thing as unit testing and copying and pasting was viewed as an aid to productivity rather than a horrific sin.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;In my current job, I write C# and a lot of XAML. We use MbUnit for our unit testing and TeamCity for continuous integration. I work with guys who know a lot more than me both at the technical level (custom IL generation anyone?) and the architectural level (a la “I think we’ve reached the point where we need an IoC now”). I’ve produced some code that I’m proud of, and I’ve also spent some time wondering which way was up. Happily, we pair program most of the time, and for this I am eternally grateful.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;I’ve become a regular attendee at the Bristol &lt;a href="http://www.dotnetdevnet.com/"&gt;&lt;font color="#0000ff"&gt;DotNetDevNet&lt;/font&gt;&lt;/a&gt; group, an avid consumer of RSS feeds from topical blogs and a blogger myself. Exposure to this whirl of information has given me a broad view of things I aim to get to grips with over the coming years, and so I thought I’d compile a shopping list to refer back to.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Also, my current company is very &lt;a href="http://www.altnetpedia.com/"&gt;&lt;font color="#0000ff"&gt;Alt.Net&lt;/font&gt;&lt;/a&gt;-ish, and there has been a lot of discussion on the UK mailing list for Alt.Net about barriers to entry to doing software development the Alt.Net way. I think this shopping list proves them right.&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0cm 0pt"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Nuts and bolts&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;I use C# on a daily basis and it seems to me that being intimately acquainted with the language(s) you’re using is common sense. I’ve read a book or two and at some point I intend to (skim) read &lt;a href="http://www.ecma-international.org/publications/standards/Ecma-334.htm"&gt;&lt;font color="#0000ff"&gt;ECMA 334&lt;/font&gt;&lt;/a&gt; and &lt;a href="http://www.ecma-international.org/publications/standards/Ecma-335.htm"&gt;&lt;font color="#0000ff"&gt;ECMA 335&lt;/font&gt;&lt;/a&gt;.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;I’d also like to become very familiar with the .Net framework. The &lt;a href="http://www.amazon.co.uk/C-3-0-Cookbook-Jay-Hilyard/dp/059651610X/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1222805766&amp;amp;sr=8-1"&gt;&lt;font color="#0000ff"&gt;C# 3.0 Cookbook&lt;/font&gt;&lt;/a&gt; is on my list and maybe I’ll take a Microsoft exam or three?&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;As well as knowing the language and the BCL, I’d like to be conversant with WPF, WCF, WF and Linq. I have books on all of them sitting on my bookshelf and I’m about half way through the gargantuan &lt;a href="http://www.amazon.co.uk/Pro-WPF-2008-Presentation-Foundation/dp/1590599551/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1222805799&amp;amp;sr=1-1"&gt;&lt;font color="#0000ff"&gt;Apress tome&lt;/font&gt;&lt;/a&gt; on WPF.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;So that will give me technical knowledge that will be very useful for my current job, but there is oh so much more after which I hanker.&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0cm 0pt"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Architecture&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;How does one go about writing good software? I’ve read a couple of design patterns books, but they were at an introductory level and so I have these in my sights:&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;-&lt;span style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.amazon.co.uk/Head-First-Design-Patterns/dp/0596007124/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1222805835&amp;amp;sr=1-1"&gt;&lt;font color="#0000ff"&gt;Head First Design Patterns&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;-&lt;span style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.amazon.co.uk/Design-patterns-elements-reusable-object-oriented/dp/0201633612/ref=sr_1_2?ie=UTF8&amp;amp;s=books&amp;amp;qid=1222805835&amp;amp;sr=1-2"&gt;&lt;font color="#0000ff"&gt;The Gang of Four book&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;And with those firmly tucked under my belt, I’d like to explore DDD (Domain Driven Development). &lt;a href="http://www.amazon.co.uk/Domain-driven-Design-Tackling-Complexity-Software/dp/0321125215/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1222805896&amp;amp;sr=1-1"&gt;&lt;font color="#0000ff"&gt;Evans’ book&lt;/font&gt;&lt;/a&gt; is good, apparently.  I’ve heard about n-tier architecture too, but don’t have much idea what that entails. And I’d like to explore ORMs a bit more, especially &lt;a href="http://sourceforge.net/projects/nhibernate"&gt;&lt;font color="#0000ff"&gt;NHibernate&lt;/font&gt;&lt;/a&gt;.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Other things that spring to mind here are &lt;a href="http://www.amazon.co.uk/Refactoring-Improving-Design-Existing-Technology/dp/0201485672/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1222806006&amp;amp;sr=8-1"&gt;&lt;font color="#0000ff"&gt;refactoring&lt;/font&gt;&lt;/a&gt;, &lt;a href="http://www.amazon.co.uk/Enterprise-Application-Architecture-Addison-Wesley-signature/dp/0321127420/ref=pd_sim_b_2"&gt;&lt;font color="#0000ff"&gt;Patterns of Enterprise Architecture&lt;/font&gt;&lt;/a&gt; and &lt;a href="http://www.amazon.co.uk/Working-Effectively-Legacy-Robert-Martin/dp/0131177052/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1222806092&amp;amp;sr=1-1"&gt;&lt;font color="#0000ff"&gt;Working with Legacy Code&lt;/font&gt;&lt;/a&gt;. I hope I get through all the reading before my eyes wear out. One day, I might even &lt;a href="http://www.amazon.co.uk/Dreaming-Code-Programmers-Transcendent-Software/dp/1400082471/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1222806158&amp;amp;sr=1-1"&gt;&lt;font color="#0000ff"&gt;dream in code&lt;/font&gt;&lt;/a&gt;, write &lt;a href="http://www.amazon.co.uk/Beautiful-Code-Leading-Programmers-Practice/dp/0596510047/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1222806181&amp;amp;sr=1-1"&gt;&lt;font color="#0000ff"&gt;beautiful code&lt;/font&gt;&lt;/a&gt; or become a &lt;a href="http://www.amazon.co.uk/Pragmatic-Programmer-Andrew-Hunt/dp/020161622X/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1222806203&amp;amp;sr=1-1"&gt;&lt;font color="#0000ff"&gt;pragmatic programmer&lt;/font&gt;&lt;/a&gt;.&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0cm 0pt"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;The Development Process&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;And then there’s TDD. This has a famous toolkit, and the things that spring to mind that I’d like to spend more time with are:&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;-&lt;span style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.amazon.co.uk/Pragmatic-Programmer-Andrew-Hunt/dp/020161622X/ref=sr_1_1?ie=UTF8&amp;amp;s=books&amp;amp;qid=1222806203&amp;amp;sr=1-1"&gt;&lt;font color="#0000ff"&gt;MbUnit&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;-&lt;span style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/span&gt;&lt;/span&gt;Mocking (e.g. &lt;a href="http://ayende.com/projects/rhino-mocks.aspx"&gt;&lt;font color="#0000ff"&gt;Rhino Mocks&lt;/font&gt;&lt;/a&gt;)&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;-&lt;span style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/span&gt;&lt;/span&gt;IoC (e.g. &lt;a href="http://ayende.com/projects/rhino-mocks.aspx"&gt;&lt;font color="#0000ff"&gt;Windsor&lt;/font&gt;&lt;/a&gt; from the Monorail project)&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 0pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;-&lt;span style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/span&gt;&lt;/span&gt;Msbuild&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt 36pt; TEXT-INDENT: -18pt"&gt;&lt;span&gt;-&lt;span style="FONT: 7pt 'Times New Roman'"&gt;          &lt;/span&gt;&lt;/span&gt;&lt;a href="http://www.jetbrains.com/teamcity/"&gt;&lt;font color="#0000ff"&gt;TeamCity&lt;/font&gt;&lt;/a&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;I can hear terms like “programming to interfaces” and “loose coupling” here.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;I’ve heard the term &lt;a href="http://git.or.cz/"&gt;&lt;font color="#0000ff"&gt;Git&lt;/font&gt;&lt;/a&gt; bandied about a bit too, and not just when I break the build. How is that different from more traditional source control systems like &lt;a href="http://subversion.tigris.org/"&gt;&lt;font color="#0000ff"&gt;SVN&lt;/font&gt;&lt;/a&gt;?&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0cm 0pt"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Is it all about objects though?&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;C# blurs the boundaries slightly between OO and functional programming with lambda syntax and Action&amp;lt;T&amp;gt; and Func&amp;lt;T,...&amp;gt; and I’ve found this to be very powerful in my limited use of it so far. So I’d like to explore functional programming. F# anyone? ML? Haskell?&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0cm 0pt"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;And what about concurrency?&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;Also, I’ve tussled with multi-threading over the last few months and I’ve wondered why it seems so fraught with danger. How do languages like Erlang get round this problem and produce high availability, massively parallel systems?&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;This is going to become more and more topical as multi-core processors become ubiquitous.&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0cm 0pt"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Can I lose the chaperone (and possibly get into trouble)?&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;And then there’s unmanaged code. C# and .NET are amazing, but at some point I’d like to get down and dirty with the guts of the machine just for the experience. I wrote a simple pixel shader for use with WPF recently and that was great fun.&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0cm 0pt"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Back to Uni?&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;And finally, I am aware that my colleagues have a Computer Science degree and I don’t (I’m a mathematician and an &lt;a href="http://www.actuaries.org.uk/"&gt;&lt;font color="#0000ff"&gt;actuary&lt;/font&gt;&lt;/a&gt;). I have heard it said that these CS degree thingies are a bit overrated, but I’m not so sure that’s true. I don’t know about different sorting algorithms and I don’t understand O() notation. I sense that my colleagues have a familiarity with certain key concepts in computing (e.g. networking) that I don’t share, and I’d like to get there. Reading may do it (there’s a networking book on my pile) or maybe at some point I’ll get the opportunity to go back to school.&lt;/div&gt;
&lt;div style="MARGIN: 10pt 0cm 0pt"&gt;&lt;strong&gt;&lt;font size="5"&gt;&lt;font color="#4f81bd" size="4"&gt;Every journey of a thousand miles starts with the first step&lt;/font&gt;&lt;/font&gt;&lt;/strong&gt;&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;It’s a daunting list. I have the joy of learning though and I expect to have it indefinitely.  Clearly it’s going to take me years to get to grips with the main stuff. And all the while Microsoft (and maybe even other organisations and individuals) will be bringing out new stuff to stimulate my grey matter.&lt;/div&gt;
&lt;div style="MARGIN: 0cm 0cm 10pt"&gt;I like the article &lt;a href="http://norvig.com/21-days.html"&gt;&lt;font color="#0000ff"&gt;“Learning Programming in 10 years”&lt;/font&gt;&lt;/a&gt;. It seems to me that it’s spot on.&lt;/div&gt; &lt;img src="http://geekswithblogs.net/CodeCurve/aggbug/125551.aspx" width="1" height="1" /&gt;</description>
            <dc:creator>CodeCurve</dc:creator>
            <guid>http://geekswithblogs.net/CodeCurve/archive/2008/09/30/so-much-to-learn.aspx</guid>
            <pubDate>Wed, 01 Oct 2008 02:33:25 GMT</pubDate>
            <wfw:comment>http://geekswithblogs.net/CodeCurve/comments/125551.aspx</wfw:comment>
            <comments>http://geekswithblogs.net/CodeCurve/archive/2008/09/30/so-much-to-learn.aspx#feedback</comments>
            <slash:comments>4</slash:comments>
            <wfw:commentRss>http://geekswithblogs.net/CodeCurve/comments/commentRss/125551.aspx</wfw:commentRss>
        </item>
    </channel>
</rss>
