learning system software development