A Guide to Programming for Responsive Design