Tips and Tricks When Learning Multiple Languages?
BoneFlower asks: "Due to early registrations scooping up most of the good electives at my school, I'm stuck with learning COBOL(required CS class at my school) and Visual Basic.NET (only useful CS elective left) at the same time. The only tips I've gotten from IRC are 'drop one' and 'Focus on COBOL only enough to pass, and put most of your effort on Visual Basic'. I'd prefer to learn both well, do any of you have any suggestions on how to do this? What aspects of each could I use to enhance the other, and what apparent similarities should I keep in mind as dangerous traps? I also have some C++ knowledge, up to basic classes and memory management, so any of that that I could use in the current classes would be useful as well."
This is just an idea, I've never tried it: how about taking simple programs and trying to implement the exact same program in each langauge. Oh sure, VB and COBOL are very different and the interfaces will no doubt be different, but looking beyond that, trying out the same exercise in each language could teach you a lot about them both as you see how they are similar and different. Using a common problem domain will allow you to focus on the differences in structure and syntax. I'm not suggesting trying tough projects here, just simple exercises: memory management, arrays, search trees etc.
You have any facts to back up your claim? COBOL is probably not needed in Fantasyland, but I can assure you COBOL is being used by many companies today. When I was coding COBOL over 10 years ago, we had used 4 digits for the year thus our suite of general ledger programs did not require any fixup during Y2K. Programs are still running in production.
A good program is spending time on developing a firm foundation for software engineering, regardless of what language is used. You know, modularity, code reusability, supportability--stuff that's taught in Computer Programming 101/102. With a firm foundation, a student can pick up a new language with relative ease. Without a firm foundation, all is lost.
I went to www.jobsearch.com (which is a website I have NEVER visited before, AFAIK, I just figured the name would work and it did) and did some simple searches in their "help wanted" database.
COBOL -- 242 hits
JAVA -- 1183 hits
" c program" -- 1740 hits
So, COBOL's obviously the language to choose for a healthy career, right? It's DEAD, Jim. The only companies that use it will make you sit in a room with no windows and wear a tie. C'mon, you know it's true.
Incidentally, I agree with almost everything else you said. But don't take it personally.
I'm going to have to disagree with you on your comments about VB.net.
.Net framework was released, VB is now every bit as powerful as the "real" languages. It supports threading, inheritance and is fully object oriented.
.Net now. I would imagine there are a lot more jobs for VB than there are for the languages you listed as should be required (Eiffel, Lisp, Icon).
Since the
Yes, it is simple to whip up a poorly written program using VB.net, but if given to someone who knows what they are doing, it is an extremely powerful & flexable language.
Also, like it or not, there are quite a few jobs with
Very true. Unfortunately for COBOL programmers, it hasn't been working out that way lately.
All my C programmer friends are employed. Some of my VB-and-similar programmer friends are employed. Very few of my COBOL programmer friends are employed, and every one of them that is employed is working for a bank, and all those banks are trying very hard to eliminate their dependency on COBOL.
COBOL has been steadily dying since the 1980s - it is entrenched in some businesses, but it isn't getting new footholds at the rate it is losing them.
My company replaced half a million lines of COBOL with about 5000 lines of GNU Awk, which is OS independent (COBOL claims to be OS independent, but most real life COBOL shops are dependent on CICS, which has no fully functional ports to any cheap non-IBM platforms).
The Gawk code runs more than ten times faster on a cheaper, less powerful machine. The programmers who coded it learned the language from scratch in two weeks and did the implementation in six months.
No-brainer, people. COBOL is an interesting but obsolete language.
Both Cobol and VB are a response to a business advanced by the major programming language firm of the time.
In the early 1950s IBM pushed Fortran as a replacement for assembly arguing (succesfully) that it allowed for a large increase in programmer productivity without much loss of system performance. Fortran however was too "computer oriented" and many programmers with a strong business background found it difficult to express business ideas in terms of fortran succesfully. So an alternate language called COBOL was created which allowed for a better expression of business concpts at the cost of both performance and abstracting the details of how the machine was opperating.
In the early 1990s Microsoft pushed visual development in C++ (visual C++) as a replacement for standard C arguing (succesfully) that it allowed for a large increase in programmer productivity without much loss of system performance. VisC++ however was too "computer oriented" and many programmers with a strong business background found it difficult to express business ideas in terms of fortran succesfully. So an alternate language called Visual Basic was created which allowed for a better expression of business concpts at the cost of both performance and abstracting the details of how the machine was opperating.
So obviously the important thing to do since you understand C++ (and Fortran takes a day to learn) is to look at these languages as a reaction to the dominant languages of their day. Understanding what they were reacting too.