text: There are two basic skills needed to create software.\n\n1) Knowledge of the platform and tools to develop and test the code\n\n2) Knowledge of the subject matter the application deals with.\n\nThis is true if you are writing an Accounting package on an IBM mainframe, a game for a PS2, or a utlity for MS Windows.\n\nIf we are talking high school, Geometry (specifically proofs) is a good yardstick to measure your ability to follow a process flow (1 above).  Also, most schools offer "Business Computer Programming" which is better for those wanting to write business applications (1 and 2 above), and "Computer Science" for those wanting to go the technical/scientific/mathemetical route.  In college, look in the Business Administration department if you want to write business apps (1 and 2 above), and check out Computer Science for other things (1 above).\n\nThe standard Sciences (Bioology, Physics, Chemistry, etc) are important in you are going to write applications in those areas (the part 2 above).  Also, if you want to write Engineering applications, get heavy into Physics and Math.