When you think of software engineering, programming commonly comes to mind, but coding is actually just a small part of what software engineers are responsible for on a day-to-day basis. Professionals in this field rely on a comprehensive knowledge of computer science to develop software and are often working on product requirements, design, testing, documentation, security, and the maintenance of software.