I've been learning C# for a bit and haven't got very far (only to integers) and I'm a complete novice with no programming background. I'm wondering if I should switch to Java or Python; Java because most jobs in my area require you to know it (or it is very useful to them, a +); and I was thinking of Python because it's mostly a language that novices start out with and it's still pretty powerful. I've had trouble with C# because the resources I'm using are kind of difficult. I'm having a hard time finding some for beginners.
However, for Python, there are a plethora of interactive resources such as Udacity courses I can enroll in, as well as Codeacademy.
What should I do? C# is useful, but difficult, Java is useful, Python is good for beginners and I have great resources available.
The only real difference for learning a language when you're just getting started is syntax. Most other things are identical.
When you get to higher level things like data types and things like that. That's when things start to differ substantially.
You're a ways away from having to worry about language from a job perspective. I would just tough it through with C#, seeming as how you're already somewhat familiar.
I would suggest trying to find a nice book to read, can always help. Sometimes you can't find a tutorial suitable for you.
[URL="http://msdn.microsoft.com/en-us/library/hh145616(v=vs.88).aspx"]Try reading the first few chapters of this from here.[/URL]
[QUOTE=Topgamer7;39122107]The only real difference for learning a language when you're just getting started is syntax. Most other things are identical.
When you get to higher level things like data types and things like that. That's when things start to differ substantially.
You're a ways away from having to worry about language from a job perspective. I would just tough it through with C#, seeming as how you're already somewhat familiar.
I would suggest trying to find a nice book to read, can always help. Sometimes you can't find a tutorial suitable for you.
[URL="http://msdn.microsoft.com/en-us/library/hh145616(v=vs.88).aspx"]Try reading the first few chapters of this from here.[/URL][/QUOTE]
Thanks, in some of the C# tutorials they were using terms I was unfamiliar with and they didn't describe things too well; I think reading that will give me a better understanding.
I'm a big c# fan myself, and whenever people ask for c# books I usually tell them to look into Head First C#. It was a very easy to understand book that is project based, which I like.
Java and C# are identical in many areas. I prefer visual studio (for c#) to any of java's IDEs, and C# has a few nifty features that you might like, such as automatic properties and delegates.
[QUOTE=DoctorSalt;39122174]I'm a big c# fan myself, and whenever people ask for c# books I usually tell them to look into Head First C#. It was a very easy to understand book that is project based, which I like.
Java and C# are identical in many areas. I prefer visual studio (for c#) to any of java's IDEs, and C# has a few nifty features that you might like, such as automatic properties and delegates.[/QUOTE]
Perhaps I should go from C# > Java then! That seems like the best path for me since I want to be as workplace-ready as I can.
[QUOTE=DoctorSalt;39122174]I'm a big c# fan myself, and whenever people ask for c# books I usually tell them to look into Head First C#. It was a very easy to understand book that is project based, which I like.
Java and C# are identical in many areas. I prefer visual studio (for c#) to any of java's IDEs, and C# has a few nifty features that you might like, such as automatic properties and delegates.[/QUOTE]
I personally got my intro to c# in [URL="http://books.google.ca/books?id=T55LdXq6rB0C&pg=PT16&dq=c%23+wiley+books&hl=en&sa=X&ei=le_pUMy2PIeGiQLnw4GYCg&ved=0CEoQ6AEwAg"]C# 2008[/URL]
[QUOTE=DerpHurr;39122197]Perhaps I should go from C# > Java then! That seems like the best path for me since I want to be as workplace-ready as I can.[/QUOTE]
That sounds like a pretty good plan. My only 'problem' with that is I felt so used to visual studio. However, all the more reason to! A programmer should be versatile.
[QUOTE=DoctorSalt;39122255]That sounds like a pretty good plan. My only 'problem' with that is I felt so used to visual studio. However, all the more reason to! A programmer should be versatile.[/QUOTE]
I agree. A carpenter can't rely on one tool to get the job done properly, so a programmer shouldn't either (in some cases). Thanks everyone for all the help! I'll check out some books and keep reading.
Don't focus too much on languages. Learn how to program (which is a way of thinking) first. For that, sticking with C# will work.
And moving from C# to Java isn't really of much use, they are almost identical anyways. If anything, you should move up to C++ and learn stuff like manual memory management (Which you can do in C# too but it's a bit more complicated than in C++).
Java
If you're only on integers, it may be a little early to be thinking about programming for a living.
I'd say stick to C# for the time being, and if you like it, learn C++ eventually.
Switch to C/C++. Switching from C# to Python or Java means not switching at all, because these languages are very similar.
[QUOTE=SiPlus;39128346]Switch to C/C++. Switching from C# to Python or Java means not switching at all, because these languages are very similar.[/QUOTE]
False, look up the definition of language. The method that they take code from language to bytecode is similar. Slightly.
GOD
[QUOTE=SiPlus;39128346]Switch to C/C++. Switching from C# to Python or Java means not switching at all, because these languages are very similar.[/QUOTE]
If you consider Java and Python similar, then C/C++ should be pretty similar too.
[QUOTE=ArgvCompany;39143161]If you consider Java and Python similar, then C/C++ should be pretty similar too.[/QUOTE]
No, C and C++ involve manual memory management, they have pointers as one of their primary features (instead of "unsafe" addition), and they are much less abstract from the system.
C# to Java/Python is horizontal switch, C# to C/C++ is vertical switch.
[QUOTE=SiPlus;39143476]No, C and C++ involve manual memory management, they have pointers as one of their primary features (instead of "unsafe" addition), and they are much less abstract from the system.
C# to Java/Python is horizontal switch, C# to C/C++ is vertical switch.[/QUOTE]
You group Java and Python like they're similar to each other but different to C#. I would consider Java and C# to be much more similar to each other.
"A good coder isn't the one knowing all of those programming languages, but the one that can solve a problem regardless of the language." (my own, it's quite fitting)
[QUOTE=dije;39144310]"A good coder isn't the one knowing all of those programming languages, but the one that can solve a problem regardless of the language." (my own, it's quite fitting)[/QUOTE]
I think it is more handy to know a few languages. Python and Ruby for example are great for sloppy thinking and half-assed hackery. Don't get me wrong these "easier" languages are great for just "hacking" out ideas, but if you keep the hakc until it works mentality then in the end nothing works.
I guess my point is a good programmer / coder (or whatchamacallit) chooses the appropriate language for a particular task. It is the same as the carpenter analogy used quite a few times here on the forums.
Stay with C#, it's one of the easiest languages to get your head around first.
This is a GREAT resource for beginners: [url]http://rbwhitaker.wikidot.com/c-sharp-tutorials[/url]
Well in python or java or well any language depending on how you use the language features and code things the speed differences between languages doesn't matter nearly as much...
[QUOTE=Brandy92;39148910]Stay with C#, it's one of the easiest languages to get your head around first.[/QUOTE]
Easy doesn't always mean good.
[QUOTE=SiPlus;39153146]Easy doesn't always mean good.[/QUOTE]
But what's the good of another language if it's far too complicated for most to pick up?
[QUOTE=SiPlus;39153146]Easy doesn't always mean good.[/QUOTE]
True, but C# is easy to grasp yet a 'good' and very powerful language.
[QUOTE=Brandy92;39153282]But what's the good of another language if it's far too complicated for most to pick up?[/QUOTE]
C is not complicated at all. C++ is complicated, but you don't have to use stuff like lambdas.
[QUOTE=SiPlus;39190674]C is not complicated at all. C++ is complicated, but you don't have to use stuff like lambdas.[/QUOTE]
Why do you insist on using low level languages to do things instead of languages like C#? It's 2013, memory management shouldn't have to be worried about. Even C++ reflects this with its RAII garbage collection.
You don't need to make things hard for yourself, what're you trying to prove?
Why not all of them?
Why not learn all three?
C# is pretty close to Java and Python is just good to know I guess.
[QUOTE=Jookia;39195266]Why do you insist on using low level languages to do things instead of languages like C#? It's 2013, memory management shouldn't have to be worried about. Even C++ reflects this with its RAII garbage collection.
You don't need to make things hard for yourself, what're you trying to prove?[/QUOTE]
Because it gets a reaction.
[QUOTE=Jookia;39195266]You don't need to make things hard for yourself, what're you trying to prove?[/QUOTE]
How is manual memory management harder than GC? I've never had any difficulties using manual memory management, but with GC, when I need a long-term object that I'm going to delete at some place (for example, current level structure), I have to count references by myself, and I have to explicitly null out any possible references, even though I know that those references will not be accessed until I load a different level (where they get updated), and I find that much harder.
[QUOTE=SiPlus;39200946]How is [B]manual[/B] memory management harder than GC?[/QUOTE]
I'd prefer manual memory management over cerebral reference counting.
Sorry, you need to Log In to post a reply to this thread.