When asked about rookies getting so much playing time when the San Francisco 49ers played the Dallas Cowboys in the season opener, head coach Jim Harbaugh said that he didn't need to "teach puppies to bite." That certainly seemed to be the case, as a total of seven rookies contributed in the game and multiple rookies played very well, in my opinion.

Each week, we're going to take a look at those rookies and how they performed. Next week, I plan to prepare with gifs and such, but this week I'm going to paint it in broad strokes and keep it basic. We'll talk about each of them below:

Jimmie Ward

Ward, a first-round pick, is the starter at the nickel cornerback spot. He started the game from that spot and when both Tramaine Brock and Chris Culliver sustained injuries, Ward stayed there while Perrish Cox and Dontae Johnson, another rookie, moved up. I think that was a smart move, and a great way to give Ward consistency he needs as a rookie looking at serious playing time.

Ward played in 67 percent of the 49ers' defensive snaps at the nickel spot. I didn't have any complains with the way he played, truth be told. He was flagged for a bogus illegal contact penalty and he did miss a tackle in pretty bad fashion at one point, but he was solid in coverage against a good offense.

Carlos Hyde

We already talked a lot about Carlos Hyde. I don't honestly feel there's much more to say. He came in as Frank Gore's backup and he looked really cut. He made impressive cuts, he had more burst at the line than I think any of us anticipated and he ran the ball well. Hyde finished with seven carries for 50 yards and a touchdown. That's a per-carry average of 7.1 yards.

Bruce Ellington

Ellington had a quiet game. He officially had one punt return for 13 yards and there's not a whole lot else to say. With LaMichael James out of the way, Ellington will maintain that role. He didn't screw up and he looked pretty agile out there -- not much else to say.

Aaron Lynch

Aaron Lynch is looking like a better and better pickup every day. Lynch got more playing time than I expected, with 20 snaps and he looked solid on quite a few of them. Lynch notably generated pressure on the Tony Romo interception to Patrick Willis, and there were at least two instances where he was held bad and would have made a tackle for loss otherwise. He also got a tipped pass. He could very quickly earn more playing time as a pass-rusher.

Chris Borland

Borland didn't see a snap on defense, as expected, but he did play special teams. He played 16 special teams snaps and he looked solid. He made a big tackle to start the game and didn't screw up. I didn't see him make any explosive plays like we're used to out of the core special teamers but he has plenty of time.

Dontae Johnson

This was a surprise. Both Chris Culliver and Tramaine Brock were lost to injury, so Johnson took over one of the starting spots and played in 45 defensive snaps in addition to 10 special teams snaps. I thought he had a great game, at least initially. The 49ers played him close to the receivers early on in the game and he found success against them in that role. It was when the defense started playing back as a whole that Johnson got burned on a big play and then on a touchdown. It's safe to say he's a better man corner than a zone corner at this point. He broke up multiple passes and I'm excited to see what else he can bring to the table.

L.J. McCray

L.J. McCray was one of the surprises on the 53-man roster, but he played very well in the preseason and came much, much cheaper than the other special teamers. He wound up playing in 16 special teams snaps and looked solid as well. I plan on paying more attention to these special teamers next time around, but I didn't see anything from McCray that had me worried.