Depends what pic and what you want to do with it.
You can program in assembler, C or basic (and probably a bunch of others)
Generally the program is written on a PC and downloaded through a serial port but it varies.
Each family of pics will come with it's own development enviroment
Ussually a simple commandline compiler/linker ( gcc for some of the more advanced ones) and maybe a simple ide.
They generally use a version of C and will supply a C std library. This may have some functions missing, eg printf() and file io. It will also have extra functions to access IO pins and the ADC etc.
You compile the program and then download it into the pic with the supplied tool, either directly into the PIC if it has a serial port or sometimes by putting the chip in a special socket programmer.
The basic stamp is a popular pic that can be programmed in basic.
You should probably start with a development kitthat will include a sample board, software and a manual, there are lots of these available very cheaply sincethey are used in lots of school/college electronics classes.
You should also look at the 'atel AVR' it seems to have a very big hobby following http://www.avrfreaks.net/. I don't know any particular suppliers to recommend in your country.
I get all of my components from Communica. I have baught a development kit and some PIC's but struggles to program it. It is connected to the PC via a serialcable. I just can't find any info on writing a program that works. I'm trying to use different languages and find the easeist and fastest way to write a program.
Wat is your preffered language?
I want to start with an easy language and wants to learn to use it propperly.
Is assembler,C,C++,or BASIC the easiest one to start with or are there easeir ones?
Please let me know! I want to use it to program PIC,etc. I'm wery eager to start programming them.
Assembler would give you a better understanding of how computers implement programs, but it's not necessary, and as a learning tool, should only be used for very small projects.
Since C is a sub-set of C++, it would be easier to learn, provided you're doing simple things like console programs or very simple Windows programs. Again you'd be more exposed to how windows programs work with C as opposed to C++.
In C, your code includes a message handling loop, and you handle the few message types your program will deal with, and pass the other messages onto a default handler. In C++, the message handling loop is handled outside of your program (it's handled by the C++ library), and there is a class that includes functions for all the message types, and your program includes a sub-class that "overrides" the message types your program will deal with. Message types include things like button clicks, keystrokes, or movement of the mouse pointer into and out of regions on a screen.
C and C++ are generally taught as beginning languages in today's universities, but they are not very good languages for that purpose, in my opinion.
BASIC is a much higher level language, and allows you to concentrate more on the actual mechanics and logic of programming, rather than the language peculiarities and syntax.
QuickBasic was really the first language I ever learned, and still a great language in my opinion, but being 16 bit, it is extremely outdated. I would recommend http://www.freebasic.net/" [Broken], which is nearly 100% compatible. Unfortunately, it is not very well-known like Qbasic was and Visual Basic is, so you are not going to be able to talk to many other FreeBasic programmers or get support from a large community like you would with C, C++, or Visual Basic.
Ultimately, you will probably want to learn C++ if you are serious about programming, so maybe it is better to learn it from the beginning; however, if you want to concentrate on learning to program (and learn the difficult peculiarities of C later), then I would recommend a high level language like FreeBasic.
It is much more important to understand programing controls and algorithms. Once you understand how to program, you can learn the syntax of any computer language and apply it.
I had to program a PIC last fall in an electronics course, having never programmed in assembly, I picked it up fairly quickly. I also got a better appreciation for my brother in laws job since he writes assembly for embedded programming everyday.