books listed at: https://en.wikipedia.org/wiki/Edsger_W._Dijkstra#Selected_pu...
1) A Method of Programming.
2) A Discipline of Programming.
Browse the EWDs and read those whose titles interest you. My favourites are those dealing with Program Correctness and Languages.
Note that understanding Dijkstra can be hard; so don't be discouraged if you don't "get" something at the first read.
On the cruelty of really teaching computer science: https://www.cs.utexas.edu/users/EWD/ewd10xx/EWD1036.PDF
How do we tell truths that might hurt?: https://www.cs.virginia.edu/~evans/cs655/readings/ewd498.htm...
The humble programmer: https://www.cs.utexas.edu/~EWD/transcriptions/EWD03xx/EWD340...
The notational conventions I adopted and why: https://www.cs.utexas.edu/users/EWD/ewd13xx/EWD1300.PDF
The Mathematical Divide: https://www.cs.utexas.edu/users/EWD/ewd12xx/EWD1268.PDF
Why American Computing Science seems incurable: https://www.cs.utexas.edu/users/EWD/ewd12xx/EWD1209.PDF