I have been developing software for over 4 years and am enjoying the daily challenge of building software systems that work and are maintainable over time.
to me software craftsmanship is twofold, first it is the motivation and willingness to learn the concepts that transcend technology, that underpin our craft. Secondly it is the attention to detail that is necessary to implement that learning in your code. Every line of code must be considered in the context of the sub and complete system being developed. In the end the true craftsman will make informed decisions to structure and explicitly express the intent of his/her code.
Software development is easy, considered software is hard and software without consideration is just typing.