Ruminations on the craft
-
whats the point you can't c++ your way though life you need to look for the pointers...
Caveat Emptor. "Progress doesn't come from early risers – progress is made by lazy men looking for easier ways to do things." Lazarus Long
-
I think any creative process can rise to the level of art when you can't teach someone how to be great at it. I think you can teach any structural engineer how to be a great structural engineer, IMO. If you have the skillset, experience will carry you to greatness. I do not think you can teach any engineer to be a great software developer. The skillset alone isn't enough to foment greatness. Software development in some respects is like cooking, acting, painting, or dancing rather than like blueprinting. Some people just have a knack, but most people will always plateau after a point because raw skillset only carries you so far, no matter how well you know C++ for example. It doesn't mean that most coders can't code. they will just never be what I consider great. You have to have some artist in you, I think. I don't say that to discourage anyone. I routinely code with someone who will never be an artist at the craft, but it's not to say he's not intelligent, or capable. There's nothing wrong with the code he produces. It's a solid average, and easy to understand, so it has that going for it. I can work with that. Very utilitarian. But then there's great code. Code that makes you go "wow, I wish I would have thought of that" He's not going to produce that code, and that's okay. But there's an art to doing so.
To err is human. Fortune favors the monsters.
You use the word 'craft'. I like to think of myself as a craftsman. I enjoy, and take pride in, what I do, I like to make a good job of it and I like it when the code is, in some sense, beautiful (it isn't always!)
Paul Sanders. If I had more time, I would have written a shorter letter - Blaise Pascal. Some of my best work is in the undo buffer.
-
I think any creative process can rise to the level of art when you can't teach someone how to be great at it. I think you can teach any structural engineer how to be a great structural engineer, IMO. If you have the skillset, experience will carry you to greatness. I do not think you can teach any engineer to be a great software developer. The skillset alone isn't enough to foment greatness. Software development in some respects is like cooking, acting, painting, or dancing rather than like blueprinting. Some people just have a knack, but most people will always plateau after a point because raw skillset only carries you so far, no matter how well you know C++ for example. It doesn't mean that most coders can't code. they will just never be what I consider great. You have to have some artist in you, I think. I don't say that to discourage anyone. I routinely code with someone who will never be an artist at the craft, but it's not to say he's not intelligent, or capable. There's nothing wrong with the code he produces. It's a solid average, and easy to understand, so it has that going for it. I can work with that. Very utilitarian. But then there's great code. Code that makes you go "wow, I wish I would have thought of that" He's not going to produce that code, and that's okay. But there's an art to doing so.
To err is human. Fortune favors the monsters.
I think you are conflating "hacks," and "clever solutions "with "art." Someone at a high-level of competency with the tools and materials in a certain domain can experience aesthetic qualities when they look at something built using those tools and materials.
«The mind is not a vessel to be filled but a fire to be kindled» Plutarch
-
I think any creative process can rise to the level of art when you can't teach someone how to be great at it. I think you can teach any structural engineer how to be a great structural engineer, IMO. If you have the skillset, experience will carry you to greatness. I do not think you can teach any engineer to be a great software developer. The skillset alone isn't enough to foment greatness. Software development in some respects is like cooking, acting, painting, or dancing rather than like blueprinting. Some people just have a knack, but most people will always plateau after a point because raw skillset only carries you so far, no matter how well you know C++ for example. It doesn't mean that most coders can't code. they will just never be what I consider great. You have to have some artist in you, I think. I don't say that to discourage anyone. I routinely code with someone who will never be an artist at the craft, but it's not to say he's not intelligent, or capable. There's nothing wrong with the code he produces. It's a solid average, and easy to understand, so it has that going for it. I can work with that. Very utilitarian. But then there's great code. Code that makes you go "wow, I wish I would have thought of that" He's not going to produce that code, and that's okay. But there's an art to doing so.
To err is human. Fortune favors the monsters.
I agree that higher skill levels of software engineering cannot be taught. I daresay the same thing can be said about e.g. mechanical engineering. I used to think of it as art, when I was much younger. These days I would mosdef not use the word art to describe it. Just like for example ball-sense cannot be taught (nor be called art). If forced to pick an expression would just call it exceptional ability, even if there are some art-like properties to it. Like watching Roger Federer playing tennis.
"If we don't change direction, we'll end up where we're going"
-
I think any creative process can rise to the level of art when you can't teach someone how to be great at it. I think you can teach any structural engineer how to be a great structural engineer, IMO. If you have the skillset, experience will carry you to greatness. I do not think you can teach any engineer to be a great software developer. The skillset alone isn't enough to foment greatness. Software development in some respects is like cooking, acting, painting, or dancing rather than like blueprinting. Some people just have a knack, but most people will always plateau after a point because raw skillset only carries you so far, no matter how well you know C++ for example. It doesn't mean that most coders can't code. they will just never be what I consider great. You have to have some artist in you, I think. I don't say that to discourage anyone. I routinely code with someone who will never be an artist at the craft, but it's not to say he's not intelligent, or capable. There's nothing wrong with the code he produces. It's a solid average, and easy to understand, so it has that going for it. I can work with that. Very utilitarian. But then there's great code. Code that makes you go "wow, I wish I would have thought of that" He's not going to produce that code, and that's okay. But there's an art to doing so.
To err is human. Fortune favors the monsters.
I am going to attempt using the cook as some analogy home cooking, and that indie made app you use on your phone. Do you care how its made vs the end result works, tastes great, and minimal issues that you happy to wave off, like the plate a little messy looking. dime a dozen restaurant around the corner. and something you paying money for. again you dont care about the recipe steps, what the back end looks like, as long as comes out presented nice, tastes good and such. End result vs the process of being made. Now if add in that they say will be 30 minutes, and ends up being 2 hours, that starts eating at how the backend and front end tied together now you are a chief and working at a new kitchen. Are the instructions from higher up good, is it layed out in a form that seen at other kitchens meaning minimal effort to get in and start. Why the fish guy plating up before source ready. A great cook cant slot into a kitchen if the kitchen it self not ready. Same for the one creating the menu list, does it make sense, does it fit with ingredients have and staff available to deliver. you want to server 200 people with 3 staff over 2 hours, uhm End result vs needs to integrate and work with others. Sure Bill might make some amazing looking, short code that runs 5% faster, but what good is that if uses patterns that the other 10 behind will end up tripping over themselves because not everyone can figure out regex, when using a string.contains be "good" enough. not sure what the point written, but yes, craft/art sits high for software. is it the be all/end all. Do you need One mechanic that makes custom cars for 200k, or handful of workers that can make run of the mill car that meets and exceeds safty standards.
-
It may not be the most ideal example, but it was the best example I could think of.
To err is human. Fortune favors the monsters.
Structural engineering needs the same level of artistry at the top levels, but is close enough to what we think we understand to believe it's "just" the boring application of simple principles, just as coding is. Its worth looking at [1] R. E. Bohn, “Measuring and Managing Technological Knowledge,” in The Economic Impact of Knowledge, Elsevier, 1998, pp. 295–314. doi: 10.1016/B978-0-7506-7009-8.50022-7. Also in HBR and at https://www.researchgate.net/publication/237010832_Measuring_and_Managing_Technological_Knowledge[^] The paper notes how we have a fading level of understanding as we go further away from our own field of understanding. Forth Bridge; Golden Gate; Sydney Opera House ;-)
-
I think you are conflating "hacks," and "clever solutions "with "art." Someone at a high-level of competency with the tools and materials in a certain domain can experience aesthetic qualities when they look at something built using those tools and materials.
«The mind is not a vessel to be filled but a fire to be kindled» Plutarch
A far more concise and cogent reply than I could muster first thing in the morning, Bill. Thank you.
Software Zen:
delete this;
-
A far more concise and cogent reply than I could muster first thing in the morning, Bill. Thank you.
Software Zen:
delete this;
Hi, Gary,
Gary Wheeler wrote:
first thing in the morning
Well, I am probably 11 hours ahead of you :) (GMT + 7).
«The mind is not a vessel to be filled but a fire to be kindled» Plutarch
-
Hi, Gary,
Gary Wheeler wrote:
first thing in the morning
Well, I am probably 11 hours ahead of you :) (GMT + 7).
«The mind is not a vessel to be filled but a fire to be kindled» Plutarch
Yes, plus I don't operate well under caffeine deficit. :-D
Software Zen:
delete this;
-
When I have to look at their source code, I strongly curse the artists and enjoy the solid, boring coders.
"In testa che avete, Signor di Ceprano?" -- Rigoletto
Spot on! I absolutely respect all those who bring artistry to their craft, but I have also lived through several projects where the "artistry" was applied with zero regard for timelines, TCO, budget, maintainability, or what the client actually asked for. Some of the artistry, IMHO, comes in knowing when boring and predictable makes more sense.
-
I think any creative process can rise to the level of art when you can't teach someone how to be great at it. I think you can teach any structural engineer how to be a great structural engineer, IMO. If you have the skillset, experience will carry you to greatness. I do not think you can teach any engineer to be a great software developer. The skillset alone isn't enough to foment greatness. Software development in some respects is like cooking, acting, painting, or dancing rather than like blueprinting. Some people just have a knack, but most people will always plateau after a point because raw skillset only carries you so far, no matter how well you know C++ for example. It doesn't mean that most coders can't code. they will just never be what I consider great. You have to have some artist in you, I think. I don't say that to discourage anyone. I routinely code with someone who will never be an artist at the craft, but it's not to say he's not intelligent, or capable. There's nothing wrong with the code he produces. It's a solid average, and easy to understand, so it has that going for it. I can work with that. Very utilitarian. But then there's great code. Code that makes you go "wow, I wish I would have thought of that" He's not going to produce that code, and that's okay. But there's an art to doing so.
To err is human. Fortune favors the monsters.
I propose that it is only your unfamiliarity with structural engineering that makes you feel that anyone can be great at it. It takes a very skilled eye to recognize really excellent software development only by running the completed program, and probably an equally skilled eye to distinguish one curtain-wall tower from another just by walking past it. You notice bad structural engineering when something falls down or blows up, which may take a human lifetime. You notice the quality of structural engineering when actually building the structure, when you either do or do not have to improvise patches to weaknesses in the design. I'm not sure anyone but a builder can recognize really marvelous structural engineering.
-
I propose that it is only your unfamiliarity with structural engineering that makes you feel that anyone can be great at it. It takes a very skilled eye to recognize really excellent software development only by running the completed program, and probably an equally skilled eye to distinguish one curtain-wall tower from another just by walking past it. You notice bad structural engineering when something falls down or blows up, which may take a human lifetime. You notice the quality of structural engineering when actually building the structure, when you either do or do not have to improvise patches to weaknesses in the design. I'm not sure anyone but a builder can recognize really marvelous structural engineering.
Probably.
To err is human. Fortune favors the monsters.
-
I think any creative process can rise to the level of art when you can't teach someone how to be great at it. I think you can teach any structural engineer how to be a great structural engineer, IMO. If you have the skillset, experience will carry you to greatness. I do not think you can teach any engineer to be a great software developer. The skillset alone isn't enough to foment greatness. Software development in some respects is like cooking, acting, painting, or dancing rather than like blueprinting. Some people just have a knack, but most people will always plateau after a point because raw skillset only carries you so far, no matter how well you know C++ for example. It doesn't mean that most coders can't code. they will just never be what I consider great. You have to have some artist in you, I think. I don't say that to discourage anyone. I routinely code with someone who will never be an artist at the craft, but it's not to say he's not intelligent, or capable. There's nothing wrong with the code he produces. It's a solid average, and easy to understand, so it has that going for it. I can work with that. Very utilitarian. But then there's great code. Code that makes you go "wow, I wish I would have thought of that" He's not going to produce that code, and that's okay. But there's an art to doing so.
To err is human. Fortune favors the monsters.
-
I think you are conflating "hacks," and "clever solutions "with "art." Someone at a high-level of competency with the tools and materials in a certain domain can experience aesthetic qualities when they look at something built using those tools and materials.
«The mind is not a vessel to be filled but a fire to be kindled» Plutarch
-
I think you make a good point. I thought he might be saying the same thing Einstein said: :-D
Einstein: (full quote here[^])
Imagination is more important than knowledge.
What a wonderful quote ! my favorite Einstein quote: “A human being is part of a whole, called by us the 'Universe', a part limited in time and space. He experiences himself, his thoughts and feelings, as something separated from the rest ... a kind of optical delusion of his consciousness. This delusion is a kind of prison for us, restricting us to our personal desires and to affection for a few persons nearest us. Our task must be to free ourselves from this prison by widening our circles of compassion to embrace all living creatures and the whole of nature in its beauty.”
«The mind is not a vessel to be filled but a fire to be kindled» Plutarch
-
I think any creative process can rise to the level of art when you can't teach someone how to be great at it. I think you can teach any structural engineer how to be a great structural engineer, IMO. If you have the skillset, experience will carry you to greatness. I do not think you can teach any engineer to be a great software developer. The skillset alone isn't enough to foment greatness. Software development in some respects is like cooking, acting, painting, or dancing rather than like blueprinting. Some people just have a knack, but most people will always plateau after a point because raw skillset only carries you so far, no matter how well you know C++ for example. It doesn't mean that most coders can't code. they will just never be what I consider great. You have to have some artist in you, I think. I don't say that to discourage anyone. I routinely code with someone who will never be an artist at the craft, but it's not to say he's not intelligent, or capable. There's nothing wrong with the code he produces. It's a solid average, and easy to understand, so it has that going for it. I can work with that. Very utilitarian. But then there's great code. Code that makes you go "wow, I wish I would have thought of that" He's not going to produce that code, and that's okay. But there's an art to doing so.
To err is human. Fortune favors the monsters.
I love the way you expressed this. Yes, there's a search for elegance and beauty in low level coding that is second only to the search for the most elegant of mathematical proofs. Engineers can find it, they need a certain attachment to symbolic meandering, but also there's that quality that is the cherry on top for being a genius, the inner poet. Such a level of creativity ultimately caters to the performance boost and efficiency of ever lesser waste of clock cycles, but it also delights learned individuals. We should all take a page from The Story of Mel [^].
-
I think any creative process can rise to the level of art when you can't teach someone how to be great at it. I think you can teach any structural engineer how to be a great structural engineer, IMO. If you have the skillset, experience will carry you to greatness. I do not think you can teach any engineer to be a great software developer. The skillset alone isn't enough to foment greatness. Software development in some respects is like cooking, acting, painting, or dancing rather than like blueprinting. Some people just have a knack, but most people will always plateau after a point because raw skillset only carries you so far, no matter how well you know C++ for example. It doesn't mean that most coders can't code. they will just never be what I consider great. You have to have some artist in you, I think. I don't say that to discourage anyone. I routinely code with someone who will never be an artist at the craft, but it's not to say he's not intelligent, or capable. There's nothing wrong with the code he produces. It's a solid average, and easy to understand, so it has that going for it. I can work with that. Very utilitarian. But then there's great code. Code that makes you go "wow, I wish I would have thought of that" He's not going to produce that code, and that's okay. But there's an art to doing so.
To err is human. Fortune favors the monsters.
I consider myself an excellent SQL coder. At least I used to be. But I owe all but the basics to a person I've never met. A true master. I inherited his code when he left the job. His code taught me things I never would have seen in or out of a classroom. I'm certain he was younger than me, based on the descriptions others gave of him. I thank my lucky stars I got that lesson. I'm not sure we can assess our own top level without seeing something and wishing we had written it. Or perhaps even then. Then there's the Dunning–Kruger effect. And the sciolists of the world. Who among us hasn't seen those? Yet I think the person experiencing it doesn't know it. When I was a kid, someone stuck me in a choir. After a bit of time the choir director told me not to sing the words but to just move my lips. A monotone. Yet now I sing well, according to others. Probably I just had to grow into my voice. But I never pursued music after that. The last is just food for thought. Good subject for rumination.