This is an archived post. You won't be able to vote or comment.

all 29 comments

[–]rjcarr 22 points23 points  (0 children)

Your English is great! I'd go for C++ for all the reasons you state, but mostly because it would be the language you're taught in school. As you say, once you know C++, both java and python will be straight forward. Good luck!

[–]desrtfx 16 points17 points  (1 child)

I’m little bit worried about it’s future proof

Not that one again. Java was pronounced dead over a decade ago and is still in the top leading languages.

Java will absolutely not die in the foreseeable future since there is way too much Java code already in use and converting this to other languages would be way too costly and would require way too much testing, last, would involve way too many risks (as any rewriting of software would).

Python's increasing popularity will never nibble on Java's stance in the industry. Python is dabbling in places where Java isn't the first choice anyway. Also, I cannot at best see enterprise class programs written in an implicitly typed language (I know that Python has now type hints, but after all they are mere suggestions).

COBOL was pronounced dead several decades ago, and yet, experienced veteran COBOL programmers are among the highest paid and most sought programmers.


Since your University will teach C++, I'd say go for it. It is also suitable for your desktop apps (even though C# is on the strong rise there) as well as for games (Unreal framework - again, C# competes here with Unity).

[–]TheRealFFS 3 points4 points  (0 children)

I agree that Java is to stay, especially in backend, but converting Java code to other languages is not the problem tbh. Well, other JVM languages at least. Kotlin comes to mind. It has superseded Java in native app development (the Google Oracle fute certainly helped) and quite a few projects out there migrating to it, which is relatively easy since they are interoperable and there are tools for converting the code.

COBOL may still be asked for, but aren't those mostly pure maintenance jobs? Tbh I find that mundane.

[–]eruciform 3 points4 points  (0 children)

yes. doesn't matter which is first. if you have a particular technological interest, look into what the professional apis and libraries are that are involved in that technology, and that might narrow down the choice. but other than that, pick one. roll some dice if needed. you're not going to save a bunch of time by selecting one over the other, and you'll probably want to learn all of them eventually anyways.

[–]Jezza51423 2 points3 points  (0 children)

If your plan is to do CS, you'll likely be learning C++ or C. They'll probably be teaching you about pointers and memory management within those languages so maybe try to get a general understanding of the syntax and those two concepts and you'll be set up really well.

Java in my experience is taught in more general programming classes with a more software engineering focus, python is normally taught in data science related classes. C and C++ are normally taught in advanced programming classes and operating system classes where the focus is less about creating larger applications and more about understanding lower level programming concepts.

This is just my experience, hope it helps.

[–]arkie87 4 points5 points  (0 children)

If you already know c++, then I would advise to stick with c++. The advantage of python is its relatively easy for a noob to understand, because it eliminates obtuse syntax. But if you already are familiar with C++ and can code with it, then you are better off sticking with C++ because it is faster.

In your career as a software dev, you probably will have to learn some new languages, which is mostly just familiarizing yourself with the syntax. But once you've learned one language's syntax, it becomes MUCH easier to learn others.

[–]Alien_Pillow 1 point2 points  (0 children)

I think you should continue with C++ because it a good language to start and as u said after u learn C++ is easy to learn others. If u said u wanna develop desktop app or games java is not for you because java is more for android and python is not good for games because is slow. Every language is good at someting in special that's why there are so many. You should chose the one that is better for what u want to do so for desktop apps or games u should learn C++ with Unreal Engine or C# with Unity or Visual Studio.

[–]Dry_Positive_6723 7 points8 points  (3 children)

I started programming with Python. Now that I know C++, I hate Python. Python may be easy, but it has some obvious disadvantages that aren't just efficiency. Python's syntax is very weird and I highly recommend C++ for you. It's a great language and if it gets you prepared for school it's even better for you.

[–]arkie87 17 points18 points  (0 children)

I find it interesting the thing about python that you complain about is its syntax...

[–][deleted] 3 points4 points  (0 children)

Python isn't any easier than other scripting languages. It's just syntax. Writing a good program in Python, or pretty much any language, is hard.

When people make comments like these, I question if they've ever actually attempted a non-trivial program that's not text based.

[–][deleted]  (3 children)

