The booklist on the OpenBSD site is very good.
I was concerned that a few items were "old", but that is just not relevant.
An excellent grasp of C is going to be necessary.
It takes a long time to get "good" at programming.
I have seen the phrase "For good code examples, just look at OpenBSD
source" many times.
But that advice is a bit vague, sort of like "For a good book to read,
go to the library".
Since I am trying to pick up C myself, I decided that using a
"historical approach" might be best for me. So I am going to concentrate
on studying basic and old but still very useful utilities such as sed,
ed etc.
You will need to study in detail work that has already been done.
I doubt that you will find many good books on reverse engineering, but
you ought to be able to find the people who could but haven't written
those books
--
A human being should be able to change a diaper, plan an invasion,
butcher a hog, conn a ship, design a building, write a sonnet, balance
accounts, build a wall, set a bone, comfort the dying, take orders,
give orders, cooperate, act alone, solve equations, analyze a new
problem, pitch manure, program a computer, cook a tasty meal, fight
efficiently, die gallantly. Specialization is for insects.
-- Robert Heinlein