SANTA CLARA, Calif. -- A breakdown of the San Francisco 49ers' 2017 draft class and its progress after two weeks of training camp:

Solomon Thomas, DL, first round (No. 3 overall): After missing the offseason program because of an archaic NFL rule, Thomas is starting to make up ground in his pursuit of a starting job at defensive end. Tank Carradine has been with the No. 1 defense for most of camp, but Thomas has started to catch up recently and is getting reps with the first team as a defensive tackle in sub-packages. The Niners and Carradine are making him earn it, but it wouldn't be a surprise if Thomas is heavily involved by Week 1 against Carolina.

Reuben Foster, LB, first round (No. 31): Foster's wait for a starting job has taken less time, largely because of an injury to Malcolm Smith, who was placed on injured reserve with a torn pectoral muscle. Foster is splitting reps on the starting defense with Ray-Ray Armstrong at weakside linebacker. The Niners insist it's a competition, but Foster is the clear favorite to win the job as long as a recent ankle issue doesn't turn serious.

Ahkello Witherspoon, CB, third round (No. 66): It has been a rough start for Witherspoon, who has twice been on the wrong end of a collision with a Niners skill-position player while trying to prevent a touchdown. He has shown signs of progress recently, recording a couple of pass breakups and his first interception in team drills last Wednesday. The preseason will be important for Witherspoon to work on his tackling and prove he can be physical enough to get on the field. For now, he's a work in progress, and it looks like it's going to take some time before he can contribute.

Create or join a league today >>

Cheat Sheet Central >>

C.J. Beathard, QB, third round (No. 104): Beathard has steadily improved during camp and earned his way into a battle with Matt Barkley for the No. 2 quarterback job behind starter Brian Hoyer. Beathard is already comfortable with the offense from a mental perspective, but still has to be more consistent. Barkley's struggles have left the door open for Beathard, though, and that's a competition that figures to last through the exhibition season.

Joe Williams, RB, fourth round (No. 121): By his own admission, Williams reported to camp unprepared for the rigors of the day-to-day NFL grind. While he has begun to find a rhythm recently, it still looks like he won't play much of a role right away. Carlos Hyde has a solid grip on the starting job, with veteran Tim Hightower looking the part of the primary backup. For now, Williams is battling the likes of Matt Breida and Kapri Bibbs for whatever playing time might be left over.

George Kittle, TE, fifth round (No. 146): A couple of injury hiccups, including a recent hamstring issue, have slowed Kittle's roll toward a potential starting job. But there's no doubt the 49ers have big plans for Kittle, and even if he's not on the field for the first play of games, he has the look of a rookie ready to play a starter's snaps. His ability to block and create separation as a route runner makes him the biggest lock at a position with a lot of question marks.

Trent Taylor, WR, fifth round (No. 177): Taylor has been one of the team's most consistent performers in camp, regularly making multiple catches during practice. His route running is precise and he has shown a better-than-expected ability to make acrobatic catches, especially along the sideline. Taylor is purely a slot receiver at this point, and it's unlikely he will surpass Jeremy Kerley in that role right away. But he looks like a sure thing to make the roster, and it wouldn't be surprising if he works his way into an expanded role later this season. Taylor also offers value as a punt returner.

D.J. Jones, DT, sixth round (No. 198): Perhaps the most underrated of the Niners' 2017 draft picks, Jones' brute strength has been on display every day, especially in one-on-one drills. Jones is third string at nose tackle for now, but he's pushing veteran Quinton Dial for a job and it wouldn't be a surprise if he lands a roster spot.

Pita Taumoepenu, DE, sixth round (No. 202): Taumoepenu has shown some versatility in going back and forth between LEO defensive end and SAM linebacker, but he hasn't been especially noticeable otherwise. There's a lot of competition at both positions, and Taumoepenu will need to have a big preseason to make the 53-man roster. More likely, he's a good candidate for the practice squad.

Adrian Colbert, CB, seventh round (No. 229): A recent ankle injury put Colbert on the sideline -- a disappointing development in what was already shaping up to be a steep climb to a roster spot. Before the injury, Colbert was getting snaps at corner and safety, and that versatility will help his cause. But nothing will help him more than performing well on special teams, where he appears to have some upside as a gunner. He needs to get back on the field soon in order to really battle for a spot on the roster.