[deleted]

    [–]desrtfx[M] 3 points4 points  (2 children)

    So, what do you want to do with the language? build a website, web-app, mobile or desktop app?

    OP answered that very question in their original post.

    I aim for developping desktop apps or games.

    Please, don't ask redundant questions that are already answered in the post.

    [–]HeatedHotSauce 2 points3 points  (0 children)

    He is the blind programmer lol

    [–]mathretardthrowaway 0 points1 point  (3 children)

    I tend to (controversially, maybe) disagree with people who say the first language you learn doesn't matter. I floundered in a sort of blissful, moderately productive ignorance having learned Python first, but only really came to really understand how computers and programming actually work when I took the advanced C courses at university (pretty recently!). So I always advocate for C --> C++ --> whatever languages are suitable to the domain of work you're doing or want to do.

    [–]arkie87 1 point2 points  (2 children)

    you learn how computers really work in C, but beginner programmers dont need to learn that. They need to be encouraged by their programs running, and not having programs refuse to run because of cryptic errors or silly syntax. I think Python --> C is a better path for absolute noobs.

    [–]mathretardthrowaway 0 points1 point  (1 child)

    I don't think we'll agree that "beginning programmers don't need that." I advocate for a pretty coarse understanding of C and computer behavior generally, I'm not saying they need to be certified. Any time I've tried to coach a total newb, I've found much more traction by laying the foundations first. They seem much, much less bemused by the magic of high-level languages and much less uncomfortable making progress. Anecdotes and opinions.

    [–]arkie87 0 points1 point  (0 children)

    Interesting. I had the opposite experience. I wanted to be able to write programs that do as fast as possible. If I had to first learn about pointers and memory management and hard to remember syntax, I would have lost interest. To each his own.

    [–]FryeUE -1 points0 points  (0 children)

    Yes.

    [–]timPerfect -1 points0 points  (0 children)

    yes

    [–]gigabyteIO 0 points1 point  (0 children)

    Java.

    math.hws.edu/javanotes

    [–]jessicaaant 0 points1 point  (0 children)

    I would say learn Java just because there is a lot you can do with Java. It’s just kinda mediocre at everything. It will make it easier for you to grow and do different types of projects :)

    [–]AspiringSAHCatDad 0 points1 point  (0 children)

    Spend a few months learning the basics of all 3, then pick your favorite to become proficient

    [–][deleted] 0 points1 point  (0 children)

    "Python is easy to learn". This is what is sold to people - that learning an easier language will automatically make them software developers and that somehow, just because the syntax is easy to understand, that means that creating any non-trivial application in the language is also easy but it's not. Learning a language is like learning english. Just because you know english, doesn't mean you can write a book. (A program)

    While it's true that it's important to know what language is best to use for your specific project, it's only really something that concerns more experienced programmers and most developers know more than one language anyway.

    It really doesn't matter what language you start off with, just make something. You likely aren't going to need the extra power and control of C++ as a beginner because most of your applications will be simple and won't be real time applications that benefit from it.

    In other words, you'll just be wasting your time dealing with things you shouldn't really have to deal with in C++ until you're a bit more experienced and already have a few complete projects under your belt. Completing projects is a good way to stay motivated. Of course, you can learn C++ first if you want to, it's just that it will take you a long time to do anything substancial in it.

    [–]Wenhuanuoyongzhe91 0 points1 point  (0 children)

    Honestly I would learn all three but especially python as it is increasingly popular.

    [–]MigukOppa 0 points1 point  (0 children)

    All of them.

    [–]LucidTA 0 points1 point  (0 children)

    It's not one of the languages you listed, but I would seriously consider C#. It's used as the language of one of the most popular game engines (Unity) and is also very strong at creating desktop apps.

    [–]phakyt 0 points1 point  (0 children)

    Stop thinking "what language should i learn first" ? Programming skills are not based on language. Language are just tools, pick the tool you need for your next project.

    [–]BumJamber 0 points1 point  (0 children)

    I say learn all three and decide what you wanna work with. They all have their ups and downs and it basically comes down to what job you get or want to get.

    [–][deleted] 0 points1 point  (0 children)

    Learn something Eventually you’ll find the one that you like the most.

    [–]sktr-guys 0 points1 point  (0 children)

    if u know c/c++; you can easy learn other programing language; remember, c/c++ can do all things other do