SOFTWARE ENGINEER EDUCATIONAL REQUIREMENTS – Since a software engineer's (or software developer's) entry-level education typically involves a bachelor's degree, your next step Richard would be to complete your degree program. Those who work with applications typically graduate with a computer software engineer degree or another related degree in computer science or mathematics. Courses in a computer science undergraduate program may include computer fundamentals, data structures, principles of programming languages, software engineering, and computer architecture. Since computer software engineers design new software programs, you should have a high degree of creativity. You should also have strong problem-solving, mathematical, and analytical skills, as well as the ability to work with abstract concepts. Communication skills are also important since they may interact with hardware engineers, industrial designers, manufacturing operations personnel, and end users to develop software products. An entry-level position, such as a computer support specialist or computer technician, can help you as a prospective engineer to develop these skills and obtain hands-on experience in the field.
SALARY – The average Software Engineer I salary in the United States is $72,181 as of January 27, 2022, but the range typically falls between $64,196 and $79,661. Salary ranges can vary widely depending on many important factors, including education, certifications, additional skills, the number of years you have spent in your profession. Since technology is constantly changing, the job tasks performed by computer software engineers change often as well. Employers, colleges and universities, private training institutions, software vendors, and professional computing societies offer continuing education and professional development seminars to help computer software engineers learn the skills necessary to keep up with changing technology.
Hope this helpful Richard
John recommends the following next steps:
An entry-level software engineer, with applied formal education on data structures and a general understanding of algorithmic complexity, can make $100k a year in many markets. By the time that same engineer has been progressing their career for 15 years, they can easily be in the $300k/year range for total compensation, with or without a college degree.
Location: in general terms, areas with a higher cost-of-living offer higher salaries (but more of that income will go to that high cost-of-living).
Market: if the local market's flooded with engineers (perhaps due to a layoff or because it's a particularly desirable area) offers go down.
Experience: more-experienced engineers generally (but not always) receive higher offers.
Education: more-educated engineers generally (but not always) receive higher offers.
Skill set: if the engineer has knowledge and experience in an area of high demand (perhaps security, or Big Data, or algorithm development) offers can go up.
... and so forth.
The key is to think about what you want to do and what the prospective employer is offering in terms of a total package -- you may get a great starting salary but lousy benefits, or a lower starting salary but excellent tuition reimbursement and health care, or a job that pays well but will require 24x7x365 availability, etc. and basically become your entire life. Once you have researched the company, the offer, and the location, then you're well-equipped to decide what's a good offer regardless of the "salary range".
A BSCS or related degree means an individual probably intends to work as a software developer/engineer. Software developer/engineer positions somewhat vary from company to company, but a typical breakdown is:
1. SE I
2. SE II (perhaps SE III, etc.)
3. Senior SE
4. Lead SE
A quick search for "Software Engineer" shows a substantial disparity in pay. Looking at a sampling of job descriptions we can see that most want experience, but interestingly not that many years of experience. In fact, we can see job descriptions for senior level developers that call for only 3+ years experience. That's not many years of experience compared to other professions for a senior level.
Software Engineering is a field that rapidly changes, and those folks that flow easily with the changes will excel in terms of position and pay. So for architect and lead positions, the pay would be on the upper end of the ever-changing pay scales, whereas a senior position would be in the mid-range. In California, that'd equate to 100K - 130K for a senior. There are pay adjustments depending upon the complexity of the job being performed and many other factors.
So how can you, relatively quickly, get to that senior position?
1. During your degree, pursue relevant employment through your University/College (i.e., being a CS tutor, etc.). As you get closer to graduation, pursue relevant internships at companies. This can help to get you through the "experience catch-22".
2. After graduation consistently pursue relevant software technologies on your own, to include classes, professional groups, etc. I'd recommend not relying upon the company you're working for to do anything but pay a good salary with standard benefits.
3. Pay attention to the job descriptions and their requirements. You should see a pattern of asking for a relatively low number of years experience and at the same time a rather large list of technical requirements. You'll meet the years of experience requirement pretty quickly and, in the meantime, suggestion #2 above will help to meet a position's technical requirements.