How to make a software programme

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

Languages

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

More by this Author


Comments 3 comments

MistHaven profile image

MistHaven 7 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.


Nick B profile image

Nick B 7 years ago from Normandy, France Author

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...


Elorm  5 years ago

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

    Sign in or sign up and post using a HubPages Network account.

    0 of 8192 characters used
    Post Comment

    No HTML is allowed in comments, but URLs will be hyperlinked. Comments are not for promoting your articles or other sites.


    Click to Rate This Article
    working