Introduction to programming

Previous words:

In this course you will learn the basics of programming. The objective is that you can make your own programs and understand the foundations. It will be focused on Java. Why java? Because:

  • C/C++ require external libraries for almost everything that isn’t covered in the basic libraries (Maths und IO) and also you need to take care of the memory.

  • C# works only in Windows. Forget Mac or Linux (What I mean with this is: If you use a .NET library you can only compile and debug on windows, and if you aren’t using it c# is almost the same as Java. Therefore, I find better teaching Java, and when you want to use c# you will see that there are only a pair of changes and that you will use .Net and not the Java classes).

  • Visual Basic has the same .Net problem as C#.

  • Xcode/Objective C: Only for Mac and iOS.

  • Python, Ruby, Lua, Ada, Perl, PHP, Javascript… These languages are specific for a problem and no so generic as Java. I mean: Some are for scripting, other are for web solutions, other are for real-time solutions… Maybe Python is more generic, but it’s not an industry standard like Java.

  • Java: Here your software will run the same in Windows, Mac or Linux. Its generic enough to make client applications, web applications, the Android Apps are developed in Java with a few differences, and when you need an specific class, its almost always included in the SDK (except some special classes like Java3D)

Inside Java you can use the IDE you prefer (notebloc, Eclipse or whatever). But I like Netbeans because it’s the “official” and I find it more stable as Eclipse (the other great Java IDE). But my tip is: You should try both and learn how to make at least the basics in everyone because you don’t know which one will you use in a specific project, and after that you will usually use the one you find better.

You can download Java and Netbeans here:
http://www.oracle.com/technetwork/es/java/javase/downloads/index.html

If you want another, Google it.

Giving orders to machines

There are a lot of formal definitions for programming, but the simple one that I will give you is:

-The objective is to give orders to a machine/computer to make it do something

That’s everything. If you read some source code you’ll find that everything is an order after another order:

  • Do this

  • Check that

This is the simplest explanation. The computer will try to do those orders as fast as possible. And that’s what makes programs work.

Let me give you another example: In a videogame you think that you are looking some character doing something, but in reality the machine is checking what keys are you pressing, then places the character in the environment, updates that environment and the other characters based on the previous state, and then it makes a camera render everything. And it does it usually between 30-60 times pro-second.

And with this we are finished with the introduction. In the next post we will see how to make your first program, the functions, variables and other foundations.

Until then.

Leave a Reply