Start Here

Computers are so much fun

I’m not a great writer so I won’t be going into detail but here are some brief notes.  When I get more than a few minutes to think about this I’ll make it more interesting and engaging to read.  (I’ll also correct my grammar and spelling.)

Why?

I am writing this page because of my continuing interest in computer science and programming. I interview many people for jobs at the company where I work.  More often than not, they do not understand the big daddy language of computers, C++.  This is the computer language we use day-to-day and the language used, pretty much, to create all other languages.  The reason for this seems to be that, in general at modern British universities, they are being taught the basics of computer programming.  It would be helpful for these basics to have been learned before going to university.  It leaves little time to learn the more complicated issues.  More emphasis is required on Computer Science at schools to stop this delay in what our under-graduates know when they graduate.  Once in a job, no-one really has the time nor inclination to learn new things.

So you wanna be a boxer programmer….

Where to start as a computer programmer?  Age and experience are what counts here.  The younger you are, or the less experience you have with programs, the more likely you will need easy and simple languages.  I assume in this day and age, and the fact you are looking at this on a weblog, that you at least can use a keyboard, mouse and screen.

But first: have you got what it takes to think like a computer programmer?

Computers

For an introduction to computers, a good start is the Royal Institution’s Christmas Lecture in 2008.  Prof. Chris Bishop spoke about the ‘Hi-tech Trek‘ and gives a good insight into what a computer can do for us. NOTE: There are 5 lectures.

Computers process data but in order to do that they need instructions.  Programming is how you instruct the machine to manipulate data.  Other bits of hardware will get data into the machine and get data out again, although the computer will be controlling those bits of hardware too.

The commands come in many, many different forms because each central processing unit (CPU) is made by different manufacturers.  To make things easy, computer scientists have devised languages which convert something more readable into these CPU commands.  So it does not matter which computer you have, any language you learn will work on every computer.  This fact is so true, that Alan Turing proved that you could make a computer out of a some tape, something to read and write from the tape and it would do everything that your latest MacBook Pro could do: just really slowly!

Languages

Why so many languages?  In the same way as CPU’s are created by different manufacturers for different purposes, different languages are created by software engineers for different purposes.  Luckily, one of those purposes has been to make it easy to get a computer to do what you want.  (I won’t list all the languages, you can use your favourite search engine for that.)  These easier languages aren’t as powerful as their professional counterparts but that isn’t their purpose.

Here is my list of languages that you should learn, in order, if you have never had any experience of programmer.  My aim of this list is to suggest languages that would ultimately lead you to become a programmer at a very professional level (C++/Java).  Also take a look at these 5 Tools to Introduce Programming to Kids.

Scratch : teaches you the fundamentals of commanding a computer but in a drag and drop interface   (Alternative: LEGO Mindstorms NXT, Alice, Hackety Hack)

Processing.org : get away from that drag and drop and start typing.  This is what programming is all about.  TYPING!  Depending on your interests, this language will lead you to programming robots! (Alternative: YouSRC, BASIC, Python, Arduino) (note: YouSRC is more of an education language but is pretty good at engaging young people quickly)

Javascript :  this is a language that you can use to actually create software which anyone can view.  Processing.org can be made to generate this code (ProcessingJs.org)  (Alternative : PHP, Perl)   (note: Javascript as nothing to do with Java, but at the time it was released the developers thought that using the word Java in the name would give it more strength)

Java : this is a full language and used all around the internet and in your mobile phones.  It was created to solve some of the issues with security that C/C++ experienced.

C# : a very recent language that adopts the syntax of the older language C++ and techniques from Java.  Once you’ve been through the other languages you will find C# extremely powerful and easy to learn.  It’s a great language for developing tools for Microsoft Windows.  C# was developed primarily by Microsoft and used a software library called Microsoft.NET .  As you can imagine, this doesn’t work on Mac OS X or on Linux.  However, a project called ‘Mono’ has been addressing this issue for some years so you can develop using C# on non-Windows computers.

Doing it Online

So you want to jumpinto programming right now? Luckily, this is the 21st Century and it is possible to develop software remotely without ever installing anything to your computer.  Once you’re hooked on programming you can install a software development kit (SDK) and write software that can be installed and executed on other computers.

Here are some online facilities for learning programming:

Processing.org : http://sketchpad.cc/

Javascript : http://code.google.com/apis/ajax/playground/

[also see  http://www.canvasdemos.com/type/tutorials/, http://diveintohtml5.org/ , http://theingots.org/community/LinkPuzzles  ]

Java : http://compilr.com/

C# : http://compilr.com/

Others: http://www.yousrc.com/

Doing it Offline

….[notes to come]…

A word about C++

This is a hardcore language and has pretty much become the replacement for C.  One you’ve understood Java or C# you will be ready to start installing a compiler, SDK, and IDE, and developing code locally to your own machine.  All other languages will have been created in C and C++ (C++ was created with C,  C is now the granddaddy of all modern languages).  I don’t have the facts but I’d say pretty much every device you have will have used C or C++ to write the software on it.  If you want to learn why C++ is so powerful, you’ll have to take a good computer science degree.  If you want to program robots and/or video games; you going to need to learn C++ and by virtue of that, C.

A word about Visual Basic (VB)

STOP

Just don’t use Visual Basic… it is not going to make you any friends in the robot and gaming community.

END OF LINE


http://www.mono-project.com/Main_Page

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s