Using SoftwareSerial to send data to itself
If you are hoping to see the results in the serial monitor, you need to read it in and send it back (so it ends up on the USB port). Like this:

#include &lt;SoftwareSerial.h&gt;
SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
  Serial.begin(4800);

  // starting the software serial
  mySerial.begin(4800);
}

void loop() {
  for (int i = 0; i &lt;= 10; i++) {
    delay(10);
    mySerial.println(i);

    while (Serial.available ())
      Serial.write (Serial.read ());
  }
}


Now you have to connect pin 11 to pin 0 (not pin 1) because that will now be the Serial Rx pin.

I think your method failed because with Serial active the Serial hardware was trying to drive pin 1 high (ie. idle) which was conflicting with the data from pin 11.



An alternative is to not do a Serial.begin() - which therefore does not initialize the serial hardware and it doesn't conflict any more. This also works:

#include &lt;SoftwareSerial.h&gt;
SoftwareSerial mySerial(10, 11); // RX, TX

void setup() {
  // starting the software serial
  mySerial.begin(4800);
}

void loop() {
  for (int i = 0; i &lt;= 10; i++) {
    delay(10);
    mySerial.println(i);
  }
}


Now you connect pin 11 to pin 1 as you originally wanted.



Notice I changed your mySerial.write(i); to mySerial.println(i); so you get correct data output (numbers, not control characters).