5 ms·
Knowing algorithms != Development craftsmanship I saw the title and thought the article would be about how to write code that is easy for anyone to maintain. C
by riskable 10y ago
Knowing algorithms != Development craftsmanship
I saw the title and thought the article would be about how to write code that is easy for anyone to maintain. Code that scales well horizontally and across multiple processors. Code that is documented well and tests itself to let you know when a change breaks something.
I was expecting notes about architecture and how to ensure the security of your software. To always keep your end users in mind and to make everything easier for them--even if it means more work for you.
I was expecting to see examples of such craftsmanship. Best practices and praise for working tools that seem to stand the test of time.
Instead I found an article about Computer Science fundamentals and math.
Computer science isn't about craftsmanship. If it were the courses would involve code reviews and students would be marked down for lacking tests, not using source control, insufficient comments & documentation, and using conventions that don't fit with the language (e.g. camelCase variables instead_of_underscores in Python).
- xingmu33 10y agoFrom my understanding, craftsman ship is not about algorithms at all, at least not the focus.
- santaclaus 10y agoI'd argue that craftsmanship is about delivering a well crafted end product to the user. The user (hell, even the interpreter/compiler) doesn't give a damn what convention for variable names you use.
- user5994461 10y agoI think that what you refer to is coined under "user experience".
- humanrebar 10y agoCraftsmanship is about delivering a well crafted end product to the customer. More often than not, that's some sort of boss or product manager. And more often than not, they don't understand which design has a better total cost of ownership. But a good software craftsman does.
- pif 10y agoYou are talking about hardware development. Software development is enormously more about maintaining than shipping.
- PhasmaFelis 10y ago> Computer science isn't about craftsmanship. If it were, there would be a lot less frustrated hiring directors and despairing grads discovering that four years of comp sci doesn't qualify you for anything except teaching comp sci. I wish to God my courses had included any of that stuff you mentioned.
- gravypod 10y agoI wish more people felt this way. Please someone, somewhere, change the world so this can be our reality.
- white-flame 10y agoTo add, craftsmanship is synonymous with experience (gleaned or direct). It means that when you start a project, you know exactly what sort of problems will come up (both for you the craftsman and the customer's use of it), and know what you need to do up front to attempt to mitigate them. In any craft, watching a craftsman work displays a large amount of vision and foresight right from the very start, knowing what parts to do first, and what rough sketches need to be completed up front. All of these decisions feed both into making the craftsman's job easier through the process, and are tuned around envisioning what the end user wants from the product and might try to do with it even if it's not part of the explicit requirements. It looks like black magic to the uninitiated, with a bunch of random seemingly non-essential stuff happening, with all of a sudden a great product being birthed at the end. There's no good way to bring all that experiential knowledge into a simple curriculum. Apprenticeship is the primary way to accelerate bring somebody up to a level of craftsman, after the basic fundamentals are known. This is a primary failing of modern companies; they don't allow for such internal paths of progression. Everybody's expected to be an expert craftsman straight out of university. (cue my rant about university & academia NOT being about job training)
- that70sshow 10y agoCant agree more !! Thumbs up !!