I've got 18 months to learn a programming language on my own time.

I've got 18 months to learn a programming language on my own time. I want to use it for professional work and amateur gamedev. Should I focus on C++ or C#? C# seems to be the easier of the two but I feel like exploring C++'s low-level concepts will make me more competent as a programmer.

Tip Your Landlord Shirt $21.68

Black Rifle Cuck Company, Conservative Humor Shirt $21.68

Tip Your Landlord Shirt $21.68

  1. 2 years ago
    Anonymous

    You should use c and make your own game wngine.

    • 2 years ago
      Anonymous

      Sorry i meant assembly

  2. 2 years ago
    Anonymous

    I would've told you to use C# instead of C++ in any other circumstance but in gaiming C++ opens more doors. You can learn both though.

  3. 2 years ago
    Anonymous

    If its between unity and unreal, your decision should be focused on the engine, not the language.
    And for what its worth C++ in unreal is very easy and almost feels like C#. They have a lot of macro magic going on

  4. 2 years ago
    Anonymous

    nerds won't tell you this, but C++ is 10x as hard for 1.5x the reward. Don't learn it as your first language. It's a good way to stunt your growth rate as you're trying to get a handle on things to start with.

    • 2 years ago
      Anonymous

      While I mainly use C++ and like it a lot, this is very much true. I’ve been greatly hindered by this autism, don’t make the same mistake

    • 2 years ago
      Anonymous

      Sorry but i'm a massive C# shill and even i aknowledge that in gayming, C++ is unavoidable. If the dude wanna make career in gayming he is going to learn it. I honestly don't understand why he can't learn both.

      • 2 years ago
        Anonymous

        its about what to start learning. he wont learn both at the same time
        I'd say c# is the easier route, then he can still learn c++

  5. 2 years ago
    Anonymous

    if you want to really experiment: C/C++ and play around with no-engine TUI games

  6. 2 years ago
    Anonymous

    The problem of unreal's c++ is not the programming language since it's java like. It's the fact that you have to use linear algebra.

  7. 2 years ago
    Anonymous

    start with C#, after 6-12 months, dabble a little in C++, build at least some experience there.
    Then spend the rest of your time gitting gud at one of them.

    after 18months, specific programming languages knowledge is much less important.

  8. 2 years ago
    Anonymous

    >C# seems to be the easier
    >exploring C++'s low-level concepts
    Don't make the mistake of assuming C# is simple just because it's not low level.
    There is a tremendous depth to explore in C#.

    Instead of worrying about managing your memory you craft inheritance schemes for your factory patterns.

    Instead of sifting through core dumps to figure out where your program accessed invalid memory you are building extension methods for adding your library to the dependency injection system.

    Instead of debugging why your unicode string is coming back as ANSI you are architecting a cloud repository pattern with massive parallelism.

    • 2 years ago
      Anonymous

      All of these things are made piss easy to do for anyone competent, and that's the only commendable point about modern .NET, the tooling is ridiculously insane, so much so you're a moron if you aren't developing on windows (if you got ssms and VS database project tooling to work on Linux you know why)

      It is the best language to teach you web development, it's hardest aspects to master aren't all that you make out to be tho. Comparing it with something like c++ in terms of what you get for your expertise and time invested is criminal.

      You think "adding a library" to the DI container in .NET is hard? It's literally made to be easy so anyone can do it, that's why you call it "adding a library".

      You're not supposed to be stuck admiring this as non-trivial, because it is, anyone competent wasting their time "mastering" c# is just lying to themselves

      • 2 years ago
        Anonymous

        Everything is easy in c#. Something you admit yourself. The trick is vast number of easy things you can do with the framework. It's impossible to learn it all. Adding classes to DI is a basic concept. Doing it with extension methods is an intermediate concept and something to work up to once you are no longer slogging through the simple concepts and instead turn your attention to architecture. Note that I didn't specifically call out web applications. The framework gives you a DI container in aspnet, but you can also include it in console applications. It's an area of further exploration and study. There is nothing in c# that will make your head spin. Just applying thousands of simple concepts in unique and interesting ways.

  9. 2 years ago
    Anonymous

    Learn C/C++. It is an absolute must.
    It is still used for native code and many other languages rely on it underneath.
    It's one of the, if not the, most mature languages there are.
    You must absolutely know C/C++ if you want to program things that are close to the OS or machine.
    Even if you use Python, for some OS dependent stuff you will always have to dip down to C/C++.
    As for C#, there is P/Invoke, so you can do things that are pretty close to the OS.

    Still, C/C++ is more versatile and since you want to use it for learning purposes, in part, it's absolutely the language you should learn.
    Other languages will not give you the experience of managing memory properly, for example, as .NET has garbage collection.
    You will also never learn about aspects such as linking, relocatable code, name mangling, type aliasing, etc. as well as you will learn with C++.
    C/C++ are here to stay for many more years to come and no programmer is complete in his skillset without knowing it.
    I am being so forceful and repetitive because I really think C++ is just that important.
    And once you start learning about it more, you will quickly see why.

    If you want to look for inspiration, the project that reverse engineered Diablo 1 is here: https://github.com/diasurgical/devilution

    • 2 years ago
      Anonymous

      * It's written in C++ and I had recently looked at it, which is why I'm throwing it out there, seemingly at random.

      There are a million other reasons, such as .NET being too Microsoft centric. But you will quickly see why I think C/C++ is the only language/environment that is the, as of today, ONLY universal programming language in terms of the range of projects you can manage with it: everything from kernel development, embedded, all they up to UIs, large networked applications, and that with increasing ease as the language is slowly modernized for more convenience.

      There is absolutely nothing, NOTHING, as powerful as C/C++. The only people getting pissy when you say that are the ones who don't know C/C++.

  10. 2 years ago
    Anonymous

    Your language isn't hugely important when you're just learning programming logic. Don't worry about implementation, just learn the tools available first.

  11. 2 years ago
    Anonymous

    >exploring C++'s low-level concepts will make me more competent as a programmer.
    It looks like that but thats not true cpp makes low level concept's complicated to implement and you spend more time messing with syintax than learning the actual concepts. For example pointer its just an adress of a memory unit simple right but c and cpp make syintax (to assign to initialize to subtract)so convoluted and moronic poeple dread it forever. Also Im not a fan of OOP but it is really nesesary and useful in game development unless you are doing something really simple. Cpp makes declaring a class initiating a class making a child class so filled with random moronation that you loose the focus on building object oriented system and focus mainly on syintax again. Go with c# on this it will be easier and if you are not doing some huge game you can even use few other languages in unity . Which is probably what you are aiming for

    • 2 years ago
      Anonymous

      No reason to use unity over unreal.
      Unreal has a garbage collector anyways. I hate unity.

      • 2 years ago
        Anonymous

        unreal forces cpp on you and for smaller stuff ex game where 2 3d characters fight unity is better especially for a beginer you can do stuff way faster and not worry about trivial stuff

  12. 2 years ago
    Anonymous

    What kind of professional work are you planning on using it for? Unless you're going to be doing incredibly low level stuff, which it sounds like you wouldn't be, you probably want to go with C#.

    /g/tards love to think that writing C/C++ makes them elite hackers, but really it's just a waste of time. C# has so much functionality built right into the standard library, so many useful packages, and a standard package manager you won't have to configure. It would really be a waste of time to learn C/C++ if you don't have a really good reason.

  13. 2 years ago
    Anonymous

    .NET can use native memory and handle it manually... it makes sense to go with C# and use some unsafe code for optimizations to learn low-level language concepts. Then, if you need even more performance you can write code in C/C++ and make a wrapper for it in C# to call it.

    Basically, you will be more agile in C# but if you ever need extra perf you can get it while learning low-level things.

  14. 2 years ago
    Anonymous

    All you need to know is that C++ is based. In comparison, C# is cringe, so it should be obvious where to invest your time and energy.

    • 2 years ago
      Anonymous

      Checks out.

  15. 2 years ago
    Anonymous

    Learn C#, once you get the terminology down and learn to use it properly, get your hands dirty with C++

  16. 2 years ago
    Anonymous

    >proffesional work
    C#
    >amateur game dev
    C++
    Simple as
    >but I feel like exploring C++'s low-level concepts will make me more competent as a programmer.
    Then fricking learn the math homosexualron

Your email address will not be published. Required fields are marked *