Winter Rant

"I’m utterly disgusted. I strongly feel that this is an insult to life itself." – Miyazaki

,

Programming, Ideas and Software.

coding ideas | Photo: Vijay krishna palepu

The easy to difficult of software engineering.

Programming, by itself, is easy.

Programming, principally, is the activity of reading and writing in a language that computers can interpret. Learning how to program or actually reading and writing a program, is as easy as learning, writing in or reading a natural language, if not easier. This argument is championed nicely in a post about the 3 Myths of Learning Programming Languages.

So all those who are planning to learn programming or a new programming language: writing and reading programs, by themselves, are really very simple activities, so dive in without hesitation.

Software is a rendition of ideas, via programming.

The idea behind this post, rendered as a process diagram.

While easy, programming should render a core set of ideas to create software. The challenge with ideas can involve, having ideas for starters; or properly rendering the ideas in a program or implementation.

As a kid, i was decent at coloring pictures. I had a reasonable imagination to conjure mental images of beautiful landscapes in my head. Alas, never could my colors render those beautiful images as paintings. I can still paint, if my colors capture the ideas in my mind; in turn giving my ideas form and making them real, which otherwise would remain ephemeral signals in my head.

You see, just as with paintings, coloring and beautiful ideas, software is produced when ideas and implementations make each other possible.

So do not be wary of programs or programming, but rather what you can(not) do with them.

Real software works for real people.

Ideas do not always work in the real world. That, at times, is the difference between prototype projects, like at times in incubators or research labs, and real software systems that help solve real problems that effect people. That is not to undermine the relevance of prototypes, as they usually give way to the actual thing. I, for one, cannot recount the number of concept ideas i have had to implement for all my projects, before they rise to an acceptable standard; only to be followed by more iterations.

Even perfectly implemented software can sometimes fall short in the real world, if the software was not implementing the right idea to begin with. Both are critical: executing the idea properly and executing the proper idea.


The easy to difficult of Software Engineering.

The simplest thing to do, is to program something … anything. The challenge starts when you want your program to implement an idea properly. Finally, it is always tricky to make sure that you are implementing the proper idea.

All three are required to develop real software. There is no proven correct order in which you do these three things. And no one can tell for how long you need to do them, before producing the actual thing.

Published by

Leave a comment