Computer Programmer
Software engineering has become a widely established career for hundreds of thousands of people around the world, and jobs such as programmer-analysts and systems programmers have become popular. Computers are everywhere in modern society, and every computer system has software applications that were written by software engineers.
Several industries have been revolutionized by the advent of computer software. These industries include the financial sector, insurance, medical, and government. In particular, the financial sector has large computer main frames that still dominate the industry. Slowly over the past few decades, government has converted paperless records.
Whenever paper is not used, software applications are used to control and store the computer data. This provides greater demand for software engineers. The demand comes in two different forms.
One form of demand is the increase in demand for new software applications. The other type of demand occurs as the result of the increase in maintenance on the existing software. Computer software does not require the same type of maintenance as mechanical engineering projects do. In other words, software maintenance does not require tightening screws, changing the oil in a combustible engine, or anything physical. Software engineering constantly requires bug fixes and the addition of new functionality to previously written software programs.
A career in software engineering carries a tremendous amount of benefits, and of course, a few negatives. Although every software engineering job is unique, most software engineers essentially have similar job descriptions. Let’s start with the positives.
Universal to all software engineering jobs is time staying off your feet and sitting at a desk. This is a blessing for anyone who worked as a bartender or waited tables in a restaurant and spent a lot of time on their feet all day. Most software engineers work at least eight-hour days, with most of that time spent at their desks.
Most software engineering positions have flexible working hours. It varies depending upon your employer, but since software engineers mostly work on their computers, all they need is a laptop and a Virtual Private Network connection to work anywhere. A majority of employers will provide some level of flexibility in working hours.
How about compensation for software engineers? Typically, salary is very good compared to other white-collar professions. Compensation comes in the form of salary and benefits. In addition to salary, benefits include medical, dental, and life insurance based upon some weekly payroll deductions. Another benefit is matching 401k or stock options. Although stock options are becoming more rare, matching 401k contributions provide an opportunity to save “free” money: free, meaning money that your employer matches based on your level of contribution.
In addition to the good pay, software engineering continues to grow as a field. Although outsourcing of domestic software engineering jobs has occurred recently, the industry continues to grow with domestic, well-paid jobs. A majority of employed software engineers will recommend a career in this field, but the same cannot be said for employees in other professions.
How does a person get started in a software engineering career? Well, this depends upon several factors. One of them is your current age, and age should not be taken as a negative factor. If you are still in high school, stay in school and continue on through college. In college, pick a major in computer science or software engineering.
Not all schools offer a software engineering major. The difference between software engineering as a college major, and one in computer science, tends to be more theoretical, and software engineering offers more real-world practicality. If you are considering studying beyond college, and going to graduate school, then a major in computer science will further prepare your advancement.
If you already have an established career in a different field, then converting to software engineering does not necessarily require a four-year degree. You could get an associate’s degree or work towards a technical certification. Since you already have proven yourself in a different field, you simply must prove to a prospective employer that you have competent computer programming skills. This may require some creativity on your part. One way is to write code for a specific web page. Then, on your resume you could put the URL links to your work. Be certain that you can explain the web page, so the interviewer does not think the work belongs to someone else, and always be truthful on your resume.
Although a bachelor’s degree is not required to enter the software engineering field, it is certainly sufficient by itself. Some college students majoring in computer science or software engineering do immediately go on to graduate school, but it isn’t necessary, and the pay difference after finishing a graduate degree isn’t always that big. If you enjoy school and feel you’d benefit from additional study, then pursue a graduate degree immediately after college. Otherwise, enter the work force, gain valuable experience, and go for a graduate degree if you have an employer who offers tuition reimbursement. Just keep in mind that some employers will require you to stay in your current job for a certain length of time after you finish your degree.
Information Technology (IT) certifications are a great way to master new computer technology. A lot of IT professionals have popular certifications and well-paying jobs. The trick is to find the certifications that are hot commodities. The future outlook for computer certifications is often difficult to determine. Accordingly, acquiring a certification in an IT field with little demand will not score you a high-paying job.
You might be wondering if IT certifications are absolutely necessary to break into the field of software engineering. Absolutely not! The certification itself only implies that you have passed a test, or a series of tests, to get that certification. It does, however, add more punch to your resume and may lead to a higher- base salary. The good thing about certifications is that you can track how much they are actually worth. For example, you could use the average salary statistics for people that have that certification. Therefore, when it is time for your annual review, you could use published salary surveys as your grounds for a raise.
When you see job postings, look at the posting to determine whether a certification is required for that position. In the business world, there are no hard and fast absolutes. Thus, an employer may like to hire someone with a specific certification that may not even be a requirement for the position. Perhaps, during the interview, you could mention that you are planning to pursue the certification. Some hiring managers consider certification to be a must-have. Others consider certifications to be a nice bonus, but not an absolute necessity to perform the job well.
Software consultants or contractors make some of the highest hourly rates in the industry. A consultant’s work is typically rather specific. Often, a consultant will be hired whenever a problem arises, and the company does not have an expert in that subject matter. As a consultant, the company expects you to be the best in the industry within your specific realm of expertise. There are many applications programmers are expected to work on, and consultants have to be far ahead of the learning curve.
Compared to an employee’s life, being a consultant requires a large amount of ownership and accountability. There is no time for mentoring or to get up to speed on a specific technology. You have to know what you’re doing before taking on the assignment. If the company doesn’t like your work, it is not unusual for the company to fire you on the spot since the company is paying you a high hourly rate. Consultants don’t have the level of job security that employees do.
Is becoming a software consultant right for you in the software engineering field? It depends upon whether or not you value job security. Some software engineers enjoy the opportunity to work several years at a particular company. Others think this is old-fashioned, and the modern software engineering industry does not work this way. Also, another factor to consider is health benefits. A software consultant will not receive benefits from the company. Consultants have to buy their own health benefits. On the other hand, full-time employees will have health benefits offered from their employers.
There are several different fields within software engineering. Each of the fields requires special technical knowledge to perform each job well. Don’t despair if you do not have a tremendous amount of technical knowledge because this could be developed over time. Not every job within software engineering requires extremely strong programming skills.
First, there are computer programmers or systems programmers. These are the individuals that actually write the computer source code. The most common languages used today are Java, C# (known as C “sharp”), PHP, and Python. There are also a tremendous amount of legacy systems that run C/C++, Cobol, and Fortran. Don’t let this list overwhelm you at first. A lot of the programming languages have similarities. So, once you are proficient in one language, learning the other ones will be fairly straightforward. You should pick one language that is your strong point. This will give you the confidence to learn other languages more easily.
Also, there are system engineers who work with software requirements and deal with fundamental engineering issues, but do not write the software directly. System engineers will work with the product throughout the software life cycle from the initial requirement phase until the product is delivered to the customer.
Database administrators (DBAs) have a key place within software engineering. A database administrator will deal with relational databases such MySQL or Oracle. Most modern applications rely heavily on data to store information in databases. The software engineers will consult with the database administrators on the most efficient way to store and retrieve the data from the software application. Also, DBAs will perform all the maintenance associated with the relational database. These activities include data backups and restores in the event of a computer crash.
Quality assurance engineers take the responsibility to ensure that all the software works correctly. This is not a trivial task. It is their responsibility to find all the problems before the software is delivered to the customer. QA engineers will often write software to automate the testing of other software. Although QA engineers do not write the software, they need to have a thorough understanding of the software to successfully do their jobs.
Several software engineers will gradually make the transition to management. Once in management, software engineers are not writing the software anymore; however, they will make larger strategic decisions that impact the bottom line of the business. Moving into management will mostly likely provide a larger base salary. However, it will provide another level of responsibility that most software engineers do not have to worry about. Some software engineers prefer not to move into management for this very reason.
For software engineers staying away from the management track, there are plenty of technical leadership positions available in most software firms. One of the most common is software architects. These professionals oversee software engineers and make fundamental decisions on how the software should behave. Software architects make the decision such as which programming language the application should use, or how the data will be stored and archived in the databases.
One of the best aspects of software engineering is the longevity within the career field. It is not a career with a short shelf life. Software engineers do not have short shelf life. It is clearly possible to program computers every day until the day you retire. Provided that you always stay current on the latest technologies, you should have no difficulties staying actively employed.
Remember one of the most important aspects of software engineering: it is fun. The mentally challenging aspects of the field provide great insight into the world of technology. Also, you achieve a deeper understanding of how software works in modern society. This knowledge could help you debug your own personal computer or a friend’s computer.
It also provides your career with global marketability since software engineering is done around the world. This is critical if you are thinking about relocating your career abroad. The work will be fairly similar, and it will be easier to fit directly into the computer culture.