The Question That Paralyzes Students
Here's a scenario playing out in university career centers across the country. A student with a strong quantitative background — statistics, maybe some machine learning coursework — opens the internship board. Half the listings demand a PhD. The other half expect fluent knowledge of data structures and algorithms they've never formally studied. Both paths feel like a wall.
This exact dilemma sparked a 2018 Hacker News thread that, years later, still reads like a blueprint for how to think about the software engineering versus data science decision. The original poster, khannate, put it bluntly: stuck between the "Scylla of having the wrong degree and Charybdis of having the wrong background." The responses from practitioners with decades of combined experience distilled something most career advisors miss — at this stage, the question itself is wrong.
Why You Should Stop Filtering Yourself Out
The single most repeated piece of advice in that thread: apply to everything. cschep, one of the top-voted commenters, put it plainly — "Apply, apply, apply, apply! Don't filter yourself out of jobs." The reasoning isn't motivational fluff. Hiring managers, cschep noted, genuinely don't know what they need until a candidate walks in and reframes the conversation. You show up. You're honest. They're honest. You keep moving.
matt_the_bass added a tactical layer: customize your cover letter. Explain why your specific background maps onto their specific problem. A statistics major applying to a data science internship should draw that connection explicitly. The same student applying to a software engineering role might emphasize self-taught programming projects and quantitative thinking. Same candidate, two different narratives, each legitimate.
The meta-advice here is uncomfortable but true, at the intern and new-grad level, job postings describe wish lists, not requirements. You are not disqualified from a role because you don't check every box. You're disqualified only when you disqualify yourself.
The Skill Overlap Is Larger Than Job Titles Suggest
triplee, a commenter with roughly twenty years in IT, dropped the most useful single fact in the entire thread: approximately 75% of the skills between software engineering and data work overlap. Think about what that means. The "choice" isn't binary. It's more like picking which 25% you'll learn on the job, knowing full well that the other 75% transfers regardless.
skate22 reinforced this from the data science side with a specific observation that still holds: "How to get from a trained model to production code is in my opinion a vastly underdeveloped topic in data science." At many data science jobs, you're writing code, often messy, unglamorous code that bridges the gap between a Jupyter notebook and something that survives contact with production systems. Software engineering experience makes you dramatically more effective at exactly this step.
So the career path isn't a fork. It's a Venn diagram where the intersection is the actual working reality of both jobs.
The Degree Wall Is Lower Than You Think
The PhD requirement that scared khannate away from data science roles drew direct pushback. clavalle was succinct: "You don't need a PhD to do data science." This isn't universal, research positions at FAANG companies do lean heavily on doctorate credentials, but for the vast majority of applied data science roles, a strong portfolio and demonstrated ability to extract insights from data will open more doors than a credential that takes five more years to earn.
On the flip side, czbond argued that data science is the natural fit for someone with a statistics and math foundation, because programming is learnable at a level sufficient for data work. You don't need to become a compiler engineer. You need to write Python that does things with data. That's a weeks-to-months learning curve, not a four-year degree.
Internships Are Exploration, Not Commitment
Here's where the thread's advice gets genuinely countercultural. cclevé told the OP: "Do whatever you know less about and learn it. This is no time to specialize." The logic is simple, internships exist precisely to reduce uncertainty about what you'll want to do full-time. Picking the path you already know is the safe, boring, and ultimately less informative choice.
triplee elaborated: "If you feel like picking the wrong thing now at a young age will scar you forever, you're doing it wrong. In this whole industry, things change constantly, and you will have to reinvent yourself and learn with it." This person went from web development generalist to data engineer, two roles that barely existed when they started their career. The reinvention wasn't failure. It was the job description.
grigjd3 added the simplest possible frame: "History isn't destiny and if you try something you don't enjoy, you've learned from the experience." An internship that makes you certain about what you don't want is a successful internship.
The Practical Decision Framework
Pulling the threads together, here's what a student facing this choice should actually do, drawn directly from the practitioners who lived it:
- Apply to both. Stop self-rejecting. The hiring process is your filter, not your own anxiety.
- Tailor the narrative. Same resume, different cover letter for each application type.
- Learn enough programming to be dangerous. Whether you end up in data science or software engineering, code is the medium you work in. You can learn it in parallel with the internship search.
- Pick the internship that teaches you more of what you don't know. If you're already a strong statistician, a software engineering internship will round you out faster than another stats-heavy role.
- Treat the first role as information-gathering. You're not signing a contract with your identity. You're collecting data, ironically, about your own preferences.
The practitioners in this thread, writing in 2018, were describing a job market that has since shifted further in the same direction. The overlap between software engineering and data science has only grown as tools mature and ML engineering becomes its own discipline. The 75% overlap triplee cited is probably higher now.
What This Means Going Forward
The software engineering versus data science debate will outlast any individual career decision because it's not really a debate about jobs. It's about whether you want to spend your career building systems or extracting meaning from data, and increasingly, you do both. The most valuable practitioners are the ones who refuse to pretend the boundary is sharper than it is.
If you're an undergrad agonizing over which internship to pursue, take the advice from people who've made this journey multiple times: choose neither, choose both, choose the one that scares you slightly more. You'll have time to specialize later. You don't have time to unlearn the certainty that came from actually trying something.