Questions about software engineer

In summary, software engineering involves the use of higher level mathematics such as stochastics, analysis, and topology. However, the extent to which these are used depends on the specific job or project. Probability and statistics are also relevant in software engineering, particularly in fields such as data mining or scientific computing. While a degree in computer science is not necessary to become a software engineer, it can provide valuable knowledge and skills in programming and project management. Ultimately, gaining hands-on experience and working on various projects is the best way to learn and improve as a software engineer.
  • #1
kramer733
323
0
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.
 
Physics news on Phys.org
  • #2
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.

kramer733 said:
My friend said to be a software engineer, you need a software engineer degree.
No, that's wrong.

kramer733 said:
Can I be a software engineer with a computer science degree?
Yes.

"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.
 
  • #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.
 
  • #4
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.
 
  • #5
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.

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.
 
  • #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.
 
  • #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.
 
  • #8
kramer733 said:
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.

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.
 

Related to Questions about software engineer

1. What is a software engineer?

A software engineer is a professional who designs, develops, and maintains computer software. They use their knowledge of programming languages, algorithms, and data structures to create software that meets specific requirements.

2. What skills do I need to become a software engineer?

To become a software engineer, you will need strong problem-solving skills, knowledge of programming languages, and experience with software development tools and techniques. You should also have a good understanding of computer science principles and be able to work well in a team.

3. How much do software engineers make?

The salary of a software engineer can vary depending on factors such as experience, location, and industry. According to the Bureau of Labor Statistics, the median annual wage for software developers was $107,510 in May 2019.

4. What is the difference between a software engineer and a software developer?

While the terms are often used interchangeably, there is a subtle difference between a software engineer and a software developer. A software engineer typically focuses on the design and development of software systems, while a software developer may have a broader role that includes coding, testing, and maintenance.

5. What are the common programming languages used by software engineers?

There are many programming languages used by software engineers, but some of the most common ones include Java, Python, C++, and JavaScript. The choice of language often depends on the project requirements and personal preferences of the software engineer.

Similar threads

  • STEM Career Guidance
Replies
2
Views
246
  • STEM Career Guidance
Replies
1
Views
2K
Replies
3
Views
340
  • STEM Career Guidance
Replies
19
Views
3K
Replies
13
Views
2K
  • STEM Career Guidance
Replies
5
Views
1K
  • STEM Career Guidance
Replies
19
Views
3K
  • STEM Career Guidance
Replies
2
Views
1K
  • STEM Career Guidance
Replies
21
Views
964
  • STEM Career Guidance
Replies
6
Views
2K
Back
Top