5 ms·
Can you please explain the difference?
by quizbiz 17y ago
Can you please explain the difference?
- branden 17y agoThey're ways to solve two different problems. The goal of application development is to make a user happy (for some value of happy), and the goal of software engineering is make a good system (for some value of good).
- jamongkad 17y agoHmm never thought of it that way. So being an application developer has a more direct tangible effect on the end user as compared to being a software engineer. By that definition then most startups are built by application developers. I guess I know where I'll be specializing in from now on.
- benatkin 17y agoI'll try. The application developer is most interested in designing user interfaces. They tend to have lots of ideas for new apps and new features. They want to impress people with new stuff. The software engineer wants to fully understand domains and be able to solve just about any given technical problem. They want to be trusted by people to perform in the most challenging of situations. After better understanding the distinction, I have more respect for people who call themselves Software Engineers, and can back it up -- people who can fix a messy database, perform security audits, bring up a system that went down, or create a complex system. I also wish I had a really good software engineer where I work so I could focus on application development, and not on improving database performance, which I can do, but isn't my passion.
- deleted 17y ago[deleted]
- maximporges 17y agoHmm... not quite what I was going for, but close. There's been the most debate on this particular point in the various places my blog entry has ended up being posted, so I'll try to clarify it here too. In the simplest terms: my experience has been that when you specialize in app dev, you deal primarily with databases, service architecture, UI toolkits, web services, etc. You generally rely on an app server environment of some kind, work with/rely on a lot of tools from vendors and the open source community, etc. This is where I have specialized in my career, and what my software team does. There's another team where I work that builds tools and processes that mainly run on a large farm of servers. They are all high-performance, high-throughput data delivery and media transcoding programs. These guys are absolute C++ wizards, but their software never sees the light of day and they almost never use anything off-the-shelf, be it databases (don't scale high enough) or third-party libraries (too much mistrust of potential performance issues). There are a few C++ standard libs that they use, but not much else. These guys are specialized in making really small, light programs from scratch that will run headlessly on a server. I've noticed a radical difference in approach between our two teams. There are generic areas of crossover, such as our mutual understanding of good OO design and suchlike, but that's about it. The other team would be as lost building a client-facing app with a UI in front of it and a DB behind it as I would be writing a high-performance server-side app from scratch without the flurry of off-the-shelf libraries I've become so accustomed to. In retrospect, I think "software engineer" was a misleading and incorrect title for this skill set that the other team I work with has, but I'm still not sure what would be more appropriate - perhaps "systems programmer"? Anyway, hope this clears up my perspective. Obviously, there will be 1000 shades between specializations, but generally I would say somebody getting in to the field would want to head toward one camp or the other as they get started.