My school had a two year course on programming in C\C++; fairly basic, being an introduction to programming itself. At that time, I didn't own a computer, and to use the computers in the lab you needed to wait an extra hour and arrange for your own transportation (the normal hours had buses). You could also use some time off your lunch breaks, but that wasn't clearly enough for trial and error. So I got into the habit of writing programs on paper first, walking through them with arbitrary values assigned to variables, and entering it during my lunch break, hoping for a very small number of errors which I could hopefully fix on the spot.
I think that practice heavily and positively influenced how I code and read other people's codes.
I think that practice heavily and positively influenced how I code and read other people's codes.