Computer & Software Engineering
Computer software engineers are projected to be the fastest growing occupation over the 2008-18 period. Very favorable opportunities are expected for college graduates with at least a bachelor's degree in computer engineering or computer science and practical experience working with computers.
Nature of the Work
The explosive impact of computers and information technology on our everyday lives has generated a need to design and develop new computer software systems and to incorporate new technologies in a rapidly growing range of applications. The tasks performed by workers known as computer software engineers evolve rapidly, reflecting new areas of specialization or changes in technology, as well as the preferences and practices of employers.
Computer software engineers apply the principles and techniques of computer science, engineering, and mathematical analysis to the design, development, testing, and evaluation of the software and systems that enable computers to perform their many applications. Software engineers working in applications or systems development analyze users' needs and design, create, and modify general computer applications software or systems. Software engineers can be involved in the design and development of many types of software including software for operating systems, network distribution, and compilers, which convert programs for faster processing. In programming, or coding, software engineers instruct a computer, line by line, how to perform a function. They also solve technical problems that arise. Software engineers must possess strong programming skills, but are more concerned with developing algorithms and analyzing and solving programming problems than with actually writing code.
Computer applications software engineers analyze users' needs and design, create, and modify general computer applications software or specialized utility programs. Different programming languages are used, depending on the purpose of the program. The programming languages most often used are C, C++, and Java, with Fortran and Cobol used less commonly. Some software engineers develop both packaged systems and systems software or create customized applications.
Computer systems software engineers coordinate the construction and maintenance of a company's computer systems, and plan their future growth. Working with a company, they coordinate each department's computer needs-ordering, inventory, billing, and payroll recordkeeping, for example-and make suggestions about its technical direction. They also might set up the company's intranets, networks that link computers within the organization and ease communication.
Systems software engineers work for companies that configure, implement, and install complete computer systems. They may be members of the marketing or sales staff, where they serve as the primary technical resource for salesworkers and customers. They also may be involved in product sales and in providing their customers with continuing technical support.
Computer software engineers often work as part of a team that designs new hardware, software, and systems. A core team may comprise engineering, marketing, manufacturing, and design people who work together until the product is released.
Computer software engineers held about 697,000 jobs in 2009. About 380,000 were computer software engineers, applications, and about 317,000 were computer software engineers, systems software. Although they are employed in most industries, the largest concentration of computer software engineers, almost 46 percent, is in the computer and data processing services industry. This industry includes firms that develop and produce prepackaged software and firms that provide contractual computer services such as computer programming, systems integration, and information retrieval, including online databases and Internet services.
Many computer software engineers also work for establishments in other industries, such as government agencies, manufacturers of computers and related electronic equipment, and colleges and universities.Employers of computer software engineers range from startup companies to established industry leaders. The proliferation of Internet, e-mail, and other communications systems expands electronics to engineering firms traditionally associated with unrelated disciplines. Engineering firms specializing in building bridges and power plants, for example, hire computer software engineers to design and develop new geographic data systems and automated drafting capabilities. Communications firms need computer software engineers to tap into growth in the personal communications market. Major communications companies have many job openings for both computer software applications and systems engineers.
A increasing number of computer software engineers are employed on a temporary or contract basis-many of whom are self-employed, working independently as consultants. Some consultants work for firms that specialize in developing and maintaining client companies' websites and intranets. Consulting opportunities for software engineers should grow as businesses need help managing, upgrading, and customizing increasingly complex computer systems. About 79,000 computer software engineers were self-employed in 2014.
Computer software engineers normally work in well-lighted and comfortable offices or computer laboratories in which computer equipment is located. Most software engineers work at least 40 hours a week; however, due to the project-oriented nature of the work, they also may have to work evenings or weekends to meet deadlines or solve unexpected technical problems.
And like other workers who sit for hours at a computer typing on a keyboard, software engineers are susceptible to eyestrain, back discomfort, and hand and wrist problems such as carpal tunnel syndrome.Many computer software engineers interact with customers and coworkers as they strive to improve software for users. Those employed by software vendors and consulting firms, for example, spend much of their time away from their offices, frequently traveling overnight, to meet with customers. They call on customers in businesses ranging from manufacturing plants to financial institutions.
As networks expand, software engineers may be able to use modems, laptops, e-mail, and the Internet to provide more technical support and other services from their main office, connecting to a customer's computer remotely to identify and correct developing problems.
Training, Qualifications, Adv.
Most employers prefer to hire persons who have at least a bachelor's degree and broad knowledge and experience with computer systems and technologies. Usual degree concentrations for applications software engineers are computer science or software engineering; for systems software engineers, usual concentrations are computer science or computer information systems.Graduate degrees are preferred for some of the more complex jobs.Academic programs in software engineering emphasize software and may be offered as a degree option or in conjunction with computer science degrees. Students seeking software engineering jobs enhance their employment opportunities by participating in internship or co-op programs offered through their schools. These experiences provide students with broad knowledge and experience, making them more attractive candidates to employers. Inexperienced college graduates may be hired by large computer and consulting firms that train new hires in intensive, company-based programs. In many firms, mentoring has become part of the evaluation process for new employees.
For systems software engineering jobs that require workers who have a college degree, a bachelor's in computer science or computer information systems is typical. For systems engineering jobs that place less emphasis on workers having a computer-related degree, computer training programs are offered by systems software vendors, including Microsoft, Novell, and Oracle. These training programs usually last from 1 to 4 weeks but are not required in order to sit for a certification exam; several study guides also are available to help prepare for the exams. However, many training authorities feel that program certification alone is not sufficient for most software engineering jobs.
Professional certification is offered by the Institute for Certification of Computing Professionals. This voluntary certification is available to those who have a college degree and at least 2 years of experience. Candidates must pass an examination covering general knowledge and two specialty areas or one specialty area and two computer programming languages. In addition, the Institute of Electrical and Electronics Engineers Computer Society recently announced plans to certify software engineers who pass an examination.
Persons interested in jobs as computer software engineers must have strong problem-solving and analytical skills. They also must be able to communicate effectively with team members, other staff, and the customers they meet. And because they often deal with a number of tasks simultaneously, they must be able to concentrate and pay close attention to detail.
As is the case with most occupations, advancement opportunities for computer software engineers increase with experience. Entry-level computer software engineers are likely to test and verify ongoing designs. As they become more experienced, computer software engineers may be involved in designing and developing software. They eventually may advance to become a project manager, manager of information systems, or chief information officer. Some computer software engineers with several years of experience or expertise find lucrative opportunities working as systems designers or independent consultants or starting their own computer consulting firms.
As technological advances in the computer field continue, employers demand new skills. Computer software engineers must continually strive to acquire new skills if they wish to remain in this extremely dynamic field. To help them keep up with the changing technology, continuing education and professional development seminars are offered by employers and software vendors, colleges and universities, private training institutions, and professional computing societies.
A Computer Engineer earns an average salary of Rs 401,739 to 1,268,978 Experience strongly influences pay for this job. The upcoming world will be flooding with I.T sector the top domains are Web development, App development, Software development and much more. The "evergreen career option" .