Getting Started Programming!
You found this document at www.devzoo.com
Contact us at firstname.lastname@example.org
So, you are a TOTAL NEWBIE and you’re proud of it. You want to learn a programming language. Perhaps you dream of creating your own software, maybe a massively multi-player online 3-D shooter RPG mega game.
Dreams like that are good because they motivate you to learn. You have to walk before you run, though, and you have to crawl before you walk. I think in order to learn programming you have to find joy in the act of programming itself and enjoy the learning process. Programming is an intellectual challenge, and it can be immensely addictive.
This document is broken into 5 steps…
Before you get started, it’s a good idea to learn a few terms. (Other terms will be defined throughout this document.)
“Code” (or “source code”) is the stuff that programmers actually write. Code is just text. Here’s some code (written in my favorite language, C) that prints “hello world!” to the screen:
Doesn’t it look complicated! It’s not complicated, but as computer experts we have to make sure it LOOKS complicated so that people who don’t know any better will pay us lots of money to write it. Neat system, isn’t it? Welcome to the club!
Here’s some code (written in another language, Visual Basic) that puts a message box on the screen that says “hello world!”
Sub SayHello( )
MsgBox “hello world!”
Code is always written in one programming language or another. A language is just a set of rules that dictate how you must write the code. For example, in languages like C, C++ and Java, curly braces have a particular meaning, whereas in languages like Visual Basic curly braces aren’t used and if you’d tried to use them it would result in an error.
In some versions of Windows this is called the “MS-DOS Prompt” and in other versions it’s called “Command Prompt”, but in any case you will find it in the Accessories folder on the Programs menu. (StartàProgramsàAccessories)
It is sometimes also referred to as the “command line”.
Most people don’t use the console very much these days. A few years ago (before Windows and Mac-OS dominated the scene) people only used the console. When you use the console you accomplish all your tasks just by typing things on the keyboard -- you don’t use the mouse.
GUI stands for Graphical User Interface. Some people pronounce it as “gee you eye”, and others as “gooey”.
Windows, the operating system you are using right now, is a GUI.
A GUI is just a fancy way for a computer to work with a human. Instead of working purely with boring text, you get to look at pretty pictures, 3-dimensional buttons, scroll bars, dialog boxes, etc.
GUIs are mostly meant to be used with the mouse.
If you want to start programming you’ll need to decide which language you want to learn first. There are tons of programming languages. Here are a few popular ones:
This list is not a list of the most popular or the best languages, but just the ones that happen to come to my mind as I write this.
SO… which language is right for you?
Many beginners like Visual Basic (VB) because it is an easy language to use. The syntax is relatively close to English, so you can often read the code and make sense of it even if you aren’t a programming expert. You can create certain kinds of programs rapidly in VB. If you want to make a windows application that acts as a front end to a database, VB is a good way to go.
If you want to start with VB you can go buy Microsoft vb.NET from the store for about $100. You should probably also buy a book, since right out of the box the product is a bit confusing without some aid.
You can also get a taste of VB by editing macros in Microsoft Word or one of the other applications in the Microsoft Office Suite (Excel, PowerPoint, Access). Included with MS Office is a program called the Visual Basic Editor (VBE), which lets you program in Visual Basic for Applications (VBA). VBA is very much the same as regular VB. Want to try some VBA programming right now? If you are reading this in Microsoft Word, try pressing ALT+F11. That opens the VBE. Then click InsertàModule up in the menu bar. A blank document will open in the main window. Copy and paste this code into the window:
Sub SayHello( )
MsgBox “hello world!”
Then click ViewàImmediate Window, which should open a window titled “Immediate” on the bottom of the screen. Click down there and type SayHello, then press the enter key. Watch what happens.
NOTE: unlike most other programming languages, VB is the creation of Microsoft, so you basically need to purchase a Microsoft product in order to use the language. Microsoft also sells products that allow you to program in C/C++, but they didn’t create C or C++, so you can find alternative tools on the Internet that are free or low-cost.
Computer science majors in college often learn C++ when they’re first getting started. It is not as easy as VB, but there are some things about it that make it an important language for a professional programmer to know. If you wanted to program your own game mod for Half-Life, C++ is a good way to go.
Often C and C++ are grouped together. You will see them written like this:
They are actually different languages. C++ is a superset of C, meaning that C++ is the same as C, plus more stuff. You do not need to learn C before learning C++. Makes it sound good, right? Some people think C++ is fantastic, but not everybody loves it.
Personally, I love C. It is a pure, simple, beautiful, powerful language. It’s faster than C++. It is the basis for several other important languages, including C++, C#, Perl and Java. Some people, including me, think that C++ is not better than C, it’s just more convoluted. I cannot deny, though, that the fact that C++ is object-oriented makes it far better for certain types of programming projects.
I recommend you start with C. Although you don’t need to learn C in order to learn C++, it certainly doesn’t hurt to have a good understanding of C. If you can master C then you’ll have a good foundation – a good understanding of general programming concepts (especially related to procedural programming).
The rest of this document assumes that you have selected C or C++ as your first language.
You need 2 tools in order to start programming: a compiler and a text editor. I’ll explain what those are, starting with editors:
A text editor is a program that
lets you do very basic word processing. Programmers use text editors to write
source code. Notepad and Wordpad are simple editors
which come with Windows. If you’ve never seen Notepad before, you can look at
it now by clicking StartàProgramsàAccessoriesàNotepad. Microsoft Word and
Programmers, however, often like to use special text editors that are designed specifically for the purpose of writing code. Imagine the program Notepad having the ability to automatically indent your code for you. That’s basically what a text editor is.
IDE stands for Integrated Development Environment.
An IDE contains tools which can help a programmer beyond text editing. An IDE is not the same thing as a compiler, but many IDEs can access your compiler for you, saving you the trouble of invoking the compiler from the command line.
You also need a compiler. Borland and Microsoft both sell C/C++ compilers that come bundled with IDEs. This is confusing for new programmers, who often think that the IDE is the compiler.
So, now you know what a text editor is. It’s what you use to write the code.
However, the text you’ve written doesn’t do anything. It just sits there and looks pretty. If you want it to actually do something, you have to compile the code.
A compiler is a program that looks at your code and turns it into machine language, which can then be read by your processor and executed. So a compiler is the tool that bridges the gap from pretty looking text to functional application.
Ok, enough talk. Let’s get started.
3a: You will need a good unzip utility. If you don’t already have one, go to www.info-zip.org and download the Info-Zip unzip program for free.
Or if you want something a little more user-friendly you can check out www.winzip.com and install the free evaluation version of WinZip.
3b: There are many C/C++ compilers out there – even many free ones. I recommend you use a compiler called MinGW (which stands for Minimalist GNU for Windows).
Go to www.mingw.org
Look on the home page for the latest release of the compiler. It will say something like this:
Latest MinGW Release: Version 1.1
Click on that link and download the release. Then open it and unzip it onto your hard-drive. I recommend you make the path something simple, like “C:\mingw\”.
3c: There are billions of free text editors on the Internet. My site (www.devzoo.com) started as an effort to catalog all those editors. It’s time for you to download one.
My favorite editor is SciTE. Go to this website:
Click on the link to download the current version. (It will say something like [DOWNLOAD 1.47])
Open the file and follow the instructions to install SciTE.
4a: It’s helpful to have a special folder where you can store all your code. Create a folder like “C:\code\” for this purpose.
4b: Open SciTE. It should open to a blank document. Type in the following code (make sure you make no mistakes):
Pay attention to details while typing code. You’ll have problems when you try to compile if you miss even a single semi-colon or curly brace.
Save this file in your “C:\code\” folder as “hello.c”.
Notice the .C extension at the end of the filename. This tells the compiler that the code is written in C.
4c: It’s time to compile the code. It’s good practice to learn to compile programs directly from the command line. It gives you a better understanding of how the compiler works.
Open a console window. (See the description of “console” under Step 0 at the top of this document for instructions on how to do that.)
Switch to your code folder by typing this:
(“cd” stands for Change Directory.)
Type “dir” if you want to see a list of all the files in this directory. You should see “hello.c” in the list.
To invoke the compiler, type the following:
gcc –luser32 hello.c –o hello.exe
“gcc” is the name of your compiler (it stands for GNU Compiler Collection). “-luser32” is a flag that tells gcc to link to Windows’ user32.dll, which is necessary for programs that run in the console. “hello.c” is of course the name of the file to compile. “-o hello.exe” tells gcc to the output file the name “hello.exe”, which will be an executable program.
4d: Assuming that all worked correctly, you’re ready to run the program.
That will run your program, “hello.exe”. You should see the words “hello world!” appear on the screen.
It is WAY beyond the scope of this document to try to teach you C or C++.
There are tons of free and low-cost tutorials on the web. Here’s one free tutorial:
Here’s a site that boasts you’ll learn C in just 5 hours:
I don’t endorse these tutorials. I haven’t looked at either of them in depth. You’ll have to judge them for yourself.
There is a list of tutorials at this site:
Of course you can also go buy a book. The best book on C is the one written by the inventors of the language. It’s called The C Programming Language by Kernighan & Ritchie. (C programmers often refer to this book as “K&R” after the authors’ names.) This book is brief and accurate, but it isn’t the most user-friendly for people who are brand new to programming.
As you search the shelves of Barnes & Nobles or browse the Web for C tutorials, I encourage you to use the guide that is the easiest to understand and the most fun to use. Though some books & tutorials may have minute technical errors in their descriptions of C – you’d be surprised how many of them do – the most important thing is that the book turns you on to the language. You’ll sort out the inaccuracies yourself as you grow in your programming expertise.