One of the best programming lessons I've learned was actually an attempt I made to learn something about design. Typography (which deals quite a lot with the presentation of information hierarchies) is an essential skill in making code actually readable. It gives you a framework for thinking about how to draw a readers attention to the places you want and how to signal that it is important. Which you can do even with tabs and plain-text.