user-1: Can I program an Arduino and then remove the micro-controller from it and use it on a breadboard without reprogramming the micro-controller again?
My steps would be:

create my Arduino code.
I upload the compiled code to the board.
I remove the Ic and use it alone without the whole board.

Will the code be preserved on the microcontroller?

user60381: As code is stored in the flash memory, your code won't erase until some unexpected happens. But the question might comes in whether your code will work properly or not when you remove microcontroller from arduino board and connect with breadboard.
As you are planning to remove the microcontroller, I am guessing you are using Arduino Uno atmega328 DIP package.
You need to do two things for the proper function of the microcontroller in the breadboard. There are other solutions exist. I always prefer this one as easy.

connect 16MHz crystal with 22p(two) capacitor with the corresponding crystal pin(pin 9 &10). The crystal circuit is straightforward. Searching google might help.
Pull the Reset Pin with VCC using a 10k resistor.


user16591: Yes you can do it (as said by Tarick).
Note about clock:
Be sure to program it correctly:

Do not add a bootloader if you don't need one
Do not use an external oscillator if you don't have one on your new board! This is important, since if you remove it you will not be able to start or programming it again! 

So, before you remove the IC, set this on your Arduino (I assume it is an ATMega328):

8MHz internal (leave external only if you have an oscillator in the new board!)
Bootloader: no

You will see that you do not have this options if you select a normal Arduino, since it already has an oscillator. 
So you should use the board manager and add this:
https://github.com/MCUdude/MiniCore

user56652: Yes. The programming of the arduino microcontroller sets the values inside the FLASH. This is non volatile memory and as such won't be erased by taking out the IC.
Please note that this is assuming a DIP package IC as these can be removed without force, heat and stress. A TQFP, and SMT packages like that, IC might get damaged by moving them in such a way. This doesn't mean it has to be erased, it is still non volatile storage, but the moving process is much more dangerous for the chip.
I would recommend connecting the whole arduino or if you really need the whole chip: designing your own board/circuit which allows you to program the chip without moving it around as this is really tedious and not worth the effort. Also moving the chip around is a ESD hazard.
Also please note that you'll need to add a clock source for the chip to work (most of the time). Or you'll need to enable an internal PLL. It will in any case require more effort on your part to make sure that the MCU can work. Therefore using the whole arduino board is preferable.

-1: <p>Can I program an Arduino and then remove the micro-controller from it and use it on a breadboard without reprogramming the micro-controller again?</p>

<p>My steps would be:</p>

<ol>
<li>create my Arduino code.</li>
<li>I upload the compiled code to the board.</li>
<li>I remove the Ic and use it alone without the whole board.</li>
</ol>

<p>Will the code be preserved on the microcontroller?</p>
 60381: <p>As code is stored in the flash memory, your code won't erase until some unexpected happens. But the question might comes in whether your code will work properly or not when you remove microcontroller from arduino board and connect with breadboard.</p>

<p>As you are planning to remove the microcontroller, I am guessing you are using Arduino Uno atmega328 DIP package.</p>

<p>You need to do two things for the proper function of the microcontroller in the breadboard. There are other solutions exist. I always prefer this one as easy.</p>

<ol>
<li>connect 16MHz crystal with 22p(two) capacitor with the corresponding crystal pin(pin 9 &amp;10). The crystal circuit is straightforward. Searching google might help.</li>
<li>Pull the Reset Pin with VCC using a 10k resistor.</li>
</ol>
 16591: <p>Yes you can do it (as said by Tarick).</p>

<h2>Note about clock:</h2>

<p>Be sure to program it correctly:</p>

<ul>
<li>Do not add a bootloader if you don't need one</li>
<li>Do not use an external oscillator if you don't have one on your new board! This is important, since if you remove it you will not be able to start or programming it again! </li>
</ul>

<p>So, before you remove the IC, set this on your Arduino (I assume it is an ATMega328):</p>

<ul>
<li>8MHz internal (leave external only if you have an oscillator in the new board!)</li>
<li>Bootloader: no</li>
</ul>

<p>You will see that you do not have this options if you select a normal Arduino, since it already has an oscillator. </p>

<p>So you should use the board manager and add this:
<a href="https://github.com/MCUdude/MiniCore" rel="nofollow noreferrer">https://github.com/MCUdude/MiniCore</a></p>
 56652: <p>Yes. The programming of the arduino microcontroller sets the values inside the <a href="https://en.wikipedia.org/wiki/Flash_memory" rel="nofollow noreferrer">FLASH</a>. This is <a href="https://en.wikipedia.org/wiki/Non-volatile_memory" rel="nofollow noreferrer">non volatile memory</a> and as such won't be erased by taking out the IC.</p>

<p>Please note that this is assuming a <a href="https://en.wikipedia.org/wiki/Dual_in-line_package" rel="nofollow noreferrer">DIP package</a> IC as these can be removed without force, heat and stress. A <a href="https://en.wikipedia.org/wiki/Quad_Flat_Package" rel="nofollow noreferrer">TQFP</a>, and <a href="https://en.wikipedia.org/wiki/Surface-mount_technology#/media/File:Photo-SMDchips.jpg" rel="nofollow noreferrer">SMT packages</a> like that, IC might get damaged by moving them in such a way. This doesn't mean it has to be erased, it is still non volatile storage, but the moving process is much more dangerous for the chip.</p>

<p>I would recommend connecting the whole arduino or if you really need the whole chip: designing your own board/circuit which allows you to program the chip without moving it around as this is really tedious and not worth the effort. Also moving the chip around is a <a href="https://en.wikipedia.org/wiki/Electrostatic_discharge" rel="nofollow noreferrer">ESD hazard</a>.</p>

<p>Also please note that you'll need to add a clock source for the chip to work (most of the time). Or you'll need to enable an internal PLL. It will in any case require more effort on your part to make sure that the MCU can work. Therefore using the whole arduino board is preferable.</p>
