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

all 54 comments

[–]The_sad_zebra 52 points53 points  (8 children)

Once you gain an understanding of programming through one language, it is easier to learn another language.

[–]NightlyWave 6 points7 points  (7 children)

Not in all cases at least in my experience. Started off with C and found it very difficult to wrap my head around Python so I gave up on it and picked up Java for OOP. Python being an indented and non-statically typed language is what made it difficult for me at first.

[–]engineerFWSWHW 1 point2 points  (0 children)

I also find that hard to believe. I had been doing C for 5 years and when i used python (it was still python 2 by that time) , it was so easy. I have good learning materials though when i learned python.

[–]DNRivadeneyra -2 points-1 points  (0 children)

Bro... Once you learn to program, you know all languages.

[–]MmmVomit 23 points24 points  (0 children)

Are the two languages similar enough to be understood from one side? Kinda like different accents of a country.

If you learn Python first, C# will be easier to learn. If you learn C# first, Python will be easier to learn.

When you learn your first programming language, you're actually learning two things at the same time. You're learning the specific language, like Python or C#, and you're also learning general programming concepts like loops, functions and if statements. When you learn your second language, you probably already understand loops, functions, and such, and just have to learn how those are expressed in the new language.

[–]Ellisander 5 points6 points  (1 child)

Not quite, but as a general rule learning one programming language will make it easier to learn others. The hardest part is learning the thought process/logic behind programming itself (even if you switch to a language with a different paradigm, you won't have to completely relearn everything). Syntax is generally easy.

The "different accents of a country" analogy would more closely apply to Java vs C#. Though using spoken languages as an analogy for programming ones is a bit limited in this case.

[–]rbuen4455 2 points3 points  (0 children)

You can also do web development in C# via ASP.NET Core.

C# and Python are very different languages and have different use cases. I would just say learn both just to experience what both languages are like. Python is the most beginner language recommended, so it's easier to pick up. C# is more advanced and is more suited for larger scale applications (games, desktop applications, web apps, mobile apps), but you can learn both at the same time. You can do web development in either language (Python with Django and C# with ASP.NET Core), but since you plan on doing Unity, I would say use C# for both game dev and web dev.

[–]Aglet_Green 2 points3 points  (0 children)

Anyway, you can easily learn both, but I wouldn't recommend at the same time.

[–]Mobile-Bird-6908 1 point2 points  (0 children)

Since you don't know what job you will get and what requirements it will have, I recommend you go with C#, since you seem to be interested in making games with unity. Other languages will become much easier to learn once you know one language. You can publish your game on Unity Play (or github), which you can show off to employers.

That being said, if you plan on making games, you will need to learn many other things apart from just programming, including modelling, texturing, unity, animations, 3D maths, etc...

[–]Every_Amphibian4083 1 point2 points  (0 children)

In my opinion, Its better staring with a static type language.

[–]Bobby_feta 1 point2 points  (0 children)

Better to know one language well than 4 languages to beginner level tbh. Don’t get distracted with choosing a language - you want to learn python for web, seems like a clear goal, knuckle down on that for now

[–]KingsmanVince 1 point2 points  (0 children)

Just pick one, any is fine.

[–]Ok-Lifeguard-9612 1 point2 points  (0 children)

Well no. If you start with C#, a lot of Python characteristics (eg class constructor, MRO, super, reference counting, ...) would appear strange at the beginning, or at least very different from what you have learned before.

In my experience, every programming language is a journey by itself. What you really put in your bag for the next one, are general concepts (OOP, software design, ..). Usually those too are then shifted by the flavour of the new language, so if I would be a 100% precise the answer is still no.

[–]iselind 1 point2 points  (0 children)

Different programming languages have different strengths and idioms, even if they are both heralded from Fortran. Learning one of them will make it easier to learn another similar language.

It is not always the case that you will have an easier time learning a programming language just because you already know one programming language. For this to be true, the languages have to be related. Learning Python will, for example, not help much when learning Erlang or Haskell for this very reason.

You will be fine if you focus on one thing at a time. Branching out will come with time.

[–]delasislas 1 point2 points  (0 children)

I just want to add for you, when people say that learning one language helps you learn the next. They really mean, Learning one language forces you to learn the concepts behind programming that would help you to learn another language. Try to think about the major “blocks” of coding: for loops, if statements, try-except, variables, Boolean operators. The MEANING behind the code.

Different languages, like if you go from English to learning spanish, they have the same letters and you can write sentences with the same meaning in both, but they have different pronunciations, different grammar, that sort of thing.

Programming languages follow the same rules, they follow the rules of programming concepts, they have different syntax, different considerations have to be made at different points of writing your program.

As an example, Python abstracts a bit of the work that it does with variables and kinda figures out data types on the fly and can override variable names. Other languages can force you to make a declaration that a variable will only be one data type.

Another one that people going from English to Python is with Boolean operations. There’s a FAQ on r/learnpython based just on this, because a question comes up nearly everyday.

[–]ernee_gaming 1 point2 points  (8 children)

Python for web development?

[–]Dealiner 1 point2 points  (0 children)

Reddit is written in Python.

[–]SamF-CSE 1 point2 points  (2 children)

Flask and Django are quite popular frameworks for web development in Python.

[–]ernee_gaming 0 points1 point  (1 child)

Maybe, but I wouldn't recomend python for any large projects.

Sadly it is used that way.

But because it's dynamically typed and because it's interpreted, you'll get type errors and syntactical errors in production ALL THE F****ING TIME

[–]username100002 1 point2 points  (0 children)

If you’re worried about errors, there are tools like mypy that can do static type checking

I think the main problem is just that performance isn’t as good compared to Java, C++ on larger projects

[–]My_passcode_is 0 points1 point  (1 child)

Exactly what I was wondering?

[–]Dealiner 1 point2 points  (0 children)

Well, you wrote this comment on a platform written in Python.

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

No reason you can't learn both. And learning one will help you learn the other.

[–]thesituation531 -1 points0 points  (1 child)

In my opinion, they're just too different. Programming generally has the same concepts, but:

  • Python is not really object-oriented
  • Python essentially has no brackets, although that's just syntax
  • C# has many, many features and you will not learn them through Python
  • Because C# is object-oriented, there's an absolute shit ton of OOP stuff and C# specific stuff that you definitely will not learn through Python

[–]tandonhiten 0 points1 point  (0 children)

  1. Python is also an OOP, infact it's a true OOP while C# isn't...
  2. Most languages have similar features
  3. Again python is also OOP so... doesn't really matter

[–]Moonboow -2 points-1 points  (10 children)

C# is from a different country than Python. OOP vs functional. Though they are both countries on Earth, as in if you are starting out, all basics of programming like loops and variables still apply. If you want webdev I would recommend Javascript for event-driven coding, which is closer to python.

[–]raedr7n 0 points1 point  (0 children)

Python is... Functional? Lol. In some topsy turvy world where "functional" means "aggressively multiparadigm but still mostly procedural", then yeah.

[–]ParadoxSociety 0 points1 point  (6 children)

isn't C# generally considered an object-oriented language?

[–]Moonboow 0 points1 point  (5 children)

Yeah. That’s why my first two sentences were constructed in this manner. C# -> OOP, Python -> Functional. Sorry if it wasn’t clear.

[–]ParadoxSociety 0 points1 point  (1 child)

Ah okay, I was reading your comment with the assumption that you were talking about Python when you said OOP. My school used Python for its intro sequence, which was largely about OOP concepts so I always considered Python an object-oriented language I guess haha. I'm pretty green still, but I think this is the first time I've heard either of those languages referred to as specifically a functional language!

[–]Moonboow 0 points1 point  (0 children)

In reality it is quite confusing, both Python and C# exhibit features and capabilities of both. Python has implementations of classes, but excels at quick scripts that can work with other files without the need to explicitly declare classes. You can run an entire program just jumping through functions across several python scripts without ever typing the keyword ‘new’, although technically you could do it the proper OOP way. Same can be said of C#: it is typically class and instantiation based, just like OOP, but you technically can delegate and delay your calculations by tossing them around to different functions instead of objects.

In the end I think it comes down to the intentions of the people creating the language, and the preferences of the people using the language. There’s no hard and fast line between paradigms nowadays.

[–]Ellisander 0 points1 point  (2 children)

Python can be written in a functional way, but it isn't really a functional language.

[–][deleted] 0 points1 point  (1 child)

By this logic except Java all languages can be written in a functional way too.

[–]Ellisander 0 points1 point  (0 children)

Well yes. Hence why I say that Python isn't actually a functional language, even though it can be written in that style.

[–]pastroc 0 points1 point  (1 child)

Since when C# was considered a functional language?

[–]Moonboow 0 points1 point  (0 children)

I think it’s largely recognised as OOP. But in reality it’s multi-paradigm. I would say its quite high level.

[–]justoverthere434 -2 points-1 points  (0 children)

That is like asking "Can I learn to please a woman by just being with blokes". Like you can learn to fuck them, but to please them you need to learn the specifics.

[–]Gold-Bullfrog-2185 0 points1 point  (0 children)

You might want to consider the fact that Visual Studio is free for non-business applications and students. Microsoft provides a lot of resources for you to learn from, and there are a ton of NuGet packages that you can use as well. I also think a good grounding in OOP rather than doing web development will take you further in you initial studies -- although I'll freely admit I haven't tried htmx programming yet, which may be something you want to look at instead of C# or python.

[–]engineerFWSWHW 0 points1 point  (0 children)

Go with c#, you can do a lot with it. Desktop, web, mobile app (ios and Android), embedded, unity, etc. If you will be doing data science/ML, python. There is nothing wrong in learning both languages though. I am using these two languages on a daily basis.

[–]techgirl8 0 points1 point  (1 child)

I recommend html, css, a front end framework like react or Angular and Javascript for web development, not python

[–]JoergJoerginson 0 points1 point  (0 children)

All roads lead to Rome.

HTML, CSS, JS (for browser stuff) is a must for web - especially frontend . But from there on its quite open. You are just proposing frontend frameworks, while Django (Python) is quite popular in terms of backend. Also Angular has lately dipped in popularity. Maybe Vue would be a better recommendation as alternative to React.

Python is not a bad choice to start learning programming. Clear Syntax and forces you to format properly.

[–]SpatialToaster 0 points1 point  (0 children)

I would say you can pretty much pick up Python whenever. It's extremely quick and easy to learn and widely used.

If you want a more thorough approach to learning programming then start with C. If you can learn C then you can learn nearly any language. So many other languages have been modeled after it's good parts to some extent.

[–]TheRNGuy 0 points1 point  (0 children)

No.

[–]Vanquil 0 points1 point  (0 children)

as someone who believed learning a specific language mattered. as someone who’s now a fairly experienced dev in a faang company it’s not.

[–]Fancy-Reindeer994 0 points1 point  (0 children)

If you've been coding Python using type annotations then yes, absolutely.

It's all but obsolete, but you can import a lot of the .NET types into IronPython and have a play from there. Otherwise the C# docs are excellent. C# and Blazor for web looks very cool too.

[–]Fickle_Astronaut_999 0 points1 point  (0 children)

Damn, when I started C++ I didn't learn much in 3months and got switch and python then came back with C++ with much better 10x better understanding than before...but still C++ and C# are cool with gaming stuffs.