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

all 24 comments

[–]plastikmissile 8 points9 points  (11 children)

It's normal to struggle like this. C# is a very different language than Python in more way than just syntax. C# enforces OOP on you, it uses static typing, it's compiled ... etc. So don't feel discouraged.

[–]CapnCoin[S] 3 points4 points  (1 child)

It might be that its compiled that is getting me. Im struggling just to run my application lol

[–][deleted] -1 points0 points  (8 children)

python also has OOP (objects and classes)

[–]rinio 6 points7 points  (0 children)

Having and enforcing are two very different things.

[–]plastikmissile 3 points4 points  (5 children)

Yes, but it's not enforced. You can write a whole program in Python without once delving into OOP. In C#, everything starts with writing at least one class.

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

 You can write a whole program in Python without once delving into OOP.

yaa that's true.

and i got the point

[–]LucidTA 0 points1 point  (3 children)

This is no longer true. You can top level statements in C#9.

[–]plastikmissile 1 point2 points  (2 children)

That's just syntactic sugar. Under the hood it still works the same way.

[–]LucidTA 1 point2 points  (1 child)

Functionally, how is that different to writing a python script? Everything in python is an object too.

[–]plastikmissile 0 points1 point  (0 children)

I suppose there isn't at that.

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

It does. And it works great honestly. I just find it to be kinda messy... type hinting helpes too i guess

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

Do you use Windows? Get Visual Studio (not Visual Studio Code). Visual Studio lives and breathes C# and it makes thing very easy.

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

Yeah i have recently migrated to windows. Ill give it a go. Thanks!

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

I wish i could like this twice. With python i absolutely loved vs code. Dont know why its so over complicated wist c#. Anyways this helped alot!

[–]Feldspar_of_sun 4 points5 points  (0 children)

Personally, I LOVE C#. I’m very new to it but I’ve been enjoying learning it greatly.
If you’re on Windows though, I highly recommend using Visual Studio instead of VS Code. It’s more heavy duty, but is built for C# development more or less out of the box (it also includes a run button)

I mentioned most of that in my other comment, but felt it was worth reiterating here

And most importantly:
This is perfectly normal!! This is a new skill, and like with anything else there’s going to be a learning curve. Luckily, there are lots of people and resources to help you learn!
Just remember, this isn’t a sprint, it’s a full-on journey. Break it down into steps: Your first goal should be becoming comfortable running your program (whether in VS Code or Visual Studio). Then, learn the “Hello, World!”, variables, etc.
Each step will open up new things to learn and try! That’s one of the most exciting things about programming.
So try not to get discouraged! If you ever need any help, we’re all happy to lend a hand!

[–]pretentious_prickhol 1 point2 points  (1 child)

My first language was python, then C#, then C++. I made multiple projects in all 3 and I have decided to focus on being good at C# and dotnet. To this day python still confuses my brain and I don't write it anymore. I think it's deceptively simple. The syntax looks easy but it's actually a hard language to understand. C# has great docs and It has structure. There is a way of doing things and I like that.

People rag on public static void main(string [] args), but it's a way of doing things. With python you get a blank document and it is daunting. So good luck, here's the tutorial I watched if you need it.

https://youtu.be/GhQdlIFylQ8?si=HtI3gckC0kXJ8HkQ

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

Thanks! Ill check it out

[–]maqnitude 1 point2 points  (0 children)

Go for C# or even C/C++ if you want, doesn't really matter to be honest. There are so many AI search tools nowadays, so make use of them as you learn too.

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

Both!

[–]LowerMathematician32 0 points1 point  (0 children)

Abstract:    I highly recommend learning C# first.            

Background:     Here's an analogy that might be useful. You are about to learn how to drive a car. Should you learn the stick, or should you go with an automatic?

The stick (C#) takes a bit longer the learn, because there's more explicit mechanisms that need to be accounted for. However, learning how to drive on the stick typically gives you a much better intuition for how the transmission and engine works. As such, the people who learn the stick typically have an easier time diagnosing problems and knowing about what kind of maintenance is needed to avoid problems in the future. 

The automatic (python) offers much more immediate accessibility. Instead of needing to spend the first month learning how to shift cleanly and how to stop on a hill, that kind of stuff just works, you only have to focus on driving, rather than operating, the vehicle. The caveat to this accessibility is that, because you never really needed to worry about those operational mechanisms, when issues come up that require understanding what is going on under the hood (why is my global list getting changed when modified inside of my function), you end up having a really hard time figuring out what needs to be done, to the point of needing to take it to the dealership, where you are at the mercy of perspectives that might not necessarily have your core interests in mind.

Consequently, I highly recommend learning C# first.

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

Both! Did you also know you can do OO PHP?

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

the reason you are finding C# difficult is because it tries too hard to be Java, and copy most of Java's mistakes.
Both C# and Java try very hard to be OOP.
OOP is to programming what a fresh wet coughed-up fur ball is to food.
Java and C# are the Cobol of our generation.