Programming for Business/MIS: Java or C++?
November 6, 2018 2:45 PM   Subscribe

As part of finishing my degree (business with a concentration in management information systems), I'll be taking a programming class. My options are Java or C++ - what's the better way to go?

I'm a mid-career tech project manager/analyst who's finally decided to finish my bachelor's degree. It's a business degree with an MIS concentration, and I'll be taking a programming class as part of that. I have enough tech in my background (primarily web - PHP, Javascript, etc; also lots of SQL). that I'm not starting from scratch, but I'm also not looking to learn to code as a career. I've found that the little bit of knowledge I do have is super-helpful in working with developers - I can generally follow along in the code that they're gesturing at on the screen, and it definitely helps when talking through requirements, roadblocks, etc. Linear algebra especially helped.

Again, I'm not looking to learn to build anything so much as I'm looking to use this required course to boost my understanding of the people and projects I work with.

My "intro to programming" class options are C++ and Java. The articles I'm seeing are typically geared toward CS majors, but I'm not sure how much of that applies to me since this won't necessarily be a building block for other languages.

tl;dr: given the choice between C++ and Java for a business major with no intent to move on to deeper levels of programming, which is the better option?
posted by okayokayigive to Education (19 answers total) 1 user marked this as a favorite
Go for Java. C++ has oddities which won't help you and depending on the course could be a distraction.

(just my two cents - I'm a retired programmer who's used both but prefers C++ as a work environment.)
posted by anadem at 3:01 PM on November 6, 2018 [4 favorites]

posted by GuyZero at 3:07 PM on November 6, 2018 [11 favorites]

Neither language is particularly hip, both are widely used, and from a 101 perspective with no desire to move forward, I don't think there's a lot to choose between them-I think that the differences between the languages are unlikely to matter in terms of the coursework for this class.

I'd make the choice based on: whether I had reason to think an instructor was better, or the more conveniently timed class, or my best guess about which language I might encounter in my career, or other stuff like that.

From someone who *was* looking to move forward, I'd recommend C++ (or, ideally, C) as a first language for those who were leaning towards being a more technical sort of computer science person, the sort of person who might often write compilers or operating systems or other tools further from a nontechnical user. Or Java (or ideally Python) for someone who was going to become a less technical sort of computer science person, the sort of person who might write desktop or web or mobile applications or other software closer to a nontechnical user. But the reasons for those opinions won't matter to you at all, I don't think.
posted by Kwine at 3:07 PM on November 6, 2018 [3 favorites]

You're more likely to use Java than C++ at this point, but both have huge installed bases. Java will be easier to work with, I suspect -- less chicanery to get in the way of understanding key concepts.

This is doubly true since you're not interested in coding as a career. C++ development will require a deeper dive, generally speaking, and while that's useful for more code-focused people it doesn't seem to describe you.
posted by uberchet at 3:10 PM on November 6, 2018 [1 favorite]

Java should be easier than C++ if programming isn't your career goal.
posted by kbuxton at 3:12 PM on November 6, 2018 [2 favorites]

Java is way more likely to be useful for you in the future, unless you intend to go into an industry that still uses C++.

There is not likely to be a lot of differences between the two classes if it's a one semester into course, as first semester C++ courses tend to not go deep into things like memory management, so if the C++ one fit into your schedule better, you won't be shooting yourself in the foot if you take it.
posted by Candleman at 3:20 PM on November 6, 2018 [1 favorite]

I think Java has more in common with the languages you'll be using in the future. I learned C++ as an undergrad, but quickly learned that a lot of things that were part of C++ weren't used at all in other languages - like header files, operator overloading, and the STL. Java looks a lot more like all the languages I use now, whereas C++ requires a lot more headscratching.

C++ has a reputation for being more performant; Java has a reputation for being excessively enterprisey - from a business perspective you're more likely to deal with the latter.

Most people I've interviewed (mainly new college grads) knew Java and not C++, so those will be the people working with you or for you.
posted by meowzilla at 3:23 PM on November 6, 2018 [1 favorite]

I know both Java and C++ and think you'll have an easier time with Java.

Unless you know for a fact that the C++ teacher is better, pick Java.
posted by It's Never Lurgi at 3:52 PM on November 6, 2018

I'm also not looking to learn to code as a career.

Java. 1000%. Not even a competition. A lot of the stuff you'll need to learn for C++ is completely irrelevant to you from the business side, and Java will give you all the concepts. In a PM/analyst role in 2018 and forward, you are much more likely to wind up working with people who are working with Java, and it will be the most similar to the things you already know. C++ is just more fiddly in ways that don't help you at all.
posted by Sequence at 3:59 PM on November 6, 2018 [10 favorites]

Pick Java. C++ is rarely used in a business environment.

Java was designed by a reasonably sane committee.

C++ has evolved into a Lovecraftean horror of a language. There are some plausible candidates to replace it with something less brain-eating, so hopefully C++ will fall out of favor soon. If you were going into systems programming I would recommend learning C and then something like Rust.

(I’m a C++ programmer.)
posted by monotreme at 4:06 PM on November 6, 2018 [3 favorites]

Yep, Java.

(I'm a programmer who focuses on other languages but I with Java)
posted by Nonsteroidal Anti-Inflammatory Drug at 5:29 PM on November 6, 2018

there is a bunch of stuff in c++ that is implied, configured in ways that aren't straightforward or in the words of an above poster...fiddly. pick the java course instead.
posted by lescour at 5:53 PM on November 6, 2018

dabble! I dabble with Java.
posted by Nonsteroidal Anti-Inflammatory Drug at 6:14 PM on November 6, 2018 [1 favorite]

Learned C, then Java, then Ruby and Python, then C#, now learning C++ on the job for a new gig.

Java. 100% Java. I mean ideally Python or something, but, between C++ or Java, if you have no desire to do close-to-the-metal-optimize-until-your-eyes-bleed-stupid-language-tricks-are-cool-if-they-make-your-code-run-a-hair-faster stuff, Java.
posted by Alterscape at 7:31 PM on November 6, 2018

I'll also throw my weight behind Java. Hands down it is the better choice for you considering your goals.
posted by mmascolino at 7:47 PM on November 6, 2018

I feel you would have badass bragging rights if you knew C++. It's used in computer games and high performance stuff and would give you a richer understanding of what's going on underneath the airy world of Java.

Java is the safer bet though for what's more likely to be used in business, as it's on all these Android devices.
posted by johngoren at 1:40 AM on November 7, 2018

No an option for OP, but other languages that might be useful for personal dabbling:

Some scripting language. Probably Python, but ruby or perl will expose you to lots of the same flexibility.

Something more modern. C# is the go-to in the Windows world now, and while I've never written a line of it, my understanding is that it's a really solid language.

Javascript. Christ, I hate to say it, but it's huge.

SQL. A business-IT person who can write their own queries is fucking armed. You want to do this.
posted by uberchet at 7:10 AM on November 7, 2018

Atlassian's entire stack is Java, so there's a good chance you'll see it again with an MIS degree.

I love C++ and prefer it over Java, but it's very rarely exposed as a way to control other applications. And the likely scenario for you in the future where you'd have to program (or manage programmers, or modify code) is a plugin or script for an existing app.
posted by teabag at 7:51 AM on November 7, 2018 [1 favorite]

Wow, that's an *incredibly* consistent answer. Thanks, all! Java it is.
posted by okayokayigive at 10:50 AM on November 11, 2018

« Older “Not in a zoo, dad!”   |   Mardis Gras Float Name Newer »
This thread is closed to new comments.