Monday, March 04, 2013

Curiosity: Learning is a commitment worth making

This week I will be attending the monthly DDD NYC meet up where Vaughn Vernon will be discussing DDD and Architecture Patterns.

If you have been following DDD for some time you are probably familiar with the common obstacles that keep many from implementing the practices that Eric Evans made famous.  It's not that the benefits of this development pattern are not inherently obvious.  I've had more than my share of conversations with other developers who admire what Eric Evans laid out in his classic book Domain-Driven Design: Tackling Complexity in the Heart of Software.  Yet so many ask themselves, where do I begin?  How do I get my manager, boss, client, etc to agree to adopt these practices? What will this mean for my legacy code?

Vaughn Vernon is currently traveling the world delivering the answers to these very questions.  In fact that is the very topic of his recently released book, Implementing Domain-Driven Design. If you haven't yet checked this book out you should.

Implementing Domain-Driven Design
Implementing Domain-Driven Design By Vaughn Vernon

As I have been presenting to various groups in the past year, developers must make a commitment to raise our level of work. In the never ending quest to sharpen our skills as developers, it is important to exercise our curiosity.  By learning to implement Domain-Driven Design, we can take our development to a higher level.  

If you are developer, what are you doing to demonstrate your commitment to make continued progress as a programmer?

Tuesday, February 26, 2013

On learning to code

Today I stumbled upon this short film produced by  It is meant to encourage everyone to learn to code, especially all our children.

I think that learning to code is important and can be fun.  The potential rewards are phenomenal.

Over 16 years ago, I learned to be a programmer.  My roommate at the time was a programmer.  I asked him how he learned to program and he said, "by reading books."  He then challenged me to learn to program.  This was one of the best gifts I've ever received.

I've been involved in software development ever since. I founded CyteShoppe in 1996 to provide successful web solutions to many small businesses.  Over the years, technology has changed and I've had the opportunity to work with many exciting projects and technologies.  One thing though has not changed, I'm still learning and have a long way to go...

So along with encouraging education in programming, I propose that it is essential that we also inculcate the need for continual learning.  So much in the field of education seems to reinforce the idea that learning is just an unavoidable inconvenience that is shed just as soon as the test is passed.

In technology, curiosity is especially critical.  A programmer cannot be satisfied with what he or she learned in school, or even last year, last month, last week.  Every 5-10 years the technology stack that programmers use is completely overhauled.  In this fast moving world that refresh rate may continue to accelerate to a rate of three to five years.  A programmer must recognize that continual learning is a part of life.

There are other character traits that are also very important to become a superior programmer such as humility, intellectual honesty, good communication and cooperation, etc...

By promoting coding as a basic skill we help students appreciate the value of these very valuable aspects of who they are.  These personal characteristics transfer well to whatever endeavor they choose to follow in the future.

To this end, this year I've been speaking with current programmers on the topic of personal character.  On Wednesday, February 27, I will be speaking at the New York Alt. Net User Group in NYC on the topic: "Become A Superior Programmer In Any Language"  I'm looking forward to seeing everyone who is attending and sharing with them what I know.  I hope that this is also an opportunity for me to learn from all in attendance.

Learning to code is a fantastic endeavor and the skills required to be a successful programmer can contribute to make life very rewarding.