If you think of computer programming to be a tree, then application development, system programming and software testing are its 3 main branches. Each one of these branches has a number of smaller sub-branches. For example, game designing, computer animation, website designing, etc., are sub-branches, belonging to the main branch of application development.