Algorithm Development is creating algorithms or tailoring existing algorithms for specific applications. Algorithm development makes use of problem-solving concepts such as problem decomposition, stepwise refinement, and analysis of algorithms. A skilled individual understands data structures and their effective use in the problem solving process, as well as various problem-solving strategies and fundamental algorithms. These skills are essential in every area of computing. Software Engineering and Methodology.
Software development is mush more than just writing programs.
Formal methodologies have evolved to help ensure that programs are reliable, maintainable, and do what they are supposed to do. From the beginning to the end of a product's life cycle, it is planned, designed, measured, documented, and validated. Any good programmer heeds these skills to a degree. If you specialize in this area, you can make a career as a software engineer. If you understand a little about the hardware, you'll do a better job of building the software.