kramer733 said:
How should i go about learning how to be a software engineer? Since CS is basically a math degree, does it teach programming well? I'm kinda confused on how to approach software engineering. I start math/computer science joint major at fall 2011.
The scope of software engineering and computer science shares common threads, but they focus on different things.
Software engineers look at things like macro design (for example UML diagrams), project management, requirements analysis, and other engineering issues in the context of software design.
As bcrowell said above, CS is a math degree. I would call it an applied math degree because the theory that is taught whether its graphs, algorithms, compiler theory and so on, is used everywhere and is readily applicable in every kind of application.
Programming (at least effective programming) requires a mix of the above two plus any specific domain knowledge. If you have a software engineer design the project at a macro level, programmers are given freedom to design things at the micro level.
Programmers need to not only design and write the micro-level code, but they have to document their code, they need to write it in conjunction with specific standards so that others can read and follow what their code is doing, and on top of this create code that is optimal and flexible in accordance with the design decisions from the architect(s) and lead engineers.
If you want to learn how to program, my advice is to get a few open source projects ranging in complexity and focus of their design in a domain that appeals to you (for example 3D game engines, scientific libraries, math libraries and so on), and look at the code. Then start modifying code or creating your own code for your own code base. It's important that you end up writing unique code of your own and there is no substitute for doing so.
If you do the above, you'll get exposure to different styles, see coding and design that can range from horrible to brilliant, and use actual examples so that you can dive in and get your feet wet early.