One thing that my team has been using to teach new programmers has been
Robocode. Robocode is a game where you design your own virtual 2D robot, and battle against other robots. We have had weekly competitions for our programmers to compete with each other in. That's the first thing I'd recommend.
The second thing I would recommend would be showing videos on Git, Java, OOP, etc. Shorter videos that would be educational. Often times the senior programmer isn't very good at explaining programming in an engaging way, but is far better at answering questions. That's the style of teaching I think you should follow.