Is C a must to learn C#

It is not mandatory that you should c before learning c# but yes it will surely help you and will be a plus if you know c language already before learning c#. Because both languages are similar to each other.
 
C is more low level than c#. It does help you understand better how the computer works, which is beneficial but not required to program in c#.
 
The language depends on the purpose you are programming for but all of them based on the same foundation which is sequence,selection and repetition.Before you learn how to write code you have to learn how to devise algorithms.
 
So do I absolutely need to learn C before I even attempt at learning C# or can I start right from C# itself? I know learning C would help a lot in the transition, but I just wanted to know if it's mandatory to learn it.
In theory, no. I know you were probably thinking something like "C# should have similar syntax as C", but actually, that is not the case. Again, in theory, you could learn any programming language (or anything :D ) from scratch, but it is advised to learn some basic programming from a more simple language before you jump to OOP.
 
You can learn C# directly without learning C.
Many tutorials teaches you C first and then, C# but you can learn C# directly if you want.
 
You can learn C# directly without learning C.
Many tutorials teaches you C first and then, C# but you can learn C# directly if you want.

Tutorials teach C first then C#? what are you talking about? The languages aren't even related. One uses the .NET framework, the other uses the C standard library. One is managed, and the other is native.
 
You definitely don't need to learn C first or ever really unless you got some specialty task in mind. To break down the different C's

C - Is a rather old language. There is little reason to use it outside from maintaining legacy code or when you're options are constrained like when programming microchips. The main legacy of this language is its syntax - many languages are considered "C-like" like C# or javascript, beyond syntax though, they don't have much in common.

C++ - Contains everything C has and then some (which is the main reason C is mostly obsolete). Also started out a long time ago but unlike C, its development is alive and well and it is very much a modern language. C++ is one of the highest performance languages, that combined with its large codebase and platform independence makes it probably the most versatile language out there. Learning C++ can be difficult since you need to get a handle on managing memory yourself from early on but once you got that down all you need to do is skim API references to build anything. There is of course more to learn but at that point you can start working on some real things and learn on the job. The meta programming capabilities of this language go deeper than most so the skill ceiling is very high but so are the rewards. If you read various articles on "which language is the fastest" or whatever, you might get the impression that managed languages like java or C# aren't that far behind but this isn't true. For anything more complex than looping a calculation or whatever, for algorithms that do some kind of specialized computation, C++ can be optimized to be hundreds, if not thousands of times faster. Access to hardware features like instruction sets on CPU's or direct manipulation of RAM or hard drives is hard to beat.

C# - Isn't really a "sequel" to C like C++ but rather a completely different animal with basic syntax very similar to C. Its a managed language which means it trades speed for convenience, both in developing and deploying. The main advantage of C# over C++ is that its quicker to develop from scratch to something real because
a) its just generally easier
b) .net library is more extensive than std(of c++)
c) deployment is pretty much plug'n'play on microsoft platforms ranging from smartphones to computational farms.



C++CLI - Is a bridge by microsoft between CLR and C++, its essentially C++ with the ability to manipulate managed objects. Its not really a language that should be used on its own (all though, you can) but rather a tool for efficient interop between the languages. This is useful since with it, you can for example quickly prototype a program with UI and whatnot and replace performance critical components with c++ later. The syntax isn't terribly complex compared to c++ but considering the complexity of both combined its pretty nightmarish.


If you're serious about programming, you'll probably end up learning all of them anyways, along with a bunch of others. C# is likely the best place to start.
 
Last edited:
C and C# are different you can focus either of the two but if you seek some easier and simple language try visual basic, that's where I started and my first focus 'cause its more simple and when creating GUI's the job can be easily done as visual basic is Object Oriented where gui can be easily made
 
I hate VB.NET, and I hate Python. I've written some Kodi plugins using Python, and every time had to use Visual Studios and had to show hidden characters since Python requires indenting instead of using brackets which imo makes it difficult.

VB.NET is kinda like C#, except most source codes I've seen written are a huge mess and once again, doesn't use brackets.

If you've used C/C++ in the past, you get used to code being neatly inside of brackets so you can tell easily what is being executed within any given function. C# uses brackets and the dot net framework. It does suck that you will only be able to program for Windows and ASP using C#, but it is very easy to learn. If you've used C++ in the past, basically it's the same except with lots of built in functions. Thus making the programming process that much faster.

Most of my projects are written in C# (github . com/erfg12?tab=repositories) so you can take a look at my code if you want to see some examples.
 
Last edited:
Depends on your end goal. You'll appreciate C when you're fiddling with low level stuff like ring0, etc. If you only just want to write bots, then learning C# first is fine. Python is the best for bots, but that's just me.
 
C is not a must for learning C# .
However if you must know,C is great language probably greatest language of all time imo.

It is a high level language that is used to do the low level tasks such as

-Drivers for hardware
-Kernels etc

It is not object oriented but this is resolved in C++ which is just an extension of C.

C is bit difficult to learn as a beginner but it provides a strong base to learn other languages as well and this is the reason it is taught first in colleges or institutions .

Whereas C# is fully object oriented language which is easier to learn with the help of .net framework and If you want to start development of windows desktop apps without wasting time, I would recommend it.

You could start by searching for tutorials on YouTube .There are tons of it.
 
C or C++ are never prerequisite to learn or start programming with C#. C# is a robust language, and it can be used to program not only Windows application rather you can write the web application in c# MVC, asp.net.

A good beginners ebook is "Head First C#"

No doubt, this is an excellent book!
 
Well, it's absolutely no for C. You don't need it with C# and overall .NET is very simple compared to plain C.

Of course it depends what are you going to code and in some cases you may need something like C/C++ when you need more freedom.

But in C# it is possible to create anything. I was programming in it few years on WIN until I switched to MAC and now I prefer c++ for cross-platform stuff. Currently there is MONO for .NET so you can go cross-platform with it too. But I didn't liked it...
 
Lets say it this way:

If you want your program/bot to stand out in this competitive world, use C/C++.
If you plan to sell a few copies and get to the next project, use C#.

People will sell you the advantages and the disadvantages of different languages based on their perspective. Its an eternal question, which one is better, same as with iPhone & Android based phones. In order to judge objectively pick the top world's software and see what it was built with:

Popular desktop software is mostly made with C/C++.
Popular websites are mostly made with PHP.
Etc..
 
You don't need C to learn C#. A lot of common tasks are actually much simpler in C# because of .NET. I'd use C or C++ for performance critical software though
 
I personally started with C and had fun learning and implementing it until i realised it's not ultimately necessary to learn it in order to go for C++ or C#
The main difference is that C# is OOP and C is not. Although learning C will make your base strong. you can skip it if you're not going to be a professional developer.
 
You can go with C sharp with out learning basic from c
 
C# not only that is prefered by more companies while hiring persons, but it keeps growing so fast. Is a giant framework which get major updates without even expecting them.

Go for C#, you'll never regret this decision!
 
Back
Top