softwaredoug
I realize it’s hard, but looking at the poor state of the job market I’d argue for both to have a longer term career. There are pure ML/stats folks that know a little Python. They can code a demo notebook that can be hard to implement in practice. There’s also pure, undifferentiated SWEs that have flooded the market.

The most employable folks right now are the Machine Learning engineers that mix both sets of skills.

caprock
If your degree is in computer science, it's generally presumed you will emerge from school as a junior software engineer regardless of the specialization. Plus, software engineering education in school can be really hit or miss compared to industry practices.

I'd recommend doing the ML specialization and just picking up SWE in various class projects and side stuff along the way.

trybackprop
From my experience with 5 years in “software engineering” and then 7 years in “machine learning”, what matters is the most is that you like what you do so that you can bring your A game to work. That’ll separate you from the average engineer and management and peers will take notice. Yes it’s very tough to find a job right now, and there will always be down cycles. But I’ve noticed the best engineers are able to stay afloat even during downturns because they’ve built up a reputation for being a good engineer. Plus, you can always transition into ML if you work hard enough. Even with an ML degree, you’re not guaranteed to find an ML job these days. I actually wrote a blog post about how folks transitioned into ML that you might find useful: https://www.trybackprop.com/blog/2024_06_09_you_dont_need_a_...
smarm52
Not sure where you are, but in Canada you can look at labour market information to get an idea.

The government runs a tool called the Job Bank [1], and it can be used to examine labour market information associated with job title.

Checking "Software Engineer" [2] shows 429 job postings associated with the title "Computer Software Engineer" on the Job Bank. Then comparing that with "Machine Learning Engineer" [3] which only has 60 job postings. Then also you can look at the "Prospects" tab for each and see that there's a lot of uncertainty around "Machine Learning Engineer", while the prospects for "Computer Software Engineer" are well established and look pretty positive.

There's more to look at, as there are quite a few jobs associated with the idea of a "Software Engineer" (For example, "Web Programmer" [4]), and so depending on what you're interested in and what's offered at your school, you may see different prospects as compared with the generic "Software Engineer".

[1] https://www.jobbank.gc.ca/home [2] https://www.jobbank.gc.ca/marketreport/summary-occupation/54... [3] https://www.jobbank.gc.ca/marketreport/summary-occupation/29... [4] https://www.jobbank.gc.ca/marketreport/summary-occupation/22...

bhaney
Your college's curriculum in either will probably be close to worthless to you. Whichever one you decide to study ("both" is a completely viable option), expect to do nearly all the valuable learning on your own. This goes even more for machine learning, where your college's curriculum is probably pretty outdated.
GianFabien
It is very hard to predict the future. The job market shifts constantly.

Personally, I would go for foundational knowledge. Going with where your interests, aptitude and talents lie is more fruitful in the long-term.