Software engineers design and guide the development of programs that computers use to make life a little easier for the rest of us. Although self-taught programming skills can land you a job, formal education is the best way to achieve a job with more design responsibilities and higher pay.