What does a software engineer do?

What distinguishes a good Software Engineer from a good Programmer? What are some tips to learn to become a good Software Engineer?

  • I think Good Software Engineer -> Good Programmer. Is the converse true as well? Can you be a Good Software Engineer even if you are an "average" Programmer?

  • Answer:

    The answers to this question will all depend entirely on how the answerer defines the terms "good programmer" and "good software engineer."  So, the answers are likely to vary, because those terms mean different things to different people. So, the answers tell you more about the people who answer the question than they tell you about the concepts of engineer and programmer. Sort of like a  Rorschach test. :-) I think that being a good programmer means that a person is good at programming - good at the art of making computers to do what the programmer wants the computer to do.  I think that being a good software engineer means that a person is good at designing software - deciding what the software should do, and how it will do it (to a high level of detail), and working with teammates, partner teams, and stakeholders to get agreement on whose software is going to be responsible for what, and when, and how it will be tested, and how it will be monitored. In theory, one person could work alone and do great software engineering, but in practice, software engineering is usually a team effort. So, doing good engineering generally means working as part of a team, and working with other teams. All of that said, some answers your questions... Most good engineers are also good programmers, and vice-versa, because  in order to be good at either one, you need to be intimately familiar  with how software works. But a person could be great at programming and terrible at working with other people, and that would make it real challenge for such a person to become great at software engineering. There's only so much you can do on your own, unless you've got truly heroic talent and lots of free time. Or a person could be great at translating vague ideas into actionable designs and plans, and getting buy-in from stakeholders, but not so great at actually writing code. I've worked with a small number of talented engineers who were not great programmers - their code mostly worked, but was painful to maintain. But they were entrusted with very large, complex areas, and they got their stuff done on time.

Nate Waddoups at Quora Visit the source

Was this solution helpful to you?

Other answers

A good programmer gets the job done...an SE worries about how it gets done.

F Allen Morgan

Just Added Q & A:

Find solution

For every problem there is a solution! Proved by Solucija.

  • Got an issue and looking for advice?

  • Ask Solucija to search every corner of the Web for help.

  • Get workable solutions and helpful tips in a moment.

Just ask Solucija about an issue you face and immediately get a list of ready solutions, answers and tips from other Internet users. We always provide the most suitable and complete answer to your question at the top, along with a few good alternatives below.