DEV Community

Not a Craftsmanship

jorin on January 17, 2019

There is absolutely nothing new in here. It is simply me slowly understanding the things people have been saying all along. Maybe sharing this does...
Collapse
 
6temes profile image
Daniel

A craftsman is not a craftsman because he builds a prefect guitar.

He is a craftsman because he spends all his life trying to learn how to build the perfect guitar.

Collapse
 
codemouse92 profile image
Jason C. McDonald • Edited

You would find the book "Dreaming in Code" by Scott Rosenberg terribly enlightening. He takes all these topics on, and shows some of where software has gone wrong through a very real fated project.

It especially helps one to understand that we've been trying to "fix" programming for decades, but the fact is, none of us understand it. It got out of hand before it even left its nursery at MIT. This isn't a science, and half the time, it feels like a Lewis Carroll story. Programming should work one way, but it doesn't actually follow any "laws" we try to invent to define it. It's an art that we keep trying to treat as a science; sculpting we try to compare to engineering. We don't engineer code.

Sometimes I wonder if the code engineers us.

Collapse
 
jorinvo profile image
jorin

Thanks for the book recommendation - Looks very interesting!

Collapse
 
lysofdev profile image
Esteban Hernández

Excellent point!

IMO, rather than focusing on the "best" solution at the time, I try to write code that will be easy to return to and refactor once we better understand the problem we are trying to solve. The solution I crafted in a two-day crunch might not be the most efficient but whoever returns to it to improve performance will know exactly where the problem might be. I suppose clean code as a reflex is what I mean.

Collapse
 
marek profile image
Marek Zaluski • Edited

I agree about craftsmanship but there is nevertheless an important part of craftsmanship which does apply to code: to get good at a craft, you have to practice over and over. You have to produce a lot. Make lots of mistakes. Don't worry that quality is low at the beginning. In that sense, code is craftsmanship: but it's the ugly process of craftsmanship, not the polished beautiful result.

teach us how to experiment and throw away code

Absolutely, this is so important. It's not useful to chase the ideal of perfect code. Code is never perfect. Write code that you intend to throw away: that's the fastest way to learn.

Lots of great truths in your post, thanks for sharing that!

Collapse
 
jorinvo profile image
jorin

Thanks, totally agree with you :)