请问一下,走白盒测试方向,需要具备哪些能力及知识

目前情况:
1、只在理论层面上接触过白盒测试
2、java/python编程能力一般
3、能接触到项目代码

问题:
1、我改需要学哪方面的知识?相关的书籍或资料介绍?
2、如何通过项目代码进行实践?