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
Doc 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.
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.
In addition to the advice given by others, I would suggest you go to https://www.bls.gov/jobs/. While its not as detailed, it will give you a good picture of different ventures for software engineers.
To go straight to the answer: as mentioned in another answer, http://www.levels.fyi is an excellent resource for compensation at large software companies such as Google. Currently, the website lists $191k median total annual compensation for an entry-level (L3) software engineer at Google, an L4 (roughly 2-8 years experience) at $269k median compensation, and an L5 (roughly 5-10+ years experience) at $359k median compensation. Smaller and non-software-focused companies will usually pay less.
Companies will depend on size (startups, and small businesses up to large corporations), and focus (software-focused companies like Google will pay differently from not-software-focused companies such as Walmart). Small businesses and startups will generally pay less than large corporations, and companies with a technology or software focus will generally pay software engineers more than companies without.
Software engineers outside the US will generally earn less than software engineers inside the US, with incomes often being doubled in the US compared to equivalent jobs internationally. Inside the US, the NYC, SF bay area, and Seattle areas often have the highest incomes, usually on the order of 25-50% higher than the lowest paying areas of the US.
Job type can vary income depending on factors like frontend vs backend vs full stack developer, whether you're freelancer or contractor vs a full time employee - and whether that employment is for full software engineering, or includes tangential work (IT, sysadmin, etc.). Backend and full stack developers will typically earn ~25% more than frontend developers, often with a smaller gap at larger companies. Full time software engineers will often earn several times more (even on an hourly basis) than freelancers/contractors, and IT workers (though in some cases very skilled freelancers can earn an equivalent income).
Experience can make a large impact as well, with software engineers with 5-10+ years of professional experience earning significantly more than entry level programmers. At software-focused companies, this can mean 2-3x or more earnings for senior programmers vs entry level programmers, though the gap is often smaller at other companies.
Hope this helps!
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".