ArtsAutosBooksBusinessEducationEntertainmentFamilyFashionFoodGamesGenderHealthHolidaysHomeHubPagesPersonal FinancePetsPoliticsReligionSportsTechnologyTravel

How to make a software programme

Updated on September 17, 2009

The answer to the question?

How do I answer this question without sounding like I'm avoiding it?

The fact is, there are many ways to write a software programme (actually spelled program, as it's computer specific).

It is dependant upon the language you're writing it in and the platform (operating system) you're expecting to run it on. It is also dependant upon you want the program to do.

How can you be told how to write a program without knowing what the end result needs to be?

There are a wealth of programming languages out there. Some are better than others for different applications
There are a wealth of programming languages out there. Some are better than others for different applications


I suppose the first thing you need to do is decide what language you're going to build or write the program in.

There are many languages out there for programming computers.

The best known are perhaps Basic, C, C++, Java and Pascal. Now of course, they have been expanded to encompass the .Net framework (dot net).

There are others such as Cobol and some 4GL variants, but the above are probably viewed as the forerunners.

On top of those, there are also the newer languages, which I'm not sure fall into the same category as they are pretty specific and wouldn't necessarily be useful for all applications such as Java, Flash, SQL, HTML, XTML and ASP.

With the exception of SQL and Flash, the second bunch are pretty web specific actually. HTML and XTML are forms of notation that work around what's known as hypertext and actually work in the way the original word processors worked way back before wysiwyg (What You See Is What You Get). They use elements within text to provide the underlying programme with elements to link to other pieces of text, documents, websites etc and the user does not get to see the notation involved.

SQL is an acronym for Structured Query Language and is specific to databases. It is a method of being able to query the contents of a database through the use of a text string. Once you know what tables exist in the database, you can tailor these strings to be able to return various pieces of information, add new information to the database, create tables etc.

Flash is very web oriented, although will run on PC's and is usually used for creating animations that are added to web pages, or alternatively games. The new versions of Flash allow all sorts of variables, routines and user interaction and make it a very good tool for producing web-based games.

Java is a cross-platform language that has different interpreters on each platform to take one piece of code and make it work on the various operating systems. With some minor modifications, the script could be adapted to run as a program, but if this is done, the program would only run on the specific operating system it was compiled on.

In addition to those, there are derivatives like Dark Basic, which is similar in its appearance to basic, but is mainly for game programming, allowing the user or writer to access many graphical routines that are not freely available in Visual Basic or VBA, such as 3D rendering, motion control, collision detection and the ability to design and create FPS games.

Other packages often have a basic language accessible to the user or designer and many of them are based on Basic. There are limits to what you can do with these, but they often give access to routines such as 'IF ... THEN ... ELSE' statements, 'WHILE' and 'FOR' loops, ARRAYS etc. These are mainly known as scripting languages.

Your Application or Program

What is your target platform?

What is your program going to do?

What interaction between the user and your program are you anticipating?

These can all make a difference in what language you use.

Target Platform

This is the operating system you are planning to make this program work for. For instance, is it to be MS Windows based? Is it for a Mac or is it for Unix/Linux? Could it even be for mobile phones, iPods etc?

When Java is used in web-based applications, it is compatible with just about all platforms. It may even be all, but once it has been compiled into an executable like for instance Windows NotePad, it becomes target specific.

You have to know where and how your program is going to be used.

What is your program going to do?

What can't programs do?

There are programs for just about everything out there from games to spreadsheets, word processors to graphics packages, music players to safety-critical systems applications and beyond.

What is your program going to do?

Before you can write a program, it is imperative that you know what it's function will be. Perhaps you want to write a piece of business software for accounting or something. Maybe you want to design a game. Whatever you want to do, you have to be able to describe that and it's best that you write it down.

Many old-style programs and I don't suppose that's changed much, were 'hacked' together by someone who just sat before his or her computer and typed. The result may have worked, but then again it may not and trying to find the offending bug could present a whole new range of issues, as often where in this hacked program it could lie could be anyone's guess.

The more structured you can make the program, the easier it becomes to maintain. That may sound pretty obvious, but consider the person who hacked his or her program together, makes it work and then wants to upgrade it to do more or do something differently.

The less structured that program or application is, the more difficult it becomes when upgrading or making changes of any sort.

What interaction between the user and your program are you anticipating?

This is very important as it can be the difference between making the program very simple to write or not.

The user is perhaps the biggest fly in the ointment.

It's easy to make a program that takes a bunch of numbers, does awesome maths with them and then spits out the result, but where does it get those numbers?

In games for instance, how the user interacts can be the difference between a good game and a great game. Most of the games consoles have a specific method for the user to interact, providing an easy and well-known set of rules for the programmer.

It's doubtful that as a beginner, programs like that are going to flow from your fingertips, so it might be good for you to consider how that interaction is to be achieved.

With business software, components such as text boxes and other graphical interface "controls" are numerous and this makes it much simpler for the user to see what's required and for the programmer to get at the information.

You will have to write down and break down the various elements of the programs use, outputs and routines to be able to take what on the face of it may look difficult, into small, simple routines that the program can draw on to create the end result.

Further reading

I have assumed in this hub, that no prior experience of programming is held by you, the reader and this is why I have given no examples. Without direction, I would effectively be writing a programming for dummies book and that's not possible in the confines of these hubs or the time that I have.

I would suggest therefore that you either take a course at your local college, get books - of which there are many thousands and read.

There's no way I can teach you how to write a program without first knowing what and how much you know, what you want to do or anything like that.

The most important thing to remember is that many of the programs out there for computer have been designed and refined over many years, using teams of people who invest many thousands of hours to produce the many millions of lines of code to produce the end results.

People nowadays want so much from their computer programs that it's often much simpler to find the desired application either in the shops or on-line and either download it or buy it.

Microsoft for instance do free to download packages of their software authoring products, although some of them require registration and may not be the full programs. They will though, be enough to get you started otherwise you're looking at quite a substantial investment in something you may be no good at.

A couple of useful links

Microsoft Downloads - Go here to download for free, some or all of Microsoft Visual Studio

Java Downloads - Go here for Java, though whether that includes programming packages, I don't know


    0 of 8192 characters used
    Post Comment

    • profile image


      7 years ago

      its nice you guys have given us access to this so that the young ones can do something meaningful

    • Nick B profile imageAUTHOR

      Nick B 

      9 years ago from Normandy, France

      I know the feeling.

      I've been programming for about the last thirteen years and I still find it difficult to keep up.

      Still, one is never too old to learn...

    • MistHaven profile image


      9 years ago from New Jersey

      This hub is a good starting point for people intent on becoming programmers. I've thought about trying to learn how to program my own piece of software, but I'm much better at being creative than programming, haha.


    This website uses cookies

    As a user in the EEA, your approval is needed on a few things. To provide a better website experience, uses cookies (and other similar technologies) and may collect, process, and share personal data. Please choose which areas of our service you consent to our doing so.

    For more information on managing or withdrawing consents and how we handle data, visit our Privacy Policy at:

    Show Details
    HubPages Device IDThis is used to identify particular browsers or devices when the access the service, and is used for security reasons.
    LoginThis is necessary to sign in to the HubPages Service.
    Google RecaptchaThis is used to prevent bots and spam. (Privacy Policy)
    AkismetThis is used to detect comment spam. (Privacy Policy)
    HubPages Google AnalyticsThis is used to provide data on traffic to our website, all personally identifyable data is anonymized. (Privacy Policy)
    HubPages Traffic PixelThis is used to collect data on traffic to articles and other pages on our site. Unless you are signed in to a HubPages account, all personally identifiable information is anonymized.
    Amazon Web ServicesThis is a cloud services platform that we used to host our service. (Privacy Policy)
    CloudflareThis is a cloud CDN service that we use to efficiently deliver files required for our service to operate such as javascript, cascading style sheets, images, and videos. (Privacy Policy)
    Google Hosted LibrariesJavascript software libraries such as jQuery are loaded at endpoints on the or domains, for performance and efficiency reasons. (Privacy Policy)
    Google Custom SearchThis is feature allows you to search the site. (Privacy Policy)
    Google MapsSome articles have Google Maps embedded in them. (Privacy Policy)
    Google ChartsThis is used to display charts and graphs on articles and the author center. (Privacy Policy)
    Google AdSense Host APIThis service allows you to sign up for or associate a Google AdSense account with HubPages, so that you can earn money from ads on your articles. No data is shared unless you engage with this feature. (Privacy Policy)
    Google YouTubeSome articles have YouTube videos embedded in them. (Privacy Policy)
    VimeoSome articles have Vimeo videos embedded in them. (Privacy Policy)
    PaypalThis is used for a registered author who enrolls in the HubPages Earnings program and requests to be paid via PayPal. No data is shared with Paypal unless you engage with this feature. (Privacy Policy)
    Facebook LoginYou can use this to streamline signing up for, or signing in to your Hubpages account. No data is shared with Facebook unless you engage with this feature. (Privacy Policy)
    MavenThis supports the Maven widget and search functionality. (Privacy Policy)
    Google AdSenseThis is an ad network. (Privacy Policy)
    Google DoubleClickGoogle provides ad serving technology and runs an ad network. (Privacy Policy)
    Index ExchangeThis is an ad network. (Privacy Policy)
    SovrnThis is an ad network. (Privacy Policy)
    Facebook AdsThis is an ad network. (Privacy Policy)
    Amazon Unified Ad MarketplaceThis is an ad network. (Privacy Policy)
    AppNexusThis is an ad network. (Privacy Policy)
    OpenxThis is an ad network. (Privacy Policy)
    Rubicon ProjectThis is an ad network. (Privacy Policy)
    TripleLiftThis is an ad network. (Privacy Policy)
    Say MediaWe partner with Say Media to deliver ad campaigns on our sites. (Privacy Policy)
    Remarketing PixelsWe may use remarketing pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to advertise the HubPages Service to people that have visited our sites.
    Conversion Tracking PixelsWe may use conversion tracking pixels from advertising networks such as Google AdWords, Bing Ads, and Facebook in order to identify when an advertisement has successfully resulted in the desired action, such as signing up for the HubPages Service or publishing an article on the HubPages Service.
    Author Google AnalyticsThis is used to provide traffic data and reports to the authors of articles on the HubPages Service. (Privacy Policy)
    ComscoreComScore is a media measurement and analytics company providing marketing data and analytics to enterprises, media and advertising agencies, and publishers. Non-consent will result in ComScore only processing obfuscated personal data. (Privacy Policy)
    Amazon Tracking PixelSome articles display amazon products as part of the Amazon Affiliate program, this pixel provides traffic statistics for those products (Privacy Policy)