Kim attended Shinil High School in Seoul, South Korea. In September 2005, he competed for the South Korea national junior team, that was runner-up at the 6th Asian Junior Baseball Championship in Seoul, South Korea. At the championship, he went 1-for-4 as a backup outfielder in the South Korean roster.
In November 2005, Kim won the Lee Young-Min Award, given annually to the most outstanding high school hitter in South Korea.
Upon graduation from high school, Kim made himself eligible for the 2006 KBO Draft, but went undrafted. Instead, he was signed by the Doosan Bears as an undrafted free agent. He spent the whole 2006 season playing for the reserve team of the Bears.
In the 2007 season, Kim took over the starting job after starting outfielder Yoo Jae-Woong was sidelined with a sprained ankle in the beginning of the season. Kim hit .273 with 5 home runs and 32 runs batted in in 99 games, and finished runner-up for Rookie of the Year.
In the 2008 KBO season, Kim won the batting title with an average of .357 and was first in hits with 168. He finished runner-up in MVP voting and won the Golden Glove Award as an outfielder.