5 ms·
Software engineering requires mathematics. Software development does not. Engineers and developers both bang out code. But the similarities end there. A develo
by sirseal 12y ago
Software engineering requires mathematics. Software development does not. Engineers and developers both bang out code. But the similarities end there.
A developer uses a library to make a product. An engineer uses mathematical knowledge, skill, and reasoning to find an efficient representation that elegantly solves a problem. A software engineer extends this idea: using (mostly) discrete mathematics, type & category theory, and computer science at his or her disposal.
I have respect for developers -- they are an important part of the entire software ecosystem. I feel it necessary, however, to distinguish those who use mathematics to program and those who do not.
- progman 12y ago> Software engineering requires mathematics. Software development does not. Engineers and developers both bang out code. But the similarities end there. I agree. For instance, in Haskell you cannot just sit down and hack something together like in Python or PHP. You need to think about the whole structure of the program. That's software engineering. Interestingly (for me) I realized that it is possible to write software in Haskell in a mathematical way which I previously considered to be possible only in an imperative way. It required a shift of my thinking about software, and I am still learning that. Software engineering is intriguing because it raises software quality to a new level.
- seanmcdirmid 12y agoActually, in Haskell, you can write some python code to "program to think" first, and then when you know EXACTLY what you are going to do, you can write elegant Haskell code with its "think to program" requirement. Software engineering is a title no more concrete than software developer. In either case, it's useless to talk in platitudes.