When most people think of a software engineer, the first thing someone may imagine in their mind is a person in a dark and secluded room, sitting behind some computer screens with lines of code on them. This, however, is not the case. Most of the work done by software engineers is done opposite of this way. While programming is part of the field of software engineering, it also includes “numerous other things such as design, communication, problem-solving, project management, and testing” (Beaubouef and McDowell 47).
The field of computer science and software engineering is an expansive and gradually developing field that develops and creates new and interesting solutions and products by taking advantage of many different areas of skills and communication practices.
To prepare for a job in the career field of software engineering, in general, most employers tend to look for people who have a bachelor’s degree or higher in computer science, computer engineering, or related degrees in the technology or mathematical fields. Also, having the experience of being an intern at a workplace is beneficial. There are also some skills that are needed that go along with the knowledge that is acquired from a degree. These skills are the ability to communicate well, and the ability to demonstrate the topics that you have mastered while obtaining your degree. John R. Platt helped to determine this in his article by speaking with a hiring manager: ” ‘I’m looking for candidates to show me two things: that they are smart and can get things done,’ says Jensen Crawford, director of engineering for Fetch Technologies. ‘The former includes being able to communicate about, analyze, and solve problems. The latter is being able to deliver those solutions.'” (3). This shows that not only are the practical skills needed but also that there are excellent communications skills needed for a job in the field of software engineering.
Get Help With Your Essay
If you need assistance with writing your essay, our professional essay writing service is here to help!
Essay Writing Service
As for the typical working conditions for a software engineer, they are very similar to most office-type jobs. Dr. Erik Fredericks is a current professor at Oakland University. Before he began his journey in his teaching career, he used to work at an entry-level job as a software engineer. Like most other people, he worked in a small cubicle with just a laptop, working from nine to five on most days. Plus, according to Fredericks, there were a few positives and negatives about the career field. He stated that the positives were that “you can do what you love, from nearly any location (given telecommuting possibilities)” and that the negatives were that “I tend to overwork, so I put way more time into my job than I should” (Fredericks). According to the U.S. Bureau of Labor Statistics, in 2009 the average annual wage for systems software developers was around $95,000, whereas, in 2018, the median salary was $110,000 (“Software Engineers”; Platt). Given this information, we can conclude that the field of software engineering will continue to grow and develop in the future. Finally, participants in this field are trained by gaining experience and working their way up in the field, usually from entry-level to managerial. Beaubouef and McDowell relate this to the similar nature of car maintenance by stating:
Another common misconception is that most self-taught programmers can easily do the same jobs as skilled and trained professionals. This is like saying that people who are familiar with car maintenance (changing oil, washing and waxing and other minor tune-ups) can successfully rebuild engines and transmissions. These programmers often lack the insight and theoretical background of computer science graduates that allow them greater perspective when approaching new and difficult problems (Beaubouef and McDowell 46).
From the previous information, it can be shown that mainly all computer science and software engineering jobs are comparable to standard office jobs that work a standard workweek.
It is possible to advance your career in the field of software engineering in a couple of ways. First, there are professional organizations. An example of a commonly-known professional organization is the IEEE Computer Society (Institute of Electrical and Electronics Engineers). The IEEE Computer Society offers many tools and resources, which includes curriculum development, journal and magazine publishing, professional conferences, a digital library, and achievement awards (“5 Functions”). An example of publishing that members of the IEEE receive is their magazine, Computer. Frederick stated, “I’m a member of IEEE and ACM [Association for Computing Machinery], mainly because of discounts provided at conferences. I don’t use them to their potential, however.” Frederick also mentioned that he participated in professional development. He stated that “there were always workshops for improving one’s self, in terms of time management, communication, etc.” (Frederick). Finally, the technology that is used in this field is quite obvious, hence the name “software engineering”. Most software engineers generally work on modern and up-to-date computers which they perform their daily tasks on. Summing up, it is possible to further and develop your career within the field of software engineering by participating in professional development and/or professional organizations.
There are a couple of important communication practices that are necessary in the field of software engineering. The first is a communication practice commonly referred to as “pair programming.” As the name suggests, Begel and Nagappan describe this as “the practice whereby two programmers work together at one computer, collaborating on the same algorithm, code, or test” (1). Each person in each of these pairs has a role. The “driver” is the one who types out the code, while the “navigator” is the one who watches the navigator as he or she works, and points out errors or comes up with suggestions (Begel and Nagappan 1). The benefit of doing this is that it helps to produce code which has less bugs (errors), as well as helping to increase the general understanding of the code that is being worked on. However, this does not come without its quirks. Some of the problems that are associated with pair programming are the costs in doing so, as well as scheduling, and engineers not getting along with their partners. The people who are most affected by pair programming are the people who are involved with the software engineering process. In reality, pair programming gets somewhat mixed reactions about its usefulness and practicality. According to a survey that was conducted at Microsoft Corporation as part of their research, Begel and Nagappan found that about 64.4% of the subjects agreed that pair programming worked for them, while the other 35.6% were neutral about it, or disagreed (4). From this information, it is can be concluded that pair programming is overall beneficial to software engineers, despite its caveats.
A second communication practice in the field of software engineering is the importance of effective communication. This is necessary so that your project can easily continue to be iterated on and improved. According to Frederick, “You need to be able to effectively communicate what you have done, for instance, if you make an app, you need to be able to tell people how to use it, other developers how to improve it, etc.” This could be implemented into projects that may have communications in place that are not very effective. A potential benefit to this communication practice is that it will enable everyone who is involved with the software engineering process, whether it is the actual engineers, or the end-users of a project, to be able to get the most out of what the project’s topic is about. A potential problem with this communication practice would be overly-communicating to the point where it would be ineffective, or even confusing for the parties involved. An entry-level employee can use this most effectively by adequately documenting what their changes and/or contributions have been to a project so that others can be made aware of the changes and have a better understanding of the situation.
All in all, because of its gradually expanding and developing scope, the field of computer science and engineering involves several different skill sets and communication practices that make an overall desirable career. This is due to the increase in demand for software engineers in our ever-increasingly digital world. Also, its relatively low educational requirements make it an easy career field to begin in, as most entry-level jobs generally require a bachelor’s degree to get started in the field. In addition, most of the entry-level jobs also offer a more-than-desireable salary, usually around $110,000 in today’s world. Furthermore, it offers working conditions that are adequate from the start and only improve going forward, as well as several ways to advance your career in many ways. This can be accomplished by attending professional development activities that are conducted by your workplace. It can also be accomplished by taking advantage of professional networking and/or associations within the field. This will then give you the ability to improve upon and advance your career. Finally, there are communication practices available which only help to better your career experience and improve your skills not only for you but for the people around you that you may be working with.
Beaubouef, Theresa and Patrick McDowell. “Computer Science: Student Myths and Misconceptions.” Journal of Circuits, Systems, and Computers, vol. 23, no. 6, 2008, pp. 43 – 48, www.researchgate.net/profile/Theresa_Beaubouef/publication/234832735_Computer_science_student_myths_and_misconceptions/links/0f31752fd07fcc4511000000/Computer-science-student-myths-and-misconceptions.pdf. Accessed 28 Oct 2019.
Begel, Andrew and Nachiappan Nagappan. “Pair Programming: What’s in it for Me?.” Association for Computing Machinery, 2008, pp. 120 – 128, DOI: 10.1145/1414004.1414026.
“5 Functions of the IEEE Computer Society.” Best Computer Science Degrees, www.bestcomputersciencedegrees.com/lists/5-functions-of-the-ieee-computer-society/. Accessed 28 Oct 2019.
Frederick, Erik. Personal Interview. 27 Oct 2019.
Platt, John R. “Career Focus: Software Engineering.” IEEE-USA Today’s Engineer, March 2011, www.zlti.com/XKiWZ/wp-content/in%20the%20news/3.7.11_IEEE_Career%20Fo cus_%20Software%20Engineering.pdf.
“Software Engineers: Job Duties & Requirements.” Study.com, 06 August 2019, www.study.com/articles/Software_Engineers_Job_Duties_and_Requirements_for_Beco ming_a_Software_Engineer.html.