Should You Learn COBOL? A Real Developer Faces the Legacy Code Dilemma
A C#/.NET developer gets a COBOL offer with paid training. Is learning a 60-year-old language career suicide or a smart move? Here's the honest answer.
"I know C# and Python. I want to work with those. But I just got a COBOL offer with paid training and the job market is brutal right now."
This question popped up on Reddit last week, and it perfectly captures a dilemma more developers are facing than you'd think. Someone with C#/.NET and Python experience got offered a COBOL training position – paid training, but at reduced salary initially. The job market's been brutal, and they're torn between taking it or holding out for modern tech roles.
Not "should I learn React or Vue?" – an actual human being trying to figure out if learning a 60-year-old programming language is career growth or career suicide.
The honest answer based on market data, industry trends, and career trajectory analysis? It depends on what you want your next five years to look like.
COBOL Isn't Dead, It's Running Your Bank Account
95% of ATM transactions still run on COBOL. Not "legacy systems being phased out" – active, critical infrastructure processing billions of dollars daily.
200-300 billion lines of COBOL code are running in production right now. Banking systems. Insurance companies. Government agencies processing social security benefits, tax filings, and Medicare claims. These aren't small operations – 70% of global banks still rely on COBOL systems as their core infrastructure.
The median COBOL developer is between 45-55 years old. They're retiring. Fast.
The median COBOL developer salary in 2025:
- Entry to mid-level: $72,000-$99,000
- Senior developers: $103,000-$132,000
- Specialists in finance/government: $112,000-$167,000+
Compare that to modern languages and COBOL holds up surprisingly well. It's not JavaScript-at-a-startup money, but it's stable, above-median income with extremely low competition.
What That Training Offer Actually Means
Let's decode your specific situation: 60% salary for two months, 80% for six months, then full salary if selected.
Translation: they're desperate. Companies don't pay people to learn unless they genuinely can't find anyone else. The training period essentially means "we'll take a C# developer and turn them into a COBOL developer because we literally cannot hire enough COBOL developers to keep our systems running."
This isn't charity. This is a company looking at their aging mainframe team, doing the math on how many developers retire in the next 3-5 years, and panicking. They need you more than you need them, even if it doesn't feel that way when the job market is tight.
The upside: Genuine job security. Once you know COBOL and understand their specific systems, you become nearly impossible to replace. Companies running critical COBOL systems can't just "migrate to the cloud" – they've tried for decades and keep failing.
The downside: You're betting your career on technology that, realistically, has maybe 10-20 more years of serious demand. After that? Who knows.
What You'll Gain (And What You'll Miss)
This person already knows C# and Python – modern, marketable languages with massive ecosystems and job opportunities. COBOL is... not that.
COBOL teaches procedural programming in a language designed when computers had 64KB of memory. No objects, no functional programming, no modern abstractions. Just procedures, data structures, and business logic.
You will get good at data processing at scale. You'll understand what it means to work with a truly massive legacy codebase – millions of lines written over decades by people who've long since retired. You'll debug without modern tools (and you'll appreciate your IDE forever after). You'll learn business domains that power the economy: banking, insurance, government systems. And you'll develop patience and systematic problem-solving skills that come from maintaining code where one wrong change can break a system processing billions of dollars in transactions.
What you won't get: experience with modern development practices like CI/CD, containerization, or microservices. You won't work with async/await, lambdas, or pattern matching. No cloud platforms, no distributed systems, no popular frameworks. And when you eventually want to leave, your resume will say "3 years COBOL" – which might impress legacy shops but won't excite tech companies.
That's the real question: if you take this COBOL job and decide in three years to pivot back to C#/.NET, how rusty will those skills be? And will employers see "3 years COBOL" as valuable cross-domain experience or a red flag that you're behind the curve?
The Career Path Decision Framework
Let's be brutally honest about the two paths:
Path 1: Take the COBOL Job
Year 1-2: You're learning COBOL, getting paid (even if it's 60-80% initially), building expertise in a niche area with almost zero competition. Job security is excellent. Stress is probably low – COBOL shops aren't doing death marches to ship the next feature.
Year 3-5: You're probably one of the go-to COBOL experts at your company. Raises are likely – they can't afford to lose you. You understand the business domain deeply. You're maintaining and modernizing (probably wrapping COBOL logic in APIs so newer systems can talk to it).
Year 5-10: This is where it gets murky. Some COBOL developers end up in extremely well-paid consultant roles (think $150K+ as companies desperately need help maintaining systems). Others feel trapped, watching modern tech evolve while they're stuck in a green terminal.
Risks:
- Skill deprecation in modern languages
- Limited career mobility (only works at companies with legacy systems)
- Potential ageism issues later (COBOL developer = old = less desirable)
- If AI modernization tools actually work, demand could crash
Path 2: Keep Grinding for C#/Python Jobs
Year 1-2: Keep job hunting in a tough market. Maybe you land something, maybe you don't. If you do, great – you're building modern skills. If you don't, you're burning savings and getting more desperate.
Year 3-5: Assuming you landed a job, you're building relevant experience in technologies with long-term growth. Bigger job market. More companies hiring. Skills stay fresh.
Year 5-10: You have options. Lots of them. You can jump between companies, switch stacks, try startups or enterprises. Your skills remain marketable.
Risks:
- Immediate financial pressure if job search takes months
- More competition (everyone knows Python)
- Market saturation in some areas
- Constant pressure to learn new frameworks and tools
What Makes Sense for This Specific Situation
For someone who knows C#/Python, is struggling to find jobs, and has a COBOL offer with paid training – the decision comes down to a few key factors.
Take the COBOL job if you need income now and can't afford 3-6 more months of job hunting. If you're okay with career specialization over career flexibility, this could work. The company being in finance, insurance, or government matters too – these are stable sectors that aren't going anywhere. You should try to negotiate full salary after successful training completion (not "if selected" – that's too vague). And honestly, you need to be willing to bet on at least 10+ more years of COBOL demand for this to make sense.
Keep searching if you can financially survive another 3-6 months without income. If working on modern tech matters more to you than stability, hold out. If you want maximum career flexibility and options down the road, COBOL closes doors. If you're early in your career (under 30), you can probably afford to wait for something better. And if you have strong network connections that might lead to opportunities, use them before committing to COBOL.
The hybrid approach (based on career trajectory analysis):
Take the COBOL job, but with a plan. Here's a strategic approach:
- Accept the offer – get paid to learn something rare
- During training and first year, maintain C# skills on side projects (30 min daily)
- Learn how they're modernizing the COBOL systems (usually involves APIs, cloud integration, wrapping legacy code)
- After 2 years, position yourself as "COBOL modernization expert" – someone who can bridge legacy and modern
- Transition to roles focused on legacy migration, modernization consulting, or DevOps for mainframe systems
This gives you income now, builds rare skills, and creates a unique niche: the developer who understands both legacy and modern systems. That's actually valuable for companies trying to migrate away from COBOL.
The Honest Job Market Reality
The job market is tough. According to recent data from Reddit's ExperiencedDevs community and industry reports, developers with 10+ years of experience are taking months to land roles. Struggling with C#/.NET and Python experience? That developer isn't alone.
But here's the thing: COBOL developers aren't struggling. At all. There are more COBOL jobs than qualified developers, and that gap is widening as developers retire.
Is that because COBOL is an amazing career move? No. It's because it's a shrinking talent pool maintaining critical systems. You're not getting hired because you're amazing – you're getting hired because you're one of the only people willing to learn it.
That's not an insult. It's market dynamics. And sometimes, market dynamics matter more than passion.
Think Five Years Ahead
Where do you want to be in five years, and which path gets you closer?
If you want maximum income with minimum stress, COBOL might actually win. Want to work at a FAANG company? COBOL is career suicide. Looking for financial stability and a predictable career arc? COBOL is solid. Want cutting-edge tech and startup culture? Wrong path. Care most about work-life balance and 9-to-5 comfort? COBOL is excellent for that. Dream of building products that ship to millions of users? You won't find it with COBOL.
Only you know what you actually want. Not what sounds cool. Not what other developers think you should want. What you actually want when you're 35, or 45, thinking about your career and whether you made the right choice back in 2025.
Making the Call
The job market will get better. It always does. But "better" might mean six months from now, or eighteen months from now. Can you wait that long?
COBOL isn't a dead end, but it is a specific path. Building a niche, having job security, making decent money – but not working with modern tools, not being in high-growth tech, and not having the career flexibility of someone with current full-stack skills.
Is that a bad trade? For some people, no. For others, yes.
The real question isn't "should I learn COBOL?" – it's "am I willing to specialize in a niche with excellent short-term prospects but uncertain long-term future?"
If the answer is yes, take the job. Keep your modern skills sharp on the side. Position yourself as a bridge between legacy and modern. Build expertise that companies desperately need right now.
If the answer is no, keep grinding. Network harder. Apply to 50 companies a week. Take a contract gig to pay bills while you search. But don't take a COBOL job out of desperation and then resent it for five years.
Either path can work. But only if you choose it intentionally, not because you felt like you had no choice.
The market is tough right now. That's real. But tough markets don't last forever, and desperate career choices often do.
Make the choice that lets you sleep at night. Just make sure it's an actual choice, not fear making the decision for you.