Ask HN: Should I study machine learning or software engineering?

15 points by encroach 7 days ago

My college offers Bachelor's degrees in computer science with the option to emphasize in software engineering or machine learning. I find software engineering more interesting because I want to learn to make apps and websites. However I have heard that it has become more difficult to find a job as a software engineer. On the other hand there seems to be a lot of demand for machine learning. I do find machine learning interesting, but not as much. Does it matter? Will I have significantly more/better job opportunities in machine learning than in software engineering?

caprock 7 days ago

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 7 days ago

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_...

  • shortrounddev2 6 days ago

    Yeah there's a huge difference in quality between engineers who like engineering and those who just got into it for the paycheck

    • dakiol 6 days ago

      It’s tricky to notice the difference sometimes. I like programming and read all the tech books out there plus I spent time on pet projects. At work I just do my work as a professional but always keeping a distance and not getting too involved or passionate about it.

tardy_one 2 days ago

Software Engineering and Machine Learning are both very fad driven and you should not emphasize any field where most of the material is 10 years old or less. No one is going to care if you can SAFe agile next decade or understand currentgenerative text models.

Focus on classic Computer Science, I.e. Chomsky has a generative text model you should know. For better SWE, business and MBA are real, and Math/statistics/are real fields for Math modeling where someone who studied them 20 years ago still has a basis today.

smarm52 7 days ago

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...

taf2 3 days ago

I’m confused why it’s a choice… machine learning is like a sub set or computer science… you definitely should have a strong foundation in computer science and maybe as a masters degree focus on a specific area like machine learning. I’d argue for a bachelor’s degree you have to get the basics and then get a masters in something specific like machine learning.

bhaney 7 days ago

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.

softwaredoug 4 days ago

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.

jononor 3 days ago

Matters very little. Take the courses you find most interesting. If you are worried about getting a job, work on your networking and interviewing skills. The first straight after school is going to be hard in a low-activity market.

GianFabien 7 days ago

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.