What today's software developers need to know