This process has been very fine-tuned over my last year of traveling. The first thing to know is that there are two different routes you can take, and for the better route, there are two different styles of traveling.
Best Method: Otay Mesa is literally across the fence from the TJ airport, so naturally, this makes travel time in Mexico less when crossing at Otay. The Otay Mesa Border Crossing is about 15 minutes East of the San Ysidro Border Crossing and Otay is “CONSIDERABLY” less crowded. If Otay Mesa is the way you choose to go (and it should be highly considered!) you’ll need to drive there on the USA side. You can take the 5 south or the 805 south till you hit the 905 east freeway. Go east for about 15 minutes and then you’ll want to park your car (On the USA Side!).
After you park, you should either take a shuttle to the border and walk across (free shuttle) or ask for the shuttle directly to the doors of the CBX Bridge (BEST METHOD!) Here is the reason WHY this is the best method: From parking the car and getting the Airport Shuttle and getting through Mexican Customs and the border and the airport, then through TSA and to your gate on AVERAGE takes me about 35 – 45 minutes!
If you chose to walk across (the second style), the time is slightly more (only the walking time is added) and you can grab a very conveniently awaiting WHITE colors cab right after passing through.
Take a bus from San Ysidro or even downtown San Diego, pass through the San Ysidro border crossing and then once in Mexico and past Mexcian customs, the bus will take you to the airport via a road in TJ that runs along the border (after going through Centro). This method is slower (by at least an hour or more), less predictable due to many traffic variables, and takes a toll on your excitement for travel – trust me. The Mexican airline I use called Volaris has a “Shuttle” to help their passengers – this shuttle is basically this bus. Keep in mind it is operated by greyhound and the Mexican affiliate Bus company – not by Volaris themselves. I’m not sure I will ever take this method again as it was just too long and with too many variables involved.