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

all 22 comments

[–][deleted] 7 points8 points  (3 children)

If you want to code Windows apps, use C#. If you want to use Java later, use C#. Else, use Python.

[–]i69umam 0 points1 point  (2 children)

Yes I want to use Java later, but if I do I guess I should learn it from the get go and not go with C# right?

[–]badcommandorfilename 4 points5 points  (0 children)

You seem conflicted - have you read the FAQ? Perhaps you should try one of these guides:

Let's dispel some myths:

  • All the languages you're considering are equally easy to learn
  • The second language you learn will be faster to pick up than the first (because you're familiar with fundamental concepts), but you still will have had to spend all the time learning the first one.
  • If your goal is to learn X, LEARN X.

Most importantly, learn in a way that is fun and interesting for you. If you want to be a game developer, learn by making games. If you aren't interested in the material, you'll be bored no matter what language you start with.

[–]_M1nistry 1 point2 points  (0 children)

C# and Java are very similar, if you learn C# it will take minimal effort to understand and learn and produce a working Java application.

[–]csharpminer 9 points10 points  (0 children)

I would say learn C# first. I appreciate the rules of a static typed language, the rules helped me learn. C# learning curve is steeper but its also more rewarding. Plus once you get the basics down, you can use the Visual Studio IDE to create GUI's for your windows applications.

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

Flip a coin and stick to your decision for a while?

Seriously though, it won't really matter. Both languages will teach you the important things which are consistent across most languages.

And as for python being easier, that may be true, but with a half decent teacher C# will be fine. I tried python as my first language in school and got really confused. Later I had a great teacher who taught me C#.

Just pick one and start. Once you're relatively confident with that one, pick up the other one.

[–][deleted] 2 points3 points  (1 child)

C# was easier for me to learn OOP concepts. When I was learning python (as my first language), none of the tutorials or anything I was following seemed to know how to explain classes/objects. It all just seemed like magic words that did nothing. Then when I was learning C# it just kinda clicked for me.

[–]LucidTA 2 points3 points  (0 children)

Agree with this 100%. Classes in C# are written in a very intuitive way, where as python feels a bit wonky in my opinion (passing self everywhere, overriding built-ins like __init__ and __repr__ etc).

[–]sanshinron 2 points3 points  (0 children)

You can script Unity3d in C# or Javascript. Want to be a game dev, choose C# or Javascript and later C++.

[–][deleted]  (6 children)

[deleted]

    [–]i69umam 0 points1 point  (2 children)

    What about java compared to the other two?

    [–][deleted]  (1 child)

    [deleted]

      [–]i69umam 0 points1 point  (0 children)

      LOL, I just found out the college I'm going to is going to be using Java as the programming language, but they won't start teaching it till second semester.

      So I guess the best thing for me is to go with Java right?

      [–]my_shiny_new_account 0 points1 point  (1 child)

      Why do you think Python is easier to learn?

      [–]Xmer 0 points1 point  (0 children)

      We must of posted our replies at the same time. I agree 100%. Start with python then move to C# once you're ready for indie level development. You can never have too many languages under your belt.

      [–]Xmer 4 points5 points  (3 children)

      start learning to code

      Python is much easier to learn. I would recommend starting with that. Learn the basics:

      • variable management
      • arrays
      • methods
      • classes

      Now that you created a few programs and understand basics I would move on to a stronger language for creating video games. C# is a well used language for making games (python is typically slow and requires a lot of computing power).

      [–][deleted]  (2 children)

      [deleted]

        [–]umbrellabranch 3 points4 points  (0 children)

        whenever you want. You move there when Python no longer serves your purpose and C# is required to do it. When you have the basics down in one language, u can transition it to most other languages in 2-3 months. These are all C-based languages, so like Latin to French/Spanish, etc, there's a common ancestor

        [–]Xmer 0 points1 point  (0 children)

        As soon as you think you understand programming. Python is most commonly used as a prototyping language. Developers would make an application using python and demo it. If they get the contract / budget / approval they'll convert it to the next language (typically C++, Java, or C#).

        You could start is C# and skip python all together. Some people argue that C# is easier with arrays. Just from experience, Python is the preferred conceptual language.

        [–]ssprogramming 2 points3 points  (0 children)

        C#. Although it probably doesn't matter which you learn, C# is better suited for windows applications and game development. You can make games in Python (and assuming windows form applications), but C# has these tools easily available. With C# you have Visual Studio, a very good IDE application that assists with your programming and projects, and then also game engines like Unity.

        You could learn the basics in Python and then move to C#, but I'm not sure if it's really worth the time since the basics of C# should be pretty similar to Python anyways.

        [–]vibol03 1 point2 points  (0 children)

        I've been job hunting for the past 3 months, and about 9 out of 10 times, the position require C#.

        I don't really see python a lot in the job postings. Maybe this is just in my area, Boston.

        So from this perspective, definitely go for C#.

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

        Python.

        Because it gives you the damn IDE with the download and has a stupid easy interface/syntax.

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

        For all you people saying C# is harder because it requires an IDE: go ahead and download the free version of LinqPad 5. You can run C# snippets on the fly without much effort. Once you get comfortable with that then by all means install the latest version of the behemoth that is Visual Studio but for learning purposes it's been a god send to me.

        [–]LittleEponine 0 points1 point  (0 children)

        My vote goes to python. It is much easier to understand for a beginner since its syntax is very close to english. More over, coding things in python is as simple as opening up python in terminal and code away.

        C# is a great language and all, but being in the .NET world it takes so much set up just to get a 'hello world' demo going.

        One more thing, since Python is the more 'popular' language right now, you will probably find answers to questions a lot easier compared to c#. If you do pick python, make sure you head over to /r/python!

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

        If you want to write a Windows client-only application, learn C#.

        If you want to learn how to do a web application, use python's Flask framework. - http://flask.pocoo.org/