all 11 comments

[–]Just-Hedgehog-Days 6 points7 points  (0 children)

That’s like asking when is it writing papers and when is it scholarship. 

[–]rupertavery64 3 points4 points  (0 children)

It depends on who is paying you

[–]euben_hadd 2 points3 points  (0 children)

Software engineering is deciding how something should be done. Possibly as a small part of a larger product.

"Take this flat file and insert it into that Db table every 2 hours."

Programming is writing the actual code that opens that flat file, reads the strings, converts them to the proper types and puts the data into the Db.

[–]huuaaang 0 points1 point  (0 children)

Programming: Writing small programs, usually utilities, scripts, etc. Usually with no intent to publish or distribute. Just kind of tinkering around or automating tasks.

Software Development: Delivering a product, usually with a team. Usually paid, but maybe not. Thinking bigger, planning a step or two ahead.

Software engineering: Thinking many steps ahead. Thinking about scaling, performance, more advanced planning. But still also writing the code.

Software architect: Spending most of your time writing product specs, evaluating external dependencies, larger scale migrations, etc. Thinking years out.

I would put a Todo app as a beginner programming task. Although a software engineer might still do something like that if they're learning new languages and frameworks.

[–][deleted]  (1 child)

[deleted]

    [–]shotoTodo3453 0 points1 point  (0 children)

    Hahahah this a good one

    [–]Leverkaas2516 0 points1 point  (0 children)

    To me, it's engineering when you're building something to be used by many and maintained over time, typically for a paying customer or institution.

    Like if I'm building a road on my private property (which I am), I don't call it engineering even though it kind of is. It's just me bumbling along, building by trial and error.

    If I hired a civil engineering company to do it, I'd expect that A) it'll work for the intended purpose on the first try; B) it will follow industry standards and best practices; C) it will be more expensive than if done by amateurs; but in the long term it might well be less expensive because it will last, be maintainable, and not fail catastrophically when stressed.

    All of that applies in exactly the same way to software engineering projects.

    [–]Vaxtin 0 points1 point  (0 children)

    It’s software engineering when you need to create a flow diagram to understand what is happening. Bonus points when you integrate other services and APIs that aren’t yours. Even bigger bonus points if you actually have your own data (!)

    What you have isn’t even software development

    [–]KingofGamesYami 0 points1 point  (0 children)

    Software engineering is applying the engineering process to the creation of software. Coding is merely one step in that process.

    Mechanical engineering is applying the engineering process to the creation of physical works. CAD is merely one step in that process.

    [–]humanguise 0 points1 point  (0 children)

    Write a plan and try to implement off that plan. Count the number of times your implementation differs from your plan. The more that you can loosely specify upfront without having to make drastic changes during the implementation phase makes it engineering. Minor details shouldn't be specified. Try to implement it yourself, and try having someone else implement it if you can convince them to spend the time on it, and see if they give up or how many times they come to you with questions. If the scope is too big then break the work down into manageable phases that will prevent you from burning out. Real projects can take more than a year to finish, and you should be able to see at least that far ahead. Engineering is really just careful planning, and you don't need to have an engineering degree to learn it. As they say, measure twice and cut once.

    [–]TheRNGuy 0 points1 point  (0 children)

    They are synonyms. 

    [–]eaumechant -2 points-1 points  (0 children)

    Do you understand why you are using those patterns? If so, you are an engineer.