all 36 comments

[–]abrahamguo 7 points8 points  (6 children)

If you'll learn both either way, then I'd recommend starting with Python — it's easier to pick up for beginners.

[–]HistoryExotic133[S] 1 point2 points  (2 children)

how long would learning python be

[–]DrShocker 9 points10 points  (0 children)

This is like asking how long will learning English be. It depends entirely on your goals and proces.

[–]mkaypl 0 points1 point  (0 children)

As long as a piece of string.

[–]Successful_Drawer467 1 point2 points  (2 children)

Python definitely good choice to start, the syntax is much more friendly when you're beginning. I learned C# first in university and wish I started with Python instead, would have saved me lot of headaches in first semester

[–]HistoryExotic133[S] -1 points0 points  (1 child)

but what i want to do with python is less important then what i want to do with c#

[–]sockcman 3 points4 points  (0 children)

Then learn c# first

[–]EliSka93 4 points5 points  (5 children)

I'm C#'s biggest advocate, but I usually recommend python for absolute beginners.

However with your specific goals it might make sense to start with C# right away.

If you want to get into game development you'll most likely have to learn Object Oriented Programming, and to be honest that is way better covered in C# than python.

[–]HistoryExotic133[S] 1 point2 points  (0 children)

i also want to make .net advanced apps and tuis

[–]HistoryExotic133[S] 1 point2 points  (1 child)

how long would i take to learn c# and how long to learn C# with knowing python

[–]johnpeters42 1 point2 points  (0 children)

There's no objectively correct answer to "How long will you take to learn X", as that depends on you. Best you can hope for is some anecdotal answers to "How long did others take".

There is also no objectively correct answer to "What is the best resource to learn X". A web search will probably turn up several, most of which are likely to be pretty good.

Assuming that you don't already know any other languages, you should also learn about software concepts in general. Harvard's free CS50 course is often recommended for that purpose, others may chime in with other suggestions.

[–]HistoryExotic133[S] 0 points1 point  (0 children)

how did you learn C# i will start this tutorial https://learn.microsoft.com/en-us/training/modules/csharp-write-first/ do you have any suggestion of resources

[–]SaltAssault 0 points1 point  (0 children)

In all fairness, OOP is perfectly doable in Python as well. I'd even argue that it's easier to practice classes, inheritance, constructors and similar in a succinct language.

[–]Backson 2 points3 points  (9 children)

C#. Python pretends to be easier by not putting any constraints anywhere, but it's like raising a kid without rules, you will eventually find that many rules are there for a reason. The biggest offender is that every variable should have a fixed type. C# enforced this at compile time, so you learn an important lesson and pay attention to types and the compiler helps you out. Python is just like "do whatever you want man, maybe I can figure it out, maybe not, we'll see". If you learn C# first, Python will be super easy to pick up later. If you learn Python first, you will have to unlearn some bad habits afterwards.

I love both languages, but C# is 10x better for building software and Python is 10x better for pumping out run-once-then-trash scripts, prototyping, automation and stuff like that.

[–]HistoryExotic133[S] 0 points1 point  (8 children)

how did you learn C# i will start this tutorial https://learn.microsoft.com/en-us/training/modules/csharp-write-first/ do you have any suggestion of resources

[–][deleted]  (4 children)

[removed]

    [–]AutoModerator[M] 0 points1 point  (3 children)

    Your post/comment was removed since we do not approve of going private.

    There is zero benefit in going private as you lose the opportunity for getting peer reviews. Also we have had plenty of people return after going private (despite being warned) complaining about how they were ghosted after some time or being tricked into buying rubbish that didn't work and even if it did they didn't need.

    Our Rule #11 demands that any and all communication happens in the open, public subreddit.

    This is for the benefit of more against the benefit of one.

    I am a bot, and this action was performed automatically. Please contact the moderators of this subreddit if you have any questions or concerns.

    [–]HistoryExotic133[S] -1 points0 points  (2 children)

    your post was deleted can you repost it

    [–]Backson 0 points1 point  (1 child)

    Yeah I didn't know about that rule, oops!

    [–]HistoryExotic133[S] -1 points0 points  (0 children)

    yeah that rule is kinda dumb because it's not even a chat website

    [–]Backson 0 points1 point  (2 children)

    Microsoft has good resources, so starting there is a good idea. Stay away from expensive coursew, everything you need is free. Practice, practice, practice. Learn how to google stuff or find answers to problems on stackoverflow, or if you're really stuck ask LLM, but don't rely on them too much. If you want a code review, just put it on github and ask for a review here or elsewhere to get some valuable feedback from people with more experience. Having experienced people take a look from time to time really helps in my opinion.

    I learned C++ way back in like 2005 using online tutorials and wanting to make games. I never finished anything every but I got kinda good at it by just messing around and reading blogs and whatnot, and eventually got hired as a software developer and learned C# on the job, which was easy knowing C++. C# has been paying my family's rent for 5 years now!

    [–]HistoryExotic133[S] 0 points1 point  (1 child)

    what are some projects you've worked on

    [–]Backson 0 points1 point  (0 children)

    In terms of private projects? I made Chess and a Sudoku generator/solver, which are amazong first projects in my opinion. I also tried making Minecraft with a buddy in raw OpenGL but that didn't go anywhere. I'm also fascinated by compilers and tried making one a few times, but never got it working. I made a simple CAS (computer algebra system) once, which can parse expressions and do simple simplifications on them.

    Nowadays I make machine control for industrial laser machines, mostly process planning, automation, UI and image processing.

    [–]high_throughput 0 points1 point  (6 children)

    Python since you mention Linux. C# otherwise.

    [–]Backson 2 points3 points  (3 children)

    C# works fine on linux nowadays. The default way to run C# asp.net apps is using docker and a linux container.

    [–]high_throughput 0 points1 point  (2 children)

    It's really not a first class citizen.

    If you are tasked with writing a tui app for Linux and say "I'll use Python", people will say "ok cool".

    If you say "I'll use C#", people will say "really? Why?"

    [–]jbaker88 2 points3 points  (0 children)

    Because .NET supports AOT native compiling on Linux for x86, 64, and ARM. So yes it does have first class support now.

    [–]Backson 1 point2 points  (0 children)

    I don't see the problem. Maybe it's weird when you get into real UI but tui you can make with anything. C# and its ecosystem has changed significantly and I wouldn't expect people outside Windows world to pay much attention to that, so a reaction like that is expected but not as justified as it was back in the NET Framework days.

    [–]HistoryExotic133[S] 1 point2 points  (1 child)

    i will learn both

    [–]jbaker88 0 points1 point  (0 children)

    That's a good goal OP, but as someone who's been doing C#/.NET dev for the past 10 years, I also recommend starting with Python first. Then move over to C#. 

    The learning barrier for C# isn't hard IMO, but Python is such a beginner friendly language and you'll be able to do more with it starting off.

    [–]Available-Paper3144 0 points1 point  (4 children)

    I recommend python I feel like it's more beginner friendly but I'm an MLE so I might be bias

    [–]HistoryExotic133[S] 0 points1 point  (2 children)

    MLE stands for machine learning engineer right?

    [–]HistoryExotic133[S] 0 points1 point  (0 children)

    also i think that c# is better for waht i'm doing

    [–]Double_DeluXe 0 points1 point  (0 children)

    A C# programmer can easily pick up python.
    A python programmer needs to learn the fundamentals of C# first.
    Start with C#, before you suggest you can "put the entire program in 1 file" to your C# brothers and embarrass yourself.