Software developers are responsible for many of the technologies that you take for granted every day. For instance, you might wake up in the morning using an alarm on your phone. Have you ever checked your bank account balance using an online app? If you’re a typical teen, you probably spend a lot of time on your phone surfing through social media. All of these things are possible due to the development of software. Software plays an important role in many aspects of our lives, and it is a crucial element to the advancement of technology. Several research projects in the last decade to develop new hardware and software architectures have helped disabled and elderly people become more independent and self-reliant. An article from Scientific & Academic Publishing (SAP) proposes a design for a ‘smart powered wheelchair,’ which would work as a kind of rehabilitation system for this category of people by using ’embedded architecture for smart wheelchair monitoring, leading to gain of mobility and control’ (Touati and Ali-Cherif). Cutting-edge software has the ability to solve many problems that past technology could not.
What exactly is software? In contrast with hardware, which is the physical components that make up a computer, software is comprised of the data which is stored electronically. More specifically, software is the name given to the different applications that enable computers to function. Each application is a series of coded instructions that tell a computer how to complete functions and how to react to user inputs. These instructions are written by software developers who also test, develop, and maintain the software programs. Every function you complete on a computer, from surfing the web to altering a photo, is the work of a different piece of software.
There are two general types of software developers: those who work in applications engineering and those who work in systems engineering. Applications engineers are what you would typically think of when you hear ‘software developer’. As indicated by the name, these developers design and create application programs, which includes everything from word processors and web browsers to operating systems. Operating systems, such as Linux or Windows, manage the way the hardware components of a computer work together. Developers who work in computer systems engineering work on a larger scale, often designing and maintaining the integrated computer systems of large organizations such as businesses or governments. In either case, there is a lengthy development process involved.
A typical software project involves several stages. First, the software developers determine the tasks that the program will need to complete and work closely with the clients to accomplish this. Next, the experienced, senior-level developers will collaborate to create a general framework for a program that will perform these tasks. The third step is to write out the code which is a detailed list of instructions that the computer will follow. The instructions are written out in a programming language, such as C++ or Java. This stage often requires the help of many programmers over a long period. During this process, programmers will make notes in their code to document the work they are doing so that other programmers can easily follow along. The last stage, referred to as the debugging process, involves locating and fixing errors in the code, as well as test the software to make sure it functions the way that it’s supposed to.
Computers and their software programs are used just about everywhere, including in schools, cars, and banks. They provide a huge assistance in medicine, agriculture, and many other industries where software has the capability to significantly the rate at which tasks are done, meaning more efficient work. According to the Intel website, ‘concerns over threats to computer security could result in more investment in security software to protect computer networks and electronic infrastructure. In addition, mobile technology requires new applications and the healthcare industry is greatly increasing its use of computer systems and applications’ (‘High Demand: The Occupational Outlook for Developers’). The information provided by the Intel website indicates that the current trend of growth for software developers will continue over the next decade. In fact, the Bureau of Labor Statistics projects an astounding ‘22.8 percent employment growth for software developers between 2012 and 2022, which is much faster than average for all occupations’. In that period, an estimated 139,900 jobs will open up. This rapid growth is mainly due to a large increase in demand for computer software. In order to keep up with the rapidly changing industries, software developers must continuously improve and expand their skill set.
The best software developers are creative and often natural problem solvers. They possess the ability to think outside the box and have the technical expertise to carry out innovative ideas. In an interview with Ajit Subramani, a software engineer in a major computer firm, he revealed what he believes to be important personal characteristics of a successful developer. Well-developed analytical skills are a must, according to Subramani. ‘You must be able to analyze a situation from all angles to develop an innovative solution’ (Subramani). Analytical skills also come into play when you look past the basic requirements of a program or design, and dig deeper to understand how the program will be used in daily life. ‘To be effective, software engineers also need strong communication skills’ (Subramani). Although the job does involve extreme concentration and chunks of uninterrupted time, software developers often have to collaborate with others, including fellow developers, management or clients.
An undergraduate degree in computer science or a related subject is often regarded as the bare minimum to break into the software development industry. Although a bachelor’s degree is enough for many entry-level jobs, employers often require a master’s degree or PhD for more complex positions. A graduate degree can also help developers advance more easily within a company. However, it should be noted that employers place emphasis on actual programming experience than a degree, so while it is not commonplace these days, it is possible to be hired with no degree at all. At Michigan State University, as well as many other universities, the computer science program is located in the engineering department. To be admitted into the college of engineering as a computer science major, you must have the 5 required classes completed. These include calculus I and calculus 2, as well as chemistry and physics. Students attaining the required GPA for these classes as well as the minimum overall GPA are guaranteed admission (‘College of Engineering Admissions’). Once placed into the computer science program, students take a great variety of computing classes which give them insight into how computers work and function. After completing the degree along with an internship, students are ready to enter the exciting software industry.
Software applications, and computers in general, have changed the world we once knew, making the answer to any question just the click of a mouse away. As technology advances, computers will continue to improve and new software will be devised. An issue of an online magazine, published by the Institute of Electrical and Electronics Engineers (IEEE), discusses the future of quantum computing. ‘According to Moore’s Law, the number of transistors on a microprocessor continues to double every 18 months, so by the year 2030 we will find the circuits on a microprocessor measured on an atomic scale’ (IEEE). In other words, processors will be created at such nanoscopic levels that they will no longer follow the physics of general relativity, and instead will be subjected to quantum physics. This means that computing will be possible at unprecedented speeds, opening up magnitudes of possibilities to the realm of software.
The work of software developers is evident everywhere. From turning on the computer to opening Microsoft Word, you’ve used several different pieces of computer software. Software development is currently a rapidly growing industry and offers tons of potential for women to be successful. As of now, however, women only make up about 10-20% of the industry. Jobs in tech-related fields have historically always been male dominated, but women are highly valued in this profession and their numbers are quickly rising. Aside from the creativity and job security aspects, many software developers also enjoy flexible work schedules, being able to work from home or anywhere in the world. This would especially accommodate women with children. In addition, a job in software development opens up doors to many career paths. Overall, the profession’s superb job prospects, low unemployment rate and excellent median salary make it an attractive career in many regards for any woman.
...(download the rest of the essay above)