- Application Development
- Digital Logic
- Electronic Circuits
- Game Programming
- Getting Things Done
- Operating System
- Software Study
- Web Development
How to make a computer program
You want to know how to make a computer program. There are many ways to begin.
On this page I give a few suggestions of programming languages you can learn to help you get started.
Personally, I've learned a lot from this book Code Complete written by Steve McConnell. I highly recommend reading it.
Basic is a very easy and fun language to start learning computer programming. When you're an absolute beginner, you should start here.
Microsoft Small Basic is a simplified programming language and environment to help teach programming to beginners. To help you get started a tutorial can be downloaded from the site. I recommend to read the tutorial and do the exercises.
Freebasic is a free Basic-compiler. On the site you'll find a lot of information in order to be able to learn making your first Basic program.
Turn on your speakers and run your first Basic-256 program.
C++ and C
I've learned programming the C-programming language by reading this book by Kernighan and Ritchie.
The following books written by Scott Meyers provide a lot of detailed information about the C++ programming language.
Bruce Eckel has written Thinking in C++ and the electronic version of his book can be downloaded here for free or just purchase one of his books.
On this site you learn how to install a C++ and C-compiler and how to write your first program. Make sure to download and install the MINGW-compiler version. A compiler is a piece of software that converts the code you write in an editor into an executable that can be executed standalone on your computer.
Dev-C++ is another free C++ compiler. Once you know the basics of the C++ programming language, you can make your first program with it. Bruce Eckel's 'Thinking in C++' is also a good place to start learning C++.
Learn Java, one of the world's most popular programming language in an easy and interactive visual way:
Bruce Eckel has written Thinking in Java and the electronic version of his book can be downloaded here for free or just purchase his book.
For example, you can learn to program in PHP. This scripting- or programming language is especially intended when you have a website and you want to store data of visitors of your site in a database, like login information or ordered products. Many internet hosting-providers support PHP. Most often PHP is used combined with the MySQL database.
Whenever you're looking for a cheap and reliable internet hosting-provider, I recommend b-smarthosting.net. They offer a domainname, about 500 Mb diskspace and 10 Gb bandwidth per month for about 35 dollars a year. This is their cheapest hosting. In case you need more diskspace or bandwidth, that's also no problem, only you pay a little more. In my experience they are quite reliable. They offer full support for PHP and MySQL. I also make use of their services and am very satisfied.
Whenever you don't have any internet-hosting account, but still want to learn programming PHP, you can do this by installing XAMPP on your computer. This is a free environment in which Apache webserver, PHP and MySQL are installed on your pc. Without this environment (or comparable environment) you can't learn programming PHP, because natively Windows can't execute PHP scripts.
In below video you will learn how to install XAMPP.
Of course you still have to know how the PHP scripting language works. This can be learned on the w3schools.com site.
Here are some more site for you to study more about PHP
Whenever you start programming PHP, it's wise to have a good PHP editor which supports syntax-highlighting. When you start programming with Windows Notepad, the structure of your code is more difficult to understand than when you have an editor that has PHP syntax-highlighting. You can program in Notepad, but when you're planning to program a lot, then it's recommendable to have a good PHP editor.
By having syntax-highlighting, the structure of your code is easier to understand.
PHP editors or integrated development environments (IDE's) are PHPStorm, Aptana Studio (open source) and Netbeans (open source). Netbeans offers several different versions. In case you only work with PHP, it's wise to download and install the PHP-only version. In an IDE you can do all your work, like typing your code, debugging and run your code in a browser. Some IDE's also support integration with sourcecode version control systems, like for example the open source application Subversion.
In case you already have a webhosting-account, you can also choose to write your PHP code online via a webinterface. For this purpose, the CodeIgniter open-source framework is available. You have to install CodeIgniter on the webserver of your webhost. CodeIgniter is a good tool, but for beginners it's recommended to understand the basics of PHP before you start with a PHP framework like CodeIgniter. Because whenever you start with CodeIgniter, you also have to learn how the modeler - view - controller (or MVC) principle works and this is maybe difficult to understand when you're just starting to program PHP. However, you can find a clear video-tutorial about it on the site of CodeIgniter that explains this.
When you get started with PHP, you probably also want to make a connection with a MySQL database. A good manual for MySQL can be fount on the MySQL site. It's possible that during the installation of XAMPP the manual of MySQL already is installed on your computer.
In case you want to know how to make a computer program that is running under Windows, you can choose to learn the Pascal programming language. Pascal offers the advantage that the language forces you to program in a structured way. In order to be able to program in Pascal, you have to install a so called Pascal compiler on your computer. A compiler is a program that converts your typed code into a program that can be executed on your pc. Professional Pascal software-developers commonly use the Delphi development environment of Embarcadero.
However, there's also a free alternative, and that's Free Pascal. For this free compiler a complete integrated development environment called Lazarus is made. It looks a lot like Delphi and it's free. I recommend to install the Lazarus integrated development environment when you want to learn the Pascal programming language.
In the below videos is explained how to make a simple programs using Lazarus.
On the following sites you can find many valuable information about Pascal and Delphi. Because the programming language of Delphi is also Pascal, this information can be applied also when you work in Lazarus.
After understanding the basics of Pascal, I advise to learn object-oriënted programming. With object-oriënted programming you organise parts of your program together in objects. This can be understood better by imagining to put a piece of code in a box. The outer-world doesn't have to know the inner workings of that box and only has to know how to communicate with the box. This is also called the interface of the object. Maybe this is hard to understand right now, but after you explore object-oriënted programming for a while, sooner or later you'll understand how this works.
A good manual for object-oriënted programming in Free Pascal or Lazarus can be found here. In Free Pascal or Lazarus it's possible to program object-oriënted. By programming in an object-oriënted way, your programs get easier to understand and maintain. However, for a beginner it's recommended not learn this and make some simple programs first.
In case you want to know how you can use Lazarus with a MySQL-database, more information about this is available here.
Another integrated development environment based upon Free Pascal is Dev-pascal.
Visual Basic for .Net
Visual Basic is a quick and easy to learn programming language. It makes use of the .Net platform of Microsoft. On Microsoft's site you can download here the free Visual Basic Express for .Net or search with Google. With Visual Basic for .Net you can make Windows programs. In Visual Basic Express for .Net it's possible to program in an object-oriënted way.
A good manual about Visual Basic is available at the following site:
Visual C# for .Net
Microsoft developed the C# (pronounced as: C-sharp) programming language. This programming language is part of the professional software-development environment Visual Studio. In order to make it easier for starters to learn this programming language and not necessarily having to purchase Visual Studio, Microsoft made Visual C# Express. This is a free development environment in which you learn programming C#. You can make Windows programs with Visual C# Express.
Maybe for a beginner, C# is a little harder to learn than Pascal of Visual Basic. In Visual C# for .Net it's possible to program in an object-oriënted way. In Visual C# for .Net you can - like the name already states - program in a visual way. A compiler (that converts your code and screenlayouts into a working program) is built-in in this development environment.
You can download Visual C# Express here for free, or seach with Google because Microsoft happen to change locations of products on their webservers quite regularly.
Visit my Visual Studio C# programming tips page for information about how to make a computer program with the C# programming language and more advanced C# programming topics, also for links to websites containing much information about the language.
Below you can see a video how you can make a simple program in Visual C# Express.
In case there are questions, do not hesitate to contact me. I would like to help when you want to know more about how to make a computer program. Also I would like to make my site more usable, so any questions and feedback are very welcome. Probably also visit the homepage where you can download a free customer-service program.
ADO.Net is part of the .Net platform in order to be able to make a connection to databases and manipulate data. Here's a good introduction written in C# language, for those already familiar with C#.
ASP.Net is a langauge for making webpages that run on Microsoft Internet Information Server and that can interact with a database.
Assembly language is not easy to learn. In case you're a beginner, I recommend start learning a differtent programming language.
A computer processor or CPU (central processing unit) contains digital logic. Some of its basic components include registers (including an accumulator, stack pointer, program counter, instruction register), an arithmetic logic unit (ALU), an address and data buses, a control unit and an instruction or prefetch input queue. The 8086 processor from Intel is the processor that was being used on the first personal computers. Modern day personal computers still contain logic of the 8086 processor. The Space Shuttle also used the 8086 processor.
Assembly language is a human readable language that is used to give instructions to a processor. A processor however can't understand assembly language, so the instructions first have to be compiled to binary data (containing only 0 and 1 bits) that the processor can understand. An assembly compiler takes care of this conversion. Assembly language was invented in order to make it easier for humans to give instructions to a processor.
The 8086 emulator
The easiest way to learn assembly language is by installing a 8086 processor emulator on your computer. This piece of software gives insight into the inner working of the 8086 processor. You can write a piece of assembly language in this emulator an see what happens in the processor when you execute your program. On the site where you download the emulator also a good tutorial to learn assembly language and example assembly sourcecode is available. All free of charge. By the way, an emulator is not the same as a compiler. An emulator is more of a teaching / learning tool to help you better understand what happens when you execute an assembly program.
The 8086 compiler
Once you understand the basics of assembly language using the 8086 emulator, you should try using an assembler or assembly compiler. An assembler is a piece of software that compiles (or converts) the assembly instructions that you write in an assembly sourcefile into an executable program. This executable program can be run on your PC without using the the compiler or an emulator. By the way, an assembly sourcefile is just an ordinary textfile and it's common practice to give these sourcefiles the .asm filename extension instead of .txt.
Flat assembler is an open source (free) assembly language compiler for the 8086 based 32 en 64 bit processors.
Creating a setup
When you want to deliver your program to other people or computers, it is convenient to create a setup that will install your program easily. I have been using Inno Setup for a long time with great satisfaction. It is completely free, but it takes some time to learn. It comes with an excellent help file and example scripts.
Inno Setup Script Includes (ISSI) provide a library of functions that can be used for your Inno Setup scripts. When you like to have an integrated development environment voor Inno Setup, you can use ISTool or innoIDE.
For a general introduction into programming you can get started here:
Programming for children
http://www.khanacademy.org/cs/ (great for beginners, interactive and videos)
http://www.codecademy.com (interactive and fun)
Java, HTML5, JQuery, Flex, Scala, Web services, SOA, distibuted systems, software development