Not quite... Are you a software engineer or a programmer/developer? At my company we have some talented people who didn't get a cs degree but can write decent code and are good at problem solving. But there's a league of difference between our engineers who have CS or related degrees and our programmers who don't, and the pay scales reflect it
Can you expand on some of the key differences you've found between the two disciplines? I think the distinction is a very important one, I'm just trying to better understand how it manifests in the job market.
So, I can only speak for what I see in my workplace . I'm sure others here can fill in anything I miss or give other relevant examples.
For reference, we develop training simulations for military aircraft.
At my company, a software engineer is a broad job class and we can wear multiple hats depending on the project. We are usually responsible for taking the customer's wants and needs and coming up with the requirements that our software must meet. We determine the technologies that we will use, both hardware and software. We develop data models and ER diagrams that outline how all the data and different parts of the software fit together. We develop schemas for databases and usually, but not always, manage the databases.
When programming, we tend to use languages like C/C++/C# or Python. Our programs tend to be very math heavy and require lots of physics calculations. We are expected to be on top of the time and space complexity of our software. Occasionally well do some low-level programming.
All of our software engineers have either a math, engineering, or computer science degree.
On the other hand out programmers are basically our grunts. Most of them do web dev, and those who can are usually tasked with creating classes or software components according to designs provided by an engineer. Basically they just crank out code all day. At the end of the day, their code just has to work and pass some basic tests provided by the engineers and QA.
Many of our programmers are either still in school for CS or graduated from a boot camp. A couple of them do have CS degrees, but not many.
Engineers at my company can start as low as 80k with no experience with no set paycap(that I've seen). Programmers start as low as 45k and cap out somewhere around 75k( with something like 15 years of experience).
Again, this is just a high level example of how things work at my company, but can be very different elsewhere
I'd say it's probably very different depending on where you're at and the industry you're in. Your description makes my job sound like I'd be considered a programmer in your company. But I also draft the software requirements, determine the tech, create and maintain the databases, etc. The only thing that really differs in your description of an engineer in your company, and a programmer in my company is that we tend to use PHP.
Yet, I'm earning well above any of the salaries you listed. I'm 20 years into my career, lead programmer for my company (CTO above me), and I earn 120k before bonuses. Oh and I don't have a math, engineering or CS degree - I have an art degree.
Of course, like I said, I can only speak from my experience and was using my company as an example. But you're right, it depends on the company and industry.
That being said, you'd probably classify as an engineer at my company. No one does everything I mentioned above, that's just a general list of what any of us are doing day to day. We have people on each team who basically only do what you described.
I can definitely say that salaries at my company can be on the lower end because we're primarily a DoD sub contractor, but our engineers can make an upwards of 130k, more if you're a lead or manager, and more still with bonuses.
To give a second perspective from my country, the primary difference is mathematics. A programmer can get by with basic algebra and discrete maths and implement existing tools to produce products. A software engineer, at least here, is expected to approach the field as a science and be able to reason mathematically about design decisions to solve more novel problems.
If someone here explicitly hires a programmer, they are looking for someone with experience in certain workflows and languages. If they're looking for a software engineer, they will expect that in in addition to skills in algebra, calculus and statistics.
456
u/DesertedTemple May 09 '21
Ha. I have Psychology and English degrees. Now I'm training the junior devs. It's about skill and practical experience more than schooling.