March 2006
M T W T F S S
« Feb   Apr »
 12345
6789101112
13141516171819
20212223242526
2728293031  
Chris Donnan

Create Your Badge

Chris Donnan : Programming – Brooklyn Style

software, trading, family, fun

Active RDF – a set of tools for semantic web work using ruby

Active RDF – is a set of tools for semantic web work using ruby. I have been looking at the Redland RDF Application Framework from Dave Beckett lately. I believe this makes use of it – good stuff!

read more | digg story


You can leave a response, or trackback from your own site.



Cowboy coder to developer

I am leaving the project that I am leading currently in a few weeks. Today I began handing off the lead to one of the developers on the project. The task of getting the entire team ‘on the beat’ of the project and keeping them there is key for this person to be able to maintain. One of the other developers was asking me today what he could read/ do to ‘totally revamp and update his code style’. In trying to introduce agile practices to a group – the group has a lot to change.

Some of the stuff that we introduced:

  • Mock objects (Rhino Mocks)
  • Unit testing (NUnit)
  • SpringFramework.net
  • log4net
    Design Patterns including

    • Model/ View/ Presenter based architecture
    • Strategy

      I sent him some of the books, articles etc. that I usually recommend. This chat however got me to thinking – what does it take to become a great developer? There are really 2 transitions that I was thinking about; the transition from a mid-level to a senior developer, and the transition from being a seasoned developer to a world class developer. In the past I have said that the central thing that I am looking for in a developer is someone who is effectively a ‘Good abstract problem solver’. I still think this holds true.

      That being said – there are some foundations that I typically look for in a developer – particular mostly to C# and Java developers, but much is also applicable to other development.

      Principals

          Design

            • Model domain in software – see Domain Driven Design
            • Learn the ‘classical design patterns’ – see GoF book and language specific variants

              Code level

                • Design by contract
                  • Assertions
                  • Guard clauses
                • Intention revealing interfaces – see Domain Driven Design
                • Effective class composition – single purpose classes and methods
                • Learn the Refactoring Patterns – see Martin Fowler

                  Language Level

                    • Understand the runtime you are working in
                      • garbage collection
                      • how the heap/ stack work
                    • Threading – deep understanding of concurrency issues
                    • Be able to program in at least a few different languages

                      Enterprise

                      • Understand Databases
                      • Understand messaging systems
                      • Understand XML
                      • Understand heterogenous as many system interoperation mechanisms as possible
                      • Understand web services
                      • Understand security concerns
                          • What does it take to be great? A thirst to learn. A thirst to experiment. Coding is what makes you learn. Working with smart people will help you learn. Doing ‘pet projects’ will help you learn. Stretch your ara of comfort all the time. If you think C is hard – do a pet project in it. If you are intimidated by C#, Java, Ruby, Web Services, ANYTHING – just try it – you will see how much more alike they all are then you think. You will also learn to love the differences and functions of all.

                            I will continue to update this as I need to run :)

                            -Chris


                            You can leave a response, or trackback from your own site.