Filed under Software Engineering, beautiful codes by mozammel | 0 comments
We are so much deep into projects, dead lines, management, career… sometimes it feels good to reach out to some pure basics - as last night, I was wondering about the old age phrase from Shakespeare “To be or not to be… that is the question”. What a wonderful analogy we can make with the binary language that made possible all inventions of today’s world.
We can even slim down it if we try to quantify “being” with 0, and “not being” with not having 0. So, having 0 is a state, and not having 0 is another state. The beauty of it is only by having 0, and not having 0, we define the binary language, thus defining the basis of today’s modern world.
Just an observation - tying literature with codes.
Filed under Software Engineering by mozammel | 0 comments
Because you can program well or poorly, and because most of it is creative (in that we don’t really know what we’re doing when we start out), my view is that we should train developers the way we train creative people like poets and artists. People may say,”Well, that sounds really nuts.” But what do people do when they’re being trained, for example, to get a Master of Fine Arts in poetry? They study great works of poetry. Do we do that in our software engineering disciplines? No. You don’t look at the source code for great pieces of software. Or look at the architecture of great pieces of software. You don’t look at their design. You don’t study the lives of great software designers. So, you don’t study the literature of the thing you’re trying to build.
Source: http://java.sun.com/features/2002/11/gabriel_qa.html
Filed under Software Engineering by mozammel | 0 comments
As agile development process is getting more and more popular, and software developers are increasingly using iterative process for their projects, I sometime wonder where does the thin line between an artist and an engineer gets blurred.
An artist may have some tools at his disposal, like a blank canvas, some colors, and brushes, but with a brilliant mental picture of his final art. Interestingly, how much different is the situation from having a blank IDE, some yammy APIs, compilers, and the larger view of the system to develop?
An artist does some sketches - does the base painting, and then follows several ‘iterations’ to get to his final creation, until he gets to the point of his satisfaction and completes his task with the final touch ups. Do you see the dazzling resemblance with the iterative model we follow in software development now a days?
We sometime wonder why the Computer Science fresh grads don’t produce beautiful codes. But how many times in a student’s undergrad life did s/he try to grasp the beauty of a production standard, well tested code? How many times did the professors in our classes taught (or at least generated interest in) us the architectural marvels of a wonderfully designed framework?
In other disciplines (architecture, photography, art) students learn by looking at the examples of design wonders. We should also make it a practice in CS, so that we learn to appreciate the beauty of codes at an early stage.