software engineering questions

My work is similar to @CaMom13 .

My D just started a job with the title of Software Engineer. But she was not a CS (or “SE”) major.
Do you have the basic logic and analytic skills? You can learn to code, outside of college. Or later. In that first post-grad job, there is a lot of leeway and major isn’t necessarily the be-all end-all.

Not really. D was offered a job that wanted PhDs, she has a BA. Sometimes job descriptions are aspirational.

^^ So true. And resume algorithms generally filter for key words involving experience, not degrees. If you’ve got the experience and skills an employer wants no one really cares where you went to school or what your degree was called. That doesn’t mean all degrees are the same but when choosing a path in CS focus on curriculum and opportunity, not the name of the degree issued.

Job descriptions are commonly aspirational. The list of requirements is typically long, but often only a few are true must-haves.

Both my brothers and one son are “software engineers” if they go to the trouble of describing themselves with a title. The all majored in CS. (Well actually older brother majored in applied math because the CS department didn’t exist yet.) Their careers have evolved. For years my older brother ran a company that trained people writing the software for big companies to understand what their customers actually wanted. Younger brother has worked both with gaming and publishing. He’s mostly a project manager these days. Younger son, I think still does coding. They keep trying to make him a manager, but he likes what he does, and frankly I think he’d probably be a terrible manager. BTW he worked for Nvidea one summer and wasn’t doing hardware stuff for them at all.

Interestingly the Software Engineering Institute at Carnegie Mellon seems to be funded largely by the DoD. From what I can tell it offers postgrad degrees.

S1 is a software engineer at one of the big SV companies – majored in math, took some theoretical CS on the side. Avoided hardware and engineering like the plague, which is why he chose the school he attended over another one known for its CS/EE program. Was a very strong self-taught programmer from early on and decided to major in math to have better tools in his kit. Does a lot of language development and big-data stuff, is not so driven by specific product development.

The big companies he interviewed with did NOT care that he was a math major. He had enough CS bonafides and the interview process these days often involves on-the-spot programming, so he had no problem demonstrating his skills or the (and more importantly in that process), the way he approaches questions and problems.

Is currently working on a new project which is likely to involve him taking on a managerial role. He told us on vacation that he just can’t do it all himself on this project. He has done a lot of mentoring, esp of women software engineers, plus lots of teaching, so it’s not entirely out of his league. LIke his father, he’d rather be the technical expert than have to deal with people, though.

“Software Engineer” is a title. Focus on the education and skills that one needs to get there!

Honestly, it really doesn’t matter. There’s a ridiculous amount of overlap in technology so the actual degree concentration won’t really mean anything. In fact, most graduates end up working in IT and spend a career never looking at a math problem.

I recruit these people for a living.

You’ve gotten excellent perspectives here. In general it sounds like your son is more interested in software than hardware.

It’s generally true that computer engineering touches more on embedded systems and hardware.

You don’t need to look for a degree in Software Engineering, that is generally covered in a good Computer Science degree. In my opinion, the B.S in CS is the most marketable, and generally broad-based degree for someone to be a software engineer. Most of the courses a non-negotiable. You get to try some different things as you get higher-lever, User Experience, AI, machine learning, perhaps data science. It all will depend on his interests. This doesn’t mean you can’t get a job with BA in Computer Science. In the end you have to be able to code, and probably design software. Some companies tend to prefer the BS, but it’s not a hard and fast rule. Put it this way: the BS helps open certain doors.

He may combine his degree with Math, Econ, etc for a broader perspective if he wants or minor in something of interest to him.

What’s important is that the program and the school give him opportunities for internships and/or research. Internships are more key if he wants to be marketable when he graduates.

By the way, ALL really good software engineers have to be able to code. Good, lean, clean, scalable, reusable code is key. He will also need to learn to work with users, design/architect software well, work with teams, etc. The best software designers are inevitably excellent coders, and however senior, never lose the common touch and can easily jump in and fix a team member’s code. Most software designers/engineers (titles vary) wants to work on new projects, with a cross-functional team of users, business stakeholders, where they design and code greenfield projects. Then they want to lead projects and teams, then entire engagements, then they want to be thought leaders. Future’s so bright, you gotta wear shades. :wink:

Son told me his programming skills were weak when he first started (also concentrated on theory) but he did well enough on the programming test for his job interview and got up to speed on the job. They hired him for his thinking ability and not his coding experience. His math background was a great help. A few years ago there was a long article (I read the whole thing- they had a word count at the end) regarding important math was to computer science. I agree. Son has self taught languages as desired. He also doesn’t want to be management but has been a go-to person on his teams. The cream rises to the top.

Btw- BA/BS. Don’t worry about which one to get for computer science. It depends on the school. At UW-Madison either is possible in L&S (the school CS is in), one can choose based on meeting differing breadth requirements while the courses in the major can be the same. Hardware Engineering is in the Engineering school at UW with different breadth requirements and gives the BS.

The big decision is whether hardware or software is the desired aspect of computers.

Not that I ever did a rigorous survey, but I don’t ever recall a job posting that specified one had to have a degree in computer science to be eligible. Usually a CS degree is one of many acceptable degrees.