well, one thing that helped me to learn a lot and to improve my programming and UNIX skills was hackerslab.org wargame because i became more conscient about some vulgar programming errors that programmers do as well as many other things related to security, but you have to read a lot and try a lot but it's good to have a goal to achieve especially in the beginning.

I hope this help,
Bug_