Software engineering: Difference between revisions

Content deleted Content added
Impact of globalization: less cheerleading
Education: rm howto stuff, cheerleading, and US-centric bias
Line 88:
 
==Education==
A knowledge of [[programming]] is the main pre-requisite to becoming a software engineer, but it is not sufficient. In 2004 the [[IEEE Computer Society]] produced the [[SWEBOK]], which has been published as ISO/IEC Technical Report 19759:2004, describing the body of knowledge covered by a software engineer {{Citation needed|date=August 2008}}.
There are several paths a student could take to achieve entry into the Software Engineering profession. Common among all paths are the need to reinforce good lessons and build self-confidence. The Engineering part of the profession distills some of the creativity out of the process, so more creative people may not enjoy the profession as much as those that appreciate structure and rigor.
 
Many software engineers enter the profession by obtaining a university degree or training at a vocational school. A standard international curriculum for undergraduate software engineering degrees was defined by the [[CCSE]], and updated in 2004.<ref>[http://sites.computer.org/ccse/ SE2004 Software Engineering Curriculum]</ref> However, this standard is relatively new, and as a consequence many software engineers have degrees in [[Computer Science]]. Steve McConnell has opined that because most universities teach computer science rather than software engineering, there is a shortage of true [[software engineer]]s.<ref>McConnell, Steve (July 10, 2003. ''Professional Software Development: Shorter Schedules, Higher Quality Products, More Successful Projects, Enhanced Careers''. ISBN 978-0321193674.</ref>
Technical knowledge of [[programming]] languages with self-taught practical experience is pre-requisite to becoming a software engineer. Software Engineering tools such as [[Eclipse]], [[Java]], [[MySQL]], and [[ActiveMQ]] are free, downloadable, and should be used by students wanting to learn how to be successful developers. Software Engineering can be an integral part of Computer Science programs from many educational institutions. Many software engineers have degrees in [[Computer Science]]. The US Department of Education maintains a list of most US institutions offering software engineering education<ref>[http://nces.ed.gov/collegenavigator/?s=all&p=14.0903 US Dept of Education List of SE Institutions]</ref>.
 
In addition to university education, many companies sponsor internships for students wishing to pursue careers in Information Technology. These internships can introduce the student to interesting real-world tasks that typical Software Engineers encounter every day. Similar experience can be gained through [[military service]] in software engineering.
An alternate path a student could pursue is through [[Air_Force_Space_Command|military service]]. Another alternate path is through non-traditional vocational schools such as Vatterott and ITT Tech. The key to success in achieving a rewarding career in Software Engineering is to set your personal goals high and your compensation expectations low. Once you define a niche market in which your skills speak for you, you will have great reward, both satisfaction and financial. Those people that enter the profession demanding huge rewards with little experience or skills to offer, tend to burn out quickly and don't go very far.
 
Many US companies, especially those with offshore support, sponsor internships for students wishing to pursue careers in Information Technology. These are fantastic opportunities that can introduce the student to interesting real-world tasks that typical Software Engineers encounter every day. Software Engineering barriers-to-entry in the profession come down quite quickly when candidates have practical, real-world experience. Internships provide the practical experience to get a student started. Some students volunteer time to a charitable organization to gain other real-world experience.
 
==Sub-disciplines==