Dismiss Notice
Join Physics Forums Today!
The friendliest, high quality science and math community on the planet! Everyone who loves science is here!

Questions about software engineer

  1. Jun 22, 2011 #1
    Does higher level mathematics like stochastics, analysis, topology apply to software engineering?

    Do software engineers even use statistics/probability?

    Can I be a software engineer with a computer science degree?

    My friend said to be a software engineer, you need a software engineer degree.

    Is there such things as a software engineer phd and masters?

    Is software engineering considered an engineering discipline? It's really different from other engineering disciplines.
  2. jcsd
  3. Jun 22, 2011 #2


    User Avatar
    Staff Emeritus
    Science Advisor
    Gold Member

    Schools may give degrees in computer science (CS), electrical engineering (EE), or sometimes EECS. A degree in CS is really a math degree; it's not highly focused on programming.

    No, that's wrong.


    "Software engineer" is not a well-defined profession with defined professional standards like "civil engineer" or "mechanical engineer." Some people reach very high levels in the profession without any formal education in the field at all, or with degrees in fields like math or physics. However, your chances of getting an interesting job with good pay involving creative work are better if you get a degree in something like CS or EE.
  4. Jun 22, 2011 #3
    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.
  5. Jun 22, 2011 #4


    User Avatar
    Science Advisor

    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.
  6. Jun 22, 2011 #5
    Once you have the foundations, programming becomes a matter of learning the syntax of different languages which you can easily do yourself by picking up a book on the language. The hard part is making a good design (and from my experience the even harder part is getting accurate customer requirements). It comes down to what exactly you plan on doing. If you want to be a developer and eventually team lead then development manager or architect then do software engineering, it will help a lot with the process side of things. If you want to get into things like AI research or use it as a stepping stone into finance or some such then do comp sci / maths.

    I was a software engineer with no degree at all (who now is getting out of IT in general but that's another story), however I would not recommend anyone doing it that way as it just meant I had to put in twice as much work to get to where I wanted to be.

    Edit: the advice above to get your feet wet is excellent, there is not a faster way to learn to code.
  7. Jun 22, 2011 #6
    Just curious about the other question but how much math do you get to use when you're a software engineer? What field involves programming, skills in computer science and mathematics?

    How does probability/statistics apply to software engineering?

    thanks for your responses.
  8. Jun 22, 2011 #7
    It depends on what you are working on. I worked in web apps, I can count on zero fingers the number of times I needed to use any remotely challenging mathematics - and that included some quite sizeable projects. To be any good though you do need to have an understanding of how to write efficient algorithms, how and when to use recursion, a rough idea of how databases actually work (for query optimisation) and the such.

    I imagine real time systems would be far more challenging where you would have to prove correctness and timing and memory management becomes critical. Or there is scientific computing or areas such as data mining which would require a far greater mathematical understanding.
  9. Jun 24, 2011 #8


    User Avatar
    Science Advisor

    It's domain dependent. Video games use a tonne of math: every kind of math you can think bar say the purest forms of math. But this is not the normal kind of application.
Share this great discussion with others via Reddit, Google+, Twitter, or Facebook