Ok I see once the bootloader in on in order to download a sketch one needs to remove the current atmegae from the dev board but the obvious problem is the arduino uno smd can't do that due to the smd instead of dip.

So is it possible to use the aruino uno smd board to program a sketch on an external atmega?

You can also wire up the DIP ATmega on a breadboard or similar. Add the minimal periphery, i.e. a 16 MHz Quartz with load capacitors, and (!) a reset switch. The latter is important because you cannot rely on auto-reset with this setup, as you will soon see. Tie the Arduino's reset pin to ground and connect D0 to ATmega pin 2 and D1 to pin 3. Ground to ground, VCC to VCC, of course. When you upload the sketch, hit the reset switch (pin 1 to ground) on the target board as soon as you see the binary size in the Arduino IDE. Uploading should happen as if uploading to the Arduino, but instead going to the standalone.