Pages

Monday 5 September 2011

Thinking of programming? Visualise it!

I often talk to people who are interested in creating their own programs or apps, but find the nature of programming in general to be intimidating. Yet conversing with them, many of them seem to severely overestimate what is needed to get into programming. Many pretty much see, with larger programming projects, a massive block of code, creating which is somewhat akin to writing a novel in an unfamiliar language and think, from looking at many of the available basic tutorials that it would take a lifetime before they are able to attempt something large scale.

This is however not the case. Virtually every large problem can be broken down into smaller chunks. If a programmer is able to break a larger problem down into smaller problems and deal with them individually, it is often the case that there will be far less difficulty in solving it. Furthermore, if a programmer is able to solve one of the smaller problems solving similar ones becomes almost trivial.
Towards this end, in my personal experience there is one thing that should be done whenever facing a programming task...
Visualise it!

Specifically, try to visualise exactly what you want the final output of the program to look like. Writing down a description would almost certainly help in that regard. From that, try to figure out what all the different components to that output are, treat building each component as a specific task rather than trying to build the whole thing in one, ensure that you have generated a solid design document for your use (yes I know its painful). While there are many different ways people plan a project and different methods that people apply to solving the sub problems that turn up, it is utterly essential to have a clear, well defined view of exactly where you want to end up. After that, the how we get there becomes far more simple.

Also if anyone is just starting to look at programming and are interested in a good language, my favourite (and indeed the one I use whenever possible) is Python. It is a great language, very easy to learn, has a very gently learning curve and is incredibly versatile.
A great set of tutorials for the language can be found here.


At some point in the future, I would like to work on creating a detailed step by step guide towards tackling complex programming tasks...

No comments:

Post a Comment