Someone who develops software - sometimes called SoftwareEngineer
, but not in Texas unless they can pass the state SoftwareEngineer
criteria (see why the ACM dropped support for the SoftwareEngineeringBodyOfKnowledge
Software developers are a new kind of professional that deal only with abstractions, while producing an abstract but yet sometimes useful contraption: a ComputerProgram
typically takes on a combination of the following jobs/roles: - SoftwareProgrammer
- A SoftwareProgrammer writes software.
- A BusinessAnalyst meets with clients and writes up business specifications.
- A SystemAdministrator administers deployed systems.
- A SystemAnalyst manages the system design (database, interfaces, etc).
- A SoftwareArchitect creates takes ownership of software designs.
- A SystemArchitect manages integration between systems by coordinating other developers, architects, teams and companies.
- A SoftwareEngineer is responsible for the correctness of software according to EngineeringPrinciples.
- A SeniorSoftwareDeveloper? can typically do for or more of those roles based on experience and ability.
- A JuniorSoftwareDeveloper? typically lacks in experience (6 months to 2 years)
- A SoftwareDeveloper is typically confident in the ability to deliver a reasonable project.
- A SoftwareDeveloper is perceived by other to be more in-tune with Logic than creativity. However, some of the best developers feel a huge sense of creativity from the development process.
The more ability a developer has, the quicker a junior developer may progress to being software developer or senior software developer.
There are other names for specific roles:
Sometimes, it is better to drop the software prefix from SoftwareArchitect
because you may involve hardware devices.
It is typical in large companies for those jobs to be specialized and in smaller companies for those jobs to be done by a single developer. In large companies, issues become more complex as the size and lifespan of the systems increase. In smaller companies it is typically more enjoyable because the scope of responsibility is larger.
There are some software developers who have a ProfessionalAttitude?
. In addition, some developers treat their profession as ArtworkPerspective?
and others treat their profession as a JobPerspective?
. The difference in attitude and perspective has a massive affect on the advancement of a developer in a career as it affects how a developer thinks. A ProfessionalAttitude?
typically realizes that being a SoftwareDeveloper
is part of a career path and that path only advances if you put effort into the advancement of your knowledge and understanding of what you do and where you want to get to.
is a part of the liberal arts field.
is part of the commerce field and is typically beneficial in large companies.
I would say they are respectively good if you want to become an academic, work in highly technical fields, work in research fields. University has the effect of sharpening a person's understanding of complex thought, abstract ideas and conceptualizations (work of the mind). Software is a product of the mind and so someone who has sharpened their ability to think can only benefit from university. However, do not underestimate TheTechnologist?
. A technologist will produce far more software than a small team of university graduates combined - quicker, more feature complete and more complex in nature, and less likely to fail. A typical example is LinusTorvalds
. Sure, he went to university, but his ability to succeed is because he is a technologist, not because he went to university. A person may be as able as Linus but have different experiences and different social connections - therefore don't expect to achieve the same level of fame. My point - University is great but any true technologist does not need university to succeed.
A career in development is the product of how much effort you put in to advance yourself along that path.