separate shader loading into something that doesn't make you want to gauge your eyes out
start using layout (GL_ARB_explicit_attrib_location) for vertex attributes