College Students: Want To Earn More? Take a COBOL Class
jfruh writes: With a lot of debate over the value of a college education, here's a data point students can use: at one Texas college, students who took an elective COBOL class earned on average $10,000 more a year upon graduation than classmates who hadn't. COBOL, dropped from many curricula years ago as an outdated language, is tenaciously holding on in the industry, as many universities are belatedly starting to realize.
I looked in to Cobol rolls as a potential career shift as I keep reading on Slashdot how amazing a Cobol job can be...
After a quick scan of most UK job sites for Cobol in London (where all the banks are ..) e.g.
http://www.indeed.co.uk/Cobol-...
Pretty much all roles are £40l-£60k a year and require some kind of real world, commercial experience with Cobol/mainframes etc etc
That's not that exciting, The salaries are lower than equivalent positions in other areas of development. You have to work for someone like Lloyds. Chances are you'll need to wear a suit to work. Have to work in London. By definition, you're going to be supporting ancient, systems which have undergone years of maintenance by probably dozens of different developers and it's going to be super enterprisey, loaded to the gills with change control and red tape, etc etc.
I don't get it.. sounds awful..
The problem with slashdot is that most of its users were bullied and stuffed into lockers as kids!
There is certanly a lot of hate directed at COBOL. However, since if it is still being used, then it still has some capability that is not available in other solutions. Also looking at the wikipedia, the language keeps being updated (COBOL 2014 standard is out for example) and supports object-oriented methodology.
COBOL is one language that I haven't encountered. Perhaps it would be insightful if someone can explain why there is so much animosity towards this technology.
One in high school in the late 80s, and one college course while in the military.
Of course, I may need to freshen that up a bit.
If you think I voted for Trump because of this post, you're wrong. I voted for Dr. Jill Stein of the Green Party. Again.
...many years ago. An extra $10,000 a year isn't enough to get me to program in that language again.
I wouldn't advise anyone to study COBOL unless they really needed the job. If you go that route you are going to be doing uninteresting (to me anyway) programming in a ghetto while other programmers of your generation are doing more interesting things. COBOL is a dead-end.
Working for others may get you a decent living, but if you really, and I mean, REALLY want to earn a lot of money, working for others won't make you rich
I started by working for high tech companies, some decades ago. Yes, I did earn really decent wages, much better than most of my peers at that time. But I didn't stop there
When I was working, I noticed niche markets that were not being fulfilled. I got out and started my own companies (plural) to do just that
Some of the companies I sold to others, some I kept. A lot of people are working with me right now, but I gotta tell you, no matter how much I pay them (and yes, I do pay my co-workers very handsomely) they still do not earn as much as I
The moral is very simple --- if you really want to be wealthy, stop being a worker, and start being an entrepreneur
Muchas Gracias, Señor Edward Snowden !
I took COBOL -- late 90's.
The one job interview I went on where I could put that skill to use showed me why I *wouldn't* want such a job.
The issue wasn't the language per se, it was the fact that most companies still using COBOL are also trapped in chronically underfunded and undervalued IT departments, holding old machines and apps together with bailing wire and duct tape.
Um, COLBOL is probably one of the few languages out there that DOESNT have a dedicated fan-boy following. Seriously, watch this thread and see which of the following statements gets the most hate:
Ruby, as an untyped language, is incredibly slow and thus should not be used for large scale systems
Node.js encourages unmaintainable code because of "callback hell" and prototype inheritance is an abomination
Java is way too verbose to be useful, and the JVMs gc sucks
Python is a fractured environment and should only be used for small-scale projects
COBOL is a dinosaur language that is only useful for maintaining crufty legacy code.
Monstar L
You get $10k more a year. The downside is you have to use COBOL.
I have been making a living by coding in Fortran for the past 5 years. An interesting conversation between the detachment company I worked for and one of its potential clients:
client: Do you have anybody who writes Fortran?
employer: Sorry, that is too old, we do not do anything with that.
client: But one of your employees (me) has on his linked in profile that he is a Fortran programmer
employer: he must have forgotten to update it, but we will have a look
client: please do.
And a month later I was working at the client. had a really cool time for ten months. All you have to do is present clearly that you are skilled at it, because otherwise everybody will think you have made a mistake.
students who took an elective COBOL class earned on average $10,000 more a year upon graduation than classmates who hadn't
Makes me think if this is median or mode average. Maybe there's a single expert who got some crazy $10,000,000/a mission critical deal. ;)
While it's quite reasonable that the extra pay is because these people get good jobs developing COBOL, is it perhaps possible that it's more about the mentality of the person who takes such a course?
For example, if I'm interested in making lots of money I'll go into financial software. A lot banks still use COBOL, so doing a course on that increases my options in this area. Even if I don't use it ever again, and don;t even go into banking, I'm still a lot more likely to work for a company that pays a lot because money motivates me.
If you don't care about what kind of job you get, just how much money you make, then:
a) You will make more money than someone who considers other factors in their choice of career.
b) You will take any courses which you're told will enhance your marketability, no matter how disgusting. Like COBOL.
Hence it's unsurprising that people who take COBOL make more money... but is it *because* they took COBOL? That's less clear. Correlation is not causation.
This is a typical thing: The "modern" solutions are all bells and whistles, but are missing basic things or do them wrong. More often than not, this is because they were designed by people that saw some real or perceived shortcomings in older tech, but completely missed its strengths and failed to reproduce them.
Example: Ever tried to do massive multi-threading in Java? That fails miserably and the byte-code interpreter does nothing but task-switching very soon. In an "enterprise" setting, these things are toys when the back-end is considered.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Good hypothesis.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
One of the things I think when I look at something like that is, the $10k difference is illustrating how much more people make that care enough about computer science/programming to take the time to explore many languages - not so much that they are all getting COBOL jobs, they are just more competent.
"There is more worth loving than we have strength to love." - Brian Jay Stanley
Shocker. Economics 101. As the the pool of COBOL programmers is reduced the shops still needing them are going to have to pay more.
Keep the Classic Slashdot.
I don't think those kids go out into the wide, wide, world to program COBOL. I suspect that the subset of CS majors that care enough about real-world jobs are the sort to take a COBOL class, just in case it comes in handy. You'd probably also see that these students are more likely to pursue computer-related summer and in-school part-time jobs, more likely to participate in open-source projects etc.
I know that when I was looking for jobs, I had a whole stack of job offers, despite a middling GPA. Some of the other students in my dept. struggled to find a job, despite better grades. The difference? Two computer-related summer jobs, four different tech-related work-study jobs, and a LOT of extra-curricular study in IT. If my school had a COBOL course, I probably would have taken it. (I did take a SQL course, which wasn't even offered by the CS dept.; it was in the business school, along with the other IT (vs. CS) classes.)
Speaking for myself, I like working for the man! I get to spend my entire workday (consisting of reasonable work hours) doing something I enjoy (Enterprise IT architecture.) Yes, "The Man" makes more off me than they pay me (they are a profit-making company, after all!)
But in return for the 6% Net Profit they report annually, The Man does all the things I don't want to, like Sales, Marketing, Legal, Accounting, Administration, Management, Benefits, etc. I don't want to do those things myself, nor am I particularly interested in figuring out how to manage somebody else doing those things for me.
I do well enough... I'm on track to retire comfortably at 50 after years of doing work I enjoy and working with people I like (and don't have to manage!), and I have a lot less stress than a serial Entrepreneur.
If doing all that scut-work, or managing others to do it for you, is what floats your boat, more power to you! But it's certainly not for everyone.
You sound a bit unhinged.
Did it ever occur to you that some people don't mind being employees? I'm not sure how you equate "working for somebody else" with inevitable serfdom. I show up for work for reasonable hours under reasonable working conditions, I do my job, they pay me for it, I go home. Nobody took rights away from me; if I don't like the arrangement, I tell my boss it's over and I go elsewhere. No violence necessary or wished-for.
This is correct. From what I'm seeing in the summary at least, there's a very clear selection bias.
This depends somewhat on what is meant by 'elective'. If it means extra-curricular, there's an obvious selection bias on proactiveness. If it instead means you get to choose from this set of courses, then there's still be a selection-bias (perhaps students with an interest in programming languages as an end rather than just a means, are on average more successful as software engineers).
Doesn't matter. There's still a selection bias.
Suppose that students with an interest in programming languages (as an end, not just as a means) on average go on to be more successful software engineers. These students are more likely to take the COBOL course (assuming the alternative courses are on topics other than programming languages).
Even if the course teaches them literally nothing, we still expect the students who opted to take the course, to do better than average.
Likewise, mine expected you to know C++ to understand OOP.
Never had a C or C++ course before or after.
C, ASM, COBOL, PHP-8 / 11, Fortran, Perl, Bash, SH, PHP / Rails and Java. If you know those then you'll be set for pretty much anything you'll find in the real world.
I took an elective course in beginners COBOL back in the day (1992). It was an elective, but it was picked blind, before the course had started. I quickly realised that I didn't want to work in this language, and that C was much more interesting.
These days, I write perl. Which is closer to C than it is to Cobol. Cobol, if anything, is closer to banging your head against a brick wall - it feels *so good* when you stop.
... and today's pet project has
Took we had to take it in CS back in the early 90s. I actually enjoyed it quite a bit. Now, would I want to program in it for the rest of my life? Probably not. :D
I've been kept pretty well employed thanks to Ada experience. Military projects are not a large niche but the companies I've worked for tend to have issue finding people with Ada experience and don't like training. Plus those projects pay a little better than average.
1) Learn javascript
2) Learn cobol
3) Use Cobolscript
4) Profit !
"Consensus" in science is _always_ a political construct.
Did you actually read his whole post? I don't care if he would prefer not to employ people, although implying that anyone that would employ someone else for profit is pretty much Evil Capitalist Scum is a bit weird.
What I keyed off of was: " The only reason why I do not act violently against people like you is that I abhor violence even more than I abhor your ideals." The only thing stopping him from violently attacking perfectly normal employing business owners is disliking violence some small amount more?
Actually, Java is _the_ language for doing massive multiprocessing/multithreading in, I don't get where your weird aversy comes from. :)
A pretty bad example of yours, but alas the clueless moderators disagree
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Yes, sounds great. Make 10K more out of the gate. And if you're finding it tough to land a job right now, what a DEAL this is! You're employed! You're really needed since the number of COBOL programmers to support legacy systems are dying off (figuratively and literally).
There's the catch. They've got you. You don't know it, but they know it.
Next year, your fellow grads who got jobs are learning TONS of new things, other skills. Team building, real life design. Team leadership. They're getting mentored perhaps. They'll make their way up to intermediate, then senior developers. Maybe into architecture.
But you're still slogging through COBOL code. Supporting legacy systems.
And they can't afford to lose you, so your company (A Bank most likely - not the fastest moving group in the world (and I know since I've worked for three)). So you're still COBOL programming. But, y'know, thanks for the effort. Here's a 2K bonus.
Uour friends are now 2 years along in their careers, they're moving to new jobs, making 10-20K more since they can show job experience, skills experience, and real-life development qualities.
You're even or a bit behind, pay-wise. But they're going places. You're about to stand still, career-wise.
In a year they shoot past you, and that's that. You're standing still. Cost-of-living increases if you're lucky. But hey! We at the bank really appreciate it. So here's a nice mouse pad, and the latest patch release for COBOL on the Z-Frame.
So, no movement here. What to do? I know!! Other companies need COBOL programmers. I'll play the field and see who will throw me more money.
Great. You make a bit more money. Doing EXACTLY the same thing, somewhere else, with little if any career growth. It's possible you will always have a job, since COBOL is entrenched, and not going anywhere. But that's all you'll ever do. That and cut 1650 reels with your teeth.
Don't Do it. It's a trap.
A more likely correlation is that better students make better money. If you are taking COBOL as an elective you are trying hard as a student selecting courses that are hard but meaningful to your degree, rather than simply picking some easy A course to bump your average. If goes to figure that these more serious and better students with drive and motivation will also apply those same principles when trying to find work.
I took COBOL myself in the late 90's, however not as an elective but as a mandatory CS course (I think it was mandatory anyway). I have not used it one whit other than I had it on my resume for a bit before I acquired enough other experience to fill it out, and possibly to mention it offhandedly in an interview or in discussions on Slashdot.
Are you seriously suggesting COBOL is more suitable for massive multi-threading than Java?
I took 1 cobol class and have been consistently under-earning my peers by $20k/year. Alas, I'm a Network/Server/project manager and not a coder.
Remember kids, if you're not paying for the service, YOU ARE THE PRODUCT THAT IS BEING SOLD.
It's my fundamental human right not to wear a suit to work.
To have a right to do a thing is not at all the same as to be right in doing it
Just let it go, people.
In the past four decades.
Generally if you are proficient in a couple languagse, you really dont need to take a course to learn a new language.
I know somebody that tried this. At around 5000 threads he got no real progress whatsoever anymore.That was a while back, but at that time Java was already a few years old.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Well buddy you and any job you have can go fuck itself. If you're planning to hire me solely because I can shave and buy a suit then I have no desire to work for you.
Oh, and if you want someone who does what I do and is good at it...
I'll have no trouble at all finding a replacement who has all your skills and none of your attitude,
I know somebody that tried this. At around 5000 threads he got no real progress whatsoever anymore.That was a while back, but at that time Java was already a few years old.
The thread limitation comes from the operating system, not from the Java virtual machine. Modern operating systems are not designed to handle a huge amount of parallel threads. The handling of the threads and the synchronization between the threads usually eats up most of the system's resources.
The Java VM indeed has some shortcomings regarding mutli processing: when using multiple cores on the same socket, the Java VM sometimes accesses the same cache lines from all cores. This leads to strange patterns with cache invalidation and slows down all the affected cores. Currently there is no way to mitigate this using Java APIs or VM parameters. But this is a very special problem. When this is indeed the bottleneck, the underlying application is very likely already very well optimized and running quite fast.
If you want to process a huge amount of data, currently the best approach is to run exactly as much threads as you have processor cores. Then you feed each thread with working tasks, using non blocking data structures. For the communication, the threads should use non-blocking IO. Java is prepared extremely well for this scenario, perhaps even better than node.js. Examples are Vert.x and Akka. In some older benchmarks, Vert.x had no problem to serve over 300'000 parallel requests per second on a six core machine.
Edited on on 18:05 Wednesday 17 September 2014: fixed some typos.
If you know COBOL and are going to retire in ten years, COBOL programming can be a good deal.
But if you are 22 it is not a good deal at all. The demand might be high relative to supply, but it is going to slowly shrink. Your better bet is to get experience in something that has a high demand, not because of a small supply of programmers. I'm pretty sure being an experienced Hadoop engineer, for example, will get you more money and the tail of that career is longer. When Hadoop goes out of fashion, the next thing will probably be an incremental change over Hadoop so it won't be too hard to learn. When you are sixty you can take care of legacy Hadoop systems and make good money.
But if you are 22, learning COBOL doesn't have a long pay off. You will make a good, but not great living. Like I said the demand will be low. Your COBOL experience will not put you into a good position to learn hot new things that are based on object oriented and functional programming. Furthermore, you won't have written anything cool and great, so it won't be a great path into management.
If you honestly can't get any job, maybe learning COBOL would be worth it. But I think there's a bigger payoff learning object-oriented JavaScript.
Democracy Now! - your daily, uncensored, corporate-free
Seriously, stop redefining my statement. You have no clue whether the threads in my example were needed or bad design. And no, it was not the OS.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
A COBOL programmer, in 1998, is utterly beyond fed up with dealing with code for the upcoming y2k, and has himself put into cold sleep until after the year 2000. Something gets screwed up in the records, and he's left to sleep away millenia. Finally, they wake him up. He's appalled to learn it's the year 9998, and everything and everyone he knows is gone. On the other hand, he's *really* in The Future, and is looking forward to all the amazing things we've done.
"Just one question", he asks the team that woke him up, "why now?"
The leader answers, "Well, we're about to roll over the year 10,000, and your records say you're a COBOL programmer...."
mark
Your statement is shit. "Some guy I knew a long time ago once used threads for some unspecified purpose and when he got to thousands of threads it become very slow". Well that is just great. What was he trying to do? How was he trying to do it? You act like your anecdote proves something but without this information it contributes nothing to what could have been an interesting discussion.
Since the discussion was originally about COBOL, are you suggesting that language is more suited to massive multithreading than Java? If so, why? And if you truly need thousands of threads, perhaps you need Erlang?
I'm all set for the interview!
000010 IDENTIFICATION DIVISION.
000020 PROGRAM-ID. INTERVIEW-PROG.
000030 AUTHOR. ME
000040* DUMBEST TEST IMPLEMENTED IN COBOL
000050
000060 ENVIRONMENT DIVISION.
000070
000080 DATA DIVISION.
000090 WORKING-STORAGE SECTION.
000100 01 FIZZ PIC X(4) VALUE 'Fizz'.
000101 01 BUZZ PIC X(4) VALUE 'Buzz'.
000102 01 N PIC 9(3) VALUE ZERO.
000103 01 X PIC 9(2) VALUE ZERO.
000104 01 Y PIC 9(1) VALUE ZERO.
000105 01 Z PIC 9(1) VALUE ZERO.
000110
000120 PROCEDURE DIVISION.
000130 MAIN-PARAGRAPH.
000140 MOVE ZERO TO N
000150 PERFORM UNTIL N = 100
000160 COMPUTE N = N + 1
000170 DIVIDE N BY 3 GIVING X REMAINDER Y
000180 IF Y = 0 THEN
000190 DISPLAY FIZZ WITH NO ADVANCING
000200 END-IF
000210 DIVIDE N BY 5 GIVING X REMAINDER Z
000220 IF Z = 0 THEN
000230 DISPLAY BUZZ WITH NO ADVANCING
000240 END-IF
000250 IF (Z > 0) AND (Y > 0) THEN
000260 DISPLAY N WITH NO ADVANCING
000270 END-IF
000280 DISPLAY ' '
000290 END-PERFORM
000300 STOP RUN.
Post anonymously - For when your opinion embarrasses even you!
If you have more threads than cores, obviously it slows down, in any language.
If you have 5000 'working' (not sleeping) threads on a single core, obviously they have to share the processing power, obviously every thread can only run with 1/5000ths of the cores capabilities (much lower even due to context switches).
That is a no brainer and has nothing to do with the language.
But good luck running 5k threads with C or C++ then :)
As others already suggested: try Erlang ... but the programming paradigm is quite different.
Cost free eBook I read (by iBook/Kobo/Amazon/ObookO/Gutenberg etc.): "The Green Odyssey" by Philip Jose Farmer.
Your analysis is shit. I gave this as an example for a larger trend, as in this is 10% of my actual statement by importance.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Really? You presume to teach me CS 101? Pathetic.
Most ACs are not even worth the keystrokes to insult them. Be generically insulted by this and ignored otherwise.
Moving somewhere outside fly-over country where software is core to businesses not a cost center does more for salaries than studying COBOL.
New grads at the big Silicon Valley tech companies are getting $170-$190K packages - like $115K salary, $100K signing bonus, and $200K restricted stock package vested over 4 years.
$2500 apartment rents and a 9.3% state marginal tax rate take a big cut out of that although it's still a net win.
I had to read some COBOL about 30 years ago as part of migrating a database. I had done my first programming in FORTRAN which is almost as old. I suspect that the call for COBOL is that there is need for people to read old code that still needs to be maintained, but my impression of the language is that it was really just about 80% boiler plate and 20% executable. So, couldn't a metalanguage be invented that reads COBOL source and produces some source code that reflects something widely used today, even something much newer